# This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # # Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). # # i3 config file (v4) # # Please see http://i3wm.org/docs/userguide.html for a complete reference! 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. # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). font pango:DejaVu Sans Mono 8 # Before i3 v4.8, we used to recommend this one as the default: # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 # The font above is very space-efficient, that is, it looks good, sharp and # clear in small sizes. However, its unicode glyph coverage is limited, the old # X core fonts rendering does not support right-to-left and this being a bitmap # font, it doesn’t scale on retina/hidpi displays. # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod hide_edge_borders both # none|vertical|horizontal|both # start a terminal bindsym $mod+Return exec kitty # kill focused window bindsym $mod+Shift+q kill # start dmenu (a program launcher) bindsym $mod+d exec dmenu_run # There also is the (new) i3-dmenu-desktop which only displays applications # shipping a .desktop file. It is a wrapper around dmenu, so you need that # installed. # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop bindsym Ctrl+Shift+l exec i3lock-fancy bindsym $mod+o exec speedcrunch # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move right # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Right move right # split in horizontal orientation bindsym $mod+h split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen # 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 # float some applications for_window [class="Tor Browser"] floating enable for_window [title="SpeedCrunch"] floating enable bindsym $mod+a focus parent # focus the parent container # manage workspaces # look for icons: https://fontawesome.com/icons?d=gallery # firefox - browser is placed on this Workspace set $WS1 "1 " # git - emacs <3 set $WS2 "2 " # terminal - place for urxvt set $WS3 "3 " # envelope - thunderbird windows on here set $WS4 "4 " # code - eclise, intellij IDEs, etc set $WS5 "5 " # unlock-alt - keepassxc defaults here set $WS8 "8 " # linux - less often used terminals for background processes set $WS9 "9 " assign [class="^Firefox$"] $WS1 assign [class="^DebugScreen"] $WS3 assign [class="^Eclipse$"] $WS5 assign [class="^Thunderbird$"] $WS4 assign [class=".*ee.*ass.*"] $WS8 # https://faq.i3wm.org/question/3726/workspace-output-multiple-values/index.html%3Fanswer=3731.html#post-id-3731 # set $LAPTOP LVDS-1 set $CENTER DP-0 set $RIGHT DP-3 set $LEFT DVI-D-0 # monitor settings bindsym $mod+m mode "monitor" mode "monitor" { # only laptop bindsym 1 exec xrandr --output $LAPTOP --auto --primary --output $CENTER --off $RIGHT --off # CENTER main, RIGHT secondary bindsym 2 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --off # HDMI main, laptop left, VGA right, *not* supported on X230 bindsym 3 exec xrandr --output $CENTER --primary --auto --output $LEFT --auto --left-of $CENTER --output $RIGHT --auto --right-of $CENTER # CENTER main, RIGHT right, rotated bindsym 4 exec xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --auto --left-of $CENTER --rotate right # VGA main, laptop left, HDMI off bindsym 8 exec xrandr --output $RIGHT --primary --auto --output $LAPTOP --auto --left-of $RIGHT --output $CENTER --off # HDMI main, VGA right, laptop off bindsym 9 exec xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --output $LAPTOP --off # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+m mode "default" } workspace $WS1 output $CENTER workspace $WS2 output $CENTER workspace $WS3 output $RIGHT workspace $WS4 output $RIGHT workspace $WS8 output $RIGHT workspace $WS9 output $RIGHT # switch to workspace bindsym $mod+1 workspace $WS1 bindsym $mod+2 workspace $WS2 bindsym $mod+3 workspace $WS3 bindsym $mod+4 workspace $WS4 bindsym $mod+5 workspace $WS5 bindsym $mod+6 workspace 6 bindsym $mod+7 workspace 7 bindsym $mod+8 workspace $WS8 bindsym $mod+9 workspace $WS9 bindsym $mod+0 workspace 10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace $WS1 bindsym $mod+Shift+2 move container to workspace $WS2 bindsym $mod+Shift+3 move container to workspace $WS3 bindsym $mod+Shift+4 move container to workspace $WS4 bindsym $mod+Shift+5 move container to workspace $WS5 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 $WS8 bindsym $mod+Shift+9 move container to workspace $WS9 bindsym $mod+Shift+0 move container to workspace 10 # audio controls bindsym XF86AudioRaiseVolume exec amixer set Master 5+ #increase sound volume bindsym XF86AudioLowerVolume exec amixer set Master 5- #decrease sound volume bindsym XF86AudioMute exec amixer set Master 1+ toggle # mute sound bindsym XF86AudioMicMute exec amixer set Capture toggle # mute mic # 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 # 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'" # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. # Pressing down will grow the window’s height. 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 # same bindings, but for the arrow keys bindsym Left resize shrink width 5 px bindsym Down resize grow height 5 px bindsym Up resize shrink height 5 px bindsym Right resize grow width 5 px # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+r mode "resize" bar { font pango:DejaVu Sans, FontAwesome 9 # position top output $CENTER status_command /usr/bin/i3status-rs /home/fschl/dotfiles/.i3/status-rust.toml colors { separator #166616 background #222222 statusline #166616 focused_workspace #0088CC #0088CC #ffffff active_workspace #333333 #333333 #ffffff inactive_workspace #333333 #333333 #888888 urgent_workspace #2f343a #900000 #ffffff } } bar { output $RIGHT output $LEFT status_command i3status --config ~/.i3/status_small.conf tray_output $CENTER } # startup programs exec --no-startup-id nm-applet exec --no-startup-id xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --auto --left-of $CENTER --rotate right exec --no-startup-id i3-msg 'workspace $WS1; exec firefox;' exec --no-startup-id i3-msg 'workspace $WS2; exec emacs' exec --no-startup-id i3-msg 'exec thunderbird' exec --no-startup-id i3-msg 'exec keepassxc' exec --no-startup-id i3-msg 'workspace $WS5; exec kitty;'