# i3 config file (v4) # As first thing lock session exec --no-startup-id myi3lock --login set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:DejaVu Sans Mono 8 # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # kill focused window bindsym $mod+q kill # bar toggle, hide or show bindsym $mod+b bar mode toggle # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right # move focused window bindsym $mod+Shift+h move left bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l move right # split in horizontal orientation bindsym $mod+g split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # Scratchpad bindsym $mod+Tab scratchpad show bindsym $mod+Shift+Tab move scratchpad workspace_layout tabbed # 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+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container bindsym $mod+Shift+a focus child # Output moving bindsym $mod+x move container to output right bindsym $mod+z move container to output left bindsym $mod+Shift+x move workspace to output right bindsym $mod+Shift+z move workspace to output left # 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+grave workspace web bindsym $mod+underscore workspace t # 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+grave move container to workspace web bindsym $mod+Shift+underscore move container to workspace t # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart set $mode_system System (l) lock, (e) logout, (s) suspend, (r) reboot, (Shift+s) shutdown mode "$mode_system" { bindsym l exec --no-startup-id loginctl lock-session $XDG_SESSION_ID, mode "default" bindsym e exec --no-startup-id i3-msg exit, mode "default" bindsym s exec --no-startup-id loginctl suspend, mode "default" bindsym r exec --no-startup-id loginctl reboot, mode "default" bindsym Shift+s exec --no-startup-id loginctl poweroff, mode "default" bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+Shift+q mode "$mode_system" set $displays (d)efault, toggle: 1:eDP 2:HDMI 3:VGA mode "$displays" { bindsym d exec --no-startup-id mxrandr, mode "default" bindsym 1 exec --no-startup-id mxrandr toggle eDP1, mode "default" bindsym 2 exec --no-startup-id mxrandr toggle HDMI1, mode "default" bindsym 3 exec --no-startup-id mxrandr toggle VGA1, mode "default" bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+o mode "$displays" set $xshot Xshot: (w)indow or (d)desktop mode "$xshot" { # Note: xshot window is for some reason broken. # It won't run when not spawned in terminal bindsym --release w exec xshot window, mode "default" bindsym --release d exec --no-startup-id xshot desktop, mode "default" bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+Shift+s mode "$xshot" # resize window mode "resize" { bindsym h resize shrink width 10 px or 10 ppt bindsym Shift+h resize shrink width 50 px or 50 ppt bindsym j resize grow height 10 px or 10 ppt bindsym Shift+j resize grow height 50 px or 50 ppt bindsym k resize shrink height 10 px or 10 ppt bindsym Shift+k resize shrink height 50 px or 50 ppt bindsym l resize grow width 10 px or 10 ppt bindsym Shift+l resize grow width 50 px or 50 ppt # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+r mode "resize" ################################################################################## # Start a terminal bindsym $mod+Return exec alacritty # Start Firefox bindsym $mod+Shift+Return exec firefox-bin # start dmenu (a program launcher) bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --entry-type=name # Top bindsym $mod+t exec alacritty -e htop bindsym $mod+Shift+t exec alacritty -e sudo powertop # Passwords bindsym $mod+Shift+w exec --no-startup-id ~/.config/i3/scripts/pass # Calendar bindsym $mod+c exec alacritty -t "Calendar" -e ikhal # Notes bindsym $mod+Shift+n exec --no-startup-id ~/.config/i3/scripts/notes for_window [ title="notes-terminal-window" ] floating enable sticky enable # Mail client bindsym $mod+m exec astroid # Audio control bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q set Master 5%+ unmute && pkill -RTMIN+10 i3blocks bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q set Master 5%- unmute && pkill -RTMIN+10 i3blocks bindsym XF86AudioMute exec --no-startup-id amixer -q set Master toggle && pkill -RTMIN+10 i3blocks # Run and configure pulsemixer bindsym $mod+p exec alacritty -t "Pulsemixer" -e pulsemixer for_window [ title="Pulsemixer" ] floating enable; for_window [ title="Pulsemixer" ] resize set 50 ppt 50 ppt for_window [ title="Pulsemixer" ] move position center # Run and configure synchronization bindsym $mod+i exec alacritty -t "Synchronization" -e allsync bindsym $mod+Shift+i exec --no-startup-id allsync toggle for_window [ title="Synchronization" ] floating enable # Screen brightness controls bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 20 bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 20 # Media player controls bindsym XF86AudioPlay exec --no-startup-id mpc toggle && pkill -RTMIN+12 i3blocks bindsym XF86AudioStop exec --no-startup-id mpc stop && pkill -RTMIN+12 i3blocks bindsym XF86AudioNext exec --no-startup-id mpc next && pkill -RTMIN+12 i3blocks bindsym XF86AudioPrev exec --no-startup-id mpc prev && pkill -RTMIN+12 i3blocks # Run media player control app bindsym $mod+Shift+m exec alacritty -t "Music player daemon client" -e ncmpcpp for_window [ title="Music player daemon client" ] floating enable; for_window [ title="Music player daemon client" ] resize set 70 ppt 70 ppt for_window [ title="Music player daemon client" ] move position center # Set Rambox to scratchpad for_window [class="Rambox"] move scratchpad # On-screen keyboard Florence for_window [class="Florence"] floating enable ################################################################################## # Start i3blocks to display a workspace bar bar { position top status_command i3blocks tray_output primary } # Start daemons exec --no-startup-id compton -b --vsync opengl exec --no-startup-id ibus-daemon -drx exec --no-startup-id xss-lock -l -n 'mylock-notifier-fade.sh' -- myi3lock exec --no-startup-id dunst # Set background exec --no-startup-id i3background # Start Rambox exec rambox