diff --git a/dotfiles/i3.org b/dotfiles/i3.org index b89253e..5312a88 100644 --- a/dotfiles/i3.org +++ b/dotfiles/i3.org @@ -1,7 +1,7 @@ #+TITLE: I3 Configuration #+PROPERTY: header-args:conf+ :comments both #+PROPERTY: header-args:conf+ :mkdirp yes -#+PROPERTY: header-args:conf+ :tangle ~/.i3/config +#+PROPERTY: header-args:conf+ :tangle ~/.config/i3/config * Mod Key #+BEGIN_SRC conf @@ -49,55 +49,54 @@ bindsym XF86LaunchB fullscreen toggle * Start Applications #+begin_src conf -# TODO -# Start program launcher -bindsym $mod+d exec --no-startup-id rofi -show run -# Windows Switch -bindsym $mod+w exec --no-startup-id rofi -show window -# CheatSheets -bindsym $mod+Shift+c exec --no-startup-id rofi -show CheatSheets -modi CheatSheets:~/scripts/rofi_cheatsheets.sh -# Program Launcher with Icons -# bindsym $mod+Shift+d exec --no-startup-id rofi -show drun -show-icons -# Launch categorized menu -bindsym $mod+z exec --no-startup-id rofimenu -# Bookmarks -bindsym $mod+Shift+f exec --no-startup-id buku_run -# Passwords -bindsym $mod+Shift+p exec --no-startup-id rofi-pass -# Start Terminal -bindsym $mod+Return exec termite -# Tmux Terminal -bindsym $mod+Shift+Return exec termite -e 'tmux' -# Configuration application -bindsym $mod+Ctrl+b exec termite -e 'bmenu' -# Start Command line Calendar -bindsym $mod+c exec termite -e "khal interactive" -# Start GUI Calendar (Google calendar) -# bindsym $mod+Shift+c exec qutebrowser https://calendar.google.com/ -# File Manager -bindsym $mod+o exec urxvt -e "ranger" -# GUI File Manager -# bindsym $mod+Shift+o exec pcmanfm -# Mail: Neomutt -bindsym $mod+m exec termite -e "tmuxinator start neomutt" -# Music Manager: NCMPCPP -# bindsym $mod+Shift+p exec termite -e "ncmpcpp" -# Browser -bindsym $mod+i exec qutebrowser -# Sound Manager -bindsym $mod+Ctrl+m exec pavucontrol -# Kill one application -bindsym $mod+Ctrl+x --release exec --no-startup-id xkill -# Kill and restart Notification Manager -bindsym $mod+Shift+n --release exec "killall dunst; exec notify-send 'restart dunst'" + # Start program launcher + bindsym $mod+d exec --no-startup-id rofi -show run + # Windows Switch + bindsym $mod+w exec --no-startup-id rofi -show window + # CheatSheets + bindsym $mod+Shift+c exec --no-startup-id rofi -show CheatSheets -modi CheatSheets:~/scripts/rofi_cheatsheets.sh + # Program Launcher with Icons + # bindsym $mod+Shift+d exec --no-startup-id rofi -show drun -show-icons + # Launch categorized menu + bindsym $mod+z exec --no-startup-id rofimenu + # Bookmarks + bindsym $mod+Shift+F exec --no-startup-id $HOME/bin/buku_run + # Passwords + bindsym $mod+Shift+P exec --no-startup-id pass clip + # Start Terminal + bindsym $mod+Return exec termite + # Tmux Terminal + bindsym $mod+Shift+Return exec termite -e 'tmux' + # Configuration application + bindsym $mod+Ctrl+B exec termite -e 'bmenu' + # Start Command line Calendar + bindsym $mod+c exec termite -e "khal interactive" + # Start GUI Calendar (Google calendar) + # bindsym $mod+Shift+c exec qutebrowser https://calendar.google.com/ + # File Manager + bindsym $mod+o exec urxvt -e "ranger" + # GUI File Manager + # bindsym $mod+Shift+o exec pcmanfm + # Mail: Neomutt + bindsym $mod+m exec termite -e "tmuxinator start neomutt" + # Music Manager: NCMPCPP + # bindsym $mod+Shift+p exec termite -e "ncmpcpp" + # Browser + bindsym $mod+i exec qutebrowser + # Sound Manager + bindsym $mod+Ctrl+m exec pavucontrol + # Kill one application + bindsym $mod+Ctrl+x --release exec --no-startup-id xkill + # Kill and restart Notification Manager + bindsym $mod+Shift+n --release exec "killall dunst; exec notify-send 'restart dunst'" -# Keyboard Deadkey -# TODO - Better keybindings -bindsym $mod+Ctrl+d exec --no-startup-id setxkbmap -layout us -variant intl -option caps:escape -bindsym $mod+Shift+d exec --no-startup-id setxkbmap -layout us -option caps:escape -# Toggle poylbar -bindsym $mod+t exec --no-startup-id ~/.config/polybar/bin/toggle.sh bottom -bindsym $mod+Shift+t exec --no-startup-id ~/.config/polybar/bin/toggle.sh top + # Keyboard Deadkey + # TODO - Better keybindings + bindsym $mod+Ctrl+d exec --no-startup-id setxkbmap -layout us -variant intl -option caps:escape + bindsym $mod+Shift+d exec --no-startup-id setxkbmap -layout us -option caps:escape + # Toggle poylbar + bindsym $mod+t exec --no-startup-id ~/.config/polybar/bin/toggle.sh bottom + bindsym $mod+Shift+t exec --no-startup-id ~/.config/polybar/bin/toggle.sh top #+end_src * Vim Anywhere @@ -112,7 +111,7 @@ bindsym $mod+Print --release exec --no-startup-id i3-scrot -w bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s #+end_src -* change focus +* Change focus #+begin_src conf bindsym $mod+h focus left bindsym $mod+j focus down @@ -201,71 +200,82 @@ bindsym $mod+BackSpace scratchpad show #+end_src * Custom Cratchpad for Quick Access +** Weechat +#+begin_src conf + for_window [instance="scratch-weechat"] scratchpad show; + exec termite --name="scratch-weechat" --exec="weechat" + for_window [instance="scratch-weechat"] floating enable; + for_window [instance="scratch-weechat"] move position 240 px 125 px; + for_window [instance="scratch-weechat"] resize set 1200 px 800 px; + for_window [instance="scratch-weechat"] move scratchpad; +#+end_src + ** Music with ncmpcpp #+begin_src conf -for_window [instance="scratch-ncmpcpp"] scratchpad show; -exec termite --name="scratch-ncmpcpp" --exec="ncmpcpp" -for_window [instance="scratch-ncmpcpp"] floating enable; -for_window [instance="scratch-ncmpcpp"] move position 440 px 225 px; -for_window [instance="scratch-ncmpcpp"] resize set 800 px 600 px; -for_window [instance="scratch-ncmpcpp"] move scratchpad; + for_window [instance="scratch-ncmpcpp"] scratchpad show; + exec termite --name="scratch-ncmpcpp" --exec="ncmpcpp" + for_window [instance="scratch-ncmpcpp"] floating enable; + for_window [instance="scratch-ncmpcpp"] move position 440 px 225 px; + for_window [instance="scratch-ncmpcpp"] resize set 800 px 600 px; + for_window [instance="scratch-ncmpcpp"] move scratchpad; #+end_src ** RSS Feed with NewsBoat #+begin_src conf -for_window [instance="scratch-newsboat"] scratchpad show; -exec termite --name="scratch-newsboat" --exec="tmuxinator start newsboat" -for_window [instance="scratch-newsboat"] floating enable; -for_window [instance="scratch-newsboat"] move position 240 px 125 px; -for_window [instance="scratch-newsboat"] resize set 1200 px 800 px; -for_window [instance="scratch-newsboat"] move scratchpad; + for_window [instance="scratch-newsboat"] scratchpad show; + exec termite --name="scratch-newsboat" --exec="tmuxinator start newsboat" + for_window [instance="scratch-newsboat"] floating enable; + for_window [instance="scratch-newsboat"] move position 240 px 125 px; + for_window [instance="scratch-newsboat"] resize set 1200 px 800 px; + for_window [instance="scratch-newsboat"] move scratchpad; #+end_src ** Calculator with insect #+begin_src conf -for_window [instance="scratch-insect"] scratchpad show; -exec termite --name="scratch-insect" --exec="insect" -for_window [instance="scratch-insect"] floating enable; -for_window [instance="scratch-insect"] move position 440 px 225 px; -for_window [instance="scratch-insect"] resize set 800 px 600 px; -for_window [instance="scratch-insect"] move scratchpad; + for_window [instance="scratch-insect"] scratchpad show; + exec termite --name="scratch-insect" --exec="insect" + for_window [instance="scratch-insect"] floating enable; + for_window [instance="scratch-insect"] move position 440 px 225 px; + for_window [instance="scratch-insect"] resize set 800 px 600 px; + for_window [instance="scratch-insect"] move scratchpad; #+end_src ** Mails with Neomutt #+begin_src conf -for_window [instance="scratch-neomutt"] scratchpad show; -exec termite --name="scratch-neomutt" --exec="neomutt" -for_window [instance="scratch-neomutt"] floating enable; -for_window [instance="scratch-neomutt"] move position 240 px 125 px; -for_window [instance="scratch-neomutt"] resize set 1200 px 800 px; -for_window [instance="scratch-neomutt"] move scratchpad; + for_window [instance="scratch-neomutt"] scratchpad show; + exec termite --name="scratch-neomutt" --exec="neomutt" + for_window [instance="scratch-neomutt"] floating enable; + for_window [instance="scratch-neomutt"] move position 240 px 125 px; + for_window [instance="scratch-neomutt"] resize set 1200 px 800 px; + for_window [instance="scratch-neomutt"] move scratchpad; #+end_src ** Ranger #+begin_src conf -for_window [instance="scratch-ranger"] scratchpad show; -exec urxvt -name scratch-ranger -e ranger -for_window [instance="scratch-ranger"] floating enable; -for_window [instance="scratch-ranger"] move position 240 px 125 px; -for_window [instance="scratch-ranger"] resize set 1200 px 800 px; -for_window [instance="scratch-ranger"] move scratchpad; + for_window [instance="scratch-ranger"] scratchpad show; + exec urxvt -name scratch-ranger -e ranger + for_window [instance="scratch-ranger"] floating enable; + for_window [instance="scratch-ranger"] move position 240 px 125 px; + for_window [instance="scratch-ranger"] resize set 1200 px 800 px; + for_window [instance="scratch-ranger"] move scratchpad; #+end_src ** Terminal #+begin_src conf -for_window [instance="scratch-termite"] scratchpad show; -exec termite --name="scratch-termite" -for_window [instance="scratch-termite"] floating enable; -for_window [instance="scratch-termite"] move position 440 px 225 px; -for_window [instance="scratch-termite"] resize set 800 px 600 px; -for_window [instance="scratch-termite"] move scratchpad; + for_window [instance="scratch-termite"] scratchpad show; + exec termite --name="scratch-termite" + for_window [instance="scratch-termite"] floating enable; + for_window [instance="scratch-termite"] move position 440 px 225 px; + for_window [instance="scratch-termite"] resize set 800 px 600 px; + for_window [instance="scratch-termite"] move scratchpad; #+end_src ** TODO Stratchpad Mode - Add scripts that is there is no windows with that name runs the windows and then displays it #+begin_src conf bindsym $mod+s mode "$mode_stratchpad" -set $mode_stratchpad (m)ails (p)layer (c)alc (s)hell (n)ews (r)anger +set $mode_stratchpad (w)eechat (m)ails (p)layer (c)alc (s)hell (n)ews (r)anger mode "$mode_stratchpad" { + bindsym w [instance="scratch-weechat"] scratchpad show; mode "default" bindsym p [instance="scratch-ncmpcpp"] scratchpad show; mode "default" bindsym n [instance="scratch-newsboat"] scratchpad show; mode "default" bindsym s [instance="scratch-termite"] scratchpad show; mode "default" @@ -283,71 +293,68 @@ mode "$mode_stratchpad" { To display names or symbols instead of plain workspace numbers you can use something like: =set $ws1 1:mail= and =set $ws2 2:=. #+begin_src conf -set $ws1 1: -set $ws2 2: -set $ws3 3: -set $ws4 4: -set $ws5 5: -set $ws6 6: -set $ws7 7: -set $ws8 8: + set $ws1 1: + set $ws2 2: + set $ws3 3: + set $ws4 4: + set $ws5 5: + set $ws6 6: + set $ws7 7: + set $ws8 8: #+end_src * Switch to workspace #+begin_src conf -bindsym $mod+1 workspace $ws1 -bindsym $mod+2 workspace $ws2 -bindsym $mod+3 workspace $ws3 -bindsym $mod+4 workspace $ws4 -bindsym $mod+5 workspace $ws5 -bindsym $mod+6 workspace $ws6 -bindsym $mod+7 workspace $ws7 -bindsym $mod+8 workspace $ws8 + bindsym $mod+1 workspace $ws1 + bindsym $mod+2 workspace $ws2 + bindsym $mod+3 workspace $ws3 + bindsym $mod+4 workspace $ws4 + bindsym $mod+5 workspace $ws5 + bindsym $mod+6 workspace $ws6 + bindsym $mod+7 workspace $ws7 + bindsym $mod+8 workspace $ws8 #+end_src * Navigate Workspace ** Workspace back and forth (with/without active container) #+begin_src conf -workspace_auto_back_and_forth yes -bindsym $mod+b workspace back_and_forth -bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth + workspace_auto_back_and_forth yes + bindsym $mod+b workspace back_and_forth + bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth #+end_src ** Move to prev/next workspace #+begin_src conf -bindsym $mod+n workspace next -bindsym $mod+p workspace prev + bindsym $mod+n workspace next + bindsym $mod+p workspace prev #+end_src * Move focused container to workspace #+begin_src conf -bindsym $mod+Ctrl+1 move container to workspace $ws1 -bindsym $mod+Ctrl+2 move container to workspace $ws2 -bindsym $mod+Ctrl+3 move container to workspace $ws3 -bindsym $mod+Ctrl+4 move container to workspace $ws4 -bindsym $mod+Ctrl+5 move container to workspace $ws5 -bindsym $mod+Ctrl+6 move container to workspace $ws6 -bindsym $mod+Ctrl+7 move container to workspace $ws7 -bindsym $mod+Ctrl+8 move container to workspace $ws8 + bindsym $mod+Ctrl+1 move container to workspace $ws1 + bindsym $mod+Ctrl+2 move container to workspace $ws2 + bindsym $mod+Ctrl+3 move container to workspace $ws3 + bindsym $mod+Ctrl+4 move container to workspace $ws4 + bindsym $mod+Ctrl+5 move container to workspace $ws5 + bindsym $mod+Ctrl+6 move container to workspace $ws6 + bindsym $mod+Ctrl+7 move container to workspace $ws7 + bindsym $mod+Ctrl+8 move container to workspace $ws8 #+end_src * Move to workspace with focused container #+begin_src conf -bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 -bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 -bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 -bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 -bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 -bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 -bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 -bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 + bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 + bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 + bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 + bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 + bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 + bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 + bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 + bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 #+end_src * Open applications on specific workspaces #+begin_src conf - # assign [class="qutebrowser"] $ws1 - # assign [class="Pcmanfm"] $ws2 - # Matlab Figures assign[title="^Fig"] $ws6 for_window [title="^Fig"] layout tabbed @@ -384,99 +391,70 @@ bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 for_window [class="Yad"] floating enable #+end_src -* reload the configuration file -#+begin_src conf -# bindsym $mod+Shift+c reload -#+end_src - -* restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +* Restart i3 inplace (preserves your layout/session, can be used to upgrade i3) #+begin_src conf bindsym $mod+Shift+r restart #+end_src -* exit i3 (logs you out of your X session) -#+begin_src conf -# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" -#+end_src - * Set shut down, restart and locking features #+begin_src conf -bindsym $mod+0 mode "$mode_system" -# TODO - Power Key, if "ignored" in /etc/systemd/logind.conf -bindcode 124 mode "$mode_system" + bindsym $mod+0 mode "$mode_system" + # TODO - Power Key, if "ignored" in /etc/systemd/logind.conf + bindcode 124 mode "$mode_system" -set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown -mode "$mode_system" { - bindsym l exec --no-startup-id i3exit lock, mode "default" - bindsym s exec --no-startup-id i3exit suspend, mode "default" - bindsym u exec --no-startup-id i3exit switch_user, mode "default" - bindsym e exec --no-startup-id i3exit logout, mode "default" - bindsym h exec --no-startup-id i3exit hibernate, mode "default" - bindsym r exec --no-startup-id i3exit reboot, mode "default" - bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" + set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown + mode "$mode_system" { + bindsym l exec --no-startup-id i3exit lock, mode "default" + bindsym s exec --no-startup-id i3exit suspend, mode "default" + bindsym u exec --no-startup-id i3exit switch_user, mode "default" + bindsym e exec --no-startup-id i3exit logout, mode "default" + bindsym h exec --no-startup-id i3exit hibernate, mode "default" + bindsym r exec --no-startup-id i3exit reboot, mode "default" + bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" - # exit system mode: "Enter" or "Escape" - bindsym Return mode "default" - bindsym Escape mode "default" -} + # exit system mode: "Enter" or "Escape" + bindsym Return mode "default" + bindsym Escape mode "default" + } #+end_src * Command Mode #+begin_src conf -bindsym $mod+space mode "command" + bindsym $mod+space mode "command" -mode "command" { - # Command line Calendar Client (khal) - bindsym c exec termite -e "khal interactive"; mode "default" - # GUI Calendar (Google Calendar) - bindsym Shift+c exec qutebrowser https://calendar.google.com/; mode "default" - # Ranger - bindsym r exec urxvt -e "ranger"; mode "default" - # pcmanfm: GUI file manager - bindsym Shift+r exec pcmanfm; mode "default" - # Mails with neomutt - bindsym m exec termite -e "tmuxinator start neomutt"; mode "default" - # Mails with GUI - bindsym Shift+m exec qutebrowser https://mail.google.com/ https://mail.ulg.ac.be/ https://ssl.esrf.fr/+CSCO+0h75676763663A2F2F6A6A6A662E726665732E7365++/rc/?_task=mail&_mbox=INBOX; mode "default" - # Music with ncmpcpp - bindsym p exec termite --exec="ncmpcpp"; mode "default" - # Browser with qutebrowser - bindsym i exec qutebrowser; mode "default" - # Browser with firefox - bindsym Shift+i exec firefox; mode "default" + mode "command" { + # Command line Calendar Client (khal) + bindsym c exec termite -e "khal interactive"; mode "default" + # GUI Calendar (Google Calendar) + bindsym Shift+c exec qutebrowser https://calendar.google.com/; mode "default" + # Ranger + bindsym r exec urxvt -e "ranger"; mode "default" + # pcmanfm: GUI file manager + bindsym Shift+r exec pcmanfm; mode "default" + # Mails with neomutt + bindsym m exec termite -e "tmuxinator start neomutt"; mode "default" + # Music with ncmpcpp + bindsym p exec termite --exec="ncmpcpp"; mode "default" + # Browser with qutebrowser + bindsym i exec qutebrowser; mode "default" + # Browser with firefox + bindsym Shift+i exec firefox; mode "default" + # Emacs Client + bindsym e exec emacsclient -create-frame --alternate-editor=""; mode "default" + # Full Emacs - Usefull when installing packages + bindsym Shift+e exec emacs; mode "default" - # exit resize mode: Enter or Escape - bindsym Escape mode "default" -} -#+end_src - -* Emacs Mode -#+begin_src conf -bindsym $mod+e mode "emacs" - -mode "emacs" { - # Emacs Client - bindsym e exec emacsclient -create-frame --alternate-editor=""; mode "default" - # Full Emacs - Usefull when installing packages - bindsym Shift+e exec emacs; mode "default" - # Bibliography Managmenet with Emacs and Helm-Bibtex - bindsym b exec emacsclient -create-frame --alternate-editor="" --eval '(helm-bibtex)'; mode "default" - # Capture - bindsym c exec emacsclient -create-frame --alternate-editor="" --eval '(org-capture)'; mode "default" - # TODO Mails with Emacs - # bindsym m exec emacsclient -create-frame --alternate-editor="" --eval '(mu4e)'; mode "default" - - # exit resize mode: Enter or Escape - bindsym Escape mode "default" -} + # exit resize mode: Enter or Escape + bindsym Escape mode "default" + } #+end_src * Resize #+begin_src conf -bindsym $mod+Shift+y resize shrink width 10 px or 10 ppt -bindsym $mod+Shift+u resize grow height 10 px or 10 ppt -bindsym $mod+Shift+i resize shrink height 10 px or 10 ppt -bindsym $mod+Shift+o resize grow width 10 px or 10 ppt + bindsym $mod+Shift+y resize shrink width 10 px or 10 ppt + bindsym $mod+Shift+u resize grow height 10 px or 10 ppt + bindsym $mod+Shift+i resize shrink height 10 px or 10 ppt + bindsym $mod+Shift+o resize grow width 10 px or 10 ppt #+end_src * Autostart Background Applications @@ -515,9 +493,11 @@ exec --no-startup-id redshift # Emacs Daemon exec --no-startup-id /usr/bin/emacs --fg-daemon +# Megasync +exec --no-startup-id megasync + # TODO - Start polybar exec_always --no-startup-id $HOME/.config/polybar/bin/launch.sh -# exec_always --no-startup-id $HOME/.i3/scripts/polybar_wrapper.sh launch #+end_src * Old autostart Applications