Files
feresaria/packaging/config.kdl
T
Samuel Onoja 64a80dc069 Unify window presentation and frame-driven shell motion
Share window geometry across overview, resize snapshots and retained closes. Advance close handoffs and group retained rendering by stacking position.

Drive shell motion from surface frames, reuse settled widget content, and synchronize notification materials with each card's fade. Replace physical config keys with duration and bounce, and update documentation and regression coverage.
2026-10-03 04:22:36 +01:00

208 lines
5.3 KiB
KDL

// Commands run directly, without a shell. Install optional apps before using them.
commands {
terminal "foot"
browser "firefox"
editor "zed"
lock "ferese-lock"
screenshot "ferese-screenshot"
screenshot-full "ferese-screenshot" "--full"
brightness-up "brightnessctl" "set" "2%+"
brightness-down "brightnessctl" "set" "2%-"
volume-up "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%+"
volume-down "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%-"
mute "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"
mic-mute "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"
}
// These supplement the built-in shortcuts listed in docs/shortcuts.md.
binding "Super+B" "spawn" "browser"
binding "Super+Z" "spawn" "editor"
binding "Super+Alt+L" "spawn" "lock"
binding "XF86MonBrightnessUp" "spawn" "brightness-up"
binding "XF86MonBrightnessDown" "spawn" "brightness-down"
binding "XF86AudioRaiseVolume" "spawn" "volume-up"
binding "XF86AudioLowerVolume" "spawn" "volume-down"
binding "XF86AudioMute" "spawn" "mute"
binding "XF86AudioMicMute" "spawn" "mic-mute"
binding "Super+Left" "focus" "left"
binding "Super+Down" "focus" "down"
binding "Super+Up" "focus" "up"
binding "Super+Right" "focus" "right"
binding "Super+Ctrl+Left" "move" "left"
binding "Super+Ctrl+Down" "move" "down"
binding "Super+Ctrl+Up" "move" "up"
binding "Super+Ctrl+Right" "move" "right"
binding "Super+Alt+Left" "resize" "left"
binding "Super+Alt+Down" "resize" "down"
binding "Super+Alt+Up" "resize" "up"
binding "Super+Alt+Right" "resize" "right"
// Replace a swipe action with "toggle-overview", "move" "left", or another action.
binding "Swipe3Up" "workspace-next"
binding "Swipe3Down" "workspace-previous"
binding "Swipe3Left" "focus" "right"
binding "Swipe3Right" "focus" "left"
input {
xkb-layout "us"
xkb-variant ""
xkb-options
focus-follows-mouse #false
repeat-rate 25
repeat-delay-ms 600
touchpad {
tap #true
natural-scroll #true
disable-while-typing #true
swipe-threshold 80
}
}
layout {
mode "scrolling"
inner-gap 4
outer-gap 4
smart-gaps #false
}
workspaces {
// Press the current workspace's shortcut again to return to the previous one.
auto-back-and-forth #false
}
scrolling {
default-column-width 0.5
focus-strategy "paged"
width-presets 0.33333 0.5 0.66667 "full"
}
animations {
enabled #true
reduced-motion #false
speed 0.9
spring {
duration-ms 240.0
bounce 0.0
overshoot #false
}
viewport-spring {
duration-ms 350.0
bounce 0.0
overshoot #false
}
}
appearance {
inactive-dim {
enabled #false
amount 0.15
duration-ms 150
}
}
theme {
mode "dark"
family "ferese-blue"
split #false
schedule { source "schedule"; timezone "system"; light-at "07:00"; dark-at "19:00"; }
accessibility { increase-contrast #false; reduce-transparency #false; }
background {
mode "fill"
// path "/absolute/path/to/wallpaper.png"
}
material {
style "translucent"
}
geometry {
window-radius 12
shell-radius 12
border-width 1
focus-ring-width 1
top-bar-height 30
top-bar-margin-horizontal 18
top-bar-margin-top 6
top-bar-window-gap 4
panel-padding 12
control-gap 12
}
shadow {
soft {
blur 10
offset-y 2
opacity 0.07
}
}
// typography { font-family "JetBrainsMono Nerd Font"; }
}
status {
keybinding-guide #true
window-title #true
battery-percentage #true
low-battery-threshold 20
}
window-rule app-id="dev.ferese.Settings" floating=#true
window-rule app-id="dev.ferese.ScreenShare" floating=#true
window-rule app-id="dev.ferese.Authentication" floating=#true
window-rule app-id="org.gnome.Calculator" floating=#true
window-rule app-id="org.pulseaudio.pavucontrol" floating=#true
window-rule title="Picture-in-Picture" floating=#true
window-rule title="Choose a wallpaper" floating=#true
desktop-widgets {
clock enabled=#false {
style "pixel"
anchor "top_left"
margin-x 64
margin-y 80
width 440
height 320
time-size 128
date-size 18
time-format "%H:%M"
date-format "%a, %b %-d"
show-date #true
opacity 0.9
}
note "today" enabled=#false {
title "Today"
text "Review the project\nTake a break"
anchor "top_right"
margin-x 48
margin-y 80
width 320
height 240
text-size 16
}
}
notifications {
show-popups #true
do-not-disturb #false
timeout-ms 6000
}
lock-screen {
clock-format "12h"
background-dim 0.26
background-blur 14
dim-after-seconds 30
sleep-after-seconds 120
}
// Install swayidle and test unlocking before enabling automatic locking.
// autostart "swayidle" "-w" "timeout" "300" "ferese-lock" "before-sleep" "ferese-lock" "lock" "ferese-lock"
// Find display names with feresectl get-outputs, then adjust and uncomment.
// output-profile "docked" {
// output "HDMI-A-1" scale=1.5 { position 0 0; }
// output "eDP-1" scale=1.5 { position 2560 0; }
// }
// output-profile "laptop" {
// output "eDP-1" scale=1.5
// }