Fix #1: Replace hardcoded 185px deskbar-offset in client.c and events.c with DESKBAR_W constant (200) to eliminate the 15px gap between the WM frame and deskbar edge. Fix #2: Add Shift+Alt+Tab reverse-direction support — grab Mod1+Shift+XK_Tab in wm.c, detect ShiftMask in events.c, and implement switcher_prev() in switcher.c. Fix #3: Include minimized windows in the Alt+Tab switcher. swl_populate() no longer skips minimized clients; swl_mini[] tracks state so switcher_draw() can dim them with bracketed titles and darker card backgrounds. Fix #4: Rewrite themes/picom.conf with macOS-inspired settings — 10px corner radius on normal windows, 8px on menus, soft downward shadow (radius 18, offset-y 8, opacity 0.35), smooth fading (step 0.08), no dock/tray rounding. Fix #5: Add per-app right-click context menu to the deskbar. Right-clicking an app row opens a popup with Raise / Minimize / Close actions (Close shown in red). Actions are sent as EWMH client messages (_NET_ACTIVE_WINDOW, WM_CHANGE_STATE+IconicState, _NET_CLOSE_WINDOW) with matching handlers added to the WM's on_client_message. Pointer grab closes the menu on any outside click.
69 lines
3.1 KiB
Plaintext
69 lines
3.1 KiB
Plaintext
# OrionOS picom compositor config — macOS-inspired
|
|
# Rounded corners, soft macOS-style shadows, fast fading.
|
|
|
|
backend = "xrender";
|
|
vsync = false;
|
|
|
|
# ── rounded corners ───────────────────────────────────────────────────────
|
|
corner-radius = 10;
|
|
rounded-corners-exclude = [
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'DOCK'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'DESKTOP'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'TOOLTIP'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'NOTIFICATION'",
|
|
"override_redirect = 1 && !WM_CLASS@:s"
|
|
];
|
|
|
|
# ── shadows ───────────────────────────────────────────────────────────────
|
|
# macOS-style: larger, softer, offset down-right
|
|
shadow = true;
|
|
shadow-radius = 18;
|
|
shadow-offset-x = 0;
|
|
shadow-offset-y = 8;
|
|
shadow-opacity = 0.35;
|
|
shadow-color = "#000000";
|
|
|
|
shadow-exclude = [
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'DOCK'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'TOOLTIP'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'NOTIFICATION'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'POPUP_MENU'",
|
|
"_NET_WM_WINDOW_TYPE@:a *= 'DROPDOWN_MENU'",
|
|
"override_redirect = 1 && !WM_CLASS@:s"
|
|
];
|
|
|
|
# ── fading ────────────────────────────────────────────────────────────────
|
|
fading = true;
|
|
fade-in-step = 0.08;
|
|
fade-out-step = 0.08;
|
|
fade-delta = 6;
|
|
no-fading-openclose = false;
|
|
|
|
# ── opacity ───────────────────────────────────────────────────────────────
|
|
inactive-opacity = 1.0;
|
|
active-opacity = 1.0;
|
|
frame-opacity = 1.0;
|
|
inactive-opacity-override = false;
|
|
|
|
# ── blur ─────────────────────────────────────────────────────────────────
|
|
blur-method = "none";
|
|
|
|
# ── focus & refresh ───────────────────────────────────────────────────────
|
|
detect-client-opacity = true;
|
|
detect-transient = true;
|
|
detect-client-leader = true;
|
|
use-ewmh-active-win = true;
|
|
mark-wmwin-focused = true;
|
|
mark-ovredir-focused = false;
|
|
|
|
# ── window type rules ─────────────────────────────────────────────────────
|
|
wintypes:
|
|
{
|
|
tooltip = { fade = true; shadow = false; opacity = 1.0; focus = true; };
|
|
dock = { shadow = false; clip-shadow-above = true; corner-radius = 0; };
|
|
dnd = { shadow = false; };
|
|
popup_menu = { opacity = 1.0; shadow = false; corner-radius = 8; };
|
|
dropdown_menu = { opacity = 1.0; shadow = false; corner-radius = 8; };
|
|
notification = { shadow = false; corner-radius = 8; };
|
|
};
|