268 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			268 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | # Declaration of the mod key | ||
|  | set $mod                          Mod4 | ||
|  | set $alt                          Mod1 | ||
|  | 
 | ||
|  | # Font for window titles | ||
|  | font                              pango:monospace 8 | ||
|  | 
 | ||
|  | # Variables | ||
|  | set $up                           Up | ||
|  | set $down                         Down | ||
|  | set $left                         Left | ||
|  | set $right                        Right | ||
|  | set $exiti3                       "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 $lockscreen                   "Lucien Cartier-Tilet\n(Phuntsok Drak-pa)\n+33 (0)6 83 90 56 89" | ||
|  | set $rofiexec                     "rofi -combi-modi window,drun -show combi -mohh combi -m -1" | ||
|  | set $execgnus                     "exec emacsclient --create-frame --eval '(gnus)'" | ||
|  | set $term                         st | ||
|  | 
 | ||
|  | # use Mouse+$mod to drag floating windows to their wanted position | ||
|  | floating_modifier                 $mod | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | ###                            Clients position                              ### | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | assign [class="discord"] 10 | ||
|  | assign [class="Emacs"] 2 | ||
|  | assign [class="Chromium"] 3 | ||
|  | assign [class="Nemo"] 4 | ||
|  | assign [class="Godot"] 5 | ||
|  | assign [class="Gimp*"] 6 | ||
|  | assign [class="Steam"] 9 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | ###                                 Shortcuts                                ### | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | # start a terminal | ||
|  | bindsym $mod+Return               exec $term | ||
|  | bindsym Ctrl+$mod+Return          exec emacsclient --eval "(eshell-new)" --create-frame | ||
|  | bindsym $mod+$alt+Return          split h;; exec $term | ||
|  | bindsym $mod+Shift+Return         split v;; exec $term | ||
|  | 
 | ||
|  | # kill focused window | ||
|  | bindsym $mod+q                    kill | ||
|  | bindsym $alt+F4                   kill | ||
|  | 
 | ||
|  | # program launcher | ||
|  | bindsym $mod+Shift+d              exec --no-startup-id j4-dmenu-desktop | ||
|  | bindsym $mod+d                    exec --no-startup-id $rofiexec | ||
|  | bindsym $mod+w                    exec --no-startup-id rofi-wifi-menu | ||
|  | 
 | ||
|  | # change focus | ||
|  | bindsym $mod+$left                focus left | ||
|  | bindsym $mod+$down                focus down | ||
|  | bindsym $mod+$up                  focus up | ||
|  | bindsym $mod+$right               focus right | ||
|  | # move focused window | ||
|  | bindsym $mod+Shift+$left          move left | ||
|  | bindsym $mod+Shift+$down          move down | ||
|  | bindsym $mod+Shift+$up            move up | ||
|  | bindsym $mod+Shift+$right         move right | ||
|  | 
 | ||
|  | # Change split | ||
|  | bindsym $mod+h                    split h | ||
|  | bindsym $mod+v                    split v | ||
|  | bindsym $mod+t                    split toggle | ||
|  | 
 | ||
|  | # enter fullscreen mode for the focused container | ||
|  | bindsym $mod+f                    fullscreen toggle | ||
|  | 
 | ||
|  | # toggle tiling / floating | ||
|  | bindsym $mod+Shift+space          floating toggle | ||
|  | # change focus between tiling / floating windows | ||
|  | bindsym $mod+space                focus mode_toggle | ||
|  | # center floating window | ||
|  | bindsym Ctrl+$mod+c               move position center | ||
|  | 
 | ||
|  | # Scratchpad | ||
|  | bindsym $mod+Shift+s              move scratchpad | ||
|  | bindsym $mod+s                    scratchpad show | ||
|  | 
 | ||
|  | # 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 | ||
|  | 
 | ||
|  | # 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 | ||
|  | 
 | ||
|  | # move to previous or next workspace | ||
|  | bindsym $mod+Tab                  workspace next | ||
|  | bindsym $mod+Shift+Tab            workspace previous | ||
|  | 
 | ||
|  | # reload the configuration file | ||
|  | bindsym $mod+Shift+c              reload | ||
|  | # restart i3 inplace | ||
|  | bindsym $mod+Shift+r              restart | ||
|  | # exit i3 | ||
|  | bindsym $mod+Shift+e              exec $exiti3 | ||
|  | 
 | ||
|  | # resize window (you can also use the mouse for that) | ||
|  | mode "resize" { | ||
|  |     bindsym $right                resize grow width 20 px or 10 ppt | ||
|  |     bindsym $left                 resize shrink width 10 px or 5 ppt | ||
|  |     bindsym $down                 resize grow height 10 px or 5 ppt | ||
|  |     bindsym $up                   resize shrink height 10 px or 5 ppt | ||
|  |     bindsym Return mode           "default" | ||
|  |     bindsym Escape mode           "default" | ||
|  | } | ||
|  | bindsym $mod+r                    mode "resize" | ||
|  | 
 | ||
|  | mouse_warping none | ||
|  | 
 | ||
|  | # Keyboard layout | ||
|  | bindsym $mod+$alt+k               exec setxkbmap fr bepo | ||
|  | bindsym $mod+$alt+Shift+k         exec setxkbmap fr | ||
|  | bindsym $mod+$alt+Ctrl+k          exec setxkbmap us | ||
|  | 
 | ||
|  | # bindings for MS Natural Ergonomic Keyboard 4000 ############################## | ||
|  | bindsym XF86Launch5               exec emacsclient --create-frame | ||
|  | bindsym $mod+e                    exec emacsclient --create-frame | ||
|  | bindsym XF86Launch6               exec chromium | ||
|  | bindsym $mod+c                    exec chromium | ||
|  | bindsym XF86HomePage              exec chromium https://labs.phundrak.fr | ||
|  | bindsym XF86Search                exec chromium https://www.google.com | ||
|  | bindsym XF86Launch9               exec nemo | ||
|  | bindsym $mod+n                    exec nemo | ||
|  | bindsym XF86Launch8               $execgnus | ||
|  | bindsym XF86Mail                  $execgnus | ||
|  | bindsym $mod+m                    $execgnus | ||
|  | bindsym XF86Launch7               exec discord-canary | ||
|  | bindsym Ctrl+Shift+d              exec discord-canary | ||
|  | bindsym XF86AudioMute             exec amixer -D pulse set Master 1+ toggle | ||
|  | bindsym Ctrl+$mod+Prior           exec amixer -D pulse -q set Master 2%+ unmute | ||
|  | bindsym XF86AudioRaiseVolume      exec amixer -D pulse -q set Master 2%+ unmute | ||
|  | bindsym Ctrl+$mod+Next            exec amixer -D pulse -q set Master 2%- unmute | ||
|  | bindsym XF86AudioLowerVolume      exec amixer -D pulse -q set Master 2%- unmute | ||
|  | bindsym XF86Calculator            exec /usr/bin/speedcrunch | ||
|  | bindsym $mod+$alt+c               exec /usr/bin/speedcrunch | ||
|  | #bindsym XF86Favourites | ||
|  | #bindsym Help | ||
|  | #bindsym Undo | ||
|  | #bindsym Redo | ||
|  | #bindsym XF86New | ||
|  | #bindsym SunOpen | ||
|  | #bindsym XF86Close | ||
|  | #bindsym XF86Reply | ||
|  | #bindsym XF86MailForward | ||
|  | #bindsym XF86Send | ||
|  | #bindsym XF86Save | ||
|  | 
 | ||
|  | bindsym $mod+F3                   exec arandr | ||
|  | 
 | ||
|  | # Brightness keyboard shortcuts | ||
|  | bindsym XF86MonBrightnessUp       exec light -A 5 | ||
|  | bindsym XF86MonBrightnessDown     exec light -U 5 | ||
|  | 
 | ||
|  | # Wal | ||
|  | bindsym $mod+Ctrl+w               exec wal -i ~/.config/Wallpapers -o wal-set | ||
|  | 
 | ||
|  | # Take a screenshot | ||
|  | bindsym --release Print           exec --no-startup-id scrot | ||
|  | bindsym --release Ctrl+Print      exec --no-startup-id scrot -s | ||
|  | bindsym           Shift+Print     exec --no-startup-id scrot -d 3 | ||
|  | 
 | ||
|  | # Lock screen | ||
|  | bindsym $mod+l                    exec i3lock -fol | ||
|  | bindsym $mod+$alt+h               exec i3lock -fol && systemctl suspend | ||
|  | bindsym $mod+Shift+h              exec i3lock -fol && systemctl hibernate | ||
|  | 
 | ||
|  | # SSH terminals | ||
|  | bindsym $mod+$alt+m               exec $term ssh Mila | ||
|  | bindsym $mod+$alt+t               exec $term ssh Tilo | ||
|  | bindsym $mod+$alt+n               exec $term ssh Naro | ||
|  | 
 | ||
|  | # Utilities | ||
|  | bindsym $mod+Ctrl+h               exec $term htop | ||
|  | 
 | ||
|  | # Music shortcuts | ||
|  | bindsym $alt+XF86AudioRaiseVolume exec mpc next | ||
|  | bindsym $mod+Next                 exec mpc next | ||
|  | bindsym $alt+XF86AudioLowerVolume exec mpc prev | ||
|  | bindsym $mod+Prior                exec mpc prev | ||
|  | bindsym XF86AudioPlay             exec mpc toggle | ||
|  | bindsym $mod+p                    exec mpc toggle | ||
|  | bindsym $mod+$alt+p               exec mpc stop | ||
|  | bindsym $alt+XF86AudioPlay        exec mpc stop | ||
|  | # below, 7 and 8 are the emplacement for `+` and `-` on the bépo layout | ||
|  | # respectively, hence the order | ||
|  | bindsym $mod+$alt+7               exec mpc volume +5 | ||
|  | bindsym $mod+$alt+8               exec mpc volume -5 | ||
|  | bindsym $mod+Shift+n              exec $term ncmpcpp -q | ||
|  | bindsym $mod+Shift+v              exec $term ncmpcpp -qs visualizer | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | #                               i3-gaps settings                               # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | smart_gaps                        on | ||
|  | gaps                              inner 20 | ||
|  | gaps                              outer -10 | ||
|  | border_radius                     10 | ||
|  | popup_during_fullscreen           leave_fullscreen | ||
|  | workspace_auto_back_and_forth     yes | ||
|  | focus_follows_mouse               off | ||
|  | 
 | ||
|  | # Change gaps size | ||
|  | bindsym $mod+g                    gaps inner current plus 5 | ||
|  | bindsym $mod+Shift+g              gaps inner current minus 5 | ||
|  | bindsym $mod+Ctrl+g               gaps outer current plus 5 | ||
|  | bindsym $mod+Ctrl+Shift+g         gaps outer current minus 5 | ||
|  | bindsym $mod+$alt+g               gaps inner all set 20; gaps outer all set -10 | ||
|  | 
 | ||
|  | default_border                    pixel 0 | ||
|  | smart_borders                     on | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | #                                Modules startup                               # | ||
|  | ################################################################################ | ||
|  | exec_always --no-startup-id       ~/dotfiles/enable_thouch.sh | ||
|  | exec_always --no-startup-id       ~/.config/polybar/launch.sh | ||
|  | exec_always --no-startup-id       wal -i "$(< "${HOME}/.cache/wal/wal")" | ||
|  | exec        --no-startup-id       xss-lock -- i3lock-fancy -t $lockscreen | ||
|  | exec        --no-startup-id       "xrdb $HOME/.Xresources" | ||
|  | exec        --no-startup-id       xfce4-power-manager | ||
|  | exec        --no-startup-id       compton -F --opengl --config ~/.config/compton.conf -e 1 | ||
|  | exec        --no-startup-id       redshift-gtk | ||
|  | exec        --no-startup-id       mpd | ||
|  | exec        --no-startup-id       mpc stop | ||
|  | exec        --no-startup-id       syndaemon -i 1.0 -t -k | ||
|  | exec        --no-startup-id       sleep 3; emacs --eval "(server-start)" | ||
|  | exec        --no-startup-id       mpd_discord_richpresence --no-idle --fork | ||
|  | exec        --no-startup-id       i3-battery-popup -N -t 2m | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | #                          Set colors from Xresources                          # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | set_from_resource $fg i3wm.color7 #f0f0f0 | ||
|  | set_from_resource $bg i3wm.color2 #f0f0f0 | ||
|  | 
 | ||
|  | # class                 border  backgr. text indicator child_border | ||
|  | client.focused          $bg     $bg     $fg  $bg       $bg | ||
|  | client.focused_inactive $bg     $bg     $fg  $bg       $bg | ||
|  | client.unfocused        $bg     $bg     $fg  $bg       $bg | ||
|  | client.urgent           $bg     $bg     $fg  $bg       $bg | ||
|  | client.placeholder      $bg     $bg     $fg  $bg       $bg | ||
|  | 
 | ||
|  | # client.background       $bg |