config 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. ##### My (demuredemeanor) i3 config
  2. # Uses tabstop=4; shiftwidth=4 tabs; foldmarker={{{,}}};
  3. # https://notabug.org/demure/dotfiles/
  4. # legacy repo http://github.com/demure/dotfiles
  5. # vim: set filetype=i3config:
  6. ## Set prefix to Super
  7. set $mod Mod4
  8. # Font for window titles. Will also be used by the bar unless a different font
  9. # is used in the bar {} block below.
  10. font pango:monospace 8
  11. # This font is widely installed, provides lots of unicode glyphs, right-to-left
  12. # text rendering and scalability on retina/hidpi displays (thanks to pango).
  13. #font pango:DejaVu Sans Mono 8
  14. ## If you try to go to the same workspace you are on, jump to last workspace
  15. workspace_auto_back_and_forth yes
  16. ### Variables ### {{{
  17. set $Locker i3lock -e -c 2E3436 && sleep 1
  18. ### Workspace Names ### {{{
  19. set $ws1 1:
  20. set $ws2 2:
  21. set $ws3 3:
  22. #set $ws4 4:
  23. set $ws4 4
  24. set $ws5 5
  25. set $ws6 6
  26. set $ws7 7:
  27. set $ws8 8
  28. set $ws9 9
  29. set $ws10 10
  30. ### End Workspace Names ### }}}
  31. ### End Variables ### }}}
  32. ### Bindings ### {{{
  33. ### i3 Keys ### {{{
  34. ## reload the configuration file
  35. bindsym $mod+Shift+c reload
  36. ## restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
  37. ## The pkill is to makke my fancy bar play nice
  38. bindsym $mod+Shift+r exec pkill lemonbar && i3-msg restart
  39. ## exit i3 (logs you out of your X session)
  40. 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' 'pkill lemonbar && i3-msg exit'"
  41. ### End i3 Keys ### }}}
  42. ### Workspace Bindings ### {{{
  43. ### Last Workspace ### {{{
  44. ## Move to last workspace
  45. bindsym $mod+Tab workspace back_and_forth
  46. ## Send container to last workspace
  47. bindsym $mod+Shift+Tab move container to workspace back_and_forth
  48. ### End Last Workspace ### }}}
  49. ### Switch Workspace ### {{{
  50. ## switch to workspace
  51. bindsym $mod+1 workspace $ws1
  52. bindsym $mod+2 workspace $ws2
  53. bindsym $mod+3 workspace $ws3
  54. bindsym $mod+4 workspace $ws4
  55. bindsym $mod+5 workspace $ws5
  56. bindsym $mod+6 workspace $ws6
  57. bindsym $mod+7 workspace $ws7
  58. bindsym $mod+8 workspace $ws8
  59. bindsym $mod+9 workspace $ws9
  60. bindsym $mod+0 workspace $ws10
  61. ### End Switch Workspace ### }}}
  62. ### Send Workspace ### {{{
  63. ## move focused container to workspace
  64. bindsym $mod+Shift+1 move container to workspace $ws1
  65. bindsym $mod+Shift+2 move container to workspace $ws2
  66. bindsym $mod+Shift+3 move container to workspace $ws3
  67. bindsym $mod+Shift+4 move container to workspace $ws4
  68. bindsym $mod+Shift+5 move container to workspace $ws5
  69. bindsym $mod+Shift+6 move container to workspace $ws6
  70. bindsym $mod+Shift+7 move container to workspace $ws7
  71. bindsym $mod+Shift+8 move container to workspace $ws8
  72. bindsym $mod+Shift+9 move container to workspace $ws9
  73. bindsym $mod+Shift+0 move container to workspace $ws10
  74. ### End Send Workspace ### }}}
  75. ### Move Workspace Different Monitor ### {{{
  76. ## Move the current workspace to the next output
  77. bindsym $mod+Mod1+Left move workspace to output Left
  78. bindsym $mod+Mod1+Down move workspace to output Down
  79. bindsym $mod+Mod1+Up move workspace to output Up
  80. bindsym $mod+Mod1+Right move workspace to output right
  81. ### End Move Workspace Different Monitor ### }}}
  82. ### Cycle Through Workspaces ### {{{
  83. ## Added for touchegg
  84. bindsym $mod+u workspace prev
  85. bindsym $mod+o workspace next
  86. ### End Cycle Through Workspaces ### }}}
  87. ### End Workspace Bindings ### }}}
  88. ### Window Bindings ### {{{
  89. ## kill focused window
  90. bindsym $mod+Shift+q kill
  91. ### Sticky Windows, good for picture in picture
  92. bindsym $mod+Shift+s sticky toggle
  93. ### Split Orientation ### {{{
  94. ## split in horizontal orientation
  95. bindsym $mod+h split h
  96. ## split in vertical orientation
  97. bindsym $mod+v split v
  98. ### End Split Orientation ### }}}
  99. ### End Window Bindings ### }}}
  100. ### Focus Bindings ### {{{
  101. ## enter fullscreen mode for the focused container
  102. bindsym $mod+f fullscreen toggle
  103. ### Tile / Float ### {{{
  104. ## toggle tiling / floating
  105. bindsym $mod+Shift+space floating toggle
  106. ## change focus between tiling / floating windows
  107. bindsym $mod+space focus mode_toggle
  108. ### End Tile / Float ### }}}
  109. ### Change Focus ### {{{
  110. ## change focus
  111. bindsym $mod+j focus left
  112. bindsym $mod+k focus down
  113. bindsym $mod+l focus up
  114. bindsym $mod+semicolon focus right
  115. ## alternatively, you can use the cursor keys:
  116. bindsym $mod+Left focus left
  117. bindsym $mod+Down focus down
  118. bindsym $mod+Up focus up
  119. bindsym $mod+Right focus right
  120. ### End Change Focus ### }}}
  121. ### Move Focused Window ### {{{
  122. ## move focused window
  123. bindsym $mod+Shift+j move left
  124. bindsym $mod+Shift+k move down
  125. bindsym $mod+Shift+l move up
  126. bindsym $mod+Shift+semicolon move right
  127. ## alternatively, you can use the cursor keys:
  128. bindsym $mod+Shift+Left move left
  129. bindsym $mod+Shift+Down move down
  130. bindsym $mod+Shift+Up move up
  131. bindsym $mod+Shift+Right move right
  132. ### End Move Focused Window ### }}}
  133. ### Focus Urgent Workspace {{{
  134. bindsym $mod+x [urgent=latest] focus
  135. ### End Focus Urgent Workspace ###}}}
  136. ### End Focus Bindings ### }}}
  137. ### Container Bindings ### {{{
  138. ### Change Container Layout ### {{{
  139. ## change container layout (stacked, tabbed, toggle split)
  140. bindsym $mod+s layout stacking
  141. bindsym $mod+w layout tabbed
  142. bindsym $mod+e layout toggle split
  143. ### End Change Container Layout ### }}}
  144. ### Parent / Child Container ### {{{
  145. ## focus the parent container
  146. bindsym $mod+a focus parent
  147. ## focus the child container
  148. bindsym $mod+d focus child
  149. ### End Parent / Child Container ### }}}
  150. ### End Container Bindings ### }}}
  151. ### Mouse Bindings ### {{{
  152. ## Use Mouse+$mod to drag floating windows to their wanted position
  153. floating_modifier $mod
  154. ## Seems like this only works on border or title bar...
  155. #bindsym --whole-window --border button6 workspace prev
  156. #bindsym --whole-window --border button7 workspace next
  157. ## Removed --whole-window as it started working, and touchpoint scrolling affected.
  158. bindsym --border button6 workspace prev
  159. bindsym --border button7 workspace next
  160. ### End Mouse Bindings ### }}}
  161. ### Scratch Pad ### {{{
  162. ## Make the currently focused window a scratchpad
  163. bindsym $mod+Shift+minus move scratchpad
  164. ## Show the first scratchpad window
  165. bindsym $mod+minus scratchpad show
  166. ### End Scratch Pad ### }}}
  167. ### User Interface Bindings ### {{{
  168. ### Brightness Bindings ### {{{
  169. bindsym XF86MonBrightnessUp exec xbacklight -inc 5 ## Increase screen brightness
  170. bindsym Shift+XF86MonBrightnessUp exec xbacklight -inc 1 ## Fine increase screen brightness
  171. bindsym XF86MonBrightnessDown exec xbacklight -dec 5 ## Decrease screen brightness
  172. bindsym Shift+XF86MonBrightnessDown exec xbacklight -dec 1 ## Fine decrease screen brightness
  173. bindsym $mod+XF86MonBrightnessUp exec xbacklight -set 100 ## Set max screen brightness
  174. bindsym $mod+XF86MonBrightnessDown exec xbacklight -set 1 ## Set min screen brightness
  175. ### End Brightness Bindings ### }}}
  176. ### Pulse Audio Controls ### {{{
  177. ## Disabled old volume bindings after amixer started acting up
  178. ##bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q set Master 5%+ ## Increase sound volume
  179. ##bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id amixer -q set Master 1%+ ## Fine increase sound volume
  180. ##bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% ## Able to softvol increase
  181. ##bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q set Master 5%- ## Decrease sound volume
  182. ##bindsym Shift+XF86AudioLowerVolume exec --no-startup-id amixer -q set Master 1%- ## Fine decrease sound volume
  183. ##bindsym $mod+XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% ## Able to softvol decrease
  184. ##bindsym XF86AudioMute exec --no-startup-id amixer -q set Master toggle ## mute sound
  185. ## Softvol increase possible with pactl
  186. bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% ## Increase sound volume
  187. bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +1% ## Fine increase sound volume
  188. bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 100% ## Set volume to "100%"
  189. bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% ## Decrease sound volume
  190. bindsym Shift+XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -1% ## Fine decrease sound volume
  191. bindsym $mod+XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 50% ## Set volume to "50%"
  192. bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle ## mute sound
  193. bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 1 toggle ## mute mic
  194. ### End Pulse Audio ### }}}
  195. ### Toggle redshift ### {{{
  196. bindsym $mod+slash exec --no-startup-id pkill -USR1 redshift
  197. ### End Toggle redshift ### }}}
  198. ### End User Interface Bindings ### }}}
  199. ### Program Call Bindings ### {{{
  200. ### Launch Term ### {{{
  201. ## start a terminal
  202. bindsym $mod+Return exec i3-sensible-terminal
  203. ### End Launch Term ### }}}
  204. ### Screen Shots ### {{{
  205. bindsym $mod+Home exec --no-startup-id exec scrot -m ## Backup binding
  206. bindsym Print exec --no-startup-id exec scrot -m
  207. bindsym XF86Explorer exec --no-startup-id exec scrot -m ## x260
  208. bindsym XF86Favorites exec --no-startup-id exec scrot -m ## x270
  209. ## Note: you need to click on the window, after key combo, to capture it.
  210. ## Note: Needs to have startup ip, as interacts with GUI
  211. bindsym $mod+Shift+Home exec --no-startup-id scrot -s ## Backup binding
  212. bindsym Shift+Print exec --no-startup-id scrot -s
  213. bindsym Shift+XF86Explorer exec --no-startup-id scrot -s ## x260
  214. bindsym Shift+XF86Favorites exec --no-startup-id scrot -s ## x270
  215. ### End Screen Shots ### }}}
  216. ### Rofi Bindings ### {{{
  217. ## Use rofi, it's better
  218. ## start dmenu (a program launcher)
  219. #bindsym $mod+d exec dmenu_run
  220. bindsym $mod+p exec rofi -sidebar-mode -show run -font 'Pragmata Pro 10' -fg \#505050 -bg \#000000 -bgalt \#101010 -hlfg \#008080 -hlbg \#454A4F -bc \#008080 -bw 1 -location 2 -width 100 -padding 0 -lines 10 -no-disable-history -no-levenshtein-sort ## Backup bindingt
  221. bindsym XF86Search exec rofi -sidebar-mode -show run -font 'Pragmata Pro 10' -fg \#505050 -bg \#000000 -bgalt \#101010 -hlfg \#008080 -hlbg \#454A4F -bc \#008080 -bw 1 -location 2 -width 100 -padding 0 -lines 10 -no-disable-history -no-levenshtein-sort ## x260
  222. ### rofi-pass binding
  223. bindsym $mod+Shift+p exec rofi-pass
  224. bindsym Shift+XF86Search exec rofi-pass ## x260
  225. ### End Rofi Bindings ### }}}
  226. ### External IP Toggle For i3 lemonbar ### {{{
  227. ## Good example of a on/off flag, with awk. Replaces with three position code.
  228. ## awk -v TEMP=/tmp/i3_lemonbar_ip_${USER} 'BEGIN {{FILE=getline < TEMP < 0 ? "0" : "1"} {if($0==1){STATE=1} else {STATE=0}} {if(STATE==0){system("echo 1 > "TEMP)} else {system("echo 0 > "TEMP)}} }'
  229. bindsym XF86LaunchA exec awk -v TEMP=/tmp/i3_lemonbar_ip_${USER} 'BEGIN {{FILE=getline < TEMP < 0 ? "0" : "1"} {if($0==1){STATE=1} else if($0==2){STATE=2} else{STATE=0}} {if(STATE==0){system("echo 1 > "TEMP)} else if(STATE==1){system("echo 2 > "TEMP)} else {system("echo 0 > "TEMP)}} }' ## x260
  230. bindsym XF86Display exec awk -v TEMP=/tmp/i3_lemonbar_ip_${USER} 'BEGIN {{FILE=getline < TEMP < 0 ? "0" : "1"} {if($0==1){STATE=1} else if($0==2){STATE=2} else{STATE=0}} {if(STATE==0){system("echo 1 > "TEMP)} else if(STATE==1){system("echo 2 > "TEMP)} else {system("echo 0 > "TEMP)}} }' ## x270
  231. ### End External IP FOr i3 lemonbar ### }}}
  232. ### Clipster Clipboard Manager ### {{{
  233. bindsym $mod+c exec clipster -sc
  234. ### End Clipster ### }}}
  235. ### End Program Call Bindings ### }}}
  236. ### Misc Bindings ### {{{
  237. ### End Misc Bindings ### }}}
  238. ### End Bindings ### }}}
  239. ### i3 Modes ### {{{
  240. ### System Control Mode ### {{{
  241. mode "system-control" {
  242. bindsym l exec --no-startup-id $Locker, mode "default"
  243. bindsym e exec --no-startup-id pkill lemonbar && i3-msg exit, mode "default"
  244. bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
  245. bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
  246. bindsym r exec --no-startup-id systemctl reboot, mode "default"
  247. bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
  248. bindsym c exec --no-startup-id sudo /usr/bin/tomb close all, mode "default"
  249. bindsym Shift+c exec --no-startup-id sudo /usr/bin/tomb slam, mode "default"
  250. ## Invert screen colors
  251. bindsym i exec --no-startup-id xcalib -invert -alter, mode "default"
  252. ## Set brightness to my default of 30%
  253. bindsym b exec --no-startup-id xbacklight -set 30, mode "default"
  254. ## One minute timer, big
  255. bindsym t exec urxvt -fn xft:PragmataProMono-Regular:pixelsize=70 -e termdown -WBb -c 10 -t TIME 1m, mode "default"
  256. ## One minute timer, small
  257. bindsym Shift+t exec urxvt -e termdown -WBb -c 10 -t TIME 1m, mode "default"
  258. ## Flip screen horizontally
  259. bindsym f exec --no-startup-id xrandr -x, mode "default"
  260. ## Flip screen vertically
  261. bindsym Shift+F exec --no-startup-id xrandr -y, mode "default"
  262. ## back to normal: Enter or Escape
  263. bindsym Return mode "default"
  264. bindsym Escape mode "default"
  265. }
  266. bindsym $mod+Pause mode "system-control"
  267. bindsym $mod+End mode "system-control"
  268. bindsym XF86Tools mode "system-control"
  269. ### End System Control Mode ### }}}
  270. ### App Quick Launch ### {{{
  271. ## Launch mode, one app per key.
  272. mode "quick-launch" {
  273. bindsym b exec qutebrowser ; mode "default"
  274. bindsym c exec speedcrunch ; mode "default"
  275. bindsym f exec firefox ; mode "default"
  276. ## gksudo is dead
  277. #bindsym g exec gksudo gameconqueror ; mode "default"
  278. bindsym g exec urxvt -e sudo scanmem ; mode "default"
  279. bindsym Shift+m exec --no-startup-id sudo /usr/bin/tomb open -k ~/vault.tomb.key ~/vault.tomb -g ; mode "default"
  280. bindsym n exec urxvt -e terminal_velocity ; mode "default"
  281. bindsym o exec libreoffice ; mode "default"
  282. bindsym t exec i3-sensible-terminal ; mode "default"
  283. bindsym v exec $HOME/bin/start-vpn.sh ; mode "default"
  284. bindsym w exec urxvt -e wicd-curses ; mode "default"
  285. ## Keeping this as an example
  286. ## gnome-disks will not launch twice, gparted will. Avoid that.
  287. #bindsym d exec ((pidof gpartedbin) || gksudo gparted); exec gnome-disks ; mode "default"
  288. bindsym Return mode "default"
  289. bindsym Escape mode "default"
  290. }
  291. #bindsym $mod+Shift+g mode "quick-launch"
  292. bindsym $mod+g mode "quick-launch"
  293. ### End App Quick Launch ### }}}
  294. ### App Focus Mode ### {{{
  295. mode "app-focus" {
  296. ## hardcoded focus keybindings
  297. bindsym b [class="(?i)qutebrowser"] focus, mode "default"
  298. bindsym w [class="(?i)terminal" title="weechat"] focus, mode "default"
  299. #bindsym m [class="(?i)icedove"] focus, mode "default"
  300. bindsym f [class="(?i)spacefm"] focus, mode "default"
  301. bindsym z [class="(?i)zathura"] focus, mode "default"
  302. ## back to normal: Enter or Escape
  303. bindsym Return mode "default"
  304. bindsym Escape mode "default"
  305. }
  306. bindsym $mod+Shift+g mode "app-focus"
  307. ### End App Focus Mode ### }}}
  308. ### Resize Window Mode ### {{{
  309. ## resize window (you can also use the mouse for that)
  310. mode "resize" {
  311. ## These bindings trigger as soon as you enter the resize mode
  312. ## They resize the border in the direction you pressed, e.g.
  313. ## when pressing left, the window is resized so that it has
  314. ## more space on its left
  315. bindsym h resize shrink left 10 px or 10 ppt
  316. bindsym j resize shrink down 10 px or 10 ppt
  317. bindsym k resize shrink up 10 px or 10 ppt
  318. bindsym l resize shrink right 10 px or 10 ppt
  319. bindsym Shift+H resize grow left 10 px or 10 ppt
  320. bindsym Shift+J resize grow down 10 px or 10 ppt
  321. bindsym Shift+K resize grow up 10 px or 10 ppt
  322. bindsym Shift+L resize grow right 10 px or 10 ppt
  323. ## Same bindings, but for the arrow keys
  324. bindsym Left resize shrink left 10 px or 10 ppt
  325. bindsym Down resize shrink down 10 px or 10 ppt
  326. bindsym Up resize shrink up 10 px or 10 ppt
  327. bindsym Right resize shrink right 10 px or 10 ppt
  328. bindsym Shift+Left resize grow left 10 px or 10 ppt
  329. bindsym Shift+Down resize grow down 10 px or 10 ppt
  330. bindsym Shift+Up resize grow up 10 px or 10 ppt
  331. bindsym Shift+Right resize grow right 10 px or 10 ppt
  332. ## Go to precise mode
  333. bindsym p mode "resize_precise"
  334. ## Back to normal: Enter or Escape
  335. bindsym Return mode "default"
  336. bindsym Escape mode "default"
  337. }
  338. ### Precise Resize ### {{{
  339. mode "resize_precise" {
  340. bindsym h resize shrink left 1 px or 1 ppt
  341. bindsym j resize shrink down 1 px or 1 ppt
  342. bindsym k resize shrink up 1 px or 1 ppt
  343. bindsym l resize shrink right 1 px or 1 ppt
  344. bindsym Shift+H resize grow left 1 px or 1 ppt
  345. bindsym Shift+J resize grow down 1 px or 1 ppt
  346. bindsym Shift+K resize grow up 1 px or 1 ppt
  347. bindsym Shift+L resize grow right 1 px or 1 ppt
  348. ## Same bindings, but for the arrow keys
  349. bindsym Left resize shrink left 1 px or 1 ppt
  350. bindsym Down resize shrink down 1 px or 1 ppt
  351. bindsym Up resize shrink up 1 px or 1 ppt
  352. bindsym Right resize shrink right 1 px or 1 ppt
  353. bindsym Shift+Left resize grow left 1 px or 1 ppt
  354. bindsym Shift+Down resize grow down 1 px or 1 ppt
  355. bindsym Shift+Up resize grow up 1 px or 1 ppt
  356. bindsym Shift+Right resize grow right 1 px or 1 ppt
  357. ## Return to normal resize
  358. bindsym p mode "resize"
  359. ## Back to normal: Enter or Escape
  360. bindsym Return mode "default"
  361. bindsym Escape mode "default"
  362. }
  363. ### End Precise Resize ### }}}
  364. bindsym $mod+r mode "resize"
  365. ### End Resize Mode ### }}}
  366. ### Control Pianobar Mode ### {{{
  367. mode "control-pianobar" {
  368. bindsym p exec --no-startup-id ~/.config/pianobar/control-pianobar.sh play, mode "default"
  369. bindsym q exec --no-startup-id ~/.config/pianobar/control-pianobar.sh quit, mode "default"
  370. bindsym h exec --no-startup-id ~/.config/pianobar/control-pianobar.sh history, mode "default"
  371. bindsym n exec --no-startup-id ~/.config/pianobar/control-pianobar.sh next, mode "default"
  372. bindsym t exec --no-startup-id ~/.config/pianobar/control-pianobar.sh tired, mode "default"
  373. bindsym s exec --no-startup-id ~/.config/pianobar/control-pianobar.sh switchstation, mode "default"
  374. bindsym \, exec --no-startup-id ~/.config/pianobar/control-pianobar.sh previousstation, mode "default"
  375. bindsym . exec --no-startup-id ~/.config/pianobar/control-pianobar.sh nextstation, mode "default"
  376. bindsym l exec --no-startup-id ~/.config/pianobar/control-pianobar.sh love, mode "default"
  377. bindsym b exec --no-startup-id ~/.config/pianobar/control-pianobar.sh ban, mode "default"
  378. bindsym e exec --no-startup-id ~/.config/pianobar/control-pianobar.sh explain, mode "default"
  379. bindsym c exec --no-startup-id ~/.config/pianobar/control-pianobar.sh current, mode "default"
  380. ## back to normal: Enter or Escape
  381. bindsym Return mode "default"
  382. bindsym Escape mode "default"
  383. }
  384. bindsym $mod+m mode "control-pianobar"
  385. ### End Control Pianobar Mode ### }}}
  386. ## xrandr mode?
  387. ### End i3 Modes ### }}}
  388. ### Window Treatments ### {{{
  389. ## (adding "(?i)" means ignore case)
  390. ### Program Floating ### {{{
  391. for_window [class="mpv|feh|Pinentry|Gnome-calculator"] floating enable
  392. for_window [title="Steam - Update*|Steam - Self Updater|Event Tester|termdown"] floating enable
  393. ## Make wicd-curses and terminal_velocity pop up bigger, and centered
  394. ## Added second criteria to reduce false positives
  395. for_window [class="URxvt"] [title="wicd-curses|terminal_velocity"] floating enable, resize shrink width 10000px, resize grow width 800px, resize shrink height 10000px, resize grow height 600px, move position 525 225
  396. for_window [class="QtPass"] floating enable, resize shrink width 10000px, resize grow width 800px, resize shrink height 10000px, resize grow height 600px, move position 525 225
  397. ### End Program Floating ### }}}
  398. ## Disable border
  399. for_window [class="mpv|URxvt|(?i)chromium|terminator|qutebrowser|manaplus|(?i)firefox"] border 1pixel
  400. ## Tab view
  401. for_window [class="Virt-manager"] focus child, layout tabbed, focus
  402. ### Deal with pop ups ### {{{
  403. for_window [window_role="pop-up"] floating enable
  404. for_window [window_role="task_dialog"] floating enable
  405. for_window [title="Preferences$"] floating enable
  406. ### End Popups ### }}}
  407. ### Scratchpad ### {{{
  408. #for_window [title="nvPY"] move scratchpad
  409. ### End Scratchpad ### }}}
  410. ### End Window Treatments ### }}}
  411. ### Assign Application Workspace ### {{{
  412. assign [class="(?i)spacefm"] $ws7
  413. ### End Assign Application Workspace ### }}}
  414. ### Bar Settings ### {{{
  415. # Start i3bar to display a workspace bar (plus the system information i3status
  416. # finds out, if available)
  417. #bar {
  418. #status_command i3status
  419. #tray_output primary
  420. #}
  421. bar {
  422. i3bar_command ~/.i3/lemonbar/i3_lemonbar.sh
  423. binding_mode_indicator yes
  424. ## This isn't working? primary display set to lvms1.
  425. #tray_output primary
  426. }
  427. ### End Bar Settings ### }}}
  428. ### Exec Programs ### {{{
  429. exec --no-startup-id [ "$(xrandr | grep -o eDP1)" = "eDP1" ] && xrandr --output eDP1 --primary
  430. exec --no-startup-id [ -e $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap
  431. ## Set pulseaudio bell sound, and set volume
  432. exec --no-startup-id pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga bell && pactl load-module module-x11-bell sample=bell && xset b 75
  433. exec --no-startup-id compton -b
  434. #exec srandrd autorandr -c ## One day, I may use this if I have a dock set up at home/work.
  435. exec srandrd ~/projects/personal/scripts/hdmi.sh ## For now, this auto connects to any monitor, and adds it to the right.
  436. exec --no-startup-id nitrogen --restore
  437. exec --no-startup-id conky -qc $HOME/.i3/conky/back_log.conkyrc
  438. exec --no-startup-id conky -qc $HOME/.i3/conky/back_backups.conkyrc
  439. exec --no-startup-id conky -qc $HOME/.i3/conky/back_cal.conkyrc
  440. exec --no-startup-id conky -qc $HOME/.i3/conky/back_task.conkyrc
  441. exec --no-startup-id xss-lock -- i3lock -e -c 2E3436
  442. exec --no-startup-id redshift
  443. exec --no-startup-id dropbox start
  444. exec --no-startup-id touchegg
  445. exec --no-startup-id unclutter
  446. #exec --no-startup-id clipster -d
  447. ## Having wonkyness with default python being python2.7
  448. exec --no-startup-id python3 /usr/local/sbin/clipster -d
  449. exec --no-startup-id mpd
  450. exec --no-startup-id i3-msg "workspace $ws7; exec /usr/bin/spacefm"
  451. exec --no-startup-id i3-msg "workspace $ws3; exec $HOME/bin/qutebrowser"
  452. exec --no-startup-id i3-msg "workspace $ws1; exec /usr/bin/urxvt"
  453. exec --no-startup-id sleep 30 && pkill -USR1 redshift
  454. ### End Exec Programs ### }}}