From 1afa3ccc5da8bc8616d927b3e8a19e6b6beafb52 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 18 Feb 2026 08:43:42 +0100 Subject: [PATCH] update i3 --- i3/colorscheme | 41 +++++++++ i3/config | 232 +++++++++++++++++-------------------------------- i3/startup | 26 ++++++ 3 files changed, 145 insertions(+), 154 deletions(-) create mode 100644 i3/colorscheme create mode 100644 i3/startup diff --git a/i3/colorscheme b/i3/colorscheme new file mode 100644 index 0000000..e719059 --- /dev/null +++ b/i3/colorscheme @@ -0,0 +1,41 @@ +# vim: set ft=i3config: + +set_from_resource $color_bg i3wm.background #0E1019 +set_from_resource $color_fg i3wm.foreground #eceef4 + +set_from_resource $color_red i3wm.color1 #F38BA8 +set_from_resource $color_green i3wm.color2 #A6E3A1 +set_from_resource $color_yellow i3wm.color3 #F9E2AF +set_from_resource $color_blue i3wm.color4 #89B4FA +set_from_resource $color_magenta i3wm.color5 #F5C2E7 + +set_from_resource $color_gray0 i3wm.colorGray0 #383a43 +set_from_resource $color_gray1 i3wm.colorGray1 #404754 + +set_from_resource $color_win_focus_fg i3wm.foreground #eceef4 +set_from_resource $color_win_focus_bg i3wm.colorGray1 #1a1c2d +set_from_resource $color_win_unfocus_fg i3wm.foreground #eceef4 +set_from_resource $color_win_unfocus_bg i3wm.colorGray0 #1a1c2d +set_from_resource $color_win_urgent_fg i3wm.foreground #eceef4 +set_from_resource $color_win_urgent_bg i3wm.color1 #cc817f + +set_from_resource $color_border i3wm.colorOverlay0 #1a1c2d + +font pango:IosevkaCustom 12 + +## Colors + +client.background $color_bg + +# class border bground text indicator child_border +client.focused $color_border $color_win_focus_bg $color_win_focus_fg $color_win_focus_bg $color_border +client.focused_inactive $color_border $color_win_unfocus_bg $color_win_unfocus_fg $color_win_unfocus_bg $color_border +client.unfocused $color_border $color_win_unfocus_bg $color_win_unfocus_fg $color_win_unfocus_bg $color_border +client.urgent $color_border $color_win_urgent_bg $color_win_urgent_fg $color_win_urgent_bg $color_border +client.placeholder $color_bg $color_bg $color_fg $color_bg $color_bg + +# No border. I do borders with compositor instead +default_border none + +# but i do want them on floating windows. +default_floating_border normal diff --git a/i3/config b/i3/config index bd9ad6b..311a4cf 100644 --- a/i3/config +++ b/i3/config @@ -2,35 +2,15 @@ # # Please see https://i3wm.org/docs/userguide.html for a complete reference! +# ------------------------- +# Variables +# ------------------------- - -# Variables - -set_from_resource $second_monitor i3wm.second_monitor HDMI-0 - -set_from_resource $color_bg i3wm.background #0E1019 -set_from_resource $color_fg i3wm.foreground #eceef4 - -set_from_resource $color_red i3wm.color1 #F38BA8 -set_from_resource $color_green i3wm.color2 #A6E3A1 -set_from_resource $color_yellow i3wm.color3 #F9E2AF -set_from_resource $color_blue i3wm.color4 #89B4FA -set_from_resource $color_magenta i3wm.color5 #F5C2E7 - -set_from_resource $color_gray0 i3wm.colorGray0 #383a43 -set_from_resource $color_gray1 i3wm.colorGray1 #404754 - -set_from_resource $color_win_focus_fg i3wm.foreground #eceef4 -set_from_resource $color_win_focus_bg i3wm.colorGray1 #1a1c2d -set_from_resource $color_win_unfocus_fg i3wm.foreground #eceef4 -set_from_resource $color_win_unfocus_bg i3wm.colorGray0 #1a1c2d -set_from_resource $color_win_urgent_fg i3wm.foreground #eceef4 -set_from_resource $color_win_urgent_bg i3wm.color1 #cc817f - -set_from_resource $color_border i3wm.colorOverlay0 #1a1c2d +set_from_resource $second_monitor i3wm.second_monitor HDMI-0 set $terminal alacritty set $background_image ~/.local/share/wallpapers/current +set $screenshot_command ~/bin/scrot-clipboard set $mod Mod4 set $super Shift @@ -45,41 +25,29 @@ set $ws7 "7" set $ws8 "8" set $ws9 "9" +# ------------------------- +# Includes +# ------------------------- -## Startup programs +include colorscheme +include startup -# bar -exec --no-startup-id polybar - -# Notifications -exec --no-startup-id dunst - -# compositor -exec --no-startup-id picom - -# Needed for gnome-keyring to start. -exec --no-startup-id dbus-update-activation-environment --all -exec --no-startup-id gnome-keyring-daemon --start --components=secrets - -exec --no-startup-id dex-autostart --autostart --environment i3 - -exec --no-startup-id feh --bg-scale $background_image -#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -c $color_bg --nofork -#exec --no-startup-id xautolock -time 1 -locker ~/.config/i3/blurlock.sh -# exec --no-startup-id xset dpms 300 # Turn of monitors after 5 min -exec --no-startup-id nm-applet -exec --no-startup-id telegram -exec --no-startup-id nextcloud -# exec --no-startup-id firefox -exec --no-startup-id vivaldi - -## Config - -font pango:JetBrainsMono NF Regular 12 +# ------------------------- +# Keybinds +# ------------------------- # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod +# system + +# reload the configuration file +bindsym $mod+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+$super+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+$super+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'" + # start a terminal bindsym $mod+Return exec $terminal @@ -93,6 +61,33 @@ bindsym $mod+p exec "rofi -show run" # lock screen bindsym $mod+$super+f exec "xautolock -locknow" +# take screenshot +bindsym $mod+s exec $screenshot_command + +# Movement + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 + +# move focused container to workspace +bindsym $mod+$super+1 move container to workspace number $ws1 +bindsym $mod+$super+2 move container to workspace number $ws2 +bindsym $mod+$super+3 move container to workspace number $ws3 +bindsym $mod+$super+4 move container to workspace number $ws4 +bindsym $mod+$super+5 move container to workspace number $ws5 +bindsym $mod+$super+6 move container to workspace number $ws6 +bindsym $mod+$super+7 move container to workspace number $ws7 +bindsym $mod+$super+8 move container to workspace number $ws8 +bindsym $mod+$super+9 move container to workspace number $ws9 + # change focus bindsym $mod+h focus left bindsym $mod+j focus down @@ -127,9 +122,9 @@ bindsym $mod+v split v bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split +# bindsym $mod+s layout stacking +# bindsym $mod+w layout tabbed +# bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+$super+space floating toggle @@ -143,65 +138,6 @@ bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child -# Workspace settings - -workspace $ws1 output primary -workspace $ws2 output primary -workspace $ws3 output primary -workspace $ws4 output primary -workspace $ws5 output primary -workspace $ws6 output primary -workspace $ws7 output primary -workspace $ws8 output primary - -#for second screen -workspace $ws9 output $second_monitor gaps inner 0 -#workspace $ws9 output primary - -# switch to workspace -bindsym $mod+1 workspace number $ws1 -bindsym $mod+2 workspace number $ws2 -bindsym $mod+3 workspace number $ws3 -bindsym $mod+4 workspace number $ws4 -bindsym $mod+5 workspace number $ws5 -bindsym $mod+6 workspace number $ws6 -bindsym $mod+7 workspace number $ws7 -bindsym $mod+8 workspace number $ws8 -bindsym $mod+9 workspace number $ws9 - -# move focused container to workspace -bindsym $mod+$super+1 move container to workspace number $ws1 -bindsym $mod+$super+2 move container to workspace number $ws2 -bindsym $mod+$super+3 move container to workspace number $ws3 -bindsym $mod+$super+4 move container to workspace number $ws4 -bindsym $mod+$super+5 move container to workspace number $ws5 -bindsym $mod+$super+6 move container to workspace number $ws6 -bindsym $mod+$super+7 move container to workspace number $ws7 -bindsym $mod+$super+8 move container to workspace number $ws8 -bindsym $mod+$super+9 move container to workspace number $ws9 - -# reload the configuration file -bindsym $mod+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -bindsym $mod+$super+r restart -# exit i3 (logs you out of your X session) -bindsym $mod+$super+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'" - - -# Assignments - -assign [window_role="browser"] $ws2 -assign [class="^Code$"] $ws3 -assign [class="^Telegram"] $ws9 - -for_window [window_role="pop-up"] floating enable -for_window [window_role="bubble"] floating enable -for_window [window_role="task_dialog"] floating enable -for_window [window_role="Preferences"] floating enable -for_window [window_type="dialog"] floating enable -for_window [window_type="menu"] floating enable -for_window [class="nm-connection-editor"] floating enable - # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode @@ -234,46 +170,34 @@ mode "resize" { bindsym $mod+r mode "resize" -# No border. I do borders with compositor instead -default_border none +# ------------------- +# Workspace settings +# ------------------- -# but i do want them on floating windows. -default_floating_border normal +workspace $ws1 output primary +workspace $ws2 output primary +workspace $ws3 output primary +workspace $ws4 output primary +workspace $ws5 output primary +workspace $ws6 output primary +workspace $ws7 output primary +workspace $ws8 output primary -# COLORS +#for second screen +workspace $ws9 output $second_monitor gaps inner 0 +#workspace $ws9 output primary -client.background $color_bg +# Assignments -# class border bground text indicator child_border -client.focused $color_border $color_win_focus_bg $color_win_focus_fg $color_win_focus_bg $color_border -client.focused_inactive $color_border $color_win_unfocus_bg $color_win_unfocus_fg $color_win_unfocus_bg $color_border -client.unfocused $color_border $color_win_unfocus_bg $color_win_unfocus_fg $color_win_unfocus_bg $color_border -client.urgent $color_border $color_win_urgent_bg $color_win_urgent_fg $color_win_urgent_bg $color_border -client.placeholder $color_bg $color_bg $color_fg $color_bg $color_bg +assign [window_role="browser"] $ws2 +assign [class="^Code$"] $ws3 +assign [class="^Telegram"] $ws9 + +for_window [window_role="pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_role="Preferences"] floating enable +for_window [window_type="dialog"] floating enable +for_window [window_type="menu"] floating enable +for_window [class="nm-connection-editor"] floating enable -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -# bar { -# output primary -# status_command i3status -# separator_symbol " │ " -# padding 2 8 2 0 -# tray_padding 4 -# -# font pango:JetBrainsMono NF Regular 12 -# strip_workspace_numbers no -# strip_workspace_name no -# workspace_min_width 32 -# -# colors { -# background $color_bg -# statusline $color_fg -# separator $color_border -# -# focused_workspace $color_blue $color_blue $color_bg -# active_workspace $color_yellow $color_yellow $color_bg -# inactive_workspace $color_bg $color_bg $color_fg -# urgent_workspace $color_red $color_red $color_bg -# binding_mode $color_magenta $color_magenta $color_bg -# } -# } diff --git a/i3/startup b/i3/startup new file mode 100644 index 0000000..10d9e20 --- /dev/null +++ b/i3/startup @@ -0,0 +1,26 @@ +# vim: set ft=i3config: + +# bar +exec --no-startup-id polybar + +# Notifications +exec --no-startup-id dunst + +# compositor +exec --no-startup-id picom + +# Autostart programs +exec --no-startup-id dex-autostart --autostart --environment i3 + +# Needed for gnome-keyring to start. +exec --no-startup-id dbus-update-activation-environment --all +exec --no-startup-id gnome-keyring-daemon --start --components=secrets + +# exec --no-startup-id feh --bg-scale $background_image +#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -c $color_bg --nofork +#exec --no-startup-id xautolock -time 1 -locker ~/.config/i3/blurlock.sh +# exec --no-startup-id xset dpms 300 # Turn of monitors after 5 min +exec --no-startup-id nm-applet +exec --no-startup-id telegram +exec --no-startup-id nextcloud +exec --no-startup-id vivaldi