diff options
author | Timo Wilken | 2022-10-12 23:22:27 +0200 |
---|---|---|
committer | Timo Wilken | 2022-10-12 23:22:27 +0200 |
commit | f278a27180a72d8b90be935094b4512383085c8b (patch) | |
tree | 40a4b1f5a20ae58bf1a821c39a4be264caab08bb /i3.conf |
Initial commit of imported files
Diffstat (limited to 'i3.conf')
-rw-r--r-- | i3.conf | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/i3.conf b/i3.conf new file mode 100644 index 00000000..c054c889 --- /dev/null +++ b/i3.conf @@ -0,0 +1,253 @@ +# +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! +# Use xev to see keycodes for special keys. + +# Appearance and Styling {{{ +set_from_resource $font i3wm.font pango:Fira Sans 10 +set_from_resource $c_fg i3wm.fg #cdd6f4 +set_from_resource $c_bg i3wm.bg #181825 +set_from_resource $c_active i3wm.active #585b70 +set_from_resource $c_inactive i3wm.inactive #b4befe +set_from_resource $c_urgent i3wm.urgent #f9e2af + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font $font + +title_align center +default_border pixel 3 +default_floating_border pixel 3 +hide_edge_borders smart +gaps inner 15 +gaps outer 0 +smart_gaps on + +# class border background text indicator child_border +client.focused $c_active $c_active $c_fg $c_active $c_active +client.focused_inactive $c_bg $c_bg $c_fg $c_bg $c_bg +client.unfocused $c_bg $c_bg $c_inactive $c_bg $c_bg +client.urgent $c_urgent $c_urgent $c_fg $c_urgent $c_urgent +client.placeholder $c_bg $c_bg $c_inactive $c_bg $c_bg +client.background $c_bg +# }}} + +# Basic Configuration {{{ +# use the Super key as $mod +set $mod Mod4 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# using plasma's logout screen instead of i3's +bindsym $mod+shift+e exec --no-startup-id qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1 + +# essential applications +bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+i exec icecat --new-window +bindsym $mod+shift+i exec icecat --new-tab "$(xclip -out)" +bindsym $mod+e exec $EDITOR +bindsym $mod+slash exec dolphin --new-window +bindsym $mod+semicolon exec --no-startup-id nheko +# bindsym $mod+z exec konsole --fullscreen --profile rga-fzf +bindsym $mod+y exec --no-startup-id connect-headphones.sh connect +bindsym $mod+shift+y exec --no-startup-id connect-headphones.sh disconnect + +# kill focused window +bindsym $mod+shift+q kill + +# rofi menus +bindsym $mod+q exec rofi -show combi +bindsym $mod+d exec --no-startup-id krunner +bindsym $mod+p exec passmenu --type-all +bindsym $mod+shift+p exec passmenu --type-pass +bindsym $mod+o exec passmenu --type-otp +bindsym $mod+comma exec rofi-colors.sh +bindsym $mod+shift+Return exec rofi -show ssh +# }}} + +# Basic Movement {{{ +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right +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 +bindsym $mod+shift+Left move left +bindsym $mod+shift+Down move down +bindsym $mod+shift+Up move up +bindsym $mod+shift+Right move right + +bindsym $mod+a focus parent +bindsym $mod+shift+a focus child +# }}} + +# Layout {{{ +bindsym $mod+b split h +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle +bindsym $mod+shift+f floating enable, resize set 1920 1080, move position 0 0 + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+x layout toggle split + +bindsym $mod+shift+space floating toggle +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# scratchpad +bindsym $mod+numbersign scratchpad show +bindsym $mod+shift+numbersign move to scratchpad +bindsym $mod+apostrophe sticky disable, floating disable +bindsym $mod+shift+apostrophe sticky enable, floating enable + +# move workspaces +bindsym $mod+shift+comma move workspace to output left +bindsym $mod+shift+period move workspace to output right +# }}} + +# Default Workspaces {{{ +# switch to workspace +bindsym $mod+Escape workspace back_and_forth +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+parenleft workspace prev +bindsym $mod+parenright workspace next + +# move focused container to workspace +bindsym $mod+shift+Escape move container to workspace back_and_forth +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+parenleft move container to workspace prev +bindsym $mod+shift+parenright move container to workspace next +# }}} + +# Custom Workspaces {{{ +set $ws_terminal 0:>_ +bindsym $mod+grave workspace "$ws_terminal" +bindsym $mod+shift+grave move container to workspace "$ws_terminal" + +set $ws_coding 50:🖊️ +bindsym $mod+c workspace "$ws_coding" +bindsym $mod+shift+c move container to workspace "$ws_coding" + +set $ws_games 60:🎮 +bindsym $mod+g workspace "$ws_games" +bindsym $mod+shift+g move container to workspace "$ws_games" + +set $ws_music 80:🎵 +bindsym $mod+u workspace "$ws_music" +bindsym $mod+shift+u move container to workspace "$ws_music" + +set $ws_messaging 90:💬 +bindsym $mod+m workspace "$ws_messaging" +bindsym $mod+shift+m move container to workspace "$ws_messaging" + +assign [class="^Franz$"] "$ws_messaging" +assign [window_role="^weechat$"] "$ws_messaging" +assign [window_role="^mutt$"] "$ws_messaging" +assign [class="^evolution-initial$"] "$ws_messaging" +assign [class="^kontact$"] "$ws_messaging" + +# NOTE: no_focus will also be ignored for the first window on a workspace as +# there shouldn’t be a reason to not focus the window in this case. This allows +# for better usability in combination with workspace_layout. (From i3 docs) +#no_focus [class="^Franz$"] +#no_focus [window_role="^weechat$"] +#no_focus [window_role="^mutt$"] +#no_focus [class="^evolution-initial$"] + +## PlayOnLinux +for_window [title="PlayOnLinux"] floating enable + +## Plasma/KDE: https://ryanlue.com/posts/2019-06-13-kde-i3 +# Don’t treat Plasma pop-ups as full-sized windows +for_window [class="plasmashell"] floating enable +# Don’t spawn an empty window for the Plasma Desktop +for_window [title="Desktop — Plasma"] move scratchpad +# Don’t let notifications and non-interactive pop-up windows steal focus +#no_focus [class="plasmashell" window_type="on_screen_display"] +# https://github.com/heckelson/i3-and-kde-plasma +# Move notifications to top-right corner. +#for_window [class="plasmashell" window_type="notification"] move up 400, move right 750, no_focus +# Notifications appear in the centre of the screen. According to +# https://old.reddit.com/r/i3wm/comments/bw1yfs/kde_notifications_appearing_in_the_centre_of/, +# setting notifications to appear in the top-left corner gets placement right. +no_focus [class="plasmashell" window_type="notification"] + +for_window [class="^Pyneedle$"] floating enable +for_window [instance="^emacs-initial$"] floating enable +for_window [class="^Spotify$"] move container to workspace "$ws_music" +for_window [class="^Pidgin$"] move container to workspace "$ws_messaging" +# }}} + +# Modes {{{ +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 shift+h resize shrink width 5 px or 5 ppt + bindsym shift+j resize grow height 5 px or 5 ppt + bindsym shift+k resize shrink height 5 px or 5 ppt + bindsym shift+l resize grow width 5 px or 5 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 + + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" +# }}} + +# Autostart Applications {{{ +#exec --no-startup-id /usr/bin/systemctl --no-block --user start display-manager-i3.service #xsession.target +exec --no-startup-id ~/.config/X11/xinitrc +# }}} + +bar { + status_command i3status + #mode hide # only show up when pressing $mod + modifier $mod + position bottom + tray_output primary + # Fitts's law + tray_padding 0 + workspace_min_width 20 px + strip_workspace_numbers yes + binding_mode_indicator yes +} |