Created
May 4, 2016 22:30
-
-
Save mickaelperrin/4988c79722363380a63bb34835e18400 to your computer and use it in GitHub Desktop.
kwm configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Enable the prefix mode | |
kwmc mode prefix prefix on | |
kwmc mode prefix timeout 0.75 | |
kwmc mode prefix restore default | |
kwmc mode prefix color dd00ff00 | |
//####### Default Keybinds ######## | |
// Activate prefix mode | |
kwmc bindsym ctrl-s mode activate prefix | |
// Relaunch Kwm | |
kwmc bindsym cmd+alt-r quit | |
// Set Space Tiling Mode To BSP | |
kwmc bindsym cmd+ctrl-a space -t bsp | |
// Set Space Tiling Mode To Monocle | |
kwmc bindsym cmd+ctrl-s space -t monocle | |
// Set Space Tiling Mode To Floating | |
kwmc bindsym cmd+ctrl-d space -t float | |
// Rotate Window-Tree By 90* (Clockwise) | |
kwmc bindsym cmd+ctrl-r tree rotate 90 | |
// Toggle focus-follows-mouse | |
kwmc bindsym cmd+alt-t config focus-follows-mouse toggle | |
// Modify Container | |
kwmc bindsym prefix-s window -c split-mode toggle | |
kwmc bindsym prefix-h window -c reduce 0.05 | |
kwmc bindsym prefix-l window -c expand 0.05 | |
kwmc bindsym prefix-< window -c type toggle | |
// Set Temporary Window Container | |
kwmc bindsym prefix-f window -z fullscreen | |
kwmc bindsym prefix-d window -z parent | |
kwmc bindsym prefix-w window -t focused | |
// Mark Window | |
kwmc bindsym cmd+alt+ctrl-m window -mk focused | |
kwmc bindsym cmd+alt+ctrl-h window -mk west wrap | |
kwmc bindsym cmd+alt+ctrl-l window -mk east wrap | |
kwmc bindsym cmd+alt+ctrl-j window -mk south wrap | |
kwmc bindsym cmd+alt+ctrl-k window -mk north wrap | |
// Give Focus To Window | |
kwmc bindsym cmd+alt-h window -f west | |
kwmc bindsym cmd+alt-l window -f east | |
kwmc bindsym cmd+alt-j window -f south | |
kwmc bindsym cmd+alt-k window -f north | |
kwmc bindsym cmd+alt-n window -fm prev | |
kwmc bindsym cmd+alt-m window -fm next | |
// Give Focus To Screen | |
kwmc bindsym cmd+shift-@ display -f 0 | |
kwmc bindsym cmd+shift-& display -f 1 | |
kwmc bindcode cmd+shift-0x13 display -f 2 | |
// Swap Focused Window | |
kwmc bindsym ctrl+alt-h window -s west | |
kwmc bindsym ctrl+alt-j window -s south | |
kwmc bindsym ctrl+alt-k window -s north | |
kwmc bindsym ctrl+alt-l window -s east | |
kwmc bindsym ctrl+alt-m window -s mark | |
// Pseudo containers | |
kwmc bindsym cmd+ctrl+alt-p tree -pseudo create | |
kwmc bindsym cmd+ctrl+alt-o tree -pseudo destroy | |
kwmc bindsym ctrl+alt-p window -s prev | |
kwmc bindsym ctrl+alt-n window -s next | |
// Detach Focused Window And Reinsert In Direction | |
kwmc bindsym ctrl+shift-k window -m north | |
kwmc bindsym ctrl+shift-l window -m east | |
kwmc bindsym ctrl+shift-j window -m south | |
kwmc bindsym ctrl+shift-h window -m west | |
// Detach Marked Window And Reinsert At Focused Window | |
kwmc bindsym ctrl+shift-x window -m mark | |
// Quick Switch To Space | |
kwmc bindsym cmd+alt-& space -fExperimental 1 | |
kwmc bindcode cmd+alt-0x13 space -fExperimental 2 | |
kwmc bindsym cmd+alt-" space -fExperimental 3 | |
kwmc bindsym cmd+alt-' space -fExperimental 4 | |
kwmc bindsym cmd+alt-( space -fExperimental 5 | |
kwmc bindcode cmd+alt-0x16 space -fExperimental 6 | |
kwmc bindcode cmd+alt-0x1a space -fExperimental 7 | |
kwmc bindsym cmd+alt-! space -fExperimental 8 | |
kwmc bindcode cmd+alt-0x19 space -fExperimental 9 | |
kwmc bindcode cmd+alt-0x1d space -fExperimental 10 | |
// Move Focused Window To Space | |
kwmc bindsym ctrl+alt-left window -m space left | |
kwmc bindsym ctrl+alt-right window -m space right | |
kwmc bindsym ctrl+alt-& window -m space 1 | |
kwmc bindcode ctrl+alt-0x13 window -m space 2 | |
kwmc bindsym ctrl+alt-" window -m space 3 | |
kwmc bindsym ctrl+alt-' window -m space 4 | |
kwmc bindsym ctrl+alt-( window -m space 5 | |
kwmc bindcode ctrl+alt-0x16 window -m space 6 | |
kwmc bindcode ctrl+alt-0x1a window -m space 7 | |
kwmc bindsym ctrl+alt-! window -m space 8 | |
kwmc bindcode ctrl+alt-0x19 window -m space 9 | |
kwmc bindcode ctrl+alt-0x1d window -m space 10 | |
// Move Focused Window To Screen | |
kwmc bindsym alt+shift-@ window -m display 0 | |
kwmc bindsym alt+shift-& window -m display 1 | |
kwmc bindcode alt+shift-0x13 window -m display 2 | |
// Increase Container Gaps | |
kwmc bindsym prefix-x space -g increase horizontal | |
kwmc bindsym prefix-y space -g increase vertical | |
// Decrease Container Gaps | |
kwmc bindsym prefix+shift-x space -g decrease horizontal | |
kwmc bindsym prefix+shift-y space -g decrease vertical | |
// Increase Screen Padding | |
kwmc bindsym prefix-left space -p increase left | |
kwmc bindsym prefix-right space -p increase right | |
kwmc bindsym prefix-up space -p increase top | |
kwmc bindsym prefix-down space -p increase bottom | |
kwmc bindsym prefix-p space -p increase all | |
// Decrease Screen Padding | |
kwmc bindsym prefix+shift-left space -p decrease left | |
kwmc bindsym prefix+shift-right space -p decrease right | |
kwmc bindsym prefix+shift-up space -p decrease top | |
kwmc bindsym prefix+shift-down space -p decrease bottom | |
kwmc bindsym prefix+shift-p space -p decrease all | |
// Useful shortcuts | |
kwmc bindsym cmd-: write \ | |
kwmc bindsym cmd-( write [ | |
kwmc bindsym cmd-) write ] | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is a sample config for Kwm | |
// Commands prefixed with 'kwmc' will call | |
// local functions corresponding to the | |
// kwmc syntax. | |
// To run a system command, use the prefix | |
// 'sys' and then the requested command | |
// e.g 'sys mvim' would open macvim | |
// Read file and execute commands as | |
// if they were written inside kwmrc. | |
// include filename | |
include rules | |
// e.g: bind-commands in a separate file called 'binds' | |
// include binds | |
// Create variables that can be used in the below commands. | |
// Variables are in file-scope and must be defined before | |
// they can be used. Re-definition is also possible. | |
// Variable names can not contain whitespace, where as | |
// the value can. | |
// define variable value | |
// e.g: create a variable for the hyper-key | |
// define hyper cmd+ctrl+alt+shift | |
// kwmc bind hyper-h window -f west | |
// Set default values for screen padding | |
kwmc config padding 3 3 3 3 | |
// Set default values for container gaps | |
kwmc config gap 6 6 | |
// Default tiling mode for Kwm (bsp | monocle | float | off) | |
kwmc config tiling bsp | |
// Let Kwm listen for hotkeys | |
kwmc config hotkeys on | |
kwmc config float-non-resizable on | |
// Automatically resize the window to its container | |
kwmc config lock-to-container on | |
// Set focus-follows-mouse-mode to autoraise | |
kwmc config focus-follows-mouse autoraise | |
// Focus-follows-mouse is temporarily disabled when | |
// a floating window has focus | |
kwmc config standby-on-float on | |
// The mouse will automatically move to the center | |
// of the focused window | |
kwmc config mouse-follows-focus off | |
// Allow window focus to wrap-around | |
kwmc config cycle-focus screen | |
// Open first window vertically (reduce ration from 1.618 to 1.6) | |
kwmc config optimal-ratio 1.6 | |
// Override default settings for space 1 on screen 0 | |
// kwmc config space 0 1 mode monocle | |
// kwmc config space 0 1 padding 100 100 100 100 | |
// kwmc config space 0 1 gap 40 40 | |
// Override default settings for screen 1 | |
// kwmc config display 1 mode bsp | |
// kwmc config display 1 padding 3 3 3 3 | |
// kwmc config display 1 gap 40 40 | |
// Set default container split-ratio | |
kwmc config split-ratio 0.5 | |
// New splits become the left leaf-node | |
kwmc config spawn right | |
// Add custom tiling rules for applications that | |
// does not get tiled by Kwm by default. | |
// This is because some applications do not have the | |
// AXWindowRole and AXStandardWindowSubRole | |
// kwmc config add-role AXDialog iTerm2 | |
// Enable border for focused window | |
kwmc config border focused on | |
kwmc config border focused size 3 | |
//kwmc config border focused color 99FF0000 | |
kwmc config border focused radius 6 | |
// Enable border for marked window | |
kwmc config border marked on | |
kwmc config border marked size 3 | |
//kwmc config border marked color FF00FF00 | |
kwmc config border marked radius 6 | |
include keybindings |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The following commands create rules that | |
// blacklists an application from Kwms tiling | |
// | |
// kwmc rule owner="Steam" properties={float="true"} | |
// kwmc rule owner="Photoshop" properties={float="true"} | |
// The following command creates a rule that | |
// captures an application to the given screen, | |
// if the screen exists. | |
// | |
// kwmc rule owner="iTunes" properties={display="1"} | |
kwmc rule owner="PhpStorm" properties={float="true"} except=".*\-\s\[.*" | |
kwmc rule owner="iTerm2" properties={float="true"} name=".*quake.*" | |
kwmc rule owner="Skim" properties={float="true"} except=".*pdf\s\(page.*" | |
kwmc rule owner="iTerm2" properties={role="AXDialog"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment