xaizek / euclid-wm (License: BSD 3-Clause) (since 2018-12-07)
A minimalist, tiling window manager for X11 that seeks to allow easy management of numerous windows entirely from the keyboard.
<root> / euclid-wm.conf.sample (7eedc92f7f662e5ce0e476e7345c3d29b061bf3f) (4,444B) (mode 100644) [raw]
#Configuration for euclid-wm
#This file needs to be in $XDG_CONFIG_HOME (if $XDG_CONFIG_HOME is defined)
#Otherwise it needs to be in $HOME/.config
#it must be named euclid-wm.conf

#The parser is quite simple, so take note of case and spaces (including trailing whitespace)
#There are no quotation marks used (unless you want to send quote an argument being sent to an external app). 
#Comments cannot be appended to a line, the # marker must be the first character.
#the general format is 

#these get parsed by X, any colorname X recognizes will work

color_main_focus = #00000000ffff
color_stack_focus = #ffffffffffff
color_main_unfocus = #400040004000
color_stack_unfocus = #400040004000
color_stack_background = #010001000100

#space can be reserved at the top or bottom of the screen, for example to allow dzen to be displayed, 
#this only applies if the view is not in fullscreen mode:

reserved_top = 0
reserved_bottom = 0
reserved_left = 0
reserved_right = 0

#if set to true, euclid will try to add windows to the view in order to give them all equal space,
#Specifically, it will try to keep the ratio of rows to columns = 1:1
#If not true, euclid places new windows below the currently focused window
autobalance = true

#if set to true, euclid will automatically make window under mouse cursor focused
#If not true, focus should be changed via keyboard
#Note that new value of this option is applied to new windows
sloppy_focus = true

#the incremental change for each resize keypress (kinda)
resize_increment = 30 

#euclid can use either dmenu or euclid-menu to present a list of windows when searching
#a non-zero value will result in euclid using euclid-menu
#otherwise, euclid will use dmenu
window_menu = 0

#This is just a number, e.g, mod2 = 2. 
modkey = 1

#binding format is bind_ACT = MOD KEY
#values of mod are M,  MS, or N (mod, mod + shift, none)
#KEY is an X Keyname; 
#you can find the X Keyname for a key by running xev in a terminal and prssing the key while the xev window is focused 
#it will appear after the keysym

#spawn terminal or menu 
#the second line of each pair is defining the command to send to /bin/sh
bind_spawn_menu = M Return
dmenu = dmenu_run
bind_spawn_term = MS Return
term = xterm

#goto view, as in as in, show the windows on it
bind_goto_next_view = M m
bind_goto_previous_view = M n

#move focused window to view
bind_move_to_next_view = MS m
bind_move_to_previous_view = MS n

#move the main focus:
bind_focus_left = M h
bind_focus_down = M j
bind_focus_up = M k
bind_focus_right = M l

#move windows within the current view
bind_shift_win_left = MS h
bind_shift_win_down = MS j
bind_shift_win_up = MS k
bind_shift_win_right = MS l

#resize windows (direction refers to the direction the lower right corner is moved relative to the top left corner)
bind_resize_left = M y
bind_resize_down = M u
bind_resize_up = M i
bind_resize_right = M o

#stack visibility
bind_toggle_stack = M space

#move windows to and from the stack (minimize and restore)
bind_move_to_stack = M period
bind_move_to_main = M comma
bind_swap_stack_and_main = M slash

#move the stack focus
bind_stack_focus_up = M semicolon
bind_stack_focus_down = M apostrophe

#push the item with stack focus up or down in the stack
bind_swap_stack_up = MS semicolon
bind_swap_stack_down = MS apostrophe

#flip the tracks of the current view 
bind_toggle_orientation = M Tab

#close and kill windows
bind_close_win = M Escape
bind_kill_win = MS Escape

#toggle fullscreen
bind_toggle_fullscreen = MS space

#quit the session
bind_quit = MS q

#reload these settings
bind_reload_config = M r

#move focus to screen (Previous and Next are the X names for PgUp and PgDown:
bind_goto_previous_screen = M Prior
bind_goto_next_screen = M Next

#search for a window via dmenu
bind_search = MS slash

#switch to last view
bind_move_to_last_view = M backslash

#euclid supports up to 99 hotkeys, bound to external commands
#the format for the binding is: bind_custom_[01-99] = [M | MS | N] [keyname] (just like normal bindings)
#the format for the associated commands is: custom_command_[01-99] = [command to pass to shell]
#bind_custom_01 = N Print
#custom_command_01 = scrot -e 'mv $f ~/screenshots/'

#bind_custom_02 = M x
#custom_command_02 = slock


Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/euclid-wm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/euclid-wm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master