diff -ruN -x _build a/wayfire.ini b/wayfire.ini --- a/wayfire.ini 2026-10-28 03:12:33.982804261 -0500 +++ b/wayfire.ini 2026-10-28 03:13:01.800896505 -0500 @@ -45,13 +45,15 @@ # List of plugins to be enabled. # See the Configuration document for a complete list. +# SrcUX: the desktop stack (IPC, shell, window actions, panel desktop, idle sky, +# lock, live wallpaper, per-workspace backgrounds) and Scale are on; Pixdecor +# replaces decoration. plugins = \ alpha \ animate \ autostart \ command \ cube \ - decoration \ expo \ fast-switcher \ fisheye \ @@ -60,18 +62,28 @@ gtk-shell \ idle \ invert \ + ipc \ + ipc-rules \ + live-wallpaper \ move \ oswitch \ + panel-desktop \ + pixdecor \ place \ resize \ + scale \ + screensaver \ session-lock \ shortcuts-inhibit \ switcher \ vswitch \ + wayfire-lock \ wayfire-shell \ + window-actions \ window-rules \ wm-actions \ wobbly \ + workspace-backgrounds \ wrot \ zoom @@ -81,7 +93,8 @@ # https://github.com/WayfireWM/wayfire/wiki/Configuration#blur # Close focused window. -close_top_view = KEY_Q | KEY_F4 +# SrcUX: Super+W closes as well. +close_top_view = KEY_Q | KEY_W | KEY_F4 # Workspaces arranged into a grid: 3 × 3. vwidth = 3 @@ -111,6 +124,8 @@ # Rotate windows with the mouse. [wrot] activate = BTN_RIGHT +# SrcUX: Super+R opens the Run box, so resetting one rotated window moves to Super+Alt+R. +reset-one = KEY_R # Fisheye effect. [fisheye] @@ -125,7 +140,12 @@ # Automatically start background and panel. # Set to false if you want to override the default clients. -autostart_wf_shell = true +# SrcUX: the SrcUX desktop below provides the panel, dock and background. +autostart_wf_shell = false + +# SrcUX: start the desktop (session resident, panel, dock, menu, files and +# notifications). The Super bindings in [command] run inside it. +srcux_desktop = wayfire-desktop-session --desktop # Set the wallpaper, start a panel and dock if you want one. # https://github.com/WayfireWM/wf-shell @@ -142,20 +162,27 @@ # Output configuration # https://wayland.emersion.fr/kanshi/ -outputs = kanshi +# SrcUX: off; Wayfire's own [output:...] sections and the stitched output own the +# layout, and kanshi would fight them. +# outputs = kanshi # Notifications # https://wayland.emersion.fr/mako/ -notifications = mako +# SrcUX: off; the desktop session owns org.freedesktop.Notifications. +# notifications = mako # Screen color temperature # https://sr.ht/~kennylevinsen/wlsunset/ -gamma = wlsunset +# SrcUX: off; wlsunset is not part of the desktop. Install it and uncomment. +# gamma = wlsunset # Idle configuration # https://github.com/swaywm/swayidle # https://github.com/swaywm/swaylock -idle = swayidle before-sleep swaylock +# SrcUX: off; swayidle and swaylock are not part of the desktop. Lock with +# Super+Ctrl+L (wayfire-lock); the [idle] options below set the screensaver and +# screen blanking (blanking is off by default). +# idle = swayidle before-sleep swaylock # XDG desktop portal # Needed by some GTK applications @@ -181,39 +208,45 @@ binding_terminal = KEY_ENTER command_terminal = alacritty -# Start your launcher -# https://hg.sr.ht/~scoopta/wofi -# Note: Add mode=run or mode=drun to ~/.config/wofi/config. -# You can also specify the mode with --show option. -binding_launcher = KEY_ENTER -command_launcher = wofi - -# Screen locker -# https://github.com/swaywm/swaylock -binding_lock = KEY_ESC -command_lock = swaylock - -# Logout -# https://github.com/ArtsyMacaw/wlogout -binding_logout = KEY_ESC -command_logout = wlogout +# SrcUX: Run box and application menu (the menu also holds the power actions). +binding_run = KEY_R +command_run = wayfire-desktop-session --exec -- wayfire-run +binding_menu = KEY_SPACE +command_menu = wayfire-desktop-session --exec -- wayfire-appmenu + +# SrcUX: cheat sheet of every binding. +binding_keys = KEY_K +command_keys = wayfire-desktop-session --exec -- wayfire-keys + +# SrcUX: screen locker. +binding_lock = KEY_L +command_lock = wayfire-lock + +# SrcUX: Files and Settings. +binding_files = KEY_F +command_files = wayfire-desktop-session --exec -- wayfire-files-open +binding_settings = KEY_COMMA +command_settings = wayfire-desktop-session --exec -- wayfire-settings -# Screenshots -# https://wayland.emersion.fr/grim/ -# https://wayland.emersion.fr/slurp/ +# SrcUX: screenshots and colour picker. binding_screenshot = KEY_PRINT -command_screenshot = grim $(date '+%F_%T').webp +command_screenshot = wayfire-screenshot focused-output --save binding_screenshot_interactive = KEY_PRINT -command_screenshot_interactive = slurp | grim -g - $(date '+%F_%T').webp +command_screenshot_interactive = wayfire-screenshot select +binding_colour = KEY_PRINT +command_colour = hyprpicker -a + +# SrcUX: log out, suspend and power off from the menu's power actions (with confirmation). +binding_logout = KEY_ESC +command_logout = wayfire-desktop-session --exec -- wayfire-appmenu -# Volume controls -# https://alsa-project.org +# SrcUX: volume controls through WirePlumber instead of amixer. repeatable_binding_volume_up = KEY_VOLUMEUP -command_volume_up = amixer set Master 5%+ +command_volume_up = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ repeatable_binding_volume_down = KEY_VOLUMEDOWN -command_volume_down = amixer set Master 5%- +command_volume_down = wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- binding_mute = KEY_MUTE -command_mute = amixer set Master toggle +command_mute = wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Screen brightness # https://haikarainen.github.io/light/ @@ -225,11 +258,15 @@ # Windows ────────────────────────────────────────────────────────────────────── # Actions related to window management functionalities. +# SrcUX: fullscreen, maximize, show desktop and minimize are bound. +[wm-actions] +toggle_fullscreen = KEY_F +toggle_maximize = KEY_F +toggle_showdesktop = KEY_D +minimize = KEY_N # -# Example configuration: +# More examples: # -# [wm-actions] -# toggle_fullscreen = KEY_F # toggle_always_on_top = KEY_X # toggle_sticky = KEY_X @@ -265,19 +302,40 @@ # Switch to workspace. [vswitch] -binding_left = KEY_LEFT +# SrcUX: Super+Alt+Left/Right and Super+(Shift+)Tab step through workspaces. +binding_left = KEY_LEFT | KEY_TAB binding_down = KEY_DOWN binding_up = KEY_UP -binding_right = KEY_RIGHT +binding_right = KEY_RIGHT | KEY_TAB # Move the focused window with the same key-bindings, but add Shift. with_win_left = KEY_LEFT with_win_down = KEY_DOWN with_win_up = KEY_UP with_win_right = KEY_RIGHT +# SrcUX: Super+N goes to workspace N, Super+Shift+N takes the focused window along. +binding_1 = KEY_1 +binding_2 = KEY_2 +binding_3 = KEY_3 +binding_4 = KEY_4 +binding_5 = KEY_5 +binding_6 = KEY_6 +binding_7 = KEY_7 +binding_8 = KEY_8 +binding_9 = KEY_9 +with_win_1 = KEY_1 +with_win_2 = KEY_2 +with_win_3 = KEY_3 +with_win_4 = KEY_4 +with_win_5 = KEY_5 +with_win_6 = KEY_6 +with_win_7 = KEY_7 +with_win_8 = KEY_8 +with_win_9 = KEY_9 # Show the current workspace row as a cube. [cube] -activate = BTN_LEFT +# SrcUX: Super+Alt+C shows the cube from the keyboard. +activate = BTN_LEFT | KEY_C # Switch to the next or previous workspace. #rotate_left = KEY_H #rotate_right = KEY_L