# Default configuration is as follows.
# korgwm tries to find the config in such an order:
# /etc/korgwm/korgwm.conf
# /usr/local/etc/korgwm/korgwm.conf
# $HOME/.korgwmrc
# $HOME/.config/korgwm/korgwm.conf
# For each file found it tries to alter the configuration with its content
---
## API parameters
# Set api_port = 0 to disable API server
# KORGWM_DEBUG_PORT environment variable overrides api_port if set
api_host: 127.0.0.1
api_port: 27015
# Inactivity timeout for API to close the connection
api_timeout: 5
## Generic parameters
# Window border width in pixels
border_width: 1
# Enable keyboard selection for Expose
expose_show_id: 1
# Modifier to set margins
expose_spacing: 15
# Indicates the pointer should be moved somewhere. One of: undef (~), center, and hidden
initial_pointer_position: center
# Should mouse follow the focus under certain circumstances (RTFS)
mouse_follow: 1
# If set: tag will be switched together with a window during win_move_tag(). Stay on current tag otherwise
move_follow: 1
# Start own notifications server to improve urgency experience. Disable if you want to use another one
notification_server: 1
# Command which is used to set relevant screen positions on each RandR event
randr_cmd: 'xrandr --output HDMI-A-0 --left-of eDP --auto --output DisplayPort-0 --right-of eDP --auto'
# Enable/disable setting the colour for root window
set_root_color: 0
# Debug level 1--9. Levels >= 7 MAY LEAK SENSITIVE INFORMATION
debug: 0
## Bar settings
# Font specification to use on the bar
font: DejaVu Sans Mono 10
# Height of the panel in pixels
panel_height: 20
# Set this to true if the panel should be hidden
panel_hide: ~
# Widgets that should be enabled for bar
panel_end:
- battery
- clock
- lang
# Hide tags with no windows on the panel
hide_empty_tags: 1
# Format strings for bar widgets
battery_format: '%s'
clock_format: ' %a, %e %B %H:%M'
lang_format: ' %s '
# Mapping of the languages to strings on the panel
lang_names:
'0': £
'1': ₽
# Max length of the title before ellipsis comes into play
title_max_len: 128
# How many tags to create and their names
ws_names:
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
## Colours
# How to mark a tag in case it was appended to the active one
color_append_bg: 0x262729
color_append_fg: 0xF502C8
# Overrides color_fg when the battery is low
color_battery_low: 0xFF0000
# Regular bg colour
color_bg: 0x262729
# Window border colours: regular and focused
color_border: 0x232426
color_border_focus: 0xA3BABF
# Background colour for Expose window (slightly darker looks better)
color_expose: 0x232426
# Regular fg colour, basically for text everywhere
color_fg: 0xA3BABF
# How to mark a tag if it has urgent windows and is not active
color_urgent_bg: 0x464729
color_urgent_fg: 0xFFFF00
## Hotkeys, see API.pm for description of possible functions
hotkeys:
XF86AudioLowerVolume: 'nop()'
XF86AudioMute: 'nop()'
XF86AudioRaiseVolume: 'nop()'
XF86MonBrightnessDown: 'nop()'
XF86MonBrightnessUp: 'nop()'
XF86WakeUp: 'nop()'
Print: 'exec(flameshot gui)'
alt_F4: 'win_close()'
alt_TAB: 'focus_cycle(forward)'
alt_shift_TAB: 'focus_cycle(backward)'
mod_1: 'tag_select(1)'
mod_2: 'tag_select(2)'
mod_3: 'tag_select(3)'
mod_4: 'tag_select(4)'
mod_5: 'tag_select(5)'
mod_6: 'tag_select(6)'
mod_7: 'tag_select(7)'
mod_8: 'tag_select(8)'
mod_9: 'tag_select(9)'
mod_=: 'exec(galculator)'
mod_CR: 'exec(urxvt)'
mod_F1: 'screen_select(1)'
mod_F2: 'screen_select(2)'
mod_F3: 'screen_select(3)'
mod_F4: 'screen_select(4)'
mod_F5: 'screen_select(5)'
mod_F6: 'screen_select(6)'
mod_F7: 'screen_select(7)'
mod_F8: 'screen_select(8)'
mod_F9: 'screen_select(9)'
mod_TAB: 'focus_prev()'
mod_a: 'win_toggle_always_on()'
mod_alt_F1: 'exec(pactl set-sink-mute 0 toggle)'
mod_alt_F2: 'exec(pactl set-sink-volume 0 -10%)'
mod_alt_F3: 'exec(pactl set-sink-volume 0 +10%)'
mod_alt_F5: 'exec(light -U 20)'
mod_alt_F6: 'exec(light -A 20)'
mod_ctrl_h: 'layout_resize(h)'
mod_ctrl_j: 'layout_resize(j)'
mod_ctrl_k: 'layout_resize(k)'
mod_ctrl_l: 'layout_resize(l)'
mod_ctrl_shift_q: 'exit()'
mod_e: 'expose()'
mod_f: 'win_toggle_floating()'
mod_g: 'exec(google-chrome --simulate-outdated-no-au --new-window --incognito)'
mod_h: 'focus_move(h)'
mod_j: 'focus_move(j)'
mod_k: 'focus_move(k)'
mod_l: 'focus_move(l)'
mod_m: 'win_toggle_maximize()'
mod_r: 'exec(xkb-switch -s us; rofi -show drun)'
mod_s: 'mark_window()'
mod_ctrl_1: 'tag_append(1)'
mod_ctrl_2: 'tag_append(2)'
mod_ctrl_3: 'tag_append(3)'
mod_ctrl_4: 'tag_append(4)'
mod_ctrl_5: 'tag_append(5)'
mod_ctrl_6: 'tag_append(6)'
mod_ctrl_7: 'tag_append(7)'
mod_ctrl_8: 'tag_append(8)'
mod_ctrl_9: 'tag_append(9)'
mod_shift_1: 'win_move_tag(1)'
mod_shift_2: 'win_move_tag(2)'
mod_shift_3: 'win_move_tag(3)'
mod_shift_4: 'win_move_tag(4)'
mod_shift_5: 'win_move_tag(5)'
mod_shift_6: 'win_move_tag(6)'
mod_shift_7: 'win_move_tag(7)'
mod_shift_8: 'win_move_tag(8)'
mod_shift_9: 'win_move_tag(9)'
mod_shift_CR: 'exec(urxvt -name urxvt-float)'
mod_shift_F1: 'win_move_screen(1)'
mod_shift_F2: 'win_move_screen(2)'
mod_shift_F3: 'win_move_screen(3)'
mod_shift_F4: 'win_move_screen(4)'
mod_shift_F5: 'win_move_screen(5)'
mod_shift_F6: 'win_move_screen(6)'
mod_shift_F7: 'win_move_screen(7)'
mod_shift_F8: 'win_move_screen(8)'
mod_shift_F9: 'win_move_screen(9)'
mod_shift_c: 'win_close()'
mod_shift_ctrl_l: 'exec(lock)'
mod_shift_g: 'exec(google-chrome --simulate-outdated-no-au --new-window)'
mod_shift_h: 'focus_swap(h)'
mod_shift_j: 'focus_swap(j)'
mod_shift_k: 'focus_swap(k)'
mod_shift_l: 'focus_swap(l)'
mod_shift_s: 'mark_switch_window()'
mod_shift_w: 'exec(firefox --new-instance)'
mod_w: 'exec(firefox --new-instance --private-window)'
## Rules applied to new windows by WM_CLASS
# floating -- should the window be tiled (by default for non-transient) or floating
# follow -- focus new window and switch to it's screen & tag
# screen -- preferred screen to attach the window to (starts with 1)
# tag -- preferred tag to attach the window to (starts with 1)
# placement -- takes precedence over screen & tag (see description and example below)
#
# Placement is an array indexed over number of screens.
# Value should be an undef (~) or an array of [ screen, tag ] (both starts with 1).
# There is no any validation, so take care using 'placement'.
# Either you connect more screens than specified, or the placement is undef; the default screen and tag will be used.
rules:
evolution:
follow: 0
tag: 3 # place it on the first screen, tag #3
org.gnome.Evolution:
follow: 0
screen: 1 # place it on the first screen
tag: 3 # place it on the tag #3
galculator:
floating: 1
mattermost:
placement:
- ~ # 0 screens: we don't care
- [1, 4] # 1 screens: place it on the only screen, tag #4
- [2, 4] # 2 screens: place it on the second screen, tag #4
- [3, 4] # 3 screens: place it on the third screen, tag #4
follow: 1
urxvt-float:
floating: 1
xeyes:
floating: 1
evolution-alarm-notify:
floating: 1
urgent: 1
## List of WM_NAME of windows which we want to see despite unset WM_CLASS
noclass_whitelist:
- Event Tester
- glxgears
## List of commands to execute during startup
autostart:
- 'exec(setxkbmap -layout us,ru -option grp:alt_shift_toggle,compose:ralt)'
# vim: ft=yaml ts=2 sw=2 cc=119 :