diff --git a/Library/LaunchAgents/me.00dani.hidutil-map.plist b/Library/LaunchAgents/me.00dani.hidutil-map.plist new file mode 100644 index 0000000..0dfdcca --- /dev/null +++ b/Library/LaunchAgents/me.00dani.hidutil-map.plist @@ -0,0 +1,23 @@ + + + + + Label + me.00dani.hidutil-map + ProgramArguments + + /usr/bin/hidutil + property + --set + + {"UserKeyMapping":[ + { + "HIDKeyboardModifierMappingSrc": 0x700000039, + "HIDKeyboardModifierMappingDst": 0x7000000E4 + } + ]} + + RunAtLoad + + + diff --git a/Library/LaunchAgents/me.00dani.mpd-now-playable.plist b/Library/LaunchAgents/me.00dani.mpd-notify-bitbar.plist similarity index 70% rename from Library/LaunchAgents/me.00dani.mpd-now-playable.plist rename to Library/LaunchAgents/me.00dani.mpd-notify-bitbar.plist index d75dde7..ae77291 100644 --- a/Library/LaunchAgents/me.00dani.mpd-now-playable.plist +++ b/Library/LaunchAgents/me.00dani.mpd-notify-bitbar.plist @@ -5,10 +5,12 @@ KeepAlive Label - me.00dani.mpd-now-playable + me.00dani.mpd-notify-bitbar ProgramArguments - /Users/dani/.local/bin/mpd-now-playable + zsh + -lc + exec mpd-notify-bitbar RunAtLoad diff --git a/dot-config/skhd/skhdrc b/dot-config/skhd/skhdrc new file mode 100644 index 0000000..2789486 --- /dev/null +++ b/dot-config/skhd/skhdrc @@ -0,0 +1,155 @@ +# open terminal +rctrl - return : ~/.local/bin/kit new-window --window-type os + +# focus window +rctrl - j : yabai -m window --focus next || yabai -m window --focus first +rctrl - k : yabai -m window --focus prev || yabai -m window --focus last +cmd - tab : yabai -m window --focus next || yabai -m window --focus first +cmd + shift - tab : yabai -m window --focus prev || yabai -m window --focus last + +# focus stacked window +rctrl - n : yabai -m window --focus stack.next || yabai -m window --focus stack.first +rctrl - p : yabai -m window --focus stack.prev || yabai -m window --focus stack.last + +# swap window +rctrl + shift - j : yabai -m window --swap next || yabai -m window --swap first +rctrl + shift - k : yabai -m window --swap prev || yabai -m window --swap last + +# balance size of windows (mod =) +rctrl - 0x18 : yabai -m space --balance + +# make floating window fill screen +# shift + alt - up : yabai -m window --grid 1:1:0:0:1:1 + +# make floating window fill left-half of screen +# shift + alt - left : yabai -m window --grid 1:2:0:0:1:1 + +# make floating window fill right-half of screen +# shift + alt - right : yabai -m window --grid 1:2:1:0:1:1 + +# create desktop, move window and follow focus - uses jq for parsing json (brew install jq) +rctrl + cmd - n : yabai -m space --create && \ + index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \ + yabai -m window --space "${index}" && \ + yabai -m space --focus "${index}" + +# create desktop and follow focus - uses jq for parsing json (brew install jq) +cmd + alt - n : yabai -m space --create && \ + index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \ + yabai -m space --focus "${index}" + +# destroy desktop +cmd + alt - w : yabai -m space --destroy + +# fast focus desktop +rctrl - x : yabai -m space --focus recent +rctrl - z : yabai -m space --focus prev +rctrl - c : yabai -m space --focus next +rctrl - 1 : yabai -m space --focus 1 +rctrl - 2 : yabai -m space --focus 2 +rctrl - 3 : yabai -m space --focus 3 +rctrl - 4 : yabai -m space --focus 4 +rctrl - 5 : yabai -m space --focus 5 +rctrl - 6 : yabai -m space --focus 6 +rctrl - 7 : yabai -m space --focus 7 +rctrl - 8 : yabai -m space --focus 8 +rctrl - 9 : yabai -m space --focus 9 +rctrl - 0 : yabai -m space --focus 10 + +# send window to desktop +shift + cmd - x : yabai -m window --space recent +shift + cmd - z : yabai -m window --space prev +shift + cmd - c : yabai -m window --space next +shift + rctrl - 1 : yabai -m window --space 1 +shift + rctrl - 2 : yabai -m window --space 2 +shift + rctrl - 3 : yabai -m window --space 3 +shift + rctrl - 4 : yabai -m window --space 4 +shift + rctrl - 5 : yabai -m window --space 5 +shift + rctrl - 6 : yabai -m window --space 6 +shift + rctrl - 7 : yabai -m window --space 7 +shift + rctrl - 8 : yabai -m window --space 8 +shift + rctrl - 9 : yabai -m window --space 9 +shift + rctrl - 0 : yabai -m window --space 10 + +# focus monitor +rctrl - w : yabai -m display --focus 1 +rctrl - e : yabai -m display --focus 2 +rctrl - r : yabai -m display --focus 3 + +# send window to monitor +rctrl + shift - w : yabai -m window --display 1 +rctrl + shift - e : yabai -m window --display 2 +rctrl + shift - r : yabai -m window --display 3 + +# move window +shift + ctrl - a : yabai -m window --move rel:-20:0 +shift + ctrl - s : yabai -m window --move rel:0:20 +shift + ctrl - w : yabai -m window --move rel:0:-20 +shift + ctrl - d : yabai -m window --move rel:20:0 + +# increase window size +shift + alt - a : yabai -m window --resize left:-20:0 +shift + alt - s : yabai -m window --resize bottom:0:20 +shift + alt - w : yabai -m window --resize top:0:-20 +shift + alt - d : yabai -m window --resize right:20:0 + +# decrease window size +shift + cmd - a : yabai -m window --resize left:20:0 +shift + cmd - s : yabai -m window --resize bottom:0:-20 +shift + cmd - w : yabai -m window --resize top:0:20 +shift + cmd - d : yabai -m window --resize right:-20:0 + +# set insertion point in focused container +ctrl + alt - h : yabai -m window --insert west +ctrl + alt - j : yabai -m window --insert south +ctrl + alt - k : yabai -m window --insert north +ctrl + alt - l : yabai -m window --insert east + +# rotate tree +alt - r : yabai -m space --rotate 90 + +# mirror tree y-axis +alt - y : yabai -m space --mirror y-axis + +# mirror tree x-axis +alt - x : yabai -m space --mirror x-axis + +# toggle desktop offset +# alt - a : yabai -m space --toggle padding; yabai -m space --toggle gap + +# toggle window parent zoom +alt - d : yabai -m window --toggle zoom-parent + +# toggle window fullscreen zoom +alt - f : yabai -m window --toggle zoom-fullscreen + +# toggle window native fullscreen +shift + alt - f : yabai -m window --toggle native-fullscreen + +# toggle window border +shift + alt - b : yabai -m window --toggle border + +# toggle window split type +# alt - e : yabai -m window --toggle split + +# float / unfloat window and center on screen +alt - t : yabai -m window --toggle float;\ + yabai -m window --grid 4:4:1:1:2:2 + +# toggle sticky +alt - s : yabai -m window --toggle sticky + +# toggle sticky, float and resize to picture-in-picture size +# alt - p : yabai -m window --toggle sticky;\ +# yabai -m window --grid 5:5:4:0:1:1 + +# change layout of desktop +rctrl - a : yabai -m space --layout bsp +rctrl - s : yabai -m space --layout stack +rctrl - d : yabai -m space --layout float + +play : mpc toggle +rewind : mpc cdprev +fast : mpc next + +rctrl - b : /usr/local/bin/hs -c 'stackline.config:toggle("appearance.showIcons")' diff --git a/dot-local/bin/cmus-mediakeys b/dot-local/bin/cmus-mediakeys new file mode 100755 index 0000000..6354ee7 --- /dev/null +++ b/dot-local/bin/cmus-mediakeys @@ -0,0 +1,32 @@ +#!/usr/bin/env python +import osxmmkeys +import subprocess +import time + +commands = { + 'play_pause': '-u', + 'next_track': '-n', + 'prev_track': '-r' +} + +class CmusKeys(): + def __init__(self): + def cmusRemote(command, flag): + def f(): + print(command) + subprocess.call(['cmus-remote', flag]) + return False + return f + + self.tap = osxmmkeys.Tap() + for command, flag in commands.items(): + self.tap.on(command, cmusRemote(command, flag)) + + def run(self): + self.tap.start() + try: + while True: time.sleep(1) + except (KeyboardInterrupt, SystemExit): + self.tap.stop() + +if __name__ == '__main__': CmusKeys().run() diff --git a/dot-local/bin/mpd-notify-bitbar b/dot-local/bin/mpd-notify-bitbar new file mode 100755 index 0000000..3b76772 --- /dev/null +++ b/dot-local/bin/mpd-notify-bitbar @@ -0,0 +1,4 @@ +#!/bin/bash +while mpc idle; do + open -g swiftbar://refreshplugin?name=mpd-control +done