diff --git a/README.md b/README.md new file mode 100644 index 0000000..d4a626c --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# i3 +## Requirements + +~~~ bash +sudo pacman -S - < pkglist.txt +~~~ diff --git a/i3/config b/i3/config index ac535e9..e4dd8b9 100644 --- a/i3/config +++ b/i3/config @@ -14,118 +14,87 @@ for_window [class="Kmix"] floating enable; border none for_window [class="Klipper"] floating enable; border none for_window [class="Plasmoidviewer"] floating enable; border none # for_window [class="(?i)*nextcloud*"] floating disable -for_window [class="plasmashell" window_type="notification"] border none, move position 70 ppt 81 ppt -no_focus [class="plasmashell" window_type="notification"] +for_window [class="plasmashell" window_type="notification"] border none, move position 70 ppt 81 ppt no_focus [class="plasmashell" window_type="notification"] +# picom as compositor exec_always --no-startup-id picom -cb +# dunst as notification daemon +# also fixes slack freeze problem on messages +exec_always --no-startup-id dunst +# fix scaling +exec "xrandr --dpi 144" + +# exec --no-startup-id nm-applet + +# nitrogen handles the desktop background +exec --no-startup-id "nitrogen --restore" + +# dex could be used for autostarting applications. not used right now +# exec --no-startup-id dex --autostart --environment i3 + +# autostart hotkey daemon +exec_always --no-startup-id sxhkd -c $HOME/.config/sxhkd/sxhkdrc + focus_follows_mouse no font pango:Noto Sans 14 set $mod Mod4 -bindsym $mod+Ctrl+Shift+l exec "i3lock -i $HOME/Wallpaper/lockscreen.png" +set $locker i3lock -i $HOME/Wallpaper/lockscreen.png && sleep 1 +bindsym $mod+Ctrl+Shift+l exec --no-startup-id $locker bindsym $mod+Return exec "konsole --hide-menubar" bindsym $mod+Shift+q kill bindsym $mod+d exec dmenu_run bindsym $mod+Shift+c reload bindsym $mod+Shift+r restart -bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - -set $ws1 "1" -set $ws2 "2" -set $ws3 "3" -set $ws4 "4" -set $ws5 "5" -set $ws6 "6" -set $ws7 "7" -set $ws8 "8" -set $ws9 "9" -set $ws10 "10" - -# switch to workspace -bindsym $mod+1 workspace number $ws1 -bindsym $mod+2 workspace number $ws2 -bindsym $mod+3 workspace number $ws3 -bindsym $mod+4 workspace number $ws4 -bindsym $mod+5 workspace number $ws5 -bindsym $mod+6 workspace number $ws6 -bindsym $mod+7 workspace number $ws7 -bindsym $mod+8 workspace number $ws8 -bindsym $mod+9 workspace number $ws9 -bindsym $mod+0 workspace number $ws10 -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number $ws1 -bindsym $mod+Shift+2 move container to workspace number $ws2 -bindsym $mod+Shift+3 move container to workspace number $ws3 -bindsym $mod+Shift+4 move container to workspace number $ws4 -bindsym $mod+Shift+5 move container to workspace number $ws5 -bindsym $mod+Shift+6 move container to workspace number $ws6 -bindsym $mod+Shift+7 move container to workspace number $ws7 -bindsym $mod+Shift+8 move container to workspace number $ws8 -bindsym $mod+Shift+9 move container to workspace number $ws9 -bindsym $mod+Shift+0 move container to workspace number $ws10 -bindsym $mod+h focus left -bindsym $mod+j focus down -bindsym $mod+k focus up -bindsym $mod+l focus right - -bindsym $mod+Ctrl+h move workspace to output left -bindsym $mod+Ctrl+j move workspace to output down -bindsym $mod+Ctrl+k move workspace to output up -bindsym $mod+Ctrl+l move workspace to output right +set $mode_exit exit: [l]ock, l[o]gout, [r]eboot, [s]hutdown +mode "$mode_exit" { + bindsym l exec --no-startup-id $locker, mode "default" + bindsym o exec --no-startup-id i3-msg exit, mode "default" + bindsym r exec --no-startup-id reboot, mode "default" + bindsym s exec --no-startup-id systemctl poweroff -i, mode "default" + bindsym Escape mode "default" + bindsym Return mode "default" +} +bindsym $mod+Shift+e mode "$mode_exit" bindsym $mod+q layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split -# resize window (you can also use the mouse for that) -mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - 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 - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape or $mod+r - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" -} - -bindsym $mod+r mode "resize" - bindsym $mod+v split h bindsym $mod+s split v bindsym $mod+a focus parent - -bindsym $mod+Shift+h move left -bindsym $mod+Shift+j move down -bindsym $mod+Shift+k move up -bindsym $mod+Shift+l move right - bindsym $mod+f fullscreen toggle +# class border backgr. text indicator child_border +client.focused #b53c00 #ff5500 #ffffff #55ff00 #ff5500 +client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a +client.unfocused #333333 #222222 #888888 #292d2e #222222 +client.urgent #2f343a #900000 #ffffff #900000 #900000 +client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c + +client.background #ffffff -exec --no-startup-id nm-applet -exec --no-startup-id "nitrogen --restore" -exec --no-startup-id dex --autostart --environment i3 # high dpi scaling -exec "xrandr --dpi 144" bar { status_command i3status position top } +# go to urgent workspace +bindsym $mod+x [urgent=latest] focus + + +# autostart +set $messenger_workspace "10" +exec --no-startup-id i3-msg 'exec telegram-desktop; exec slack' +exec --no-startup-id i3-msg 'exec firefox ' +assign [class="^TelegramDesktop$"] $messenger_workspace +assign [class="^Slack$"] $messenger_workspace +assign [class="^firefox$"] "1" +exec --no-startup-id sleep 5 && i3-msg workspace "$messenger_workspace" +exec --no-startup-id layout tabbed +exec --no-startup-id i3-msg 'workspace 1; exec keepassxc' diff --git a/pkglist.txt b/pkglist.txt new file mode 100644 index 0000000..af6bec0 --- /dev/null +++ b/pkglist.txt @@ -0,0 +1,7 @@ +picom +nitrogen +i3-gaps +i3lock +i3status +dunst +sxhkd diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc new file mode 100644 index 0000000..f89e174 --- /dev/null +++ b/sxhkd/sxhkdrc @@ -0,0 +1,11 @@ +# switch / move workspaces +super + {_,shift +} {1, 2, 3, 4, 5, 6, 7, 8, 9, 0} + i3-msg {workspace,move container to workspace} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + +# switch containers, move containers and move workspace to another screen +super + {_, shift +, ctrl +} {h, j, k, l} + i3-msg {focus, move, move workspace to output} {left, down, up, right} + +# resize mode +super + r: {h, j, k, l} + i3-msg resize {shrink width, grow height, shrink height, grow width} 10 px or 10 ppt