dotfiles/config/beansprout/config.kdl

147 lines
5.3 KiB
Text

// Whether new windows should go to the top or bottom of the window stack
attach_mode top
// Path to shell script to be automatically executed after the compositor completes setup
// autoexec "/usr/local/bin/autoexec.sh"
// Number of windows in the primary stack
primary_count 1
// Proportion of output width taken by the primary stack
primary_ratio 0.55
// Proportion of output width taken by a window if it's the only visible tiled window
// This is intended to be useful for ultrawides where a very wide window might not look very nice
// When this is < 1.0 and only one window is being tiled, the window will have width
// output_width * single_window_ratio and be centered on the output
single_window_ratio 1.0
/// Side the primary should be on
primary_side left
// Whether mousing over a new window should move focus
focus_follows_pointer #true
// Whether the focus should warp to the center of newly-focused windows
pointer_warp_on_focus_change #true
// Path to image to use as wallpaper
// The same image is displayed on all outputs, but scaled separately
// If this config is missing, then the background is blank black screen
wallpaper_image_path "~/Pictures/Wallpapers/shores-1440p.png"
borders {
width 2
// 8 or 10 digit hex color
color_focused "0x812729" // polar-night 4
color_unfocused "0x2c2628" // polar-night 2
}
bar {
background_color "0x191919" // polar-night 1
position top
center clock
}
// Tag overlay widget; shown briefly when switching tags
// Remove this block to disable the overlay entirely
tag_overlay {
tag_amount 10
background_color "0x191919"
border_color "0x812729"
square_active_background_color "0x212020"
square_active_border_color "0x2c2628"
square_active_occupied_color "0xd24d1f"
square_inactive_background_color "0x191919"
square_inactive_border_color "0x2c2628"
square_inactive_occupied_color "0x812729"
}
// Window rules; applied once when a window first appears
// Rules are evaluated top-to-bottom; later rules override earlier ones
window_rules {
// Float Firefox picture-in-picture windows
// float app_id="zen" title="Picture-in-Picture"
// Float any window with "Preferences" in the title
float title="*Preferences*"
// Keep mpv windows tiled
no_float app_id="mpv"
// Send Slack to tag 3 (1<<2 = 0x0004)
tags 0x0004 app_id="Slack"
}
keybinds {
// Swap a window
spawn Mod4 W "rofi -show drun"
spawn Alt L "swaylock"
spawn Mod4 Return foot
// Move focus up or down the windows stack
focus_next_window Mod4 J
focus_prev_window Mod4 K
// Move focus between windows
focus_next_output Mod4 Period
focus_prev_output Mod4 Comma
// Move windows between outputs
send_to_next_output Mod4+Shift Period
send_to_prev_output Mod4+Shift Comma
// Swap the currently-focused window with the current primary
zoom Mod4 Z
// Float/unfloat the currently-focused window
toggle_float Mod4+Shift F
// Change the primary ratio of the current output
change_primary_ratio Mod4 H 0.05
change_primary_ratio Mod4 L -0.05
// Change the number of windows in the primary side
increment_primary_count Mod4 I
decrement_primary_count Mod4 D
// Reload config file
reload_config Mod4+Shift R
// Toggle fullscreen on the currently-focused window
toggle_fullscreen Mod4 F
// Close the currently-focused window
close_window Mod4+Shift Q
// Exit the entire river session
exit_river Ctrl+Alt Delete
// Move windows up or down the stack
swap_next Mod4+Shift N
swap_prev Mod4+Shift P
// Move floating windows; noop on tiled windows
move_left Mod4+Shift H 100
move_down Mod4+Shift J 100
move_up Mod4+Shift K 100
move_right Mod4+Shift L 100
// Resize floating windows; noop on tiled windows
resize_width Mod4+Alt+Shift H -100
resize_height Mod4+Alt+Shift J 100
resize_height Mod4+Alt+Shift K -100
resize_width Mod4+Alt+Shift L 100
// Media keys (no modifier)
spawn None XF86AudioRaiseVolume "vol up"
spawn None XF86AudioLowerVolume "vol down"
spawn None XF86AudioMute "vol mute"
spawn None XF86AudioMedia "playerctl play-pause"
spawn None XF86AudioPlay "playerctl play-pause"
spawn None XF86AudioPrev "playerctl previous"
spawn None XF86AudioNext "playerctl next"
spawn None Print "sh -c screenshot"
spawn Shift Print "sh -c screenshot-file"
// Brightness keys (no modifier)
spawn None XF86MonBrightnessUp "~/.config/river/brightness-up.sh"
spawn None XF86MonBrightnessDown "~/.config/river/brightness-down.sh"
// Special command to generate keybinds for keys 1-9 and tags 1<<0 through 1<<8
tag_bind Mod4 set_output_tags
tag_bind Mod4+Shift set_window_tags
tag_bind Mod4+Ctrl toggle_output_tags
tag_bind Mod4+Ctrl+Shift toggle_window_tags
}
pointer_binds {
// Mod4 + Left click to move floating windows;
// tiled windows will automatically float if moved
move_window Mod4 BTN_LEFT
// Mod4 + Right click to resize floating windows;
// tiled windows will automatically float if resized
resize_window Mod4 BTN_RIGHT
}
// Keyboard layout configuration
// All fields are optional and default to system/xkbcommon defaults
keyboard_layout {
layout "us"
// variant "dvorak"
options "compose:rctrl"
}
// Default input config for all devices
input {
accel_profile "flat"
tap "enabled"
}