# dotfiles -- i3config # author: johannst # i3 config file (v4) # helpful cmdline tools: # * xev # * xmodmap # alt key set $mod Mod1 # super key #set $mod Mod4 font pango:Terminus 10 # mouse+$mod to move/rezie window in floating mode floating_modifier $mod # launch terminal bindsym $mod+Return exec st # launch dmenu_run bindsym $mod+d exec dmenu_run # kill focused Window bindsym $mod+Shift+c kill # reload the configuration file bindsym $mod+Shift+s reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "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'" #{{{ basic layout hadling # container layout bindsym $mod+q layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split # fullscreen focused container bindsym $mod+f fullscreen # toggle tiling / floating bindsym $mod+Shift+space floating toggle # split vertical -> new window right to current one bindsym $mod+v split h # split horizontal -> new window below current one bindsym $mod+s split v #}}} #{{{ container focus # Change focus vim style bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right # Change focus arrow keys bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent #}}} #{{{ navigate between workspaces # 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 # Move focused window vim style bindsym $mod+Shift+h move left bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l move right # Move focused window arrow keys bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # 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 #}}} #{{{ resize mode bindsym $mod+r mode "resize" # bindings for resize mode mode "resize" { bindsym h resize shrink width 10 px or 10 ppt bindsym j resize grow height 10 px or 10 ppt bindsym k resize shrink height 10 px or 10 ppt bindsym l resize grow width 10 px or 10 ppt 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" } #}}} #{{{ Thinkpad T410 volume keys bindsym XF86AudioRaiseVolume exec "amixer set Master 5%+" bindsym XF86AudioLowerVolume exec "amixer set Master 5%-" bindsym XF86AudioMute exec "amixer set Master toggle" #}}} #{{{ lock/suspend set $lock_cmd i3lock --inactivity-timeout 30s -d --ignore-empty-password -c 455a64 # lock screen bindsym $mod+Control+l exec $lock_cmd # power mode set $power_mode (l) lock (s) suspend bindsym $mod+Pause mode "$power_mode" mode "$power_mode" { bindsym l exec $lock_cmd, mode "default" bindsym s exec $lock_cmd && systemctl suspend, mode "default" bindsym Escape mode "default" bindsym Return mode "default" } #}}} #{{{ i3bar # Start i3bar bar { status_command i3status --config ~/.i3/i3status.conf } #}}} # PLAYGROUND # pin applications to specific workspace # helpfull to get name: 'xprop | grep WM_CLASS' (then click window) assign [class="Firefox"] 9 bindsym $mod+p exec "notify-send \\"Hello, i3; $USER\\"" #% vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1