diff options
-rw-r--r-- | .ignore-cynerd-desktop | 2 | ||||
-rw-r--r-- | .ignore-cynerd-laptop | 1 | ||||
-rw-r--r-- | .ignore-work-pc | 1 | ||||
-rw-r--r-- | config/i3/config | 6 | ||||
-rw-r--r-- | config/i3blocks/config | 5 | ||||
-rw-r--r-- | config/sway/config | 200 | ||||
-rw-r--r-- | config/swaylock/config | 4 | ||||
-rwxr-xr-x | install | 53 | ||||
-rw-r--r-- | profile | 16 | ||||
-rw-r--r-- | utils/inst | 13 | ||||
-rw-r--r-- | xinitrc | 2 |
11 files changed, 262 insertions, 41 deletions
diff --git a/.ignore-cynerd-desktop b/.ignore-cynerd-desktop new file mode 100644 index 0000000..1abe91e --- /dev/null +++ b/.ignore-cynerd-desktop @@ -0,0 +1,2 @@ +wake-desktop +backup diff --git a/.ignore-cynerd-laptop b/.ignore-cynerd-laptop new file mode 100644 index 0000000..ec76ec2 --- /dev/null +++ b/.ignore-cynerd-laptop @@ -0,0 +1 @@ +backup diff --git a/.ignore-work-pc b/.ignore-work-pc new file mode 100644 index 0000000..ec76ec2 --- /dev/null +++ b/.ignore-work-pc @@ -0,0 +1 @@ +backup diff --git a/config/i3/config b/config/i3/config index b74108a..1d850f4 100644 --- a/config/i3/config +++ b/config/i3/config @@ -163,14 +163,10 @@ bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% && bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% && pkill -RTMIN+10 i3blocks bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle && pkill -RTMIN+10 i3blocks -# Sreen brightness controls +# Screen brightness controls bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 20 # increase screen brightness bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 20 # decrease screen brightness -# Keyboard backlight (asus only) -bindsym XF86KbdBrightnessUp exec --no-startup-id asus-kbd-backlight up -bindsym XF86KbdBrightnessDown exec --no-startup-id asus-kbd-backlight down - # Media player controls bindsym XF86AudioPlay exec --no-startup-id mpc toggle && pkill -RTMIN+12 i3blocks bindsym XF86AudioStop exec --no-startup-id mpc stop && pkill -RTMIN+12 i3blocks diff --git a/config/i3blocks/config b/config/i3blocks/config index c589d07..0ec9161 100644 --- a/config/i3blocks/config +++ b/config/i3blocks/config @@ -43,11 +43,6 @@ command=~/.config/i3/scripts/keyboard_layout interval=once signal=11 -[backup] -command=~/.config/i3blocks/scripts/backup -interval=86400 -signal=13 - # Volume indicator # # The first parameter sets the step (and units to display) diff --git a/config/sway/config b/config/sway/config new file mode 100644 index 0000000..2d69b9f --- /dev/null +++ b/config/sway/config @@ -0,0 +1,200 @@ +# Sway config + +input "7805:12200:ROCCAT_ROCCAT_Suora" { + xkb_layout us + xkb_options grp:alt_space_toggle + xkb_options caps:escape + xkb_numlock enabled +} + +output "DP-1" { + mode 2560x1440 + position 0 0 +} +output "HDMI-A-1" { + mode 1920x1080 + position 2560 0 +} + +output '*' { + background '/usr/share/backgrounds/vim-card-black-2560x1440.png' fit +} + +################################################################################## + +smart_borders on +default_border normal 1 +default_floating_border normal 1 +mouse_warping container +font pango:DejaVu Sans Mono 7 + +bar { + status_command i3blocks + position top + font pango:DejaVu Sans Mono 8 +} + +################################################################################## + +set $mod Mod4 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec urxvt + +# start dmenu (a program launcher) +bindsym $mod+d exec i3-dmenu-desktop --entry-type=name +bindsym $mod+Shift+d exec surf-menu + +# kill focused window +bindsym $mod+q kill + +# bar toggle, hide or show +bindsym $mod+m bar mode toggle + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# split in horizontal orientation +bindsym $mod+g split h +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# Scratchpad +bindsym $mod+Tab scratchpad show +bindsym $mod+Shift+Tab move scratchpad + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent +# focus the child container +bindsym $mod+Shift+a focus child + +# Output moving +bindsym $mod+x move container to output right +bindsym $mod+z move container to output left +bindsym $mod+Shift+x move workspace to output right +bindsym $mod+Shift+z move workspace to output left + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 +bindsym $mod+grave workspace web +bindsym $mod+underscore workspace t + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 +bindsym $mod+Shift+grave move container to workspace web +bindsym $mod+Shift+underscore move container to workspace t + +# Set Pidgin to scratchpad +for_window [class="Pidgin"] move scratchpad + +# reload the configuration file +bindsym $mod+Shift+r reload + +set $mode_system System (l) lock, (e) logout, (s) suspend, (r) reboot, (Shift+s) shutdown +mode "$mode_system" { + bindsym l exec i3lock -c 000000 && sleep 1 && xset dpms force off, mode "default" + bindsym e exec i3-msg exit, mode "default" + bindsym s exec sudo pm-suspend, mode "default" + bindsym r exec sudo reboot, mode "default" + bindsym Shift+s exec ~/.config/i3/scripts/shutdown, mode "default" + + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Shift+q mode "$mode_system" + +set $displays (d)efault, toggle: 1:eDP 2:HDMI 3:VGA +mode "$displays" { + bindsym d exec mxrandr, mode "default" + bindsym 1 exec mxrandr toggle eDP1, mode "default" + bindsym 2 exec mxrandr toggle HDMI1, mode "default" + bindsym 3 exec mxrandr toggle VGA1, mode "default" + + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Shift+w mode "$displays" + +# resize window +mode "resize" { + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# Switch keyboard layout +bindsym Mod1+space exec ~/.config/i3/scripts/keyboard_switch + +# Pulse audio control +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5% && pkill -RTMIN+10 i3blocks +bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -5% && pkill -RTMIN+10 i3blocks +bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle && pkill -RTMIN+10 i3blocks + +# Screen brightness controls +bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness +bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness + +# Media player controls +bindsym XF86AudioPlay exec mpc toggle && pkill -RTMIN+12 i3blocks +bindsym XF86AudioStop exec mpc stop && pkill -RTMIN+12 i3blocks +bindsym XF86AudioNext exec mpc next && pkill -RTMIN+12 i3blocks +bindsym XF86AudioPrev exec mpc prev && pkill -RTMIN+12 i3blocks +# Run media player control app +bindsym $mod+Shift+m exec urxvt -title "Music player daemon client" -e ncmpcpp + +################################################################################## +# Start daemons +exec dunst +# Set background +# TODO +# Start pidgin +exec pidgin diff --git a/config/swaylock/config b/config/swaylock/config new file mode 100644 index 0000000..72c08e0 --- /dev/null +++ b/config/swaylock/config @@ -0,0 +1,4 @@ +ignore-empty-password +color=000000 +scaling=fit +indicator-radius=100 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh cd `dirname $0` @@ -14,31 +14,30 @@ git submodule update --init --recursive || (echo "Submodule update failed!"; exi source private/install # private files, sorry but some privacy is required. # TODO on hosts without shellrc we might want some thin shellrc to be installed -if ask "Install shell profile"; then +if ask "profile" "Install shell profile"; then inst profile ~/.profile inst zprofile ~/.zprofile fi -if ask "Install GIT configuration"; then +if ask "git" "Install GIT configuration"; then inst gitconfig ~/.gitconfig inst local/git-prompt.sh ~/.local/ fi -if ask "Install configurations for various utility tools"; then +if ask "gnuscreen" "Install configurations for various utility tools"; then inst screenrc ~/.screenrc fi -if ask "Install user services"; then +if ask "services" "Install user services"; then inst local/sbin/user-service.sh ~/.local/sbin/user-service.sh inst service/ ~/.service/ fi -if ask "Install SSH config"; then +if ask "ssh" "Install SSH config"; then inst private/ssh_config ~/.ssh/config fi -YCM_PATH=~/.vim/bundle/YouCompleteMe -if ask "Install VIM scripts"; then +if ask "vim" "Install VIM scripts"; then inst vimrc ~/.vimrc inst vim/ ~/.vim inst local/bin/vim-project-gen ~/.local/bin/vim-project-gen @@ -52,7 +51,7 @@ if ask "Install VIM scripts"; then vim +PluginInstall +qall fi -if ask "Install email synchronization"; then +if ask "email-sync" "Install email synchronization"; then inst local/bin/email-unread ~/.local/bin/email-unread inst local/sbin/newmail-notify ~/.local/sbin/newmail-notify inst_email_sync @@ -61,7 +60,7 @@ if ask "Install email synchronization"; then # inst config/offlineimap/ ~/.config/offlineimap fi -if ask "Install mutt configuration"; then +if ask "mutt" "Install mutt configuration"; then inst urlview ~/.urlview inst lynxrc ~/.lynxrc inst mutt/mailcap ~/.mutt/ @@ -74,40 +73,50 @@ if ask "Install mutt configuration"; then mkdir -p ~/.cache/mutt # directory for temporaly html files fi -if ask "Install desktop (i3..)"; then - inst xinitrc ~/.xinitrc - inst Xresources ~/.Xresources - inst config/i3/ ~/.config/i3 - inst config/i3blocks/ ~/.config/i3blocks - inst config/dunst/ ~/.config/dunst - inst local/bin/mxrandr ~/.local/bin/ +if ask "desktop" "Install desktop generic"; then # Theme inst gtk-2.0/gtkrc ~/.gtkrc-2.0 inst gtk-3.0/ ~/.config/gtk-3.0/ inst config/Trolltech.conf ~/.config/Trolltech.conf # User directories inst config/user-dirs.dirs ~/.config/user-dirs.dirs + # Generic i3/sway + inst config/dunst/ ~/.config/dunst + inst config/i3blocks/ ~/.config/i3blocks +fi + +if ask "xorg" "Install XOrg (i3)"; then + inst xinitrc ~/.xinitrc + inst Xresources ~/.Xresources + inst config/i3/ ~/.config/i3 + inst local/bin/mxrandr ~/.local/bin/ +fi + +if ask "wayland" "Install Wayland (sway)"; then + inst Xresources ~/.Xdefaults # X resources for wayland session + inst config/sway/ ~/.config/sway + inst config/swaylock/ ~/.config/swaylock fi -if ask "Install calendar and contacts"; then +if ask "cal" "Install calendar and contacts"; then inst config/khal/config ~/.config/khal/config inst config/khard/khard.conf ~/.config/khard/khard.conf inst private/vdirsyncer/ ~/.vdirsyncer fi -if ask "Install Surf configuration"; then +if ask "surf" "Install Surf configuration"; then inst surf/script.js ~/.surf/script.js inst surf/styles/default.css ~/.surf/styles/default.css fi -if ask "Install MPD configuration"; then +if ask "mpd" "Install MPD configuration"; then inst config/mpd/ ~/.config/mpd fi -if ask "Install wake-desktop"; then +if ask "wake-desktop" "Install wake-desktop"; then inst local/bin/wake-desktop ~/.local/bin/wake-desktop fi -if ask "Install backup script"; then +if ask "backup" "Install backup script"; then inst local/bin/system-backup ~/.local/bin/system-backup fi @@ -14,9 +14,17 @@ export EDITOR=vim # And if we are on first terminal also automatically start x server if [ "$(tty)" = "/dev/tty1" ]; then - if which annoyme >/dev/null 2>&1; then # Check if we are using annoyme - sleep 1 # just little bit of time to give systemd to start tasks - ls ~/.annoyme/*.pid 2>/dev/null >&2 && annoyme - fi exec startx -- vt1 fi + +echo +echo "(1) i3" +echo "(2) sway" +echo -n "Select or pass to shell: " +read -r PROFILE_SELECTION +if [ "$PROFILE_SELECTION" -eq 1 ]; then + exec startx -- "vt$XDG_VTNR" +elif [ "$PROFILE_SELECTION" -eq 2 ]; then + exec sway +fi +unset PROFILE_SELECTION @@ -1,14 +1,19 @@ # Functions used for interactive installation of new changes to running system # vim: ft=sh +# Ask if given section should be installed +# First argument is name (take care not to use special characters for regulard +# expression) and second argument is a question ask() { + grep -q "^$1$" ".ignore-$(hostname)" && return 1 if $FORCE; then - echo -e "\e[1;34m$1\e[0m" + echo "\e[1;34m$2\e[0m" # Fall trough with 0 exit (always yes) else - echo -e -n "\e[1;34m$1? (Y/n) \e[0m" - read - echo "$REPLY" | grep -qE '^[Yy]?$' + echo -e -n "\e[1;34m$2? (Y/n) \e[0m" + local reply + read -r reply + echo "$reply" | grep -qE '^[Yy]?$' fi } @@ -14,4 +14,4 @@ export force_s3tc_enable=true mxrandr -exec ck-launch-session dbus-launch --sh-syntax --exit-with-session i3 +exec i3 |