dotfiles/config/i3/config (view raw)
| 1 | ############# General ############# |
| 2 | # Bind $MOD(super) key |
| 3 | set $mod Mod4 |
| 4 | # Font |
| 5 | font monospace 10 |
| 6 | font pango:JetBrains Mono 10 |
| 7 | # Disable window title |
| 8 | default_border pixel |
| 9 | new_float pixel |
| 10 | # Borders |
| 11 | hide_edge_borders smart |
| 12 | |
| 13 | ############ Autostart ############ |
| 14 | exec --no-startup-id exec picom -b |
| 15 | exec --no-startup-id exec nmcli radio wifi on; nmcli device wifi connect <wifi-name> password <wifi-password> name net |
| 16 | exec --no-startup-id exec redshift-gtk |
| 17 | exec --no-startup-id exec setxkbmap "us,ru,ua" ",winkeys" "grp:alt_shift_toggle" |
| 18 | exec --no-startup-id exec org.telegram.desktop |
| 19 | exec --no-startup-id exec discord |
| 20 | exec --no-startup-id exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 |
| 21 | exec --no-startup-id ecec clipmenud |
| 22 | |
| 23 | ############ Key bindings ######### |
| 24 | # Terminal |
| 25 | bindsym $mod+Return exec kitty |
| 26 | bindsym ctrl+Mod1+t exec kitty |
| 27 | |
| 28 | # Kill focus window |
| 29 | bindsym $mod+q kill |
| 30 | bindsym Mod1+F4 kill |
| 31 | |
| 32 | # Program/Exit louncher |
| 33 | bindsym $mod+space exec "rofi -show drun -show cobi -show-icons" |
| 34 | bindsym $mod+Escape exec "rofi -show power-menu -show-icons -width 30 -lines 6 -modi power-menu:~/.config/rofi/rofi-power-menu" |
| 35 | # Restart i3wm |
| 36 | bindsym $mod+Shift+r restart |
| 37 | |
| 38 | # Sceenshot |
| 39 | bindsym --release Print exec "scrot -s /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png" |
| 40 | bindsym --release Shift+Print exec "scrot /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png" |
| 41 | |
| 42 | # Clipboard menu |
| 43 | bindsym $mod+c exec "CM_LAUNCHER=rofi clipmenu" |
| 44 | |
| 45 | # Load program |
| 46 | bindsym $mod+F1 exec kitty -T=Ranger_FM ranger |
| 47 | bindsym $mod+F2 exec chromium |
| 48 | bindsym $mod+F3 exec subl |
| 49 | bindsym $mod+F4 exec notable |
| 50 | |
| 51 | # Floating window |
| 52 | floating_modifier $mod |
| 53 | bindsym $mod+Shift+space floating toggle |
| 54 | bindsym $mod+Shift+f focus mode_toggle |
| 55 | |
| 56 | # Fullscreen mode |
| 57 | bindsym $mod+f fullscreen toggle |
| 58 | bindsym $mod+F11 fullscreen toggle |
| 59 | |
| 60 | # Splits |
| 61 | bindsym $mod+h split h |
| 62 | bindsym $mod+v split v |
| 63 | |
| 64 | # Focus the parent container |
| 65 | bindsym $mod+a focus parent |
| 66 | |
| 67 | # Change container layout(stacked, tabbed, toggle split) |
| 68 | bindsym $mod+s layout stacking |
| 69 | bindsym $mod+w layout tabbed |
| 70 | bindsym $mod+e layout toggle split |
| 71 | |
| 72 | # Scratchpad |
| 73 | bindsym $mod+Shift+grave move scratchpad |
| 74 | bindsym $mod+grave scratchpad show, floating disable |
| 75 | |
| 76 | # Move workspace on open window |
| 77 | for_window [urgent=["lastet"]] focus |
| 78 | focus_on_window_activation focus |
| 79 | |
| 80 | ######### Window preferens ######## |
| 81 | assign [class="(?i)kitty"] $ws1 |
| 82 | assign [class="(?i)chromium|firefox"] $ws2 |
| 83 | assign [class="(?i)subl|code|typora"] $ws3 |
| 84 | assign [class="(?i)thunar"] $ws4 |
| 85 | assign [title="Notable|Simplenote"] $ws5 |
| 86 | assign [class="(?i)telegram|discord"] $ws6 |
| 87 | assign [title="KeePassXC"] $ws7 |
| 88 | for_window [title="Ranger_FM"] move to workspace $ws4 |
| 89 | for_window [class="Spotify"] move to workspace $ws10 |
| 90 | |
| 91 | ##### Change containet focus ###### |
| 92 | # Vim like keys container |
| 93 | bindsym $mod+j focus left |
| 94 | bindsym $mod+k focus down |
| 95 | bindsym $mod+l focus up |
| 96 | bindsym $mod+semicolon focus right |
| 97 | |
| 98 | # Alternatively cursor keys |
| 99 | bindsym $mod+Left focus left |
| 100 | bindsym $mod+Down focus down |
| 101 | bindsym $mod+Up focus up |
| 102 | bindsym $mod+Right focus right |
| 103 | |
| 104 | ##### Move focused container ###### |
| 105 | # Vim like keys |
| 106 | bindsym $mod+Shift+j move left |
| 107 | bindsym $mod+Shift+k move down |
| 108 | bindsym $mod+Shift+l move up |
| 109 | bindsym $mod+Shift+colon move right |
| 110 | |
| 111 | # Alternatively cursor keys |
| 112 | bindsym $mod+Shift+Left move left |
| 113 | bindsym $mod+Shift+Down move down |
| 114 | bindsym $mod+Shift+Up move up |
| 115 | bindsym $mod+Shift+Right move right |
| 116 | |
| 117 | ############ Workspaces ########### |
| 118 | set $ws1 "1" |
| 119 | set $ws2 "2" |
| 120 | set $ws3 "3" |
| 121 | set $ws4 "4" |
| 122 | set $ws5 "5" |
| 123 | set $ws6 "6" |
| 124 | set $ws7 "7" |
| 125 | set $ws8 "8" |
| 126 | set $ws9 "9" |
| 127 | set $ws10 "10" |
| 128 | |
| 129 | # Switch workspace |
| 130 | bindsym $mod+1 workspace $ws1 |
| 131 | bindsym $mod+2 workspace $ws2 |
| 132 | bindsym $mod+3 workspace $ws3 |
| 133 | bindsym $mod+4 workspace $ws4 |
| 134 | bindsym $mod+5 workspace $ws5 |
| 135 | bindsym $mod+6 workspace $ws6 |
| 136 | bindsym $mod+7 workspace $ws7 |
| 137 | bindsym $mod+8 workspace $ws8 |
| 138 | bindsym $mod+9 workspace $ws9 |
| 139 | bindsym $mod+0 workspace $ws10 |
| 140 | |
| 141 | # Move focused container to workspace |
| 142 | bindsym $mod+Shift+1 move container to workspace $ws1 |
| 143 | bindsym $mod+Shift+2 move container to workspace $ws2 |
| 144 | bindsym $mod+Shift+3 move container to workspace $ws3 |
| 145 | bindsym $mod+Shift+4 move container to workspace $ws4 |
| 146 | bindsym $mod+Shift+5 move container to workspace $ws5 |
| 147 | bindsym $mod+Shift+6 move container to workspace $ws6 |
| 148 | bindsym $mod+Shift+7 move container to workspace $ws7 |
| 149 | bindsym $mod+Shift+8 move container to workspace $ws8 |
| 150 | bindsym $mod+Shift+9 move container to workspace $ws9 |
| 151 | bindsym $mod+Shift+0 move container to workspace $ws10 |
| 152 | |
| 153 | ########### Resize mode ########### |
| 154 | mode "resize" { |
| 155 | bindsym j resize shrink width 10 px or 10 ppt |
| 156 | bindsym k resize grow height 10 px or 10 ppt |
| 157 | bindsym l resize shrink height 10 px or 10 ppt |
| 158 | bindsym semicolon resize grow width 10 px or 10 ppt |
| 159 | |
| 160 | # same bindings, but for the arrow keys |
| 161 | bindsym Left resize shrink width 10 px or 10 ppt |
| 162 | bindsym Down resize grow height 10 px or 10 ppt |
| 163 | bindsym Up resize shrink height 10 px or 10 ppt |
| 164 | bindsym Right resize grow width 10 px or 10 ppt |
| 165 | |
| 166 | # back to normal: Enter or Escape or $mod+r |
| 167 | bindsym Return mode "default" |
| 168 | bindsym Escape mode "default" |
| 169 | bindsym $mod+r mode "default" |
| 170 | } |
| 171 | bindsym $mod+r mode "resize" |
| 172 | |
| 173 | ############### Bar ############### |
| 174 | exec_always --no-startup-id $HOME/.config/polybar/launch.sh |
| 175 | |
| 176 | ############## Colors ############# |
| 177 | # class border backgr text indicator child_border |
| 178 | client.focused #268bd2 #268bd2 #ffffff #268bd2 #268bd2 |
| 179 | client.focused_inactive #000000 #000000 #ffffff #000000 #000000 |
| 180 | client.unfocused #000000 #000000 #888888 #000000 #000000 |
| 181 | client.urgent #000000 #000000 #ffffff #000000 #000000 |
| 182 | client.placeholder #000000 #000000 #ffffff #000000 #000000 |
| 183 | client.background #ffffff |