exec --no-startup-id ~/.local/bin/startup-progs # super set $mod Mod4 # alt set $mod2 Mod1 # hyper set $mod3 Mod3 # window title and bar font (unless specified differently in 'bar {}' #font pango:Source Code Pro 9.5 font pango:Source Code Pro Medium 10.5 # font -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1 # font -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1 # for dragging floating windows with mouse floating_modifier $mod # default tabbed workspace_layout tabbed # terminal bindsym $mod+Return exec --no-startup-id xterm bindsym $mod+Shift+Return exec --no-startup-id xterm -name floating for_window [class="XTerm" instance="floating"] floating enable # kill focused window (not necessarily its application) bindsym $mod+Shift+w kill # kill an application #bindsym --release $mod+Shift+x exec xkill # launcher and pass bindsym $mod+space exec --no-startup-id dmenu_run -fn 'Source Code Pro Medium-10.5' bindsym $mod+backslash exec --no-startup-id passmenu --type -fn 'Source Code Pro Medium-10.5' # brightness bindsym $mod+apostrophe exec --no-startup-id dmenu-light # brightness chooser bindsym XF86MonBrightnessUp exec --no-startup-id light -A 5 # increase brightness bindsym XF86MonBrightnessDown exec --no-startup-id light -U 5 # decrease brightness # volume bindsym $mod+semicolon exec --no-startup-id dmenu-pamixer # volume chooser bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --allow-boost --increase 5 bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --allow-boost --decrease 5 bindsym XF86AudioMute exec --no-startup-id pamixer --toggle-mute bindsym XF86Launch1 exec --no-startup-id pamixer --toggle-mute bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 1 toggle bindsym $mod+XF86Launch1 exec --no-startup-id pactl set-source-mute 1 toggle bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id pamixer --default-source --increase 5 bindsym $mod+XF86AudioLowerVolume exec --no-startup-id pamixer --default-source --decrease 5 # window focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # window move 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+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # horizontal and vertical orientation bindsym $mod+shift+backslash split h bindsym $mod+minus split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # 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+f floating toggle bindsym $mod+period floating toggle # toggle tiling / floating focus bindsym $mod+grave focus mode_toggle bindsym $mod+comma focus mode_toggle # toggle sticky bindsym $mod+shift+s sticky toggle # focus parent / child bindsym $mod+a focus parent bindsym $mod+Shift+a focus child # 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+bracketleft workspace prev bindsym $mod+bracketright workspace next # 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+bracketleft move container to workspace prev bindsym $mod+Shift+bracketright move container to workspace next # bspwm-esque workspace switch and container move bindsym $mod2+bracketleft exec --no-startup-id b-ws-util i3 switch prev bindsym $mod2+bracketright exec --no-startup-id b-ws-util i3 switch next bindsym $mod2+Shift+bracketleft exec --no-startup-id b-ws-util i3 move prev follow bindsym $mod2+Shift+bracketright exec --no-startup-id b-ws-util i3 move next follow set $mode_system System (l)ock | (e)xit i3 | (s)uspend | (h)ibernate | (r)eboot | (S)hutdown mode "$mode_system" { # bindsym l exec i3lock, mode "default" bindsym l exec xscreensaver-command -lock, mode "default" bindsym e exec i3-msg exit, mode "default" # bindsym s exec systemctl suspend, mode "default" # bindsym h exec systemctl hibernate, mode "default" bindsym r exec sudo reboot, mode "default" bindsym Shift+s exec sudo poweroff, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym q mode "default" } bindsym $mod+Shift+c reload bindsym $mod+Shift+r restart bindsym $mod+Shift+e mode "$mode_system" # 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 j resize shrink width 10 px or 10 ppt bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon 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 bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+r mode "resize" # change theme mode set $mode_theme theme (d)ark | (l)ight mode "$mode_theme" { bindsym d exec change-theme dark, mode "default" bindsym l exec change-theme light, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym q mode "default" } bindsym $mod+t mode "$mode_theme" set $mode_dunst dunst (c)lose | c(.)ntext | (a)ction | (h)istory mode "$mode_dunst" { bindsym c exec --no-startup-id dunstctl close bindsym period exec --no-startup-id dunstctl context, mode "default" bindsym a exec --no-startup-id dunstctl action, mode "default" bindsym h exec --no-startup-id dunstctl history-pop bindsym Return mode "default" bindsym Escape mode "default" bindsym q mode "default" } bindsym $mod+d mode "$mode_dunst" bindsym $mod+Shift+d exec --no-startup-id dunstctl close # pop-ups for_window [window_role="pop-up"] floating enable # application-specific window configurations for_window [class="mpv"] floating enable for_window [class="Mumble"] floating enable for_window [class="Nm-connection-editor"] floating enable for_window [class="Virt-manager"] floating enable for_window [class="Vncviewer"] floating enable for_window [class="TigerVNC Viewer"] floating enable for_window [class="Engrampa"] floating enable for_window [class="Caja"] floating enable for_window [class="Thunar"] floating enable for_window [class="Pavucontrol"] floating enable # no title bars for_window [class="^.*"] border pixel 4 # i3bar and system info from i3status bar { # mode hide status_command i3status | my-i3status tray_output primary }