diff --git a/.config/i3/config b/.config/i3/config index ee0c27a..e6bf230 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,156 +1,570 @@ -# This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. +############################################################################### +# i3-gaps config file for the Regolith Desktop Environment # -# Should you change your keyboard layout some time, delete -# this file and re-run i3-config-wizard(1). +# Please see http://i3wm.org/docs/userguide.html for a complete reference! # - -# i3 config file (v4) +############################################################################### # -# Please see https://i3wm.org/docs/userguide.html for a complete reference! +# In this config file many values are taken from Xresources with the directive +# set_from_resource: +# +# set_from_resource +# +# This configuration file utilizes Xresource variables to change configuration +# without having to make a copy of this config file. +# The benefit to not copying this file is easier upgrades in the future. +# To update a value in this config without making a copy, update the Xresource +# value in the file ~/.config/regolith/Xresources. +# +# For example, to change the bar position to the top of the screen this is the +# i3 config entry in this file: +# set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom +# +# So add this line to ~/.config/regolith/Xresources to change it's value: +# i3-wm.bar.position: top +# +# Reload i3 after making Xresource changes. Learn more at +# https://regolith-linux.org/docs/howto/override-xres/ +# +############################################################################### +# +# This file uses a machine-parsable format for comments. The schema is: +# ## // // ## +# Learn more at https://github.com/regolith-linux/remontoire +# +############################################################################### -set $mod Mod4 +############################################################################### +# Meta Key Mappings +# Alt key is Mod1, and Windows key is Mod4 +############################################################################### -# 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 +set_from_resource $mod i3-wm.mod Mod4 +set_from_resource $alt i3-wm.alt Mod1 -# 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 +############################################################################### +# Workspace Names +# These are the labels which define each i3 workspace. +############################################################################### -# 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. +set_from_resource $ws1 i3-wm.workspace.01.name "1" +set_from_resource $ws2 i3-wm.workspace.02.name "2" +set_from_resource $ws3 i3-wm.workspace.03.name "3" +set_from_resource $ws4 i3-wm.workspace.04.name "4" +set_from_resource $ws5 i3-wm.workspace.05.name "5" +set_from_resource $ws6 i3-wm.workspace.06.name "6" +set_from_resource $ws7 i3-wm.workspace.07.name "7" +set_from_resource $ws8 i3-wm.workspace.08.name "8" +set_from_resource $ws9 i3-wm.workspace.09.name "9" +set_from_resource $ws10 i3-wm.workspace.10.name "10" +set_from_resource $ws11 i3-wm.workspace.11.name "11" +set_from_resource $ws12 i3-wm.workspace.12.name "12" +set_from_resource $ws13 i3-wm.workspace.13.name "13" +set_from_resource $ws14 i3-wm.workspace.14.name "14" +set_from_resource $ws15 i3-wm.workspace.15.name "15" +set_from_resource $ws16 i3-wm.workspace.16.name "16" +set_from_resource $ws17 i3-wm.workspace.17.name "17" +set_from_resource $ws18 i3-wm.workspace.18.name "18" +set_from_resource $ws19 i3-wm.workspace.19.name "19" -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod +############################################################################### +# Workspace Keys +# These are the keys which will be used while binding workspace switching +############################################################################### -# start a terminal -bindsym $mod+Return exec gnome-terminal +set_from_resource $ws1_key i3-wm.workspace.01.key 1 +set_from_resource $ws2_key i3-wm.workspace.02.key 2 +set_from_resource $ws3_key i3-wm.workspace.03.key 3 +set_from_resource $ws4_key i3-wm.workspace.04.key 4 +set_from_resource $ws5_key i3-wm.workspace.05.key 5 +set_from_resource $ws6_key i3-wm.workspace.06.key 6 +set_from_resource $ws7_key i3-wm.workspace.07.key 7 +set_from_resource $ws8_key i3-wm.workspace.08.key 8 +set_from_resource $ws9_key i3-wm.workspace.09.key 9 +set_from_resource $ws10_key i3-wm.workspace.10.key 0 -# kill focused window -bindsym $mod+Shift+A kill +############################################################################### +# Launcher dialogs +############################################################################### -# 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 +## Launch // Terminal // <> Enter ## +bindsym $mod+Return exec /usr/bin/x-terminal-emulator -# change focus -bindsym $mod+j focus left -bindsym $mod+k focus down -bindsym $mod+l focus up -bindsym $mod+m focus right +## Launch // Browser // <> Enter ## +bindsym $mod+Shift+Return exec gtk-launch $(xdg-settings get default-web-browser) -# alternatively, you can use the cursor keys: +set_from_resource $rofiTheme rofi.theme /etc/regolith/styles/lascaille/rofi.rasi + +## Launch // Application // <> Space ## +set_from_resource $i3-wm.program.launcher.app i3-wm.program.launcher.app rofi -show drun -theme $rofiTheme +bindsym $mod+space exec $i3-wm.program.launcher.app + +## Launch // Command // <> Space ## +set_from_resource $i3-wm.program.launcher.cmd i3-wm.program.launcher.cmd rofi -show run -theme $rofiTheme +bindsym $mod+Shift+space exec $i3-wm.program.launcher.cmd + +## Navigate // Window by Name // <> Space ## +set_from_resource $i3-wm.program.launcher.window i3-wm.program.launcher.window rofi -show window -theme $rofiTheme +bindsym $mod+Ctrl+space exec $i3-wm.program.launcher.window + +## Launch // This Dialog // <> ? ## +set_from_resource $i3-wm.program.help i3-wm.program.help /usr/bin/remontoire-toggle +bindsym $mod+Shift+question exec --no-startup-id $i3-wm.program.help + +## Launch // File Search // <> Space ## +set_from_resource $i3-wm.program.file_search i3-wm.program.file_search rofi -show find -modi find:/usr/share/rofi/modi/finder.sh +bindsym $mod+$alt+space exec $i3-wm.program.file_search + +############################################################################### +# Window and Workspace Navigation +############################################################################### + +## Navigate // Relative Parent // <> a ##/ +bindsym $mod+a focus parent + +## Navigate // Relative Child // <> z ##/ +bindsym $mod+z focus child + +## Navigate // Relative Window // <> ↑ ↓ ← → ## 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+j move left -bindsym $mod+Shift+k move down -bindsym $mod+Shift+l move up -bindsym $mod+Shift+M move right +## Navigate // Relative Window // <> k j h l ## +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: +## Navigate // Workspaces 1-10 // <> 0..9 ## +bindsym $mod+$ws1_key workspace number $ws1 +bindsym $mod+$ws2_key workspace number $ws2 +bindsym $mod+$ws3_key workspace number $ws3 +bindsym $mod+$ws4_key workspace number $ws4 +bindsym $mod+$ws5_key workspace number $ws5 +bindsym $mod+$ws6_key workspace number $ws6 +bindsym $mod+$ws7_key workspace number $ws7 +bindsym $mod+$ws8_key workspace number $ws8 +bindsym $mod+$ws9_key workspace number $ws9 +bindsym $mod+$ws10_key workspace number $ws10 +## Navigate // Workspace 11 - 19 // <> 1..9 ## +bindsym $mod+Ctrl+$ws1_key workspace number $ws11 +bindsym $mod+Ctrl+$ws2_key workspace number $ws12 +bindsym $mod+Ctrl+$ws3_key workspace number $ws13 +bindsym $mod+Ctrl+$ws4_key workspace number $ws14 +bindsym $mod+Ctrl+$ws5_key workspace number $ws15 +bindsym $mod+Ctrl+$ws6_key workspace number $ws16 +bindsym $mod+Ctrl+$ws7_key workspace number $ws17 +bindsym $mod+Ctrl+$ws8_key workspace number $ws18 +bindsym $mod+Ctrl+$ws9_key workspace number $ws19 + +## Navigate // Next Workspace // <> Tab ## +bindsym $mod+Tab workspace next + +## Navigate // Next Workspace // <> → ## +bindsym $mod+$alt+Right workspace next + +## Navigate // Previous Workspace // <> Tab ## +bindsym $mod+Shift+Tab workspace prev + +## Navigate // Previous Workspace // <> ← ## +bindsym $mod+$alt+Left workspace prev + +## Navigate // Scratchpad // <> a ## +bindsym $mod+Ctrl+a scratchpad show + +############################################################################### +# Window and Workspace Configuration +############################################################################### + +## Modify // Window Position // <> ↑ ↓ ← → ## 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+h split h +## Modify // Window Position // <> k j h l ## +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right -# split in vertical orientation -bindsym $mod+v split v +## Modify // Containing Workspace // <> ↑ ↓ ← → ## +bindsym $mod+Ctrl+Shift+Left move workspace to output left +bindsym $mod+Ctrl+Shift+Down move workspace to output down +bindsym $mod+Ctrl+Shift+Up move workspace to output up +bindsym $mod+Ctrl+Shift+Right move workspace to output right -# enter fullscreen mode for the focused container +## Modify // Containing Workspace // <> k j h l ## +bindsym $mod+Ctrl+Shift+h move workspace to output left +bindsym $mod+Ctrl+Shift+j move workspace to output down +bindsym $mod+Ctrl+Shift+k move workspace to output up +bindsym $mod+Ctrl+Shift+l move workspace to output right + +## Modify // Vertical Window Orientation // <> v ## +bindsym $mod+v split vertical + +## Modify // Horizontal Window Orientation // <> g ## +bindsym $mod+g split horizontal + +## Modify // Toggle Window Orientation // <> Backspace ## +bindsym $mod+BackSpace split toggle + +## Modify // Window Fullscreen Toggle // <> f ## bindsym $mod+f fullscreen toggle -# change container layout (stacked, tabbed, toggle split) -bindsym $mod+s layout stacking -bindsym $mod+z layout tabbed -bindsym $mod+e layout toggle split +## Modify // Window Floating Toggle // <> f ## +bindsym $mod+Shift+f floating toggle -# toggle tiling / floating -bindsym $mod+Shift+space floating toggle +## Modify // Move to Scratchpad // <> m ## +bindsym $mod+Ctrl+m move to scratchpad -# change focus between tiling / floating windows -bindsym $mod+space focus mode_toggle +## Modify // Tile/Float Focus Toggle // <> t ## +bindsym $mod+Shift+t focus mode_toggle -# focus the parent container -bindsym $mod+q focus parent +## Modify // Window Layout Mode // <> t ## +bindsym $mod+t layout toggle tabbed splith splitv -# focus the child container -#bindsym $mod+d focus child +## Modify // Move Window to Workspace 1 - 10 // <> 0..9 ## +bindsym $mod+Shift+$ws1_key move container to workspace number $ws1 +bindsym $mod+Shift+$ws2_key move container to workspace number $ws2 +bindsym $mod+Shift+$ws3_key move container to workspace number $ws3 +bindsym $mod+Shift+$ws4_key move container to workspace number $ws4 +bindsym $mod+Shift+$ws5_key move container to workspace number $ws5 +bindsym $mod+Shift+$ws6_key move container to workspace number $ws6 +bindsym $mod+Shift+$ws7_key move container to workspace number $ws7 +bindsym $mod+Shift+$ws8_key move container to workspace number $ws8 +bindsym $mod+Shift+$ws9_key move container to workspace number $ws9 +bindsym $mod+Shift+$ws10_key move container to workspace number $ws10 +## Modify // Move Window to Workspace 11 - 19// <> 1..9 ## +bindsym $mod+Shift+Ctrl+$ws1_key move container to workspace number $ws11 +bindsym $mod+Shift+Ctrl+$ws2_key move container to workspace number $ws12 +bindsym $mod+Shift+Ctrl+$ws3_key move container to workspace number $ws13 +bindsym $mod+Shift+Ctrl+$ws4_key move container to workspace number $ws14 +bindsym $mod+Shift+Ctrl+$ws5_key move container to workspace number $ws15 +bindsym $mod+Shift+Ctrl+$ws6_key move container to workspace number $ws16 +bindsym $mod+Shift+Ctrl+$ws7_key move container to workspace number $ws17 +bindsym $mod+Shift+Ctrl+$ws8_key move container to workspace number $ws18 +bindsym $mod+Shift+Ctrl+$ws9_key move container to workspace number $ws19 -# switch to workspace -bindsym $mod+ampersand workspace 1 -bindsym $mod+eacute workspace 2 -bindsym $mod+quotedbl workspace 3 -bindsym $mod+apostrophe workspace 4 -bindsym $mod+parenleft workspace 5 -bindsym $mod+minus workspace 6 -bindsym $mod+egrave workspace 7 -bindsym $mod+underscore workspace 8 -bindsym $mod+ccedilla workspace 9 -bindsym $mod+agrave workspace 10 +# move focused container to workspace, move to workspace +## Modify // Carry Window to Workspace 1 - 10// <> 0..9 ## +bindsym $mod+$alt+$ws1_key move container to workspace number $ws1; workspace number $ws1 +bindsym $mod+$alt+$ws2_key move container to workspace number $ws2; workspace number $ws2 +bindsym $mod+$alt+$ws3_key move container to workspace number $ws3; workspace number $ws3 +bindsym $mod+$alt+$ws4_key move container to workspace number $ws4; workspace number $ws4 +bindsym $mod+$alt+$ws5_key move container to workspace number $ws5; workspace number $ws5 +bindsym $mod+$alt+$ws6_key move container to workspace number $ws6; workspace number $ws6 +bindsym $mod+$alt+$ws7_key move container to workspace number $ws7; workspace number $ws7 +bindsym $mod+$alt+$ws8_key move container to workspace number $ws8; workspace number $ws8 +bindsym $mod+$alt+$ws9_key move container to workspace number $ws9; workspace number $ws9 +bindsym $mod+$alt+$ws10_key move container to workspace number $ws10; workspace number $ws10 +## Modify // Carry Window to Workspace 11 - 19 // <> 1..9 ## +bindsym $mod+$alt+Ctrl+$ws1_key move container to workspace number $ws11; workspace number $ws11 +bindsym $mod+$alt+Ctrl+$ws2_key move container to workspace number $ws12; workspace number $ws12 +bindsym $mod+$alt+Ctrl+$ws3_key move container to workspace number $ws13; workspace number $ws13 +bindsym $mod+$alt+Ctrl+$ws4_key move container to workspace number $ws14; workspace number $ws14 +bindsym $mod+$alt+Ctrl+$ws5_key move container to workspace number $ws15; workspace number $ws15 +bindsym $mod+$alt+Ctrl+$ws6_key move container to workspace number $ws16; workspace number $ws16 +bindsym $mod+$alt+Ctrl+$ws7_key move container to workspace number $ws17; workspace number $ws17 +bindsym $mod+$alt+Ctrl+$ws8_key move container to workspace number $ws18; workspace number $ws18 +bindsym $mod+$alt+Ctrl+$ws9_key move container to workspace number $ws19; workspace number $ws19 -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace 1 -bindsym $mod+Shift+eacute 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+egrave move container to workspace 7 -bindsym $mod+Shift+8 move container to workspace 8 -bindsym $mod+Shift+ccedilla move container to workspace 9 -bindsym $mod+Shift+agrave move container to workspace 10 +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod -# reload the configuration file +# Hiding borders adjacent to the screen edges. +# The "smart" setting hides borders on workspaces with only one window visible. +set_from_resource $i3-wm.hide.edge.borders i3-wm.hide.edge.borders smart +hide_edge_borders $i3-wm.hide.edge.borders + +############################################################################### +# Session Management +############################################################################### + +## Session // Exit App // <> q ## +bindsym $mod+Shift+q [con_id="__focused__"] kill + +## Session // Terminate App // <> q ## +bindsym $mod+$alt+q [con_id="__focused__"] exec --no-startup-id kill -9 $(xdotool getwindowfocus getwindowpid) + +## Session // Reload i3 Config // <> c ## 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" { +## Session // Refresh Session // <> r ## +set_from_resource $i3-wm.program.refresh_ui i3-wm.program.refresh_ui /usr/bin/regolith-look refresh +bindsym $mod+Shift+r exec --no-startup-id $i3-wm.program.refresh_ui + +## Session // Restart i3 // <> r ## +bindsym $mod+Ctrl+r restart + +## Session // Logout // <> e ## +set_from_resource $i3-wm.program.logout i3-wm.program.logout /usr/bin/gnome-session-quit --logout +bindsym $mod+Shift+e exec $i3-wm.program.logout + +## Session // Reboot // <> b ## +set_from_resource $i3-wm.program.reboot i3-wm.program.reboot /usr/bin/gnome-session-quit --reboot +bindsym $mod+Shift+b exec $i3-wm.program.reboot + +## Session // Power Down // <> p ## +set_from_resource $i3-wm.program.shutdown i3-wm.program.shutdown /usr/bin/gnome-session-quit --power-off +bindsym $mod+Shift+p exec $i3-wm.program.shutdown + +## Session // Lock Screen // <> Escape ## +set_from_resource $i3-wm.program.lock i3-wm.program.lock dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock +bindsym $mod+Escape exec $i3-wm.program.lock + +## Session // Sleep // <> s ## +set_from_resource $i3-wm.program.sleep i3-wm.program.sleep systemctl suspend +bindsym $mod+Shift+s exec $i3-wm.program.sleep + +############################################################################### +# System Management +############################################################################### + +## Modify // Settings // <> c ## +set_from_resource $i3-wm.program.settings i3-wm.program.settings gnome-control-center --class=floating_window +bindsym $mod+c exec $i3-wm.program.settings + +## Modify // Display Settings // <> d ## +set_from_resource $i3-wm.program.display i3-wm.program.display gnome-control-center --class=floating_window display +bindsym $mod+d exec $i3-wm.program.display + +## Modify // Wifi Settings // <> w ## +set_from_resource $i3-wm.program.wifi i3-wm.program.wifi gnome-control-center --class=floating_window wifi +bindsym $mod+w exec $i3-wm.program.wifi + +## Modify // Bluetooth Settings // <> b ## +set_from_resource $i3-wm.program.bluetooth i3-wm.program.bluetooth gnome-control-center --class=floating_window bluetooth +bindsym $mod+b exec $i3-wm.program.bluetooth + +## Launch // File Browser // <> n ## +set_from_resource $i3-wm.program.files i3-wm.program.files /usr/bin/nautilus --new-window +bindsym $mod+Shift+n exec $i3-wm.program.files + +## Launch // Notification Viewer // <> n ## +set_from_resource $i3-wm.program.notification_ui i3-wm.program.notification_ui /usr/bin/rofication-gui +bindsym $mod+n exec $i3-wm.program.notification_ui + +############################################################################### +# Workspace Management +############################################################################### + +# i3-snapshot for load/save current layout +## Modify // Save Window Layout // <> , ## +bindsym $mod+comma exec /usr/bin/i3-snapshot -o > /tmp/i3-snapshot +## Modify // Load Window Layout // <> . ## +bindsym $mod+period exec /usr/bin/i3-snapshot -c < /tmp/i3-snapshot + +# Toggle bar visibility +## Modify // Toggle Bar // <> i ## +bindsym $mod+i bar mode toggle + +# Cause Settings app to float above tiled windows +floating_maximum_size -1 x -1 +for_window [class="floating_window"] floating enable + +set_from_resource $i3-wm.workspace.auto_back_and_forth i3-wm.workspace.auto_back_and_forth no +workspace_auto_back_and_forth $i3-wm.workspace.auto_back_and_forth + +############################################################################### +# Window Resize and Gaps +############################################################################### + +## Resize // Enter Resize Mode // <> r ## +mode "Resize Mode" { # 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 j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym m resize grow width 10 px or 10 ppt + ## Resize // Resize Window // ↑ ↓ ← → ## + bindsym Left resize shrink width 6 px or 6 ppt + bindsym Down resize grow height 6 px or 6 ppt + bindsym Up resize shrink height 6 px or 6 ppt + bindsym Right resize grow width 6 px or 6 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 + bindsym Shift+Left resize shrink width 12 px or 12 ppt + bindsym Shift+Down resize grow height 12 px or 12 ppt + bindsym Shift+Up resize shrink height 12 px or 12 ppt + bindsym Shift+Right resize grow width 12 px or 12 ppt - # back to normal: Enter or Escape + ## Resize // Resize Window // k j h l ## + bindsym h resize shrink width 6 px or 6 ppt + bindsym k resize grow height 6 px or 6 ppt + bindsym j resize shrink height 6 px or 6 ppt + bindsym l resize grow width 6 px or 6 ppt + + bindsym Shift+h resize shrink width 12 px or 12 ppt + bindsym Shift+k resize grow height 12 px or 12 ppt + bindsym Shift+j resize shrink height 12 px or 12 ppt + bindsym Shift+l resize grow width 12 px or 12 ppt + + ## Resize // Window Gaps // + - ## + bindsym minus gaps inner current minus 6 + bindsym plus gaps inner current plus 6 + bindsym Shift+minus gaps inner current minus 12 + bindsym Shift+plus gaps inner current plus 12 + + ## Resize // Exit Resize Mode // Escape or Enter ## bindsym Return mode "default" bindsym Escape mode "default" + bindsym $mod+r mode "default" } +bindsym $mod+r mode "Resize Mode" -bindsym $mod+r mode "resize" +############################################################################### +# i3 Appearance and Behavior +############################################################################### -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -bar { - status_command i3status -} +# Disable titlebar +set_from_resource $i3-wm.window.border.size i3-wm.window.border.size 1 +set_from_resource $i3-wm.floatingwindow.border.size i3-wm.floatingwindow.border.size 1 +default_border pixel $i3-wm.window.border.size +default_floating_border pixel $i3-wm.floatingwindow.border.size + +# Specify the distance between windows in pixels. (i3-gaps) +set_from_resource $i3-wm.gaps.inner.size i3-wm.gaps.inner.size 5 +set_from_resource $i3-wm.gaps.outer.size i3-wm.gaps.outer.size 0 +gaps inner $i3-wm.gaps.inner.size +gaps outer $i3-wm.gaps.outer.size + +# Only enable gaps on a workspace when there is at least one container +set_from_resource $i3-wm.gaps.smart i3-wm.gaps.smart on +smart_gaps $i3-wm.gaps.smart + +# Enable popup during fullscreen +set_from_resource $i3-wm.gaps.popup_during_fullscreen i3-wm.gaps.popup_during_fullscreen smart +popup_during_fullscreen $i3-wm.gaps.popup_during_fullscreen + +# window focus follows your mouse movements as the mouse crosses window borders +set_from_resource $i3-wm.gaps.focus_follows_mouse i3-wm.gaps.focus_follows_mouse no +focus_follows_mouse $i3-wm.gaps.focus_follows_mouse + +############################################################################### +# i3 Colors and Fonts +############################################################################### + +# Create variables from Xresources for i3's look. +set_from_resource $focused.color.border i3-wm.client.focused.color.border "#002b36" +set_from_resource $focused.color.background i3-wm.client.focused.color.background "#586e75" +set_from_resource $focused.color.text i3-wm.client.focused.color.text "#fdf6e3" +set_from_resource $focused.color.indicator i3-wm.client.focused.color.indicator "#268bd2" +set_from_resource $focused.color.child_border i3-wm.client.focused.color.child_border + +set_from_resource $focused_inactive.color.border i3-wm.client.focused_inactive.color.border "#002b36" +set_from_resource $focused_inactive.color.background i3-wm.client.focused_inactive.color.background "#073642" +set_from_resource $focused_inactive.color.text i3-wm.client.focused_inactive.color.text "#839496" +set_from_resource $focused_inactive.color.indicator i3-wm.client.focused_inactive.color.indicator "#073642" +set_from_resource $focused_inactive.color.child_border i3-wm.client.focused_inactive.color.child_border + +set_from_resource $unfocused.color.border i3-wm.client.unfocused.color.border "#002b36" +set_from_resource $unfocused.color.background i3-wm.client.unfocused.color.background "#073642" +set_from_resource $unfocused.color.text i3-wm.client.unfocused.color.text "#839496" +set_from_resource $unfocused.color.indicator i3-wm.client.unfocused.color.indicator "#073642" +set_from_resource $unfocused.color.child_border i3-wm.client.unfocused.color.child_border + +set_from_resource $urgent.color.border i3-wm.client.urgent.color.border "#002b36" +set_from_resource $urgent.color.background i3-wm.client.urgent.color.background "#dc322f" +set_from_resource $urgent.color.text i3-wm.client.urgent.color.text "#fdf6e3" +set_from_resource $urgent.color.indicator i3-wm.client.urgent.color.indicator "#002b36" +set_from_resource $urgent.color.child_border i3-wm.client.urgent.color.child_border + + +# Window Border color +# class border background text indicator child_border +client.focused $focused.color.border $focused.color.background $focused.color.text $focused.color.indicator $focused.color.child_border +client.focused_inactive $focused_inactive.color.border $focused_inactive.color.background $focused_inactive.color.text $focused_inactive.color.indicator $focused_inactive.color.child_border +client.unfocused $unfocused.color.border $unfocused.color.background $unfocused.color.text $unfocused.color.indicator $unfocused.color.child_border +client.urgent $urgent.color.border $urgent.color.background $urgent.color.text $urgent.color.indicator $urgent.color.child_border + +# Create variables from Xresources for i3bars's look. +set_from_resource $i3-wm.bar.background.color i3-wm.bar.background.color "#002b36" +set_from_resource $i3-wm.bar.statusline.color i3-wm.bar.statusline.color "#93a1a1" +set_from_resource $i3-wm.bar.separator.color i3-wm.bar.separator.color "#268bd2" + +set_from_resource $i3-wm.bar.workspace.focused.border.color i3-wm.bar.workspace.focused.border.color "#073642" +set_from_resource $i3-wm.bar.workspace.focused.background.color i3-wm.bar.workspace.focused.background.color "#073642" +set_from_resource $i3-wm.bar.workspace.focused.text.color i3-wm.bar.workspace.focused.text.color "#eee8d5" + +set_from_resource $i3-wm.bar.workspace.active.border.color i3-wm.bar.workspace.active.border.color "#073642" +set_from_resource $i3-wm.bar.workspace.active.background.color i3-wm.bar.workspace.active.background.color "#073642" +set_from_resource $i3-wm.bar.workspace.active.text.color i3-wm.bar.workspace.active.text.color "#586e75" + +set_from_resource $i3-wm.bar.workspace.inactive.border.color i3-wm.bar.workspace.inactive.border.color "#002b36" +set_from_resource $i3-wm.bar.workspace.inactive.background.color i3-wm.bar.workspace.inactive.background.color "#002b36" +set_from_resource $i3-wm.bar.workspace.inactive.text.color i3-wm.bar.workspace.inactive.text.color "#586e75" + +set_from_resource $i3-wm.bar.workspace.urgent.border.color i3-wm.bar.workspace.urgent.border.color "#dc322f" +set_from_resource $i3-wm.bar.workspace.urgent.background.color i3-wm.bar.workspace.urgent.background.color "#dc322f" +set_from_resource $i3-wm.bar.workspace.urgent.text.color i3-wm.bar.workspace.urgent.text.color "#fdf6e3" + +# Sets i3 font for dialogs +set_from_resource $i3-wm.font i3-wm.font pango:Source Code Pro Medium 13 +font $i3-wm.font + +############################################################################### +# i3 Bar +############################################################################### + +# set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom +# set_from_resource $i3-wm.bar.font i3-wm.bar.font pango:Source Code Pro Medium 13, Material Design Icons 13 +# set_from_resource $i3-wm.bar.separator i3-wm.bar.separator " " +# set_from_resource $i3-wm.bar.trayoutput i3-wm.bar.trayoutput none +# set_from_resource $i3-wm.bar.stripworkspacenumbers i3-wm.bar.stripworkspacenumbers yes + +# i3xrocks config file. Override this for a custom status bar generator. +# set_from_resource $i3-wm.bar.status_command i3-wm.bar.status_command i3xrocks -u ~/.config/regolith/i3xrocks/conf.d -d /etc/regolith/i3xrocks/conf.d +# +# The bar configuration +# bar { +# position $i3-wm.bar.position +# font $i3-wm.bar.font +# separator_symbol $i3-wm.bar.separator +# status_command $i3-wm.bar.status_command +# tray_output $i3-wm.bar.trayoutput +# strip_workspace_numbers $i3-wm.bar.stripworkspacenumbers +# +# colors { +# background $i3-wm.bar.background.color +# statusline $i3-wm.bar.statusline.color +# separator $i3-wm.bar.separator.color + +# BORDER BACKGROUND TEXT +# focused_workspace $i3-wm.bar.workspace.focused.border.color $i3-wm.bar.workspace.focused.background.color $i3-wm.bar.workspace.focused.text.color +# active_workspace $i3-wm.bar.workspace.active.border.color $i3-wm.bar.workspace.active.background.color $i3-wm.bar.workspace.active.text.color +# inactive_workspace $i3-wm.bar.workspace.inactive.border.color $i3-wm.bar.workspace.inactive.background.color $i3-wm.bar.workspace.inactive.text.color +# urgent_workspace $i3-wm.bar.workspace.urgent.border.color $i3-wm.bar.workspace.urgent.background.color $i3-wm.bar.workspace.urgent.text.color +# } +# } + +############################################################################### +# External programs launched with i3 +############################################################################### + +# Start the installed regolith-compositor +set_from_resource $i3-wm.program.compositor i3-wm.program.compositor /usr/share/regolith-compositor/init +exec --no-startup-id $i3-wm.program.compositor + +# Start Rofication for notifications +set_from_resource $i3-wm.program.notifications i3-wm.program.notifications /usr/bin/rofication-daemon +exec --no-startup-id $i3-wm.program.notifications + +# Launch first time user experience script +set_from_resource $i3-wm.program.ftui i3-wm.program.ftui /usr/bin/regolith-ftue +exec --no-startup-id $i3-wm.program.ftui + +# Hide the mouse pointer if unused for a duration +set_from_resource $i3-wm.program.unclutter i3-wm.program.unclutter /usr/bin/unclutter -b +exec --no-startup-id $i3-wm.program.unclutter + +# User programs from Xresources +# To use, define an Xresource key i3-wm.program.[1-3] with the value of the program to launch. +# See https://regolith-linux.org/docs/howto/override-xres/ for details. +set_from_resource $i3-wm.program.1 i3-wm.program.1 : +exec --no-startup-id $i3-wm.program.1 +set_from_resource $i3-wm.program.2 i3-wm.program.2 : +exec --no-startup-id $i3-wm.program.2 +set_from_resource $i3-wm.program.3 i3-wm.program.3 : +exec --no-startup-id $i3-wm.program.3 + +# Start polybar +exec_always --no-startup-id ~/.config/polybar/launch.sh &