// 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" } xwayland { enabled #true startup on-demand path "xwayland-satellite" } // 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 { focus-effect { enabled #true active-opacity 1.0 inactive-opacity 1.0 inactive-dim 0.0 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" // Fullscreen MPRIS playback keeps the session awake until paused or hidden. // idle-inhibit { fullscreen-playback #false; } // window-rule app-id="org.example.Presentation" idle-inhibit="visible" // Find display names with feresectl 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 // }