| 1 | exec --no-startup-id ~/.local/bin/startup-progs |
| 2 | |
| 3 | # super |
| 4 | set $mod Mod4 |
| 5 | # alt |
| 6 | set $mod2 Mod1 |
| 7 | # hyper |
| 8 | set $mod3 Mod3 |
| 9 | |
| 10 | # window title and bar font (unless specified differently in 'bar {}' |
| 11 | font pango:Source Code Pro 9.5 |
| 12 | # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 |
| 13 | |
| 14 | # for dragging floating windows with mouse |
| 15 | floating_modifier $mod |
| 16 | |
| 17 | # default tabbed |
| 18 | workspace_layout tabbed |
| 19 | |
| 20 | # terminal |
| 21 | bindsym $mod+Return exec urxvt |
| 22 | bindsym $mod+Shift+Return exec urxvt -name floating |
| 23 | for_window [class="URxvt" instance="floating"] floating enable |
| 24 | |
| 25 | # kill focused window (not necessarily its application) |
| 26 | bindsym $mod+Shift+w kill |
| 27 | # kill an application |
| 28 | #bindsym --release $mod+Shift+x exec xkill |
| 29 | |
| 30 | # rofi launcher and pass |
| 31 | bindsym $mod+space exec rofi -show run -display-run ' > ' -display-window ' 🗔 ' |
| 32 | bindsym $mod+backslash exec rofi -show window -display-run ' > ' -display-window ' 🗔 ' |
| 33 | bindsym $mod+Shift+space exec rofi-pass |
| 34 | |
| 35 | # brightness |
| 36 | bindsym $mod+apostrophe exec rofi-light # rofi-based brightness chooser |
| 37 | bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness |
| 38 | bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness |
| 39 | |
| 40 | # volume |
| 41 | bindsym $mod+semicolon exec rofi-pamixer # rofi-based volume chooser |
| 42 | bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5 |
| 43 | bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5 |
| 44 | bindsym XF86AudioMute exec pamixer --toggle-mute |
| 45 | bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle |
| 46 | |
| 47 | # window focus |
| 48 | bindsym $mod+h focus left |
| 49 | bindsym $mod+j focus down |
| 50 | bindsym $mod+k focus up |
| 51 | bindsym $mod+l focus right |
| 52 | bindsym $mod+Left focus left |
| 53 | bindsym $mod+Down focus down |
| 54 | bindsym $mod+Up focus up |
| 55 | bindsym $mod+Right focus right |
| 56 | |
| 57 | # window move |
| 58 | bindsym $mod+Shift+h move left |
| 59 | bindsym $mod+Shift+j move down |
| 60 | bindsym $mod+Shift+k move up |
| 61 | bindsym $mod+Shift+l move right |
| 62 | bindsym $mod+Shift+Left move left |
| 63 | bindsym $mod+Shift+Down move down |
| 64 | bindsym $mod+Shift+Up move up |
| 65 | bindsym $mod+Shift+Right move right |
| 66 | |
| 67 | # horizontal and vertical orientation |
| 68 | bindsym $mod+shift+backslash split h |
| 69 | bindsym $mod+minus split v |
| 70 | |
| 71 | # enter fullscreen mode for the focused container |
| 72 | bindsym $mod+f fullscreen toggle |
| 73 | |
| 74 | # change container layout (stacked, tabbed, toggle split) |
| 75 | bindsym $mod+s layout stacking |
| 76 | bindsym $mod+w layout tabbed |
| 77 | bindsym $mod+e layout toggle split |
| 78 | |
| 79 | # toggle tiling / floating |
| 80 | bindsym $mod+Shift+f floating toggle |
| 81 | # toggle tiling / floating focus |
| 82 | bindsym $mod+grave focus mode_toggle |
| 83 | |
| 84 | # toggle sticky |
| 85 | bindsym $mod+shift+s sticky toggle |
| 86 | |
| 87 | # focus parent / child |
| 88 | bindsym $mod+a focus parent |
| 89 | bindsym $mod+Shift+a focus child |
| 90 | |
| 91 | # switch to workspace |
| 92 | bindsym $mod+1 workspace 1 |
| 93 | bindsym $mod+2 workspace 2 |
| 94 | bindsym $mod+3 workspace 3 |
| 95 | bindsym $mod+4 workspace 4 |
| 96 | bindsym $mod+5 workspace 5 |
| 97 | bindsym $mod+6 workspace 6 |
| 98 | bindsym $mod+7 workspace 7 |
| 99 | bindsym $mod+8 workspace 8 |
| 100 | bindsym $mod+9 workspace 9 |
| 101 | bindsym $mod+0 workspace 10 |
| 102 | bindsym $mod+bracketleft workspace prev |
| 103 | bindsym $mod+bracketright workspace next |
| 104 | |
| 105 | # move focused container to workspace |
| 106 | bindsym $mod+Shift+1 move container to workspace 1 |
| 107 | bindsym $mod+Shift+2 move container to workspace 2 |
| 108 | bindsym $mod+Shift+3 move container to workspace 3 |
| 109 | bindsym $mod+Shift+4 move container to workspace 4 |
| 110 | bindsym $mod+Shift+5 move container to workspace 5 |
| 111 | bindsym $mod+Shift+6 move container to workspace 6 |
| 112 | bindsym $mod+Shift+7 move container to workspace 7 |
| 113 | bindsym $mod+Shift+8 move container to workspace 8 |
| 114 | bindsym $mod+Shift+9 move container to workspace 9 |
| 115 | bindsym $mod+Shift+0 move container to workspace 10 |
| 116 | bindsym $mod+Shift+bracketleft move container to workspace prev |
| 117 | bindsym $mod+Shift+bracketright move container to workspace next |
| 118 | |
| 119 | # bspwm-esque workspace switch and container move |
| 120 | bindsym $mod2+bracketleft exec b-ws-util i3 switch prev |
| 121 | bindsym $mod2+bracketright exec b-ws-util i3 switch next |
| 122 | bindsym $mod2+Shift+bracketleft exec b-ws-util i3 move prev follow |
| 123 | bindsym $mod2+Shift+bracketright exec b-ws-util i3 move next follow |
| 124 | |
| 125 | set $mode_system System (l)ock | (e)xit i3 | (s)uspend | (h)ibernate | (r)eboot | (S)hutdown |
| 126 | mode "$mode_system" { |
| 127 | bindsym l exec i3lock, mode "default" |
| 128 | bindsym e exec i3-msg exit, mode "default" |
| 129 | bindsym s exec systemctl suspend, mode "default" |
| 130 | bindsym h exec systemctl hibernate, mode "default" |
| 131 | bindsym r exec systemctl reboot, mode "default" |
| 132 | bindsym Shift+s exec systemctl poweroff -i, mode "default" |
| 133 | |
| 134 | bindsym Return mode "default" |
| 135 | bindsym Escape mode "default" |
| 136 | bindsym q mode "default" |
| 137 | } |
| 138 | |
| 139 | bindsym $mod+Shift+c reload |
| 140 | bindsym $mod+Shift+r restart |
| 141 | bindsym $mod+Shift+e mode "$mode_system" |
| 142 | |
| 143 | # resize window (you can also use the mouse for that) |
| 144 | mode "resize" { |
| 145 | # These bindings trigger as soon as you enter the resize mode |
| 146 | |
| 147 | # Pressing left will shrink the window’s width. |
| 148 | # Pressing right will grow the window’s width. |
| 149 | # Pressing up will shrink the window’s height. |
| 150 | # Pressing down will grow the window’s height. |
| 151 | bindsym j resize shrink width 10 px or 10 ppt |
| 152 | bindsym k resize grow height 10 px or 10 ppt |
| 153 | bindsym l resize shrink height 10 px or 10 ppt |
| 154 | bindsym semicolon resize grow width 10 px or 10 ppt |
| 155 | |
| 156 | # same bindings, but for the arrow keys |
| 157 | bindsym Left resize shrink width 10 px or 10 ppt |
| 158 | bindsym Down resize grow height 10 px or 10 ppt |
| 159 | bindsym Up resize shrink height 10 px or 10 ppt |
| 160 | bindsym Right resize grow width 10 px or 10 ppt |
| 161 | |
| 162 | # back to normal: Enter or Escape |
| 163 | bindsym Return mode "default" |
| 164 | bindsym Escape mode "default" |
| 165 | } |
| 166 | bindsym $mod+r mode "resize" |
| 167 | |
| 168 | # application-specific window configurations |
| 169 | for_window [class="mpv"] floating enable |
| 170 | for_window [class="Mumble"] floating enable |
| 171 | for_window [class="Nm-connection-editor"] floating enable |
| 172 | for_window [class="Virt-manager"] floating enable |
| 173 | |
| 174 | # no title bars |
| 175 | for_window [class="^.*"] border pixel 4 |
| 176 | |
| 177 | # i3bar and system info from i3status |
| 178 | bar { |
| 179 | status_command i3status | my-i3status |
| 180 | tray_output primary |
| 181 | } |