Marty Oehme
51e0d82ce9
The application autostart takes too long and is more intrusive than anticipated. If I want to use qutebrowser, I can just start qutebrowser on my and don't need to wait for i3 to do it for me --- especially since the starting procedure takes a while and the application starts on the wrong workspace anyways when it autostarts while I change desktops. Spotify is not installed currently and throws an error each time, so that is also not very useful. An option for this to make a return might be as automatically starting systemd services, which quickly switch to the correct workspace when the application actually starts up -- but it is probably not worth the hassle. Lastly, this let's me get rid of a script in the i3 configuration directory, which did not really belong there anyways with the XDG distinction of 'configuration' and 'data'.
201 lines
6.7 KiB
Text
201 lines
6.7 KiB
Text
# 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 https://i3wm.org/docs/userguide.html for a complete reference!
|
||
|
||
set $mod Mod4
|
||
set $modemod Mod1
|
||
set $font "pango:Iosevka 8"
|
||
|
||
# Font for window titles. Will also be used by the bar unless a different font
|
||
# is used in the bar {} block below.
|
||
#font pango:monospace 8
|
||
font $font
|
||
|
||
workspace_auto_back_and_forth yes
|
||
|
||
# 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
|
||
|
||
# kill focused window
|
||
bindsym $mod+Shift+c kill
|
||
|
||
# change focus
|
||
bindsym $mod+h focus left
|
||
bindsym $mod+j focus down
|
||
bindsym $mod+k focus up
|
||
bindsym $mod+l focus right
|
||
|
||
# alternatively, you can use the cursor keys:
|
||
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+h move left
|
||
bindsym $mod+Shift+j move down
|
||
bindsym $mod+Shift+k move up
|
||
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+Up move up
|
||
bindsym $mod+Shift+Right move right
|
||
|
||
# split in horizontal orientation
|
||
bindsym $mod+Shift+s split v
|
||
|
||
# split in vertical orientation
|
||
bindsym $mod+s split h
|
||
|
||
# enter fullscreen mode for the focused container
|
||
bindsym $mod+f fullscreen toggle
|
||
|
||
# change container layout (stacked, tabbed, toggle split)
|
||
bindsym $mod+Shift+w layout stacking
|
||
bindsym $mod+w layout tabbed
|
||
bindsym $mod+e layout toggle split
|
||
|
||
# toggle tiling / floating
|
||
bindsym $mod+Shift+v floating toggle
|
||
|
||
# change focus between tiling / floating windows
|
||
bindsym $mod+v focus mode_toggle
|
||
|
||
# focus the parent/child container
|
||
bindsym $mod+Shift+a focus parent
|
||
bindsym $mod+a focus child
|
||
|
||
# make a (floating) window stick to all workspaces
|
||
bindsym $mod+ctrl+v sticky toggle
|
||
|
||
# set up scratch pad for todo and 'drop-down' terminal
|
||
# call scratchpads to current workspace -- scratchpads started on i3 starting (see end of file)
|
||
bindsym $mod+t [class="scratchpad" title="dropdown-todo"] scratchpad show
|
||
bindsym $mod+Shift+Return [class="scratchpad" title="dropdown-terminal"] scratchpad show
|
||
|
||
# GAP MANAGEMENT
|
||
# disable titles and borders, necessary for i3gaps to work apparently
|
||
for_window [class="^.*"] border pixel 0
|
||
# by default set no gaps when multiple windows are on the workspace
|
||
gaps inner 0
|
||
gaps outer 0
|
||
# increase/decrease inner gapping
|
||
bindsym $mod+shift+g gaps inner current plus 10
|
||
bindsym $mod+g gaps inner current minus 10
|
||
# increase/decrease border sizes
|
||
bindsym $mod+b border toggle 2
|
||
|
||
# Define names for default workspaces for which we configure key bindings later on.
|
||
# We use variables to avoid repeating the names in multiple places.
|
||
set $ws1 "1"
|
||
set $ws2 "2"
|
||
set $ws3 "3"
|
||
set $ws4 "4"
|
||
set $ws5 "5"
|
||
set $ws6 "6"
|
||
set $ws7 "7"
|
||
set $ws8 "8"
|
||
set $ws9 "9"
|
||
set $ws10 "10"
|
||
|
||
# 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 $ws6
|
||
bindsym $mod+7 workspace $ws7
|
||
bindsym $mod+8 workspace $ws8
|
||
bindsym $mod+9 workspace $ws9
|
||
bindsym $mod+0 workspace $ws10
|
||
|
||
# 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 $ws6
|
||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||
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 $ws10
|
||
|
||
|
||
# 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 Shift+h resize shrink width 30 px or 30 ppt
|
||
bindsym j resize grow height 10 px or 10 ppt
|
||
bindsym Shift+j resize grow height 30 px or 30 ppt
|
||
bindsym k resize shrink height 10 px or 10 ppt
|
||
bindsym Shift+k resize shrink height 30 px or 30 ppt
|
||
bindsym l resize grow width 10 px or 10 ppt
|
||
bindsym Shift+l resize grow width 30 px or 30 ppt
|
||
|
||
# same bindings, but for the arrow keys
|
||
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 or $mod+r
|
||
bindsym Return mode "default"
|
||
bindsym Escape mode "default"
|
||
bindsym $modemod+r mode "default"
|
||
|
||
}
|
||
|
||
bindsym $modemod+r mode "resize"
|
||
|
||
# reload the configuration file
|
||
bindsym $mod+F12 reload
|
||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||
bindsym $mod+Shift+F12 restart
|
||
|
||
# set a pretty wallpaper
|
||
exec_always --no-startup-id feh --bg-scale ~/pictures/wall.jpg
|
||
|
||
# launch polybar (script ensures only 1 instance existing at a time)
|
||
exec_always --no-startup-id polybar-launch simple-top
|
||
|
||
# default workspaces for most used apps
|
||
# assign [class="^qutebrowser$"] → number 1
|
||
# spotify needs for_window, see https://i3wm.org/docs/userguide.html#assign_workspace
|
||
assign [class="^spotify$"] → 10
|
||
assign [class="^Spotify$"] → 10
|
||
#fix for spotify not moving to workspace 10
|
||
for_window [class="^spotify$"] move to workspace 10
|
||
|
||
# windows with class floating will automatically float
|
||
# windows with class scratchpad will automatically float and be sent to the scratchpad
|
||
for_window [class="floating"] floating enable
|
||
for_window [class="scratchpad"] floating enable
|
||
for_window [class="scratchpad"] move scratchpad
|