<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <!-- 2021-04-25 dim. 19:10 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>Simple X Hotkey Daemon</title> <meta name="author" content="Dehaeze Thomas" /> <meta name="generator" content="Org Mode" /> <link rel="stylesheet" type="text/css" href="./dist/style.css"/> <script type="text/javascript" src="./dist/script.js"></script> </head> <body> <div id="org-div-home-and-up"> <a accesskey="h" href="./index.html"> UP </a> | <a accesskey="H" href="./index.html"> HOME </a> </div><div id="content"> <h1 class="title">Simple X Hotkey Daemon</h1> <div id="table-of-contents"> <h2>Table of Contents</h2> <div id="text-table-of-contents"> <ul> <li><a href="#orgc1e18e6">Basic</a></li> <li><a href="#orgeadcbf4">Multimedia keys</a> <ul> <li><a href="#orgd68d181">Sound</a></li> <li><a href="#org24e45ab">Backlight</a></li> <li><a href="#org4c0670a">Change Tracks</a></li> <li><a href="#orgd572bed">Print Screen</a></li> <li><a href="#orga25cc09">Other</a></li> </ul> </li> <li><a href="#orgfa5db4a"><code>Super + key</code> - Start Applications</a></li> <li><a href="#orgda8c5e4"><code>Super + Shift</code> - Managing Applications</a></li> <li><a href="#orgad54cb1"><code>Super + Space</code> - Command Mode</a></li> <li><a href="#org655f822">BSPWM related</a> <ul> <li><a href="#orgb21b9fa">BSPWM hotkeys</a></li> <li><a href="#org7784897">Monocle Layout</a></li> <li><a href="#orgbe96bd6">Set the window State</a></li> <li><a href="#org8a5891f">Sticky Window</a></li> <li><a href="#org9363f85">Focus and Swap</a></li> <li><a href="#org39668cf">Preselect</a></li> <li><a href="#orgefaac3d">Resize</a></li> </ul> </li> <li><a href="#orgb8b77ba">I3 related</a> <ul> <li><a href="#orgf0994dd">Kill Window</a></li> <li><a href="#orgf0e6469">Set the window State</a></li> <li><a href="#org993d527">focus/swap</a></li> <li><a href="#org1163075">Preselect</a></li> <li><a href="#org523987d">Resize</a></li> </ul> </li> </ul> </div> </div> <div id="outline-container-orgc1e18e6" class="outline-2"> <h2 id="orgc1e18e6">Basic</h2> <div class="outline-text-2" id="text-orgc1e18e6"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Kill Windows</span> super + ctrl + x xkill </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">make sxhkd reload its configuration files:</span> super + Escape pkill -usr1 -x sxhkd; notify-send <span class="org-string">'sxhkd'</span> <span class="org-string">'Reloaded config'</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Update Polybar</span> super + shift + r polybar-msg cmd restart </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Exit Screen</span> XF86PowerOff i3exit <span class="org-comment-delimiter"># </span><span class="org-comment">Exit Screen</span> super + <span class="org-highlight-numbers-number">0</span> i3exit </pre> </div> <p> Change Keyboard Layout: </p> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Change keyboard to US-International layout</span> super + ctrl + d setxkbmap -layout us -variant intl -option caps:escape <span class="org-comment-delimiter"># </span><span class="org-comment">Change keyboard to US layout</span> super + shift + d setxkbmap -layout us -option caps:escape </pre> </div> </div> </div> <div id="outline-container-orgeadcbf4" class="outline-2"> <h2 id="orgeadcbf4">Multimedia keys</h2> <div class="outline-text-2" id="text-orgeadcbf4"> </div> <div id="outline-container-orgd68d181" class="outline-3"> <h3 id="orgd68d181">Sound</h3> <div class="outline-text-3" id="text-orgd68d181"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Mute/Unmute</span> XF86AudioMute amixer -D pulse sset Master toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Increase Volume</span> XF86AudioRaiseVolume amixer -D pulse sset Master 2%+ <span class="org-comment-delimiter"># </span><span class="org-comment">Decrease Volume</span> XF86AudioLowerVolume amixer -D pulse sset Master 2%- </pre> </div> </div> </div> <div id="outline-container-org24e45ab" class="outline-3"> <h3 id="org24e45ab">Backlight</h3> <div class="outline-text-3" id="text-org24e45ab"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Increase Backlight</span> XF86MonBrightnessUp xbacklight -inc <span class="org-highlight-numbers-number">10</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Descrease Backlight</span> XF86MonBrightnessDown xbacklight -dec <span class="org-highlight-numbers-number">10</span> </pre> </div> </div> </div> <div id="outline-container-org4c0670a" class="outline-3"> <h3 id="org4c0670a">Change Tracks</h3> <div class="outline-text-3" id="text-org4c0670a"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Play/Pause music</span> super + period mpc toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Previous/Next music</span> super + {greater,less} mpc {next,prev} </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Play/Pause music</span> XF86AudioPlay mpc toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Next music</span> XF86AudioNext mpc next <span class="org-comment-delimiter"># </span><span class="org-comment">Previous music</span> XF86AudioPrev mpc prev </pre> </div> </div> </div> <div id="outline-container-orgd572bed" class="outline-3"> <h3 id="orgd572bed">Print Screen</h3> <div class="outline-text-3" id="text-orgd572bed"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Screenshot script</span> Print ~/.local/bin/screenshot <span class="org-comment-delimiter"># </span><span class="org-comment">Switch Windows</span> XF86Display rofi -show window </pre> </div> </div> </div> <div id="outline-container-orga25cc09" class="outline-3"> <h3 id="orga25cc09">Other</h3> <div class="outline-text-3" id="text-orga25cc09"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Run Command</span> XF86Search rofi -show run </pre> </div> </div> </div> </div> <div id="outline-container-orgfa5db4a" class="outline-2"> <h2 id="orgfa5db4a"><code>Super + key</code> - Start Applications</h2> <div class="outline-text-2" id="text-orgfa5db4a"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Switch Windows</span> super + w rofi -show window <span class="org-comment-delimiter"># </span><span class="org-comment">program launcher</span> super + d rofi -show run <span class="org-comment-delimiter"># </span><span class="org-comment">categorized menu</span> super + z rofi -show drun </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Start Terminal</span> super + Return $TERMINAL <span class="org-comment-delimiter"># </span><span class="org-comment">File Manager</span> super + o $TERMINAL -e <span class="org-string">"tmux new-session -A -s ranger ranger"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Browser</span> super + i qutebrowser <span class="org-comment-delimiter"># </span><span class="org-comment">Mails with neomutt</span> super + m $TERMINAL -e <span class="org-string">"tmux new-session -A -s neomutt neomutt"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Emacs Client</span> super + e <span class="org-variable-name">emacsclient -create-frame --alternate-editor</span>=<span class="org-string">""</span> </pre> </div> </div> </div> <div id="outline-container-orgda8c5e4" class="outline-2"> <h2 id="orgda8c5e4"><code>Super + Shift</code> - Managing Applications</h2> <div class="outline-text-2" id="text-orgda8c5e4"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Network Manager</span> super + shift + w $TERMINAL -e <span class="org-string">'sudo nmtui'</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Bluetooth Manager</span> super + shift + b blueman-manager <span class="org-comment-delimiter"># </span><span class="org-comment">Calculator</span> super + shift + c rofi-calc <span class="org-comment-delimiter"># </span><span class="org-comment">Sound Manager</span> super + shift + s pavucontrol </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Bookmarks</span> super + shift + f bukurun <span class="org-comment-delimiter"># </span><span class="org-comment">Passwords</span> super + shift + p rofi-pass </pre> </div> </div> </div> <div id="outline-container-orgad54cb1" class="outline-2"> <h2 id="orgad54cb1"><code>Super + Space</code> - Command Mode</h2> <div class="outline-text-2" id="text-orgad54cb1"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Command line Calendar Client (khal)</span> super + space ; c $TERMINAL -e <span class="org-string">"khal interactive"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">GUI Calendar (Google Calendar)</span> super + space ; shift + c $BROWSER https://calendar.google.com/ <span class="org-comment-delimiter"># </span><span class="org-comment">pcmanfm: GUI file manager</span> super + space ; o pcmanfm; <span class="org-comment-delimiter"># </span><span class="org-comment">Download with Aria2c</span> super + space ; d $TERMINAL -e <span class="org-string">"tmux new-session -A -s aria2p aria2p --port 6800 --host http://dl.tdehaeze.xyz --secret $(pass dl.tdehaeze.xyz/tdehaeze | sed -n 1p)"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Run another instance of Neomutt in read-only mode</span> super + space ; m $TERMINAL -e <span class="org-string">"neomutt -R"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Weechat</span> super + space ; w $TERMINAL -e <span class="org-string">"tmux new-session -A -s weechat weechat"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">News with newsboat</span> super + space ; n $TERMINAL -e <span class="org-string">"tmux new-session -A -s newsboat newsboat"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Music with ncmpcpp</span> super + space ; p $TERMINAL -e <span class="org-string">"tmux new-session -A -s ncmpcpp ncmpcpp"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Print Screen</span> super + space ; shift + p $HOME/.local/bin/mopidy-restart <span class="org-comment-delimiter"># </span><span class="org-comment">Default Browser</span> super + space ; i $BROWSER; <span class="org-comment-delimiter"># </span><span class="org-comment">Start Torrent Managaer</span> super + space ; t $TERMINAL -e <span class="org-string">"tremc"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Emacs</span> super + space ; e <span class="org-variable-name">emacsclient -create-frame --alternate-editor</span>=<span class="org-string">""</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Weather</span> super + space ; shift + w weather; </pre> </div> </div> </div> <div id="outline-container-org655f822" class="outline-2"> <h2 id="org655f822">BSPWM related</h2> <div class="outline-text-2" id="text-org655f822"> </div> <div id="outline-container-orgb21b9fa" class="outline-3"> <h3 id="orgb21b9fa">BSPWM hotkeys</h3> <div class="outline-text-3" id="text-orgb21b9fa"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">quit/restart bspwm</span> super + alt + {q,r} bspc {quit,wm -r} <span class="org-comment-delimiter"># </span><span class="org-comment">close and kill</span> super + {_,shift + }q bspc node -{c,k} </pre> </div> </div> </div> <div id="outline-container-org7784897" class="outline-3"> <h3 id="org7784897">Monocle Layout</h3> <div class="outline-text-3" id="text-org7784897"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">alternate between the tiled and monocle layout</span> super + m bspc desktop -l next <span class="org-comment-delimiter"># </span><span class="org-comment">focus the next/previous node in the current desktop</span> super + c bspc node -f next.local </pre> </div> </div> </div> <div id="outline-container-orgbe96bd6" class="outline-3"> <h3 id="orgbe96bd6">Set the window State</h3> <div class="outline-text-3" id="text-orgbe96bd6"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Set the window state to tiled</span> super + t bspc node -t tiled <span class="org-comment-delimiter"># </span><span class="org-comment">Toggle Fullscreen State</span> super + f if [ -z <span class="org-string">"$(bspc query -N -n focused.fullscreen)"</span> ]; then \ bspc node focused -t fullscreen; \ else \ bspc node focused -t tiled; \ fi <span class="org-comment-delimiter"># </span><span class="org-comment">Toggle Floating State</span> super + s if [ -z <span class="org-string">"$(bspc query -N -n focused.floating)"</span> ]; then \ bspc node focused -t floating; \ else \ bspc node focused -t tiled; \ fi </pre> </div> </div> </div> <div id="outline-container-org8a5891f" class="outline-3"> <h3 id="org8a5891f">Sticky Window</h3> <div class="outline-text-3" id="text-org8a5891f"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">set the node flags</span> super + ctrl + y bspc node -g sticky </pre> </div> </div> </div> <div id="outline-container-org9363f85" class="outline-3"> <h3 id="org9363f85">Focus and Swap</h3> <div class="outline-text-3" id="text-org9363f85"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Focus/swap the node in the given direction</span> super + {_,shift + }{h,j,k,l} bspc node -{f,s} {west,south,north,east} <span class="org-comment-delimiter"># </span><span class="org-comment">focus the last Node</span> super + Tab bspc node -f last </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Focus the next/previous desktop in the current monitor</span> super + {p,n} bspc desktop -f {prev,next}.local <span class="org-comment-delimiter"># </span><span class="org-comment">focus the last Desktop</span> super + b bspc desktop -f last <span class="org-comment-delimiter"># </span><span class="org-comment">focus or send to the given desktop</span> super + {_,ctrl + }{1-9} bspc {desktop -f,node -d} <span class="org-string">'^{1-9}'</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Send and Focus to the given desktop</span> super + shift + {1-9} bspc node -d <span class="org-string">'^{1-9}'</span> --follow </pre> </div> </div> </div> <div id="outline-container-org39668cf" class="outline-3"> <h3 id="org39668cf">Preselect</h3> <div class="outline-text-3" id="text-org39668cf"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">preselect the direction</span> super + ctrl + {h,j,k,l} bspc node -p {west,south,north,east} <span class="org-comment-delimiter"># </span><span class="org-comment">preselect the ratio</span> <span class="org-comment-delimiter"># </span><span class="org-comment">super + ctrl + {1-9}</span> <span class="org-comment-delimiter"># </span><span class="org-comment">bspc node -o 0.{1-9}</span> <span class="org-comment-delimiter"># </span><span class="org-comment">cancel the preselection for the focused node</span> super + ctrl + space bspc node -p cancel </pre> </div> </div> </div> <div id="outline-container-orgefaac3d" class="outline-3"> <h3 id="orgefaac3d">Resize</h3> <div class="outline-text-3" id="text-orgefaac3d"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">expand a window by moving one of its side outward</span> super + alt + {h,j,k,l} bspc node -z {left -20 <span class="org-highlight-numbers-number">0</span>,bottom <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">20</span>,top <span class="org-highlight-numbers-number">0</span> -20,right <span class="org-highlight-numbers-number">20</span> <span class="org-highlight-numbers-number">0</span>} <span class="org-comment-delimiter"># </span><span class="org-comment">contract a window by moving one of its side inward</span> super + alt + shift + {h,j,k,l} bspc node -z {right -20 <span class="org-highlight-numbers-number">0</span>,top <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">20</span>,bottom <span class="org-highlight-numbers-number">0</span> -20,left <span class="org-highlight-numbers-number">20</span> <span class="org-highlight-numbers-number">0</span>} </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">move a floating window</span> super + {Left,Down,Up,Right} bspc node -v {-20 <span class="org-highlight-numbers-number">0</span>,<span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">20</span>,<span class="org-highlight-numbers-number">0</span> -20,<span class="org-highlight-numbers-number">20</span> <span class="org-highlight-numbers-number">0</span>} </pre> </div> </div> </div> </div> <div id="outline-container-orgb8b77ba" class="outline-2"> <h2 id="orgb8b77ba">I3 related</h2> <div class="outline-text-2" id="text-orgb8b77ba"> </div> <div id="outline-container-orgf0994dd" class="outline-3"> <h3 id="orgf0994dd">Kill Window</h3> <div class="outline-text-3" id="text-orgf0994dd"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">close and kill</span> super + q i3-msg kill </pre> </div> </div> </div> <div id="outline-container-orgf0e6469" class="outline-3"> <h3 id="orgf0e6469">Set the window State</h3> <div class="outline-text-3" id="text-orgf0e6469"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Set the window to full-screen</span> super + f i3-msg fullscreen toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Set the window to floating</span> super + s i3-msg floating toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Alternate between the tiled and normal layout</span> super + t i3-msg layout toggle tabbed split <span class="org-comment-delimiter"># </span><span class="org-comment">Change focus between tiling / floating windows</span> super + c i3-msg focus mode_toggle <span class="org-comment-delimiter"># </span><span class="org-comment">Sticky window</span> super + y i3-msg sticky toggle </pre> </div> </div> </div> <div id="outline-container-org993d527" class="outline-3"> <h3 id="org993d527">focus/swap</h3> <div class="outline-text-3" id="text-org993d527"> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Focus/swap the node in the given direction</span> super + {_,shift + }{h,Left} i3-msg {focus,move} left super + {_,shift + }{j,Down} i3-msg {focus,move} down super + {_,shift + }{k,Up} i3-msg {focus,move} up super + {_,shift + }{l,Right} i3-msg {focus,move} right </pre> </div> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Focus the next/previous desktop in the current monitor</span> super + {p,n} i3-msg workspace {prev,next} <span class="org-comment-delimiter"># </span><span class="org-comment">Focus the last Desktop</span> super + b i3-msg workspace back_and_forth <span class="org-comment-delimiter"># </span><span class="org-comment">Focus to the given desktop</span> super + {1-9} i3-msg workspace <span class="org-string">'{1-9}'</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Send to the given desktop</span> super + ctrl + {1-9} i3-msg move container to workspace <span class="org-string">'{1-9}'</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Focus and Send to the given desktop</span> super + shift + {1-9} <span class="org-variable-name">WP</span>={1-9} && i3-msg move container to workspace $WP && i3-msg workspace $WP </pre> </div> </div> </div> <div id="outline-container-org1163075" class="outline-3"> <h3 id="org1163075">Preselect</h3> <div class="outline-text-3" id="text-org1163075"> <p> Preselect the direction </p> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Set Horizontal Layout</span> super + ctrl + {h,l,Left,Right} i3-msg split h <span class="org-comment-delimiter"># </span><span class="org-comment">Set Vertical Layout</span> super + ctrl + {j,k,Up,Down} i3-msg split v </pre> </div> </div> </div> <div id="outline-container-org523987d" class="outline-3"> <h3 id="org523987d">Resize</h3> <div class="outline-text-3" id="text-org523987d"> <p> Expand/Shrink a window </p> <div class="org-src-container"> <pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Horizontal Shrink</span> super + alt + h i3-msg resize shrink width <span class="org-highlight-numbers-number">10</span> px or <span class="org-highlight-numbers-number">10</span> ppt <span class="org-comment-delimiter"># </span><span class="org-comment">Vertical Grow</span> super + alt + j i3-msg resize grow height <span class="org-highlight-numbers-number">10</span> px or <span class="org-highlight-numbers-number">10</span> ppt <span class="org-comment-delimiter"># </span><span class="org-comment">Vertical Shrink</span> super + alt + k i3-msg resize shrink height <span class="org-highlight-numbers-number">10</span> px or <span class="org-highlight-numbers-number">10</span> ppt <span class="org-comment-delimiter"># </span><span class="org-comment">Horizontal Grow</span> super + alt + l i3-msg resize grow width <span class="org-highlight-numbers-number">10</span> px or <span class="org-highlight-numbers-number">10</span> ppt </pre> </div> </div> </div> </div> </div> <div id="postamble" class="status"> <p class="author">Author: Dehaeze Thomas</p> <p class="date">Created: 2021-04-25 dim. 19:10</p> </div> </body> </html>