config 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. ###############################################################################
  2. # i3-gaps config file for the Regolith Desktop Environment
  3. #
  4. # Please see http://i3wm.org/docs/userguide.html for a complete reference!
  5. #
  6. ###############################################################################
  7. #
  8. # In this config file many values are taken from Xresources with the directive
  9. # set_from_resource:
  10. #
  11. # set_from_resource <i3 variable name> <Xresources key> <default value>
  12. #
  13. # This configuration file utilizes Xresource variables to change configuration
  14. # without having to make a copy of this config file.
  15. # The benefit to not copying this file is easier upgrades in the future.
  16. # To update a value in this config without making a copy, update the Xresource
  17. # value in the file ~/.config/regolith/Xresources.
  18. #
  19. # For example, to change the bar position to the top of the screen this is the
  20. # i3 config entry in this file:
  21. # set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom
  22. #
  23. # So add this line to ~/.config/regolith/Xresources to change it's value:
  24. # i3-wm.bar.position: top
  25. #
  26. # Reload i3 after making Xresource changes. Learn more at
  27. # https://regolith-linux.org/docs/howto/override-xres/
  28. #
  29. ###############################################################################
  30. #
  31. # This file uses a machine-parsable format for comments. The schema is:
  32. # ## <Category> // <Action> // <Keybinding> ##
  33. # Learn more at https://github.com/regolith-linux/remontoire
  34. #
  35. ###############################################################################
  36. ###############################################################################
  37. # Key Mappings
  38. ###############################################################################
  39. # Meta Key - Alt key is Mod1, and Windows key is Mod4
  40. set_from_resource $mod i3-wm.mod Mod4
  41. set_from_resource $alt i3-wm.alt Mod1
  42. set_from_resource $i3-wm.binding. i3-wm.binding.
  43. ###############################################################################
  44. # Workspace Names
  45. # These are the labels which define each i3 workspace.
  46. ###############################################################################
  47. set_from_resource $ws1 i3-wm.workspace.01.name "1"
  48. set_from_resource $ws2 i3-wm.workspace.02.name "2"
  49. set_from_resource $ws3 i3-wm.workspace.03.name "3"
  50. set_from_resource $ws4 i3-wm.workspace.04.name "4"
  51. set_from_resource $ws5 i3-wm.workspace.05.name "5"
  52. set_from_resource $ws6 i3-wm.workspace.06.name "6"
  53. set_from_resource $ws7 i3-wm.workspace.07.name "7"
  54. set_from_resource $ws8 i3-wm.workspace.08.name "8"
  55. set_from_resource $ws9 i3-wm.workspace.09.name "9"
  56. set_from_resource $ws10 i3-wm.workspace.10.name "10"
  57. set_from_resource $ws11 i3-wm.workspace.11.name "11"
  58. set_from_resource $ws12 i3-wm.workspace.12.name "12"
  59. set_from_resource $ws13 i3-wm.workspace.13.name "13"
  60. set_from_resource $ws14 i3-wm.workspace.14.name "14"
  61. set_from_resource $ws15 i3-wm.workspace.15.name "15"
  62. set_from_resource $ws16 i3-wm.workspace.16.name "16"
  63. set_from_resource $ws17 i3-wm.workspace.17.name "17"
  64. set_from_resource $ws18 i3-wm.workspace.18.name "18"
  65. set_from_resource $ws19 i3-wm.workspace.19.name "19"
  66. ###############################################################################
  67. # Workspace Keys
  68. # These are the keys which will be used while binding workspace switching
  69. ###############################################################################
  70. set_from_resource $ws1_key i3-wm.workspace.01.key 1
  71. set_from_resource $ws2_key i3-wm.workspace.02.key 2
  72. set_from_resource $ws3_key i3-wm.workspace.03.key 3
  73. set_from_resource $ws4_key i3-wm.workspace.04.key 4
  74. set_from_resource $ws5_key i3-wm.workspace.05.key 5
  75. set_from_resource $ws6_key i3-wm.workspace.06.key 6
  76. set_from_resource $ws7_key i3-wm.workspace.07.key 7
  77. set_from_resource $ws8_key i3-wm.workspace.08.key 8
  78. set_from_resource $ws9_key i3-wm.workspace.09.key 9
  79. set_from_resource $ws10_key i3-wm.workspace.10.key 0
  80. ###############################################################################
  81. # Launcher dialogs
  82. ###############################################################################
  83. ## Launch // Terminal // <> Enter ##
  84. set_from_resource $i3-wm.binding.terminal i3-wm.binding.terminal Return
  85. bindsym $mod+$i3-wm.binding.terminal exec /usr/bin/x-terminal-emulator
  86. ## Launch // Browser // <><Shift> Enter ##
  87. set_from_resource $i3-wm.binding.browser i3-wm.binding.browser Shift+Return
  88. bindsym $mod+$i3-wm.binding.browser exec gtk-launch $(xdg-settings get default-web-browser)
  89. set_from_resource $rofiTheme rofi.theme /etc/regolith/styles/lascaille/rofi.rasi
  90. ## Launch // Application // <> Space ##
  91. set_from_resource $i3-wm.binding.launcher.app i3-wm.binding.launcher.app space
  92. set_from_resource $i3-wm.program.launcher.app i3-wm.program.launcher.app rofi -show drun -theme $rofiTheme
  93. bindsym $mod+$i3-wm.binding.launcher.app exec $i3-wm.program.launcher.app
  94. ## Launch // Command // <><Shift> Space ##
  95. set_from_resource $i3-wm.binding.launcher.cmd i3-wm.binding.launcher.cmd Shift+space
  96. set_from_resource $i3-wm.program.launcher.cmd i3-wm.program.launcher.cmd rofi -show run -theme $rofiTheme
  97. bindsym $mod+$i3-wm.binding.launcher.cmd exec $i3-wm.program.launcher.cmd
  98. ## Navigate // Window by Name // <><Ctrl> Space ##
  99. set_from_resource $i3-wm.binding.launcher.window i3-wm.binding.launcher.window Ctrl+space
  100. set_from_resource $i3-wm.program.launcher.window i3-wm.program.launcher.window rofi -show window -theme $rofiTheme
  101. bindsym $mod+$i3-wm.binding.launcher.window exec $i3-wm.program.launcher.window
  102. ## Launch // Help ! // <><Shift> ? ##
  103. set_from_resource $i3-wm.binding.help i3-wm.binding.help Shift+question
  104. set_from_resource $i3-wm.program.help i3-wm.program.help /usr/bin/remontoire-toggle
  105. bindsym $mod+$i3-wm.binding.help exec --no-startup-id $i3-wm.program.help
  106. ## Launch // File Search // <><Alt> Space ##
  107. set_from_resource $i3-wm.binding.file_search i3-wm.binding.file_search Mod1+space
  108. set_from_resource $i3-wm.program.file_search i3-wm.program.file_search rofi -show find -modi find:/usr/share/rofi/modi/finder.sh
  109. bindsym $mod+$i3-wm.binding.file_search exec $i3-wm.program.file_search
  110. ## Launch // Look Selector // <><Alt> l ##
  111. set_from_resource $i3-wm.binding.look_selector i3-wm.binding.look_selector Mod1+l
  112. 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
  113. bindsym $mod+$i3-wm.binding.look_selector exec $i3-wm.program.look_selector
  114. ###############################################################################
  115. # Window and Workspace Navigation
  116. ###############################################################################
  117. ## Navigate // Relative Parent // <> PgUp ##/
  118. set_from_resource $i3-wm.binding.focus_parent i3-wm.binding.focus_parent a
  119. bindsym $mod+$i3-wm.binding.focus_parent focus parent
  120. ## Navigate // Relative Child // <> PgDown ##/
  121. set_from_resource $i3-wm.binding.focus_child i3-wm.binding.focus_child z
  122. bindsym $mod+$i3-wm.binding.focus_child focus child
  123. ## Navigate // Relative Window // <> ↑ ↓ ← → ##
  124. bindsym $mod+Left focus left
  125. bindsym $mod+Down focus down
  126. bindsym $mod+Up focus up
  127. bindsym $mod+Right focus right
  128. ## Navigate // Relative Window // <> k j h l ##
  129. set_from_resource $i3-wm.binding.left i3-wm.binding.left h
  130. set_from_resource $i3-wm.binding.right i3-wm.binding.right l
  131. set_from_resource $i3-wm.binding.up i3-wm.binding.up k
  132. set_from_resource $i3-wm.binding.down i3-wm.binding.down j
  133. bindsym $mod+$i3-wm.binding.left focus left
  134. bindsym $mod+$i3-wm.binding.down focus down
  135. bindsym $mod+$i3-wm.binding.up focus up
  136. bindsym $mod+$i3-wm.binding.right focus right
  137. ## Navigate // Workspaces 1-10 // <> 0..9 ##
  138. bindsym $mod+$ws1_key workspace number $ws1
  139. bindsym $mod+$ws2_key workspace number $ws2
  140. bindsym $mod+$ws3_key workspace number $ws3
  141. bindsym $mod+$ws4_key workspace number $ws4
  142. bindsym $mod+$ws5_key workspace number $ws5
  143. bindsym $mod+$ws6_key workspace number $ws6
  144. bindsym $mod+$ws7_key workspace number $ws7
  145. bindsym $mod+$ws8_key workspace number $ws8
  146. bindsym $mod+$ws9_key workspace number $ws9
  147. bindsym $mod+$ws10_key workspace number $ws10
  148. ## Navigate // Workspace 11 - 19 // <><Ctrl> 1..9 ##
  149. bindsym $mod+Ctrl+$ws1_key workspace number $ws11
  150. bindsym $mod+Ctrl+$ws2_key workspace number $ws12
  151. bindsym $mod+Ctrl+$ws3_key workspace number $ws13
  152. bindsym $mod+Ctrl+$ws4_key workspace number $ws14
  153. bindsym $mod+Ctrl+$ws5_key workspace number $ws15
  154. bindsym $mod+Ctrl+$ws6_key workspace number $ws16
  155. bindsym $mod+Ctrl+$ws7_key workspace number $ws17
  156. bindsym $mod+Ctrl+$ws8_key workspace number $ws18
  157. bindsym $mod+Ctrl+$ws9_key workspace number $ws19
  158. ## Navigate // Next Workspace // <> Tab ##
  159. set_from_resource $i3-wm.binding.ws_next i3-wm.binding.ws_next Tab
  160. bindsym $mod+$i3-wm.binding.ws_next workspace next
  161. ## Navigate // Next Workspace // <> <Alt> → ##
  162. set_from_resource $i3-wm.binding.ws_next2 i3-wm.binding.ws_next2 Mod1+Right
  163. bindsym $mod+$i3-wm.binding.ws_next2 workspace next
  164. ## Navigate // Next Workspace on Output // <><Ctrl> Tab ##
  165. set_from_resource $i3-wm.binding.ws_next_on_output i3-wm.binding.ws_next_on_output Ctrl+Tab
  166. bindsym $mod+$i3-wm.binding.ws_next_on_output workspace next_on_output
  167. ## Navigate // Next Workspace on Output // <><Ctrl> l ##
  168. set_from_resource $i3-wm.binding.ws_next_on_output2 i3-wm.binding.ws_next_on_output2 Ctrl+l
  169. bindsym $mod+$i3-wm.binding.ws_next_on_output2 workspace next_on_output
  170. ## Navigate // Previous Workspace // <><Shift> Tab ##
  171. set_from_resource $i3-wm.binding.ws_prev i3-wm.binding.ws_prev Shift+Tab
  172. bindsym $mod+$i3-wm.binding.ws_prev workspace prev
  173. ## Navigate // Previous Workspace // <> <Alt> ← ##
  174. set_from_resource $i3-wm.binding.ws_prev2 i3-wm.binding.ws_prev2 Mod1+Left
  175. bindsym $mod+$i3-wm.binding.ws_prev2 workspace prev
  176. ## Navigate // Previous Workspace on Output // <><Ctrl><Shift> Tab ##
  177. set_from_resource $i3-wm.binding.ws_prev_on_output i3-wm.binding.ws_prev_on_output Ctrl+Shift+Tab
  178. bindsym $mod+$i3-wm.binding.ws_prev_on_output workspace prev_on_output
  179. ## Navigate // Previous Workspace on Output // <><Ctrl> h ##
  180. set_from_resource $i3-wm.binding.ws_prev_on_output2 i3-wm.binding.ws_prev_on_output2 Ctrl+h
  181. bindsym $mod+$i3-wm.binding.ws_prev_on_output2 workspace prev_on_output
  182. ## Navigate // Next Free Workspace // <> ` ##
  183. set_from_resource $i3-wm.binding.next_free i3-wm.binding.next_free grave
  184. bindsym $mod+$i3-wm.binding.next_free exec --no-startup-id /usr/bin/i3-next-workspace
  185. ## Navigate // Scratchpad // <> a ##
  186. set_from_resource $i3-wm.binding.scratchpad i3-wm.binding.scratchpad Ctrl+a
  187. bindsym $mod+$i3-wm.binding.scratchpad scratchpad show
  188. ###############################################################################
  189. # Window and Workspace Configuration
  190. ###############################################################################
  191. ## Modify // Window Position // <><Shift> ↑ ↓ ← → ##
  192. bindsym $mod+Shift+Left move left
  193. bindsym $mod+Shift+Down move down
  194. bindsym $mod+Shift+Up move up
  195. bindsym $mod+Shift+Right move right
  196. ## Modify // Window Position // <><Shift> k j h l ##
  197. set_from_resource $i3-wm.binding.move_left i3-wm.binding.move_left Shift+h
  198. set_from_resource $i3-wm.binding.move_right i3-wm.binding.move_right Shift+l
  199. set_from_resource $i3-wm.binding.move_up i3-wm.binding.move_up Shift+k
  200. set_from_resource $i3-wm.binding.move_down i3-wm.binding.move_down Shift+j
  201. bindsym $mod+$i3-wm.binding.move_left move left
  202. bindsym $mod+$i3-wm.binding.move_down move down
  203. bindsym $mod+$i3-wm.binding.move_up move up
  204. bindsym $mod+$i3-wm.binding.move_right move right
  205. ## Modify // Containing Workspace // <><Ctrl><Shift> ↑ ↓ ← → ##
  206. bindsym $mod+Ctrl+Shift+Left move workspace to output left
  207. bindsym $mod+Ctrl+Shift+Down move workspace to output down
  208. bindsym $mod+Ctrl+Shift+Up move workspace to output up
  209. bindsym $mod+Ctrl+Shift+Right move workspace to output right
  210. ## Modify // Containing Workspace // <><Ctrl><Shift> k j h l ##
  211. set_from_resource $i3-wm.binding.take_left i3-wm.binding.take_left Ctrl+Shift+h
  212. set_from_resource $i3-wm.binding.take_right i3-wm.binding.take_right Ctrl+Shift+l
  213. set_from_resource $i3-wm.binding.take_up i3-wm.binding.take_up Ctrl+Shift+k
  214. set_from_resource $i3-wm.binding.take_down i3-wm.binding.take_down Ctrl+Shift+j
  215. bindsym $mod+$i3-wm.binding.take_left move workspace to output left
  216. bindsym $mod+$i3-wm.binding.take_down move workspace to output down
  217. bindsym $mod+$i3-wm.binding.take_up move workspace to output up
  218. bindsym $mod+$i3-wm.binding.take_right move workspace to output right
  219. ## Modify // Vertical Window Orientation // <> v ##
  220. set_from_resource $i3-wm.binding.split_v i3-wm.binding.split_v v
  221. bindsym $mod+$i3-wm.binding.split_v split vertical
  222. ## Modify // Horizontal Window Orientation // <> g ##
  223. set_from_resource $i3-wm.binding.split_h i3-wm.binding.split_h g
  224. bindsym $mod+$i3-wm.binding.split_h split horizontal
  225. ## Modify // Toggle Window Orientation // <> Backspace ##
  226. set_from_resource $i3-wm.binding.orientation_toggle i3-wm.binding.orientation_toggle BackSpace
  227. bindsym $mod+$i3-wm.binding.orientation_toggle split toggle
  228. ## Modify // Window Fullscreen Toggle // <> f ##
  229. set_from_resource $i3-wm.binding.fullscreen_toggle i3-wm.binding.fullscreen_toggle f
  230. bindsym $mod+$i3-wm.binding.fullscreen_toggle fullscreen toggle
  231. ## Modify // Window Floating Toggle // <><Shift> f ##
  232. set_from_resource $i3-wm.binding.float_toggle i3-wm.binding.float_toggle Shift+f
  233. bindsym $mod+Shift+$i3-wm.binding.float_toggle floating toggle
  234. ## Modify // Move to Scratchpad // <><Shift> a ##
  235. set_from_resource $i3-wm.binding.move_scratchpad i3-wm.binding.move_scratchpad Ctrl+m
  236. bindsym $mod+$i3-wm.binding.move_scratchpad move to scratchpad
  237. ## Modify // Tile/Float Focus Toggle // <><Shift> t ##
  238. set_from_resource $i3-wm.binding.focus_toggle i3-wm.binding.focus_toggle Shift+t
  239. bindsym $mod+$i3-wm.binding.focus_toggle focus mode_toggle
  240. ## Modify // Window Layout Mode // <> t ##
  241. set_from_resource $i3-wm.binding.layout_mode i3-wm.binding.layout_mode t
  242. bindsym $mod+$i3-wm.binding.layout_mode layout toggle tabbed splith splitv
  243. ## Modify // Move Window to Workspace 1 - 10 // <><Shift> 0..9 ##
  244. bindsym $mod+Shift+$ws1_key move container to workspace number $ws1
  245. bindsym $mod+Shift+$ws2_key move container to workspace number $ws2
  246. bindsym $mod+Shift+$ws3_key move container to workspace number $ws3
  247. bindsym $mod+Shift+$ws4_key move container to workspace number $ws4
  248. bindsym $mod+Shift+$ws5_key move container to workspace number $ws5
  249. bindsym $mod+Shift+$ws6_key move container to workspace number $ws6
  250. bindsym $mod+Shift+$ws7_key move container to workspace number $ws7
  251. bindsym $mod+Shift+$ws8_key move container to workspace number $ws8
  252. bindsym $mod+Shift+$ws9_key move container to workspace number $ws9
  253. bindsym $mod+Shift+$ws10_key move container to workspace number $ws10
  254. ## Modify // Move Window to Workspace 11 - 19// <><Ctrl><Shift> 1..9 ##
  255. bindsym $mod+Shift+Ctrl+$ws1_key move container to workspace number $ws11
  256. bindsym $mod+Shift+Ctrl+$ws2_key move container to workspace number $ws12
  257. bindsym $mod+Shift+Ctrl+$ws3_key move container to workspace number $ws13
  258. bindsym $mod+Shift+Ctrl+$ws4_key move container to workspace number $ws14
  259. bindsym $mod+Shift+Ctrl+$ws5_key move container to workspace number $ws15
  260. bindsym $mod+Shift+Ctrl+$ws6_key move container to workspace number $ws16
  261. bindsym $mod+Shift+Ctrl+$ws7_key move container to workspace number $ws17
  262. bindsym $mod+Shift+Ctrl+$ws8_key move container to workspace number $ws18
  263. bindsym $mod+Shift+Ctrl+$ws9_key move container to workspace number $ws19
  264. ## Modify // Move Window to Next Free Workspace // <><Shift> ` ##
  265. set_from_resource $i3-wm.binding.move_next_free i3-wm.binding.move_next_free Shift+grave
  266. bindsym $mod+$i3-wm.binding.move_next_free exec --no-startup-id /usr/bin/i3-next-workspace --move-window
  267. # move focused container to workspace, move to workspace
  268. ## Modify // Carry Window to Workspace 1 - 10// <><Alt> 0..9 ##
  269. bindsym $mod+$alt+$ws1_key move container to workspace number $ws1; workspace number $ws1
  270. bindsym $mod+$alt+$ws2_key move container to workspace number $ws2; workspace number $ws2
  271. bindsym $mod+$alt+$ws3_key move container to workspace number $ws3; workspace number $ws3
  272. bindsym $mod+$alt+$ws4_key move container to workspace number $ws4; workspace number $ws4
  273. bindsym $mod+$alt+$ws5_key move container to workspace number $ws5; workspace number $ws5
  274. bindsym $mod+$alt+$ws6_key move container to workspace number $ws6; workspace number $ws6
  275. bindsym $mod+$alt+$ws7_key move container to workspace number $ws7; workspace number $ws7
  276. bindsym $mod+$alt+$ws8_key move container to workspace number $ws8; workspace number $ws8
  277. bindsym $mod+$alt+$ws9_key move container to workspace number $ws9; workspace number $ws9
  278. bindsym $mod+$alt+$ws10_key move container to workspace number $ws10; workspace number $ws10
  279. ## Modify // Carry Window to Workspace 11 - 19 // <><Alt><Ctrl> 1..9 ##
  280. bindsym $mod+$alt+Ctrl+$ws1_key move container to workspace number $ws11; workspace number $ws11
  281. bindsym $mod+$alt+Ctrl+$ws2_key move container to workspace number $ws12; workspace number $ws12
  282. bindsym $mod+$alt+Ctrl+$ws3_key move container to workspace number $ws13; workspace number $ws13
  283. bindsym $mod+$alt+Ctrl+$ws4_key move container to workspace number $ws14; workspace number $ws14
  284. bindsym $mod+$alt+Ctrl+$ws5_key move container to workspace number $ws15; workspace number $ws15
  285. bindsym $mod+$alt+Ctrl+$ws6_key move container to workspace number $ws16; workspace number $ws16
  286. bindsym $mod+$alt+Ctrl+$ws7_key move container to workspace number $ws17; workspace number $ws17
  287. bindsym $mod+$alt+Ctrl+$ws8_key move container to workspace number $ws18; workspace number $ws18
  288. bindsym $mod+$alt+Ctrl+$ws9_key move container to workspace number $ws19; workspace number $ws19
  289. ## Modify // Carry Window to Next Free Workspace // <><Alt> ` ##
  290. set_from_resource $i3-wm.binding.take_next_free i3-wm.binding.take_next_free Mod1+grave
  291. bindsym $mod+$i3-wm.binding.take_next_free exec --no-startup-id /usr/bin/i3-next-workspace --move-window-and-follow
  292. ## Modify // Move workspace to external monitor // <><Shift><PgUp> ##
  293. set_from_resource $i3-wm.binding.move_work_ext i3-wm.binding.move_work_ext Mod1+Mod4+k
  294. bindsym $mod+$i3-wm.binding.move_work_ext move workspace to output up
  295. ## Modify // Move workspace to internal monitor // <><Shift><PgDown> ##
  296. set_from_resource $i3-wm.binding.move_work_int i3-wm.binding.move_work_int Mod1+Mod4+k
  297. bindsym $mod+$i3-wm.binding.move_work_int move workspace to output down
  298. # Use Mouse+$mod to drag floating windows to their wanted position
  299. floating_modifier $mod
  300. # Hiding borders adjacent to the screen edges.
  301. # The "smart" setting hides borders on workspaces with only one window visible.
  302. set_from_resource $i3-wm.hide.edge.borders i3-wm.hide.edge.borders smart
  303. hide_edge_borders $i3-wm.hide.edge.borders
  304. ###############################################################################
  305. # Session Management
  306. ###############################################################################
  307. ## Session // Exit App // <><Shift> w ##
  308. set_from_resource $i3-wm.binding.exit_app i3-wm.binding.exit_app Shift+q
  309. bindsym $mod+$i3-wm.binding.exit_app [con_id="__focused__"] kill
  310. ## Session // Terminate App // <><Alt> w ##
  311. set_from_resource $i3-wm.binding.kill_app i3-wm.binding.kill_app Mod1+q
  312. bindsym $mod+$i3-wm.binding.kill_app [con_id="__focused__"] exec --no-startup-id kill -9 $(xdotool getwindowfocus getwindowpid)
  313. ## Session // Reload i3 Config // <><Shift> c ##
  314. set_from_resource $i3-wm.binding.reload i3-wm.binding.reload Shift+c
  315. bindsym $mod+$i3-wm.binding.reload reload
  316. ## Session // Refresh Session // <><Shift> r ##
  317. set_from_resource $i3-wm.binding.refresh i3-wm.binding.refresh Shift+r
  318. set_from_resource $i3-wm.program.refresh_ui i3-wm.program.refresh_ui /usr/bin/regolith-look refresh
  319. bindsym $mod+$i3-wm.binding.refresh exec --no-startup-id $i3-wm.program.refresh_ui
  320. ## Session // Restart i3 // <><Ctrl> r ##
  321. set_from_resource $i3-wm.binding.restart i3-wm.binding.restart Ctrl+r
  322. bindsym $mod+$i3-wm.binding.restart restart
  323. ## Session // Logout // <><Shift> e ##
  324. set_from_resource $i3-wm.binding.logout i3-wm.binding.logout Shift+e
  325. set_from_resource $i3-wm.program.logout i3-wm.program.logout /usr/bin/gnome-session-quit --logout
  326. bindsym $mod+$i3-wm.binding.logout exec $i3-wm.program.logout
  327. ## Session // Reboot // <><Shift> b ##
  328. set_from_resource $i3-wm.binding.reboot i3-wm.binding.reboot Shift+b
  329. set_from_resource $i3-wm.program.reboot i3-wm.program.reboot /usr/bin/gnome-session-quit --reboot
  330. bindsym $mod+$i3-wm.binding.reboot exec $i3-wm.program.reboot
  331. ## Session // Power Down // <><Shift> Escape ##
  332. set_from_resource $i3-wm.binding.shutdown i3-wm.binding.shutdown Shift+p
  333. set_from_resource $i3-wm.program.shutdown i3-wm.program.shutdown /usr/bin/gnome-session-quit --power-off
  334. bindsym $mod+$i3-wm.binding.shutdown exec $i3-wm.program.shutdown
  335. ## Session // Lock Screen // <> Escape ##
  336. set_from_resource $i3-wm.binding.lock i3-wm.binding.lock Escape
  337. 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
  338. bindsym $mod+$i3-wm.binding.lock exec $i3-wm.program.lock
  339. ## Session // Sleep // <><Shift> s ##
  340. set_from_resource $i3-wm.binding.sleep i3-wm.binding.sleep Shift+s
  341. set_from_resource $i3-wm.program.sleep i3-wm.program.sleep systemctl suspend
  342. bindsym $mod+$i3-wm.binding.sleep exec $i3-wm.program.sleep
  343. ###############################################################################
  344. # System Management
  345. ###############################################################################
  346. ## Modify // Settings // <> c ##
  347. set_from_resource $i3-wm.binding.settings i3-wm.binding.settings c
  348. set_from_resource $i3-wm.program.settings i3-wm.program.settings gnome-control-center --class=floating_window
  349. bindsym $mod+$i3-wm.binding.settings exec $i3-wm.program.settings
  350. ## Modify // Display Settings // <> d ##
  351. set_from_resource $i3-wm.binding.display i3-wm.binding.display d
  352. set_from_resource $i3-wm.program.display i3-wm.program.display gnome-control-center --class=floating_window display
  353. bindsym $mod+$i3-wm.binding.display exec $i3-wm.program.display
  354. ## Modify // Wifi Settings // <> w ##
  355. set_from_resource $i3-wm.binding.wifi i3-wm.binding.wifi w
  356. set_from_resource $i3-wm.program.wifi i3-wm.program.wifi gnome-control-center --class=floating_window wifi
  357. bindsym $mod+$i3-wm.binding.wifi exec $i3-wm.program.wifi
  358. ## Modify // Bluetooth Settings // <> b ##
  359. set_from_resource $i3-wm.binding.bluetooth i3-wm.binding.bluetooth b
  360. set_from_resource $i3-wm.program.bluetooth i3-wm.program.bluetooth gnome-control-center --class=floating_window bluetooth
  361. bindsym $mod+$i3-wm.binding.bluetooth exec $i3-wm.program.bluetooth
  362. ## Launch // File Browser // <><Shift> n ##
  363. set_from_resource $i3-wm.binding.files i3-wm.binding.files Shift+n
  364. set_from_resource $i3-wm.program.files i3-wm.program.files /usr/bin/nautilus --new-window
  365. bindsym $mod+$i3-wm.binding.files exec $i3-wm.program.files
  366. ## Launch // Notification Viewer // <> n ##
  367. set_from_resource $i3-wm.binding.notification_ui i3-wm.binding.notification_ui n
  368. set_from_resource $i3-wm.program.notification_ui i3-wm.program.notification_ui /usr/bin/rofication-gui
  369. bindsym $mod+$i3-wm.binding.notification_ui exec $i3-wm.program.notification_ui
  370. ## Launch // Keepass // <> p ##
  371. bindsym $mod+p [class="keepassxc"] scratchpad show
  372. ## Launch // Mumble // <> m ##
  373. bindsym $mod+m [class="Mumble"] scratchpad show
  374. ###############################################################################
  375. # Workspace Management
  376. ###############################################################################
  377. # i3-snapshot for load/save current layout
  378. ## Modify // Save Window Layout // <> , ##
  379. set_from_resource $i3-wm.binding.save_layout i3-wm.binding.save_layout comma
  380. bindsym $mod+$i3-wm.binding.save_layout exec /usr/bin/i3-snapshot -o > /tmp/i3-snapshot
  381. ## Modify // Load Window Layout // <> . ##
  382. set_from_resource $i3-wm.binding.load_layout i3-wm.binding.load_layout period
  383. bindsym $mod+$i3-wm.binding.load_layout exec /usr/bin/i3-snapshot -c < /tmp/i3-snapshot
  384. # Toggle bar visibility
  385. ## Modify // Toggle Bar // <> i ##
  386. set_from_resource $i3-wm.binding.bar_toggle i3-wm.binding.bar_toggle i
  387. bindsym $mod+$i3-wm.binding.bar_toggle bar mode toggle
  388. # Cause Settings app to float above tiled windows
  389. floating_maximum_size -1 x -1
  390. for_window [class="floating_window"] floating enable
  391. set_from_resource $i3-wm.workspace.auto_back_and_forth i3-wm.workspace.auto_back_and_forth no
  392. workspace_auto_back_and_forth $i3-wm.workspace.auto_back_and_forth
  393. # Auto scratch windows
  394. for_window [class="keepassxc"] move scratchpad
  395. for_window [class="Mumble"] move scratchpad
  396. # Auto set workspaces
  397. for_window [class="Firefox"] move container to workspace $ws5
  398. for_window [class="^Gimp.*"] move container to workspace $ws15
  399. for_window [class="Thunderbird"] move container to workspace $ws6
  400. ###############################################################################
  401. # Window Resize and Gaps
  402. ###############################################################################
  403. set_from_resource $i3-wm.binding.inc_gaps i3-wm.binding.inc_gaps plus
  404. set_from_resource $i3-wm.binding.dec_gaps i3-wm.binding.dec_gaps minus
  405. set_from_resource $i3-wm.binding.inc_gaps_big i3-wm.binding.inc_gaps_big Shift+plus
  406. set_from_resource $i3-wm.binding.dec_gaps_big i3-wm.binding.dec_gaps_big Shift+minus
  407. ## Resize // Enter Resize Mode // <> r ##
  408. mode "Resize Mode" {
  409. # These bindings trigger as soon as you enter the resize mode
  410. ## Resize // Resize Window // ↑ ↓ ← → ##
  411. bindsym Left resize shrink width 6 px or 6 ppt
  412. bindsym Down resize grow height 6 px or 6 ppt
  413. bindsym Up resize shrink height 6 px or 6 ppt
  414. bindsym Right resize grow width 6 px or 6 ppt
  415. bindsym Shift+Left resize shrink width 12 px or 12 ppt
  416. bindsym Shift+Down resize grow height 12 px or 12 ppt
  417. bindsym Shift+Up resize shrink height 12 px or 12 ppt
  418. bindsym Shift+Right resize grow width 12 px or 12 ppt
  419. ## Resize // Resize Window // k j h l ##
  420. bindsym $i3-wm.binding.left resize shrink width 6 px or 6 ppt
  421. bindsym $i3-wm.binding.up resize grow height 6 px or 6 ppt
  422. bindsym $i3-wm.binding.down resize shrink height 6 px or 6 ppt
  423. bindsym $i3-wm.binding.right resize grow width 6 px or 6 ppt
  424. bindsym $i3-wm.binding.move_left resize shrink width 12 px or 12 ppt
  425. bindsym $i3-wm.binding.move_up resize grow height 12 px or 12 ppt
  426. bindsym $i3-wm.binding.move_down resize shrink height 12 px or 12 ppt
  427. bindsym $i3-wm.binding.move_right resize grow width 12 px or 12 ppt
  428. ## Resize // Window Gaps // + - ##
  429. bindsym $i3-wm.binding.dec_gaps gaps inner current minus 6
  430. bindsym $i3-wm.binding.inc_gaps gaps inner current plus 6
  431. bindsym $i3-wm.binding.dec_gaps_big gaps inner current minus 12
  432. bindsym $i3-wm.binding.inc_gaps_big gaps inner current plus 12
  433. ## Resize // Exit Resize Mode // Escape or Enter ##
  434. bindsym Return mode "default"
  435. bindsym Escape mode "default"
  436. bindsym $mod+r mode "default"
  437. }
  438. bindsym $mod+r mode "Resize Mode"
  439. ###############################################################################
  440. # i3 Appearance and Behavior
  441. ###############################################################################
  442. # Disable titlebar
  443. set_from_resource $i3-wm.window.border.size i3-wm.window.border.size 1
  444. set_from_resource $i3-wm.floatingwindow.border.size i3-wm.floatingwindow.border.size 1
  445. default_border pixel $i3-wm.window.border.size
  446. default_floating_border pixel $i3-wm.floatingwindow.border.size
  447. # Specify the distance between windows in pixels. (i3-gaps)
  448. set_from_resource $i3-wm.gaps.inner.size i3-wm.gaps.inner.size 5
  449. set_from_resource $i3-wm.gaps.outer.size i3-wm.gaps.outer.size 0
  450. gaps inner $i3-wm.gaps.inner.size
  451. gaps outer $i3-wm.gaps.outer.size
  452. # Only enable gaps on a workspace when there is at least one container
  453. set_from_resource $i3-wm.gaps.smart i3-wm.gaps.smart on
  454. smart_gaps $i3-wm.gaps.smart
  455. # Enable popup during fullscreen
  456. set_from_resource $i3-wm.gaps.popup_during_fullscreen i3-wm.gaps.popup_during_fullscreen smart
  457. popup_during_fullscreen $i3-wm.gaps.popup_during_fullscreen
  458. # window focus follows your mouse movements as the mouse crosses window borders
  459. set_from_resource $i3-wm.gaps.focus_follows_mouse i3-wm.gaps.focus_follows_mouse no
  460. focus_follows_mouse $i3-wm.gaps.focus_follows_mouse
  461. # Set default workspace layout
  462. workspace_layout tabbed
  463. ###############################################################################
  464. # i3 Colors and Fonts
  465. ###############################################################################
  466. # Create variables from Xresources for i3's look.
  467. set_from_resource $focused.color.border i3-wm.client.focused.color.border "#002b36"
  468. set_from_resource $focused.color.background i3-wm.client.focused.color.background "#586e75"
  469. set_from_resource $focused.color.text i3-wm.client.focused.color.text "#fdf6e3"
  470. set_from_resource $focused.color.indicator i3-wm.client.focused.color.indicator "#268bd2"
  471. set_from_resource $focused.color.child_border i3-wm.client.focused.color.child_border
  472. set_from_resource $focused_inactive.color.border i3-wm.client.focused_inactive.color.border "#002b36"
  473. set_from_resource $focused_inactive.color.background i3-wm.client.focused_inactive.color.background "#073642"
  474. set_from_resource $focused_inactive.color.text i3-wm.client.focused_inactive.color.text "#839496"
  475. set_from_resource $focused_inactive.color.indicator i3-wm.client.focused_inactive.color.indicator "#073642"
  476. set_from_resource $focused_inactive.color.child_border i3-wm.client.focused_inactive.color.child_border
  477. set_from_resource $unfocused.color.border i3-wm.client.unfocused.color.border "#002b36"
  478. set_from_resource $unfocused.color.background i3-wm.client.unfocused.color.background "#073642"
  479. set_from_resource $unfocused.color.text i3-wm.client.unfocused.color.text "#839496"
  480. set_from_resource $unfocused.color.indicator i3-wm.client.unfocused.color.indicator "#073642"
  481. set_from_resource $unfocused.color.child_border i3-wm.client.unfocused.color.child_border
  482. set_from_resource $urgent.color.border i3-wm.client.urgent.color.border "#002b36"
  483. set_from_resource $urgent.color.background i3-wm.client.urgent.color.background "#dc322f"
  484. set_from_resource $urgent.color.text i3-wm.client.urgent.color.text "#fdf6e3"
  485. set_from_resource $urgent.color.indicator i3-wm.client.urgent.color.indicator "#002b36"
  486. set_from_resource $urgent.color.child_border i3-wm.client.urgent.color.child_border
  487. # Window Border color
  488. # class border background text indicator child_border
  489. client.focused $focused.color.border $focused.color.background $focused.color.text $focused.color.indicator $focused.color.child_border
  490. client.focused_inactive $focused_inactive.color.border $focused_inactive.color.background $focused_inactive.color.text $focused_inactive.color.indicator $focused_inactive.color.child_border
  491. client.unfocused $unfocused.color.border $unfocused.color.background $unfocused.color.text $unfocused.color.indicator $unfocused.color.child_border
  492. client.urgent $urgent.color.border $urgent.color.background $urgent.color.text $urgent.color.indicator $urgent.color.child_border
  493. # Create variables from Xresources for i3bars's look.
  494. set_from_resource $i3-wm.bar.background.color i3-wm.bar.background.color "#002b36"
  495. set_from_resource $i3-wm.bar.statusline.color i3-wm.bar.statusline.color "#93a1a1"
  496. set_from_resource $i3-wm.bar.separator.color i3-wm.bar.separator.color "#268bd2"
  497. set_from_resource $i3-wm.bar.workspace.focused.border.color i3-wm.bar.workspace.focused.border.color "#073642"
  498. set_from_resource $i3-wm.bar.workspace.focused.background.color i3-wm.bar.workspace.focused.background.color "#073642"
  499. set_from_resource $i3-wm.bar.workspace.focused.text.color i3-wm.bar.workspace.focused.text.color "#eee8d5"
  500. set_from_resource $i3-wm.bar.workspace.active.border.color i3-wm.bar.workspace.active.border.color "#073642"
  501. set_from_resource $i3-wm.bar.workspace.active.background.color i3-wm.bar.workspace.active.background.color "#073642"
  502. set_from_resource $i3-wm.bar.workspace.active.text.color i3-wm.bar.workspace.active.text.color "#586e75"
  503. set_from_resource $i3-wm.bar.workspace.inactive.border.color i3-wm.bar.workspace.inactive.border.color "#002b36"
  504. set_from_resource $i3-wm.bar.workspace.inactive.background.color i3-wm.bar.workspace.inactive.background.color "#002b36"
  505. set_from_resource $i3-wm.bar.workspace.inactive.text.color i3-wm.bar.workspace.inactive.text.color "#586e75"
  506. set_from_resource $i3-wm.bar.workspace.urgent.border.color i3-wm.bar.workspace.urgent.border.color "#dc322f"
  507. set_from_resource $i3-wm.bar.workspace.urgent.background.color i3-wm.bar.workspace.urgent.background.color "#dc322f"
  508. set_from_resource $i3-wm.bar.workspace.urgent.text.color i3-wm.bar.workspace.urgent.text.color "#fdf6e3"
  509. # Sets i3 font for dialogs
  510. set_from_resource $i3-wm.font i3-wm.font pango:Source Code Pro Medium 13
  511. font $i3-wm.font
  512. ###############################################################################
  513. # i3 Bar
  514. ###############################################################################
  515. set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom
  516. set_from_resource $i3-wm.bar.font i3-wm.bar.font pango:Source Code Pro Medium 13, Material Design Icons 13
  517. set_from_resource $i3-wm.bar.separator i3-wm.bar.separator " "
  518. set_from_resource $i3-wm.bar.trayoutput i3-wm.bar.trayoutput primary
  519. set_from_resource $i3-wm.bar.stripworkspacenumbers i3-wm.bar.stripworkspacenumbers yes
  520. set_from_resource $i3-wm.bar.mode i3-wm.bar.mode dock
  521. # i3xrocks config file. Override this for a custom status bar generator.
  522. 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
  523. # The bar configuration
  524. bar {
  525. position $i3-wm.bar.position
  526. mode $i3-wm.bar.mode
  527. font $i3-wm.bar.font
  528. separator_symbol $i3-wm.bar.separator
  529. status_command $i3-wm.bar.status_command
  530. tray_output $i3-wm.bar.trayoutput
  531. strip_workspace_numbers $i3-wm.bar.stripworkspacenumbers
  532. colors {
  533. background $i3-wm.bar.background.color
  534. statusline $i3-wm.bar.statusline.color
  535. separator $i3-wm.bar.separator.color
  536. # BORDER BACKGROUND TEXT
  537. focused_workspace $i3-wm.bar.workspace.focused.border.color $i3-wm.bar.workspace.focused.background.color $i3-wm.bar.workspace.focused.text.color
  538. active_workspace $i3-wm.bar.workspace.active.border.color $i3-wm.bar.workspace.active.background.color $i3-wm.bar.workspace.active.text.color
  539. inactive_workspace $i3-wm.bar.workspace.inactive.border.color $i3-wm.bar.workspace.inactive.background.color $i3-wm.bar.workspace.inactive.text.color
  540. urgent_workspace $i3-wm.bar.workspace.urgent.border.color $i3-wm.bar.workspace.urgent.background.color $i3-wm.bar.workspace.urgent.text.color
  541. }
  542. }
  543. ###############################################################################
  544. # External programs launched with i3
  545. ###############################################################################
  546. # Start the installed regolith-compositor
  547. set_from_resource $i3-wm.program.compositor i3-wm.program.compositor /usr/share/regolith-compositor/init
  548. exec_always --no-startup-id $i3-wm.program.compositor
  549. # Start Rofication for notifications
  550. set_from_resource $i3-wm.program.notifications i3-wm.program.notifications /usr/bin/rofication-daemon
  551. exec --no-startup-id $i3-wm.program.notifications
  552. # Hide the mouse pointer if unused for a duration
  553. set_from_resource $i3-wm.program.unclutter i3-wm.program.unclutter /usr/bin/unclutter -b
  554. exec --no-startup-id $i3-wm.program.unclutter
  555. # Load nm-applet to provide auth dialogs for network access
  556. set_from_resource $i3-wm.program.nm-applet i3-wm.program.nm-applet /usr/bin/nm-applet
  557. exec --no-startup-id $i3-wm.program.nm-applet
  558. # User programs from Xresources
  559. # To use, define an Xresource key i3-wm.program.[1-3] with the value of the program to launch.
  560. # See https://regolith-linux.org/docs/howto/override-xres/ for details.
  561. set_from_resource $i3-wm.program.1 i3-wm.program.1 :
  562. exec --no-startup-id $i3-wm.program.1
  563. set_from_resource $i3-wm.program.2 i3-wm.program.2 :
  564. exec --no-startup-id $i3-wm.program.2
  565. set_from_resource $i3-wm.program.3 i3-wm.program.3 :
  566. exec --no-startup-id $i3-wm.program.3