Skip to content

Instantly share code, notes, and snippets.

@techno-tanoC
Created September 23, 2021 08:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save techno-tanoC/4a18b8693debad9dbb49dede2122de42 to your computer and use it in GitHub Desktop.
Save techno-tanoC/4a18b8693debad9dbb49dede2122de42 to your computer and use it in GitHub Desktop.
regolith linux i3 configuration
###############################################################################
# i3-gaps config file for the Regolith Desktop Environment
#
# Please see http://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 <i3 variable name> <Xresources key> <default value>
#
# 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/howtos/override-xres/
#
###############################################################################
#
# This file uses a machine-parsable format for comments. The schema is:
# ## <Category> // <Action> // <Keybinding> ##
# Learn more at https://github.com/regolith-linux/remontoire
#
###############################################################################
###############################################################################
# Key Mappings
###############################################################################
# Meta Key - Alt key is Mod1, and Windows key is Mod4
set_from_resource $mod i3-wm.mod Mod4
set_from_resource $alt i3-wm.alt Mod1
set_from_resource $i3-wm.binding. i3-wm.binding.
###############################################################################
# Workspace Names
# These are the labels which define each i3 workspace.
###############################################################################
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"
###############################################################################
# Workspace Keys
# These are the keys which will be used while binding workspace switching
###############################################################################
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
###############################################################################
# Launcher dialogs
###############################################################################
## Launch // Terminal // <> Enter ##
set_from_resource $i3-wm.binding.terminal i3-wm.binding.terminal Return
bindsym $mod+$i3-wm.binding.terminal exec /usr/bin/x-terminal-emulator
## Launch // Browser // <><Shift> Enter ##
set_from_resource $i3-wm.binding.browser i3-wm.binding.browser Shift+Return
bindsym $mod+$i3-wm.binding.browser exec gtk-launch $(xdg-settings get default-web-browser)
set_from_resource $rofiTheme rofi.theme /etc/regolith/styles/lascaille/rofi.rasi
## Launch // Application // <> Space ##
set_from_resource $i3-wm.binding.launcher.app i3-wm.binding.launcher.app space
set_from_resource $i3-wm.program.launcher.app i3-wm.program.launcher.app rofi -show drun -theme $rofiTheme
bindsym $mod+$i3-wm.binding.launcher.app exec $i3-wm.program.launcher.app
## Launch // Command // <><Shift> Space ##
set_from_resource $i3-wm.binding.launcher.cmd i3-wm.binding.launcher.cmd Shift+space
set_from_resource $i3-wm.program.launcher.cmd i3-wm.program.launcher.cmd rofi -show run -theme $rofiTheme
bindsym $mod+$i3-wm.binding.launcher.cmd exec $i3-wm.program.launcher.cmd
## Navigate // Window by Name // <><Ctrl> Space ##
set_from_resource $i3-wm.binding.launcher.window i3-wm.binding.launcher.window Ctrl+space
set_from_resource $i3-wm.program.launcher.window i3-wm.program.launcher.window rofi -show window -theme $rofiTheme
bindsym $mod+$i3-wm.binding.launcher.window exec $i3-wm.program.launcher.window
## Launch // This Dialog // <><Shift> ? ##
set_from_resource $i3-wm.binding.help i3-wm.binding.help Shift+question
set_from_resource $i3-wm.program.help i3-wm.program.help /usr/bin/remontoire-toggle
bindsym $mod+$i3-wm.binding.help exec --no-startup-id $i3-wm.program.help
## Launch // File Search // <><Alt> Space ##
set_from_resource $i3-wm.binding.file_search i3-wm.binding.file_search Mod1+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+$i3-wm.binding.file_search exec $i3-wm.program.file_search
## Launch // Look Selector // <><Alt> l ##
set_from_resource $i3-wm.binding.look_selector i3-wm.binding.look_selector Mod1+l
set_from_resource $i3-wm.program.look_selector i3-wm.program.look_selector rofi -show look -modi look:/usr/share/rofi/modi/look-selector.sh
bindsym $mod+$i3-wm.binding.look_selector exec $i3-wm.program.look_selector
###############################################################################
# Window and Workspace Navigation
###############################################################################
## Navigate // Relative Parent // <> a ##/
set_from_resource $i3-wm.binding.focus_parent i3-wm.binding.focus_parent a
bindsym $mod+$i3-wm.binding.focus_parent focus parent
## Navigate // Relative Child // <> z ##/
set_from_resource $i3-wm.binding.focus_child i3-wm.binding.focus_child z
bindsym $mod+$i3-wm.binding.focus_child 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
## Navigate // Relative Window // <> k j h l ##
set_from_resource $i3-wm.binding.left i3-wm.binding.left h
set_from_resource $i3-wm.binding.right i3-wm.binding.right l
set_from_resource $i3-wm.binding.up i3-wm.binding.up k
set_from_resource $i3-wm.binding.down i3-wm.binding.down j
bindsym $mod+$i3-wm.binding.left focus left
bindsym $mod+$i3-wm.binding.down focus down
bindsym $mod+$i3-wm.binding.up focus up
bindsym $mod+$i3-wm.binding.right focus right
## 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 // <><Ctrl> 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 ##
set_from_resource $i3-wm.binding.ws_next i3-wm.binding.ws_next Tab
bindsym $mod+$i3-wm.binding.ws_next workspace next
## Navigate // Next Workspace // <><Alt> → ##
set_from_resource $i3-wm.binding.ws_next2 i3-wm.binding.ws_next2 Mod1+Right
bindsym $mod+$i3-wm.binding.ws_next2 workspace next
## Navigate // Next Workspace on Output // <><Ctrl> Tab ##
set_from_resource $i3-wm.binding.ws_next_on_output i3-wm.binding.ws_next_on_output Ctrl+Tab
bindsym $mod+$i3-wm.binding.ws_next_on_output workspace next_on_output
## Navigate // Next Workspace on Output // <><Ctrl> l ##
set_from_resource $i3-wm.binding.ws_next_on_output2 i3-wm.binding.ws_next_on_output2 Ctrl+l
bindsym $mod+$i3-wm.binding.ws_next_on_output2 workspace next_on_output
## Navigate // Previous Workspace // <><Shift> Tab ##
set_from_resource $i3-wm.binding.ws_prev i3-wm.binding.ws_prev Shift+Tab
bindsym $mod+$i3-wm.binding.ws_prev workspace prev
## Navigate // Previous Workspace // <><Alt> ← ##
set_from_resource $i3-wm.binding.ws_prev2 i3-wm.binding.ws_prev2 Mod1+Left
bindsym $mod+$i3-wm.binding.ws_prev2 workspace prev
## Navigate // Previous Workspace on Output // <><Ctrl><Shift> Tab ##
set_from_resource $i3-wm.binding.ws_prev_on_output i3-wm.binding.ws_prev_on_output Ctrl+Shift+Tab
bindsym $mod+$i3-wm.binding.ws_prev_on_output workspace prev_on_output
## Navigate // Previous Workspace on Output // <><Ctrl> h ##
set_from_resource $i3-wm.binding.ws_prev_on_output2 i3-wm.binding.ws_prev_on_output2 Ctrl+h
bindsym $mod+$i3-wm.binding.ws_prev_on_output2 workspace prev_on_output
## Navigate // Next Free Workspace // <> ` ##
set_from_resource $i3-wm.binding.next_free i3-wm.binding.next_free grave
bindsym $mod+$i3-wm.binding.next_free exec --no-startup-id /usr/bin/i3-next-workspace
## Navigate // Scratchpad // <><Ctrl> a ##
set_from_resource $i3-wm.binding.scratchpad i3-wm.binding.scratchpad Ctrl+a
bindsym $mod+$i3-wm.binding.scratchpad scratchpad show
###############################################################################
# Window and Workspace Configuration
###############################################################################
## Modify // Window Position // <><Shift> ↑ ↓ ← → ##
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
## Modify // Window Position // <><Shift> k j h l ##
set_from_resource $i3-wm.binding.move_left i3-wm.binding.move_left Shift+h
set_from_resource $i3-wm.binding.move_right i3-wm.binding.move_right Shift+l
set_from_resource $i3-wm.binding.move_up i3-wm.binding.move_up Shift+k
set_from_resource $i3-wm.binding.move_down i3-wm.binding.move_down Shift+j
bindsym $mod+$i3-wm.binding.move_left move left
bindsym $mod+$i3-wm.binding.move_down move down
bindsym $mod+$i3-wm.binding.move_up move up
bindsym $mod+$i3-wm.binding.move_right move right
## Modify // Containing Workspace // <><Ctrl><Shift> ↑ ↓ ← → ##
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
## Modify // Containing Workspace // <><Ctrl><Shift> k j h l ##
set_from_resource $i3-wm.binding.take_left i3-wm.binding.take_left Ctrl+Shift+h
set_from_resource $i3-wm.binding.take_right i3-wm.binding.take_right Ctrl+Shift+l
set_from_resource $i3-wm.binding.take_up i3-wm.binding.take_up Ctrl+Shift+k
set_from_resource $i3-wm.binding.take_down i3-wm.binding.take_down Ctrl+Shift+j
bindsym $mod+$i3-wm.binding.take_left move workspace to output left
bindsym $mod+$i3-wm.binding.take_down move workspace to output down
bindsym $mod+$i3-wm.binding.take_up move workspace to output up
bindsym $mod+$i3-wm.binding.take_right move workspace to output right
## Modify // Vertical Window Orientation // <> v ##
set_from_resource $i3-wm.binding.split_v i3-wm.binding.split_v v
bindsym $mod+$i3-wm.binding.split_v split vertical
## Modify // Horizontal Window Orientation // <> g ##
set_from_resource $i3-wm.binding.split_h i3-wm.binding.split_h g
bindsym $mod+$i3-wm.binding.split_h split horizontal
## Modify // Toggle Window Orientation // <> Backspace ##
set_from_resource $i3-wm.binding.orientation_toggle i3-wm.binding.orientation_toggle BackSpace
bindsym $mod+$i3-wm.binding.orientation_toggle split toggle
## Modify // Window Fullscreen Toggle // <> f ##
set_from_resource $i3-wm.binding.fullscreen_toggle i3-wm.binding.fullscreen_toggle f
bindsym $mod+$i3-wm.binding.fullscreen_toggle fullscreen toggle
## Modify // Window Floating Toggle // <><Shift> f ##
set_from_resource $i3-wm.binding.float_toggle i3-wm.binding.float_toggle Shift+f
bindsym $mod+Shift+$i3-wm.binding.float_toggle floating toggle
## Modify // Move to Scratchpad // <><Ctrl> m ##
set_from_resource $i3-wm.binding.move_scratchpad i3-wm.binding.move_scratchpad Ctrl+m
bindsym $mod+$i3-wm.binding.move_scratchpad move to scratchpad
## Modify // Tile/Float Focus Toggle // <><Shift> t ##
set_from_resource $i3-wm.binding.focus_toggle i3-wm.binding.focus_toggle Shift+t
bindsym $mod+$i3-wm.binding.focus_toggle focus mode_toggle
## Modify // Window Layout Mode // <> t ##
set_from_resource $i3-wm.binding.layout_mode i3-wm.binding.layout_mode t
bindsym $mod+$i3-wm.binding.layout_mode layout toggle tabbed splith splitv
## Modify // Move Window to Workspace 1 - 10 // <><Shift> 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// <><Ctrl><Shift> 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
## Modify // Move Window to Next Free Workspace // <><Shift> ` ##
set_from_resource $i3-wm.binding.move_next_free i3-wm.binding.move_next_free Shift+grave
bindsym $mod+$i3-wm.binding.move_next_free exec --no-startup-id /usr/bin/i3-next-workspace --move-window
# move focused container to workspace, move to workspace
## Modify // Carry Window to Workspace 1 - 10// <><Alt> 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 // <><Alt><Ctrl> 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
## Modify // Carry Window to Next Free Workspace // <><Alt> ` ##
set_from_resource $i3-wm.binding.take_next_free i3-wm.binding.take_next_free Mod1+grave
bindsym $mod+$i3-wm.binding.take_next_free exec --no-startup-id /usr/bin/i3-next-workspace --move-window-and-follow
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# 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
# Set the default layout mode
set_from_resource $i3-wm.workspace.layout i3-wm.workspace.layout default
workspace_layout $i3-wm.workspace.layout
###############################################################################
# Session Management
###############################################################################
## Session // Exit App // <><Shift> q ##
set_from_resource $i3-wm.binding.exit_app i3-wm.binding.exit_app Shift+q
bindsym $mod+$i3-wm.binding.exit_app [con_id="__focused__"] kill
## Session // Terminate App // <><Alt> q ##
set_from_resource $i3-wm.binding.kill_app i3-wm.binding.kill_app Mod1+q
bindsym $mod+$i3-wm.binding.kill_app [con_id="__focused__"] exec --no-startup-id kill -9 $(xdotool getwindowfocus getwindowpid)
## Session // Reload i3 Config // <><Shift> c ##
set_from_resource $i3-wm.binding.reload i3-wm.binding.reload Shift+c
bindsym $mod+$i3-wm.binding.reload reload
## Session // Refresh Session // <><Shift> r ##
set_from_resource $i3-wm.binding.refresh i3-wm.binding.refresh Shift+r
set_from_resource $i3-wm.program.refresh_ui i3-wm.program.refresh_ui /usr/bin/regolith-look refresh
bindsym $mod+$i3-wm.binding.refresh exec --no-startup-id $i3-wm.program.refresh_ui
## Session // Restart i3 // <><Ctrl> r ##
set_from_resource $i3-wm.binding.restart i3-wm.binding.restart Ctrl+r
bindsym $mod+$i3-wm.binding.restart restart
## Session // Logout // <><Shift> e ##
set_from_resource $i3-wm.binding.logout i3-wm.binding.logout Shift+e
set_from_resource $i3-wm.program.logout i3-wm.program.logout /usr/bin/gnome-session-quit --logout
bindsym $mod+$i3-wm.binding.logout exec $i3-wm.program.logout
## Session // Reboot // <><Shift> b ##
set_from_resource $i3-wm.binding.reboot i3-wm.binding.reboot Shift+b
set_from_resource $i3-wm.program.reboot i3-wm.program.reboot /usr/bin/gnome-session-quit --reboot
bindsym $mod+$i3-wm.binding.reboot exec $i3-wm.program.reboot
## Session // Power Down // <><Shift> p ##
set_from_resource $i3-wm.binding.shutdown i3-wm.binding.shutdown Shift+p
set_from_resource $i3-wm.program.shutdown i3-wm.program.shutdown /usr/bin/gnome-session-quit --power-off
bindsym $mod+$i3-wm.binding.shutdown exec $i3-wm.program.shutdown
## Session // Lock Screen // <> Escape ##
set_from_resource $i3-wm.binding.lock i3-wm.binding.lock 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+$i3-wm.binding.lock exec $i3-wm.program.lock
## Session // Sleep // <><Shift> s ##
set_from_resource $i3-wm.binding.sleep i3-wm.binding.sleep Shift+s
set_from_resource $i3-wm.program.sleep i3-wm.program.sleep systemctl suspend
bindsym $mod+$i3-wm.binding.sleep exec $i3-wm.program.sleep
###############################################################################
# System Management
###############################################################################
## Modify // Settings // <> c ##
set_from_resource $i3-wm.binding.settings i3-wm.binding.settings c
set_from_resource $i3-wm.program.settings i3-wm.program.settings gnome-control-center --class=floating_window
bindsym $mod+$i3-wm.binding.settings exec $i3-wm.program.settings
## Modify // Display Settings // <> d ##
set_from_resource $i3-wm.binding.display i3-wm.binding.display d
set_from_resource $i3-wm.program.display i3-wm.program.display gnome-control-center --class=floating_window display
bindsym $mod+$i3-wm.binding.display exec $i3-wm.program.display
## Modify // Wifi Settings // <> w ##
set_from_resource $i3-wm.binding.wifi i3-wm.binding.wifi w
set_from_resource $i3-wm.program.wifi i3-wm.program.wifi gnome-control-center --class=floating_window wifi
bindsym $mod+$i3-wm.binding.wifi exec $i3-wm.program.wifi
## Modify // Bluetooth Settings // <> b ##
set_from_resource $i3-wm.binding.bluetooth i3-wm.binding.bluetooth b
set_from_resource $i3-wm.program.bluetooth i3-wm.program.bluetooth gnome-control-center --class=floating_window bluetooth
bindsym $mod+$i3-wm.binding.bluetooth exec $i3-wm.program.bluetooth
## Modify // Sound Settings // <> s ##
set_from_resource $i3-wm.binding.sound i3-wm.binding.sound s
set_from_resource $i3-wm.program.sound i3-wm.program.sound gnome-control-center --class=floating_window sound
bindsym $mod+$i3-wm.binding.sound exec $i3-wm.program.sound
## Launch // File Browser // <><Shift> n ##
set_from_resource $i3-wm.binding.files i3-wm.binding.files Shift+n
set_from_resource $i3-wm.program.files i3-wm.program.files /usr/bin/nautilus --new-window
bindsym $mod+$i3-wm.binding.files exec $i3-wm.program.files
## Launch // Notification Viewer // <> n ##
set_from_resource $i3-wm.binding.notification_ui i3-wm.binding.notification_ui n
set_from_resource $i3-wm.program.notification_ui i3-wm.program.notification_ui /usr/bin/rofication-gui
bindsym $mod+$i3-wm.binding.notification_ui exec $i3-wm.program.notification_ui
###############################################################################
# Workspace Management
###############################################################################
# i3-snapshot for load/save current layout
## Modify // Save Window Layout // <> , ##
set_from_resource $i3-wm.binding.save_layout i3-wm.binding.save_layout comma
bindsym $mod+$i3-wm.binding.save_layout exec /usr/bin/i3-snapshot -o > /tmp/i3-snapshot
## Modify // Load Window Layout // <> . ##
set_from_resource $i3-wm.binding.load_layout i3-wm.binding.load_layout period
bindsym $mod+$i3-wm.binding.load_layout exec /usr/bin/i3-snapshot -c < /tmp/i3-snapshot
# Toggle bar visibility
## Modify // Toggle Bar // <> i ##
set_from_resource $i3-wm.binding.bar_toggle i3-wm.binding.bar_toggle i
bindsym $mod+$i3-wm.binding.bar_toggle 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
###############################################################################
set_from_resource $i3-wm.binding.inc_gaps i3-wm.binding.inc_gaps plus
set_from_resource $i3-wm.binding.dec_gaps i3-wm.binding.dec_gaps minus
set_from_resource $i3-wm.binding.inc_gaps_big i3-wm.binding.inc_gaps_big Shift+plus
set_from_resource $i3-wm.binding.dec_gaps_big i3-wm.binding.dec_gaps_big Shift+minus
## Resize // Enter Resize Mode // <> r ##
mode "Resize Mode" {
# These bindings trigger as soon as you enter the resize mode
## 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
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
## Resize // Resize Window // k j h l ##
bindsym $i3-wm.binding.left resize shrink width 6 px or 6 ppt
bindsym $i3-wm.binding.up resize grow height 6 px or 6 ppt
bindsym $i3-wm.binding.down resize shrink height 6 px or 6 ppt
bindsym $i3-wm.binding.right resize grow width 6 px or 6 ppt
bindsym $i3-wm.binding.move_left resize shrink width 12 px or 12 ppt
bindsym $i3-wm.binding.move_up resize grow height 12 px or 12 ppt
bindsym $i3-wm.binding.move_down resize shrink height 12 px or 12 ppt
bindsym $i3-wm.binding.move_right resize grow width 12 px or 12 ppt
## Resize // Window Gaps // + - ##
bindsym $i3-wm.binding.dec_gaps gaps inner current minus 6
bindsym $i3-wm.binding.inc_gaps gaps inner current plus 6
bindsym $i3-wm.binding.dec_gaps_big gaps inner current minus 12
bindsym $i3-wm.binding.inc_gaps_big 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"
###############################################################################
# i3 Appearance and Behavior
###############################################################################
# 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 primary
set_from_resource $i3-wm.bar.stripworkspacenumbers i3-wm.bar.stripworkspacenumbers yes
set_from_resource $i3-wm.bar.mode i3-wm.bar.mode dock
# 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
mode $i3-wm.bar.mode
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_always --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
# Load nm-applet to provide auth dialogs for network access
set_from_resource $i3-wm.program.nm-applet i3-wm.program.nm-applet /usr/bin/nm-applet
exec --no-startup-id $i3-wm.program.nm-applet
# 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/howtos/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment