Skip to content

Instantly share code, notes, and snippets.

@pbt001
Last active January 15, 2019 10:19
Show Gist options
  • Save pbt001/278fa89bcd1cc913b6534583b1aaec8b to your computer and use it in GitHub Desktop.
Save pbt001/278fa89bcd1cc913b6534583b1aaec8b to your computer and use it in GitHub Desktop.
[Chunkwm Config] #cfg #fork #dotfile
#!/usr/local/sbin/bash
export PATH=/usr/local/sbin/:$PATH
#
# NOTE: specify the desired level of logging.
#
# - none, debug, warn, error
#
chunkc core::log_file /tmp/chunkwm.log
chunkc core::log_level warn
#
# NOTE: specify the absolutepath to the directory to use when
# loading a plugin. '~' expansion is supported.
#
chunkc core::plugin_dir /usr/local/opt/chunkwm/share/chunkwm/plugins
#
# NOTE: if enabled, chunkwm will monitor the specified plugin_dir
# and automatically reload any '.so' file that is changed.
#
chunkc core::hotload 1
#
# NOTE: the following are config variables for the chunkwm-tiling plugin.
#
chunkc set global_desktop_mode bsp
chunkc set 4_desktop_mode monocle
# chunkc set 8_desktop_mode monocle
chunkc set global_desktop_offset_top 5
chunkc set global_desktop_offset_bottom 5
chunkc set global_desktop_offset_left 5
chunkc set global_desktop_offset_right 5
chunkc set global_desktop_offset_gap 6
# chunkc set 1_desktop_tree ~/.vertical_3_33-33-33.tree
# chunkc set 4_desktop_tree ~/.social.tree
# chunkc set 5_desktop_tree ~/.vertical_2_80-20.tree
# chunkc set 8_desktop_tree ~/.full-top_down-split.tree
chunkc set 4_desktop_offset_top 50
chunkc set 4_desktop_offset_bottom 50
chunkc set 4_desktop_offset_left 70
chunkc set 4_desktop_offset_right 70
# chunkc set 8_desktop_offset_top 70
# chunkc set 8_desktop_offset_bottom 70
# chunkc set 8_desktop_offset_left 100
# chunkc set 8_desktop_offset_right 100
chunkc set desktop_padding_step_size 2.0
chunkc set desktop_gap_step_size 2.0
chunkc set bsp_spawn_left 0
chunkc set bsp_optimal_ratio 1.618
chunkc set bsp_split_mode optimal
chunkc set bsp_split_ratio 0.5
chunkc set monitor_focus_cycle 1
chunkc set window_focus_cycle monitor
chunkc set mouse_follows_focus intrinsic
chunkc set window_float_next 0
chunkc set window_region_locked 1
#
# NOTE: shell commands require escaped quotes
# to pass value containing a whitespace.
#
# chunkc set mouse_modifier \"cmd shift\"
chunkc set mouse_modifier fn
chunkc set ffm_bypass_modifier fn
chunkc set preselect_border_color 0xffd75f5f
chunkc set preselect_border_width 5
chunkc set preselect_border_radius 0
#
# NOTE: these settings require chwm-sa.
# (https://github.com/koekeishiya/chwm-sa)
#
chunkc set window_float_topmost 0
chunkc set window_fade_inactive 0
chunkc set window_fade_alpha 1.0
chunkc set window_fade_duration 0.15
chunkc set window_use_cgs_move 0
#
# NOTE: the following are config variables for the chunkwm-border plugin.
#
chunkc set focused_border_color 0xFFFF9B21
chunkc set focused_border_width 4
chunkc set focused_border_radius 5
chunkc set focused_border_skip_floating 1
chunkc set focused_border_skip_monocle 1
chunkc set wallpaper_blur 50
#
# NOTE: specify plugins to load when chunkwm starts.
# if chunkc plugin_dir is not set, the absolutepath is necessary.
#
# chunkc core::load blur.so
# chunkc core::load purify.so
# chunkc core::load border.so
chunkc core::load tiling.so
chunkc core::load ffm.so
#
# NOTE: shell commands require escaped quotes
# to pass value containing a whitespace.
#
apply_chunkwm_rules
# focus window
ctrl + alt + cmd - left : chunkc tiling::window --focus west
ctrl + alt + cmd - down : chunkc tiling::window --focus south
ctrl + alt + cmd - up : chunkc tiling::window --focus north
ctrl + alt + cmd - right : chunkc tiling::window --focus east
# rshift - left : chunkc tiling::window --focus prev
# rshift - right : chunkc tiling::window --focus next
# rshift - down : chunkc tiling::monitor -f prev; cliclick m:.
# rshift - up : chunkc tiling::monitor -f next; cliclick m:.
# swap window
ctrl + alt + cmd + shift - left : chunkc tiling::window --swap west
ctrl + alt + cmd + shift - down : chunkc tiling::window --swap south
ctrl + alt + cmd + shift - up : chunkc tiling::window --swap north
ctrl + alt + cmd + shift - right : chunkc tiling::window --swap east
# floating window move/resize
rshift - up : chunkc tiling::window --grid-layout 1:1:0:0:1:1
rshift - left : chunkc tiling::window --grid-layout 1:2:0:0:1:1
rshift - right : chunkc tiling::window --grid-layout 1:2:1:0:1:1
rshift - down : chunkc tiling::window --grid-layout 8:8:1:1:6:6
# send window to desktop
shift + rcmd - left : chunkc tiling::window --send-to-desktop prev
shift + rcmd - right : chunkc tiling::window --send-to-desktop next
lshift + alt - 1 : chunkc tiling::window --send-to-desktop 1; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 1
lshift + alt - 2 : chunkc tiling::window --send-to-desktop 2; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 2
lshift + alt - 3 : chunkc tiling::window --send-to-desktop 3; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 3
lshift + alt - 4 : chunkc tiling::window --send-to-desktop 4; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 4
lshift + alt - 5 : chunkc tiling::window --send-to-desktop 5; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 5
lshift + alt - 6 : chunkc tiling::window --send-to-desktop 6; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 6
lshift + alt - 7 : chunkc tiling::window --send-to-desktop 7; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 7
lshift + alt - 8 : chunkc tiling::window --send-to-desktop 8; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 8
lshift + alt - 9 : chunkc tiling::window --send-to-desktop 9; echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 9
# send window to monitor and follow focus
lshift + hyper - up : chunkc tiling::window --send-to-monitor next; chunkc tiling::monitor -f next; cliclick m:.
lshift + hyper - down : chunkc tiling::window --send-to-monitor prev; chunkc tiling::monitor -f prev; cliclick m:.
ralt - r : chunkc tiling::desktop --rotate 90 # rotate tree
ralt - y : chunkc tiling::desktop --mirror vertical # mirror tree y-axis
ralt - x : chunkc tiling::desktop --mirror horizontal # mirror tree x-axis
ralt - a : chunkc tiling::desktop --toggle offset # toggle desktop offset
ralt - f : chunkc tiling::window --toggle fullscreen # toggle window fullscreen
rshift + ralt - f : chunkc tiling::window --toggle native-fullscreen # toggle window native fullscreen
ralt - d : chunkc tiling::window --toggle parent # toggle window parent zoom
ralt - e : chunkc tiling::window --toggle split # toggle window split type
ralt - t : chunkc tiling::window --toggle float; chunkc tiling::window --grid-layout 8:8:1:1:6:6 # float / unfloat window and center on screen
ralt - s : chunkc tiling::window --toggle sticky; chunkc tiling::window --grid-layout 8:8:6:0:2:2 # toggle sticky, float and resize to picture-in-picture size
# change layout of desktop
fn - b : chunkc tiling::desktop --layout bsp
fn - m : chunkc tiling::desktop --layout monocle
fn - f : chunkc tiling::desktop --layout float
fn - e : chunkc tiling::desktop --equalize # equalize size of windows
fn + shift - f : /usr/local/bin/subl ~/.config/fish/config.fish
fn - k : /usr/local/bin/subl ~/.chunkwmrc
fn - q : chunkc tiling::window --send-to-desktop $(chunkc get _last_active_desktop)
fn + shift - k : /usr/local/bin/subl ~/.skhdrc
fn + shift - x : killall Dock; /usr/local/bin/brew services restart chunkwm
fn + lalt - x : killall Dock
fn + lalt - w : chunkc tiling::window --close
fn - p : chunkc core::unload purify.so; chunkc core::load purify.so
ralt - 0 : chunkwm --load-sa
# change region size
fn - w : chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge north; chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge south
fn - a : chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge west; chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge east
fn - s : chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge north; chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge south
fn - d : chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge west; chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge east
fn + shift - w : chunkc tiling::window --use-temporary-ratio 0.15 --adjust-window-edge north; chunkc tiling::window --use-temporary-ratio -0.15 --adjust-window-edge south
fn + shift - a : chunkc tiling::window --use-temporary-ratio 0.15 --adjust-window-edge west; chunkc tiling::window --use-temporary-ratio -0.15 --adjust-window-edge east
fn + shift - s : chunkc tiling::window --use-temporary-ratio -0.15 --adjust-window-edge north; chunkc tiling::window --use-temporary-ratio 0.15 --adjust-window-edge south
fn + shift - d : chunkc tiling::window --use-temporary-ratio -0.15 --adjust-window-edge west; chunkc tiling::window --use-temporary-ratio 0.15 --adjust-window-edge east
fn + shift - p : chunkc tiling::desktop --padding inc
fn + shift - g : chunkc tiling::desktop --gap inc
fn + alt - p : chunkc tiling::desktop --padding dec
fn + alt - g : chunkc tiling::desktop --gap dec
fn - c : chunkc tiling::desktop --serialize /Users/alin/.copypaste.tree
fn - v : chunkc tiling::desktop --deserialize /Users/alin/.copypaste.tree
fn + lctrl - v : chunkc tiling::desktop --deserialize /Users/alin/.vertical_3_33-33-33.tree
fn + lctrl - w : chunkc tiling::desktop --deserialize /Users/alin/.vertical_2_80-20.tree
fn + lctrl - h : chunkc tiling::desktop --deserialize /Users/alin/.horizontal_3_33-33-33.tree
rcmd - c : chunkc tiling::query -d windows | /usr/bin/pbcopy
ralt - 0x21 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus prev
ralt - 0x1E : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus next
lalt - tab : echo $(chunkc tiling::query --desktop id)\\c > /tmp/current_space_id; chunkc tiling::desktop --focus $(cat /tmp/last_space_id); mv /tmp/current_space_id /tmp/last_space_id
fn - tab : echo $(chunkc tiling::query --desktop id)\\c > /tmp/current_space_id; chunkc tiling::desktop --focus $(cat /tmp/last_space_id); mv /tmp/current_space_id /tmp/last_space_id
lalt - 1 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 1
lalt - 2 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 2
lalt - 3 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 3
lalt - 4 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 4
lalt - 5 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 5
lalt - 6 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 6
lalt - 7 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 7
lalt - 8 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 8
lalt - 9 : echo $(chunkc tiling::query --desktop id)\\c > /tmp/last_space_id; chunkc tiling::desktop --focus 9
lctrl + lalt - 0 : chunkc tiling::desktop --annihilate;
shift + lalt - 0 : chunkc tiling::desktop --create;\
ids=$(chunkc tiling::query --desktops-for-monitor $(chunkc tiling::query --monitor-for-desktop $(chunkc tiling::query --desktop id)));\
chunkc tiling::window --send-to-desktop $(echo ${ids##* });\
chunkc tiling::rule --owner \"$(chunkc tiling::query --window owner)\" --desktop $(echo ${ids##* }) --follow-desktop &
lalt - 0 : chunkc tiling::desktop --create;\
ids=$(chunkc tiling::query --desktops-for-monitor $(chunkc tiling::query --monitor-for-desktop $(chunkc tiling::query --desktop id)));\
chunkc tiling::desktop --focus $(echo ${ids##* })
fn - y : chunkc tiling::rule --owner \"$(chunkc tiling::query --window owner)\" --desktop $(chunkc tiling::query --desktop id) &
fn - r : apply_chunkwm_rules
#!/usr/local/sbin/bash
/usr/local/sbin/chunkc core::unload tiling.so
/usr/local/sbin/chunkc core::load tiling.so
/usr/local/sbin/chunkc tiling::rule --owner Finder --name Copy --state float &
/usr/local/sbin/chunkc tiling::rule --owner Finder --name Trash --state float &
/usr/local/sbin/chunkc tiling::rule --owner Dash --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'Sublime Text' --name 'Switch Project' --state float &
/usr/local/sbin/chunkc tiling::rule --owner iTerm2 --name 'Hotkey Window Top' --state float &
/usr/local/sbin/chunkc tiling::rule --owner iTerm2 --name 'Hotkey Window Bottom' --state float &
/usr/local/sbin/chunkc tiling::rule --owner iTerm2 --name 'Hotkey Window Right' --state float &
/usr/local/sbin/chunkc tiling::rule --owner iTerm2 --name 'Hotkey Window Left' --state float &
/usr/local/sbin/chunkc tiling::rule --owner Transmission --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'App Store' --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'Alfred Preferences' --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'The Unarchiver' --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'Archive Utility' --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'CleanMyMac 3' --state float &
/usr/local/sbin/chunkc tiling::rule --owner LastPass --state float &
/usr/local/sbin/chunkc tiling::rule --owner BetterTouchTool --state float &
/usr/local/sbin/chunkc tiling::rule --owner Todoist --state float &
/usr/local/sbin/chunkc tiling::rule --owner Gitify --state float &
/usr/local/sbin/chunkc tiling::rule --owner 'Sublime Text' --desktop 1 &
/usr/local/sbin/chunkc tiling::rule --owner 'Chrome|Reactotron' --desktop 2 &
/usr/local/sbin/chunkc tiling::rule --owner iTerm2 --desktop 3 &
/usr/local/sbin/chunkc tiling::rule --owner 'Messages|Spark|Mail' --desktop 4 &
/usr/local/sbin/chunkc tiling::rule --owner 'calibre|Xcode' --desktop 5 &
/usr/local/sbin/chunkc tiling::rule --owner 'Safari|Sketch' --desktop 6 &
/usr/local/sbin/chunkc tiling::rule --owner 'Spotify|AnyDo|Slack|Gitify' --desktop 8 &
/usr/local/sbin/chunkwm --load-sa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment