diff --git a/install/_install.sh b/install/_install.sh index 081493c..1c1566f 100755 --- a/install/_install.sh +++ b/install/_install.sh @@ -16,7 +16,10 @@ export PATH=/usr/local/bin:/usr/local/sbin:$PATH # install some neccessary brew packages brew install clipper +brew install fasd brew install git +brew install koekeishiya/kwm/kwm +brew install koekeishiya/khd/khd brew install tmux brew install zsh @@ -35,9 +38,11 @@ brew cask install caskroom/fonts/font-hack brew linkapps brew tap homebrew/services -# clipper +# clipper + kwm mkdir -p ~/Library/LaunchAgents brew services start clipper +brew services start khd +brew services start kwm # install all submodules git submodule init @@ -51,6 +56,7 @@ ln -s ~/dotfiles/gitconfig ~/.gitconfig ln -s ~/dotfiles/gitignore ~/.gitignore ln -s ~/dotfiles/hyperterm.js ~/.hyperterm.js ln -s ~/dotfiles/kwm ~/.kwm +ln -s ~/dotfiles/khdrc ~/.khdrc ln -s ~/dotfiles/ruby-version ~/.ruby-version ln -s ~/dotfiles/tmux.conf ~/.tmux.conf ln -s ~/dotfiles/vim ~/.vim @@ -69,3 +75,4 @@ sudo vim /etc/shells chsh -s /usr/local/bin/zsh /usr/bin/env zsh sudo mv /etc/zshenv /etc/zprofile +sudo launchctl config user path $PATH diff --git a/install/brew.sh b/install/brew.sh index db68730..c967937 100755 --- a/install/brew.sh +++ b/install/brew.sh @@ -7,13 +7,11 @@ brew tap caskroom/versions # install additional brew packages -- see _install.sh too brew install composer brew install curl --with-ssl --with-libssh2 -brew install fasd brew install ffmpeg --with-libvpx --with-libvorbis --with-fdk-aac brew install git-extras brew install git-flow brew install git-ftp brew install imagemagick -brew install koekeishiya/kwm/kwm brew install mariadb brew install mozjpeg brew install nginx --with-http2 @@ -24,30 +22,33 @@ brew install php70-mcrypt brew install rsync brew install rbenv brew install the_silver_searcher -brew install tree brew install wget brew install youtube-dl # brew cask and install software brew cask install alfred brew cask install carbon-copy-cloner +brew cask install cleanmymac brew cask install dash +brew cask install doxie brew cask install firefox brew cask install flux brew cask install google-chrome +brew cask install harvest brew cask install imagealpha brew cask install imageoptim -brew cask install karabiner brew cask install libreoffice brew cask install qlcolorcode brew cask install qlstephen -brew cask install seil brew cask install sequel-pro +brew cask install skype brew cask install slack brew cask install telegram +brew cask install toggldesktop +brew cask install transmission brew cask install virtualbox brew cask install vlc -brew cask install vox +brew cask install xld # set some options for qlcolorcode defaults write org.n8gray.QLColorCode font Hack diff --git a/khdrc b/khdrc new file mode 100644 index 0000000..8e60916 --- /dev/null +++ b/khdrc @@ -0,0 +1,91 @@ +# a short keypress on the left ctrl is esc +khd mod_trigger_timeout 0.2 +lctrl: khd -p "0x35" + +# enable kwm compatibility mode +khd kwm on + +# shortcuts for moving focus with kwmc +ctrl+cmd - h: kwmc window -f west +ctrl+cmd - l: kwmc window -f east +ctrl+cmd - j: kwmc window -f south +ctrl+cmd - k: kwmc window -f north + +# use [ and ] to switch focus of displays with kwmc +ctrl+cmd - 0x21: kwmc display -f 0 +ctrl+cmd - 0x1E: kwmc display -f 1 + +# moving windows around with kwmc +ralt - h: kwmc window -s west +ralt - j: kwmc window -s south +ralt - k: kwmc window -s north +ralt - l: kwmc window -s east +ralt - 0x21: kwmc window -m display 0 +ralt - 0x1E: kwmc window -m display 1 + +# rotate and fullscreen and switch modes +ralt - f: kwmc window -z fullscreen +ralt - r: kwmc tree rotate 90 +ralt - 1: kwmc space -t bsp +ralt - 2: kwmc space -t monocle +ralt - 3: kwmc space -t float + +# set border color for different modes +khd mode resizer color 0xffde935f +khd mode vimmode color 0xffa54242 +khd mode launcher color 0xff5e8d87 + +# toggle between modes +ralt - a: khd -e "mode activate resizer"; kwmc config border focused on; +ralt - s: khd -e "mode activate vimmode"; kwmc config border focused on; +ralt - x: khd -e "mode activate launcher"; kwmc config border focused on; +resizer + ralt - a: khd -e "mode activate default"; kwmc config border focused off; +vimmode + ralt - s: khd -e "mode activate default"; kwmc config border focused off; +launcher + ralt - x: khd -e "mode activate default"; kwmc config border focused off; + +# resizer mode +resizer - 1: kwmc window -c type bsp +resizer - 2: kwmc window -c type monocle +resizer - 3: kwmc window -c type float +resizer - h: kwmc window -c expand 0.02 west +resizer - l: kwmc window -c expand 0.02 east +resizer - j: kwmc window -c expand 0.02 south +resizer - k: kwmc window -c expand 0.02 north +resizer - a: kwmc window -c reduce 0.02 east +resizer - d: kwmc window -c reduce 0.02 west +resizer - w: kwmc window -c reduce 0.02 south +resizer - s: kwmc window -c reduce 0.02 north +resizer - p: kwmc window -z parent +resizer - f: kwmc window -t focused +resizer - t: kwmc window -c split-mode toggle +resizer - 0x35: khd -e "mode activate default"; kwmc config border focused off; + +# basic vim movements + commands +vimmode - h: khd -p "- left" +vimmode - l: khd -p "- right" +vimmode - j: khd -p "- down" +vimmode - k: khd -p "- up" +vimmode - b: khd -p "lalt - left" +vimmode - w: khd -p "lalt - right" +vimmode+shift - 6: khd -p "cmd - left" +vimmode+shift - 4: khd -p "cmd - right" +vimmode - g: khd -p "alt - up" +vimmode+shift - g: khd -p "alt - down" +vimmode - x: khd -p "cmd - w" +vimmode - q: khd -p "cmd - q" +vimmode - 0x35: khd -e "mode activate default"; kwmc config border focused off; + +# basic launcher shortcuts +launcher - q: khd -p "cmd - q" +launcher - x: open -a /Applications/Firefox.app +launcher - g: open -a /Applications/Google\ Chrome.app +launcher - m: open -a /Applications/Mail.app +launcher - 1: open -a /Applications/1Password.app +launcher - d: open -a /Applications/Dash.app +launcher - f: open -a /Applications/ForkLift.app +launcher - v: open -a /Applications/MacVim.app +launcher - i: open -a /Applications/iTunes.app +launcher - t: open -a /Applications/Utilities/Terminal.app +launcher - h: open -a /Applications/Hyper.app +launcher - space: open -a /Applications/Hyper.app +launcher - 0x35: khd -e "mode activate default"; kwmc config border focused off; diff --git a/kwm/binds b/kwm/binds deleted file mode 100644 index b826645..0000000 --- a/kwm/binds +++ /dev/null @@ -1,42 +0,0 @@ -// global hyper shortcut -define HYPER ctrl+cmd+alt+shift - -// Activate prefix mode -kwmc bindsym HYPER-a mode activate prefix - -// hyper key bindings with prefix mode for less used commands -kwmc bindsym prefix-1 window -c type bsp -kwmc bindsym prefix-2 window -c type float -kwmc bindsym prefix-h window -c reduce 0.02 east -kwmc bindsym prefix-l window -c expand 0.02 east -kwmc bindsym prefix-j window -c expand 0.02 south -kwmc bindsym prefix-k window -c reduce 0.02 south -kwmc bindsym prefix-p window -z parent -kwmc bindsym prefix-f window -t focused -kwmc bindsym prefix-s window -c split-mode toggle - -// moving around with cmd+ctrl -kwmc bindsym cmd+ctrl-h window -f west -kwmc bindsym cmd+ctrl-l window -f east -kwmc bindsym cmd+ctrl-j window -f south -kwmc bindsym cmd+ctrl-k window -f north -kwmc bindsym cmd+ctrl-[ display -f 0 -kwmc bindsym cmd+ctrl-] display -f 1 - -// hyper key bindings for fullscreen, displays etc. -kwmc bindsym HYPER-h window -s west -kwmc bindsym HYPER-j window -s south -kwmc bindsym HYPER-k window -s north -kwmc bindsym HYPER-l window -s east -kwmc bindsym HYPER-[ window -m display 0 -kwmc bindsym HYPER-] window -m display 1 - -// rotate and fullscreen -kwmc bindsym HYPER-f window -z fullscreen -kwmc bindsym HYPER-r tree rotate 90 - -// tiling modes -kwmc bindsym HYPER-1 space -t bsp -kwmc bindsym HYPER-2 space -t monocle -kwmc bindsym HYPER-3 space -t float - diff --git a/kwm/kwmrc b/kwm/kwmrc index 888461e..99c7f2b 100644 --- a/kwm/kwmrc +++ b/kwm/kwmrc @@ -1,41 +1,60 @@ -// define global vars -define PADDING 3 - -// default tiling is bsp -kwmc config tiling bsp +# default config +kwmc config optimal-ratio 1.618 kwmc config spawn right +kwmc config float-non-resizable on +kwmc config lock-to-container on +kwmc config focus-follows-mouse off +kwmc config standby-on-float off +kwmc config center-on-float on +kwmc config cycle-focus on +kwmc config mouse-follows-focus on +kwmc config mouse-drag off +kwmc config mouse-drag mod ctrl+cmd+alt+shift +kwmc config hotkeys on kwmc config split-ratio 0.5 -// default style -kwmc config padding PADDING PADDING PADDING PADDING -kwmc config gap PADDING PADDING -kwmc config border focused on +# no border, use hazeover instead +kwmc config border focused off kwmc config border focused size 2 -kwmc config border focused color 0xFF5E8D87 kwmc config border focused radius 6 -kwmc config hotkeys on -kwmc config cycle-focus on -kwmc config focus-follows-mouse on -kwmc config mouse-follows-focus on -kwmc config float-non-resizable on -kwmc config lock-to-container on -kwmc config standby-on-float on -kwmc config mouse-drag off +# default is bsp with a padding of 6 +kwmc config tiling bsp +kwmc config padding 2 2 2 2 +kwmc config gap 2 2 -// override if there are two displays, smaller one monocle always +# override displays, if there are two kwmc config display 0 mode bsp kwmc config display 0 float-dim 1200 800 kwmc config display 1 mode monocle kwmc config display 1 float-dim 1200 800 -// Enable the prefix mode -kwmc mode prefix prefix on -kwmc mode prefix timeout 1 -kwmc mode prefix restore default -kwmc mode prefix color 0xFFA54242 +# add rules to apps that dont have tileable state by default +# kwmc rule owner="iTerm2" properties={role="AXDialog"} + +# blacklist applications from kwms tiling +kwmc rule owner="1Password" properties={float="true"} +kwmc rule owner="CleanMyMac 3" properties={float="true"} +kwmc rule owner="Finder" properties={float="true"} +kwmc rule owner="Harvest" properties={float="true"} +kwmc rule owner="System Preferences" properties={float="true"} +kwmc rule owner="TogglDesktop" properties={float="true"} +kwmc rule owner="VOX" properties={float="true"} +# those apps should always be on the main display +kwmc rule owner="Firefox" properties={display="0"} +kwmc rule owner="Google Chrome" properties={display="0"} +kwmc rule owner="HyperTerm" properties={display="0"} +kwmc rule owner="MacVim" properties={display="0"} +kwmc rule owner="Safari" properties={display="0"} +kwmc rule owner="Terminal" properties={display="0"} -// include binds, space and other config + rules -include rules -include binds +# and those should be on the secondary display +kwmc rule owner="Calendar" properties={display="1"} +kwmc rule owner="Dash" properties={display="1"} +kwmc rule owner="ForkLift" properties={display="1"} +kwmc rule owner="Mail" properties={display="1"} +kwmc rule owner="Messages" properties={display="1"} +kwmc rule owner="Skype" properties={display="1"} +kwmc rule owner="Slack" properties={display="1"} +kwmc rule owner="Telegram" properties={display="1"} diff --git a/kwm/rules b/kwm/rules deleted file mode 100644 index 0197bc4..0000000 --- a/kwm/rules +++ /dev/null @@ -1,28 +0,0 @@ -// add rules to apps that dont have tileable state by default -// kwmc rule owner="iTerm2" properties={role="AXDialog"} - -// The following commands create rules that blacklists an application from Kwms tiling -kwmc rule owner="1Password" properties={float="true"} -kwmc rule owner="CleanMyMac 3" properties={float="true"} -kwmc rule owner="Finder" properties={float="true"} -kwmc rule owner="Harvest" properties={float="true"} -kwmc rule owner="System Preferences" properties={float="true"} -kwmc rule owner="TogglDesktop" properties={float="true"} -kwmc rule owner="VOX" properties={float="true"} - -// The following command creates a rule that captures an application to the given screen, if the screen exists. -kwmc rule owner="Firefox" properties={display="0"} -kwmc rule owner="Google Chrome" properties={display="0"} -kwmc rule owner="HyperTerm" properties={display="0"} -kwmc rule owner="MacVim" properties={display="0"} -kwmc rule owner="Safari" properties={display="0"} -kwmc rule owner="Terminal" properties={display="0"} - -kwmc rule owner="Calendar" properties={display="1"} -kwmc rule owner="Dash" properties={display="1"} -kwmc rule owner="ForkLift" properties={display="1"} -kwmc rule owner="Mail" properties={display="1"} -kwmc rule owner="Messages" properties={display="1"} -kwmc rule owner="Skype" properties={display="1"} -kwmc rule owner="Slack" properties={display="1"} -kwmc rule owner="Telegram" properties={display="1"}