beansprout-custom/examples/config.kdl
Ben Buhse 0e7d652d24
Add time_format config for custom strftime strings
This lets the user change to any time format they want in the bar.
As part of this, we also change the bar to re-draw every second (to
allow using seconds in the time format string).
2026-02-27 11:02:45 -06:00

139 lines
5.2 KiB
Text

// Whether new windows should go to the top or bottom of the window stack
attach_mode top
// 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 0.70
/// 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/the_valley.png"
borders {
width 2
// 8 or 10 digit hex color
color_focused "0x89b4fa"
color_unfocused "0x1e1e2e"
}
// Bar widget; shows the time
bar {
position top
time_format "%H:%M"
}
// Tag overlay widget; shown briefly when switching tags
// Remove this block to disable the overlay entirely
tag_overlay {
tag_amount 10
background_color "0x1e1e2e"
border_color "0x6c7086"
square_active_background_color "0x89b4fa"
square_active_border_color "0x6c7086"
square_active_occupied_color "0xcdd6f4"
square_inactive_background_color "0x585b70"
square_inactive_border_color "0x6c7086"
square_inactive_occupied_color "0xcdd6f4"
}
// 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="firefox" 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 T 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_ratio Mod4 H 0.05
change_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
// 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 "~/.config/river/volume-up.sh"
spawn None XF86AudioLowerVolume "~/.config/river/volume-down.sh"
spawn None XF86AudioMute "~/.config/river/volume-toggle-mute.sh"
spawn None XF86AudioMedia "playerctl play-pause"
spawn None XF86AudioPlay "playerctl play-pause"
spawn None XF86AudioPrev "playerctl previous"
spawn None XF86AudioNext "playerctl next"
// 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
}
// Default input config for all devices
input {
accel_profile "flat"
}
// Framework 13 Touchpad
input name="PIXA3854:00 093A:0274 Touchpad" {
accel_profile "adaptive"
click_method "clickfinger"
natural_scroll "enabled"
tap "disabled"
}
// Per-host config using the host= property
// Nodes with a host property are only applied when the hostname matches
wallpaper_image_path "~/Pictures/desktop.png" host="desktop"
wallpaper_image_path "~/Pictures/laptop.png" host="laptop"