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