hyprland: add xembed-sni-proxy for Wine tray icons, hide special workspaces

Package standalone xembed-sni-proxy (XEmbed→SNI bridge) for Wine/Battle.net
tray icons. Unlike snixembed, this doesn't register its own StatusNotifierWatcher
so it won't conflict with Quickshell's tray.

Also filter special workspaces (id < 0) from the bar to fix phantom "al:special".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-06-03 13:22:36 +01:00
parent bf6115a323
commit 7cb8ad0611

View file

@ -4,6 +4,36 @@ let
isMacbook = config.networking.hostName == "FredOS-Macbook";
isGaming = !isMacbook;
xembed-sni-proxy = pkgs.stdenv.mkDerivation {
pname = "xembed-sni-proxy";
version = "unstable-2026-01-22";
src = pkgs.fetchFromGitHub {
owner = "BLumia";
repo = "xembed-sni-proxy";
rev = "c3afbd4c1d26a19622cd7c2cae3db3d35fdd0d33";
hash = "sha256-cxEOrPUPtNTFSgH8hsbft/1dmPsXhONQgFnOWuzFfTk=";
};
nativeBuildInputs = with pkgs; [
cmake
pkg-config
kdePackages.extra-cmake-modules
qt6.wrapQtAppsHook
];
buildInputs = with pkgs; [
qt6.qtbase
kdePackages.kwindowsystem
xorg.libX11
xorg.libxcb
xorg.xcbutil
xorg.xcbutilimage
xorg.xcbutilwm
xorg.libXtst
];
};
in
{
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
@ -238,6 +268,7 @@ in
hl.exec_cmd("hyprctl setcursor Bibata-Modern-Ice 24")
hl.exec_cmd("swayosd-server")
${lib.optionalString isMacbook ''hl.exec_cmd("hypridle")''}
${lib.optionalString isGaming ''hl.exec_cmd("${xembed-sni-proxy}/bin/xembedsniproxy")''}
end)
-- Animation curve and definitions
@ -665,7 +696,8 @@ in
Item {
required property var modelData
width: 28
visible: modelData.id > 0
width: visible ? 28 : 0
height: 30
Text {