revert xembed-sni-proxy and tray click workarounds
XTest click forwarding doesn't work under Hyprland's XWayland, making the tray icon non-interactive. Remove the derivation, startup handler, container window rule, and click workarounds. Keeps the workspace filter fix (hide special workspaces from bar). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8510ea5c4f
commit
ab322e545c
1 changed files with 8 additions and 74 deletions
|
|
@ -4,41 +4,6 @@ let
|
||||||
isMacbook = config.networking.hostName == "FredOS-Macbook";
|
isMacbook = config.networking.hostName == "FredOS-Macbook";
|
||||||
isGaming = !isMacbook;
|
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=";
|
|
||||||
};
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace CMakeLists.txt \
|
|
||||||
--replace-fail 'set_package_properties(XCB PROPERTIES TYPE REQUIRED)' ""
|
|
||||||
'';
|
|
||||||
|
|
||||||
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
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
|
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
|
||||||
|
|
@ -273,7 +238,6 @@ in
|
||||||
hl.exec_cmd("hyprctl setcursor Bibata-Modern-Ice 24")
|
hl.exec_cmd("hyprctl setcursor Bibata-Modern-Ice 24")
|
||||||
hl.exec_cmd("swayosd-server")
|
hl.exec_cmd("swayosd-server")
|
||||||
${lib.optionalString isMacbook ''hl.exec_cmd("hypridle")''}
|
${lib.optionalString isMacbook ''hl.exec_cmd("hypridle")''}
|
||||||
${lib.optionalString isGaming ''hl.exec_cmd("${xembed-sni-proxy}/bin/xembedsniproxy")''}
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Animation curve and definitions
|
-- Animation curve and definitions
|
||||||
|
|
@ -286,11 +250,6 @@ in
|
||||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1, bezier = "snap" })
|
hl.animation({ leaf = "workspaces", enabled = true, speed = 1, bezier = "snap" })
|
||||||
|
|
||||||
-- Window rules
|
-- Window rules
|
||||||
-- Hide xembed-sni-proxy container window (classless, titleless floating window).
|
|
||||||
hl.window_rule({
|
|
||||||
match = { class = "^$", title = "^$", float = true },
|
|
||||||
workspace = "special silent",
|
|
||||||
})
|
|
||||||
-- Battle.net tray icon leaks as a tiny floating XWayland window.
|
-- Battle.net tray icon leaks as a tiny floating XWayland window.
|
||||||
hl.window_rule({
|
hl.window_rule({
|
||||||
match = { class = "steam_app_0", title = "^$", float = true },
|
match = { class = "steam_app_0", title = "^$", float = true },
|
||||||
|
|
@ -490,10 +449,6 @@ in
|
||||||
'';
|
'';
|
||||||
nmcli = "${pkgs.networkmanager}/bin/nmcli";
|
nmcli = "${pkgs.networkmanager}/bin/nmcli";
|
||||||
powerprofilesctl = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl";
|
powerprofilesctl = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl";
|
||||||
focusTrayWindow = pkgs.writeShellScript "focus-tray-window" ''
|
|
||||||
addr=$(hyprctl clients -j | ${pkgs.jq}/bin/jq -r '.[] | select(.class=="steam_app_0" and .title!="") | .address' | head -1)
|
|
||||||
[ -n "$addr" ] && hyprctl eval "hl.dispatch(hl.dsp.focus({window = \"address:$addr\"}))"
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
"quickshell/qmldir" = {
|
"quickshell/qmldir" = {
|
||||||
onChange = qsRestart;
|
onChange = qsRestart;
|
||||||
|
|
@ -1155,11 +1110,6 @@ in
|
||||||
color: Theme.base05
|
color: Theme.base05
|
||||||
}
|
}
|
||||||
|
|
||||||
Process {
|
|
||||||
id: trayFocusProc
|
|
||||||
command: ["${focusTrayWindow}"]
|
|
||||||
}
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
|
@ -1191,31 +1141,15 @@ in
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
onClicked: (event) => {
|
onClicked: (event) => {
|
||||||
if (event.button === Qt.RightButton) {
|
if (modelData.hasMenu) {
|
||||||
if (modelData.hasMenu) {
|
bar.toggleDropdown(contextMenu, function() {
|
||||||
bar.toggleDropdown(contextMenu, function() {
|
let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0);
|
||||||
let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0);
|
contextMenu.dropdownX = pos.x;
|
||||||
contextMenu.dropdownX = pos.x;
|
contextMenu.trayItem = modelData;
|
||||||
contextMenu.trayItem = modelData;
|
menuOpener.menu = modelData.menu;
|
||||||
menuOpener.menu = modelData.menu;
|
});
|
||||||
});
|
|
||||||
} else {
|
|
||||||
modelData.secondaryActivate();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (modelData.onlyMenu && modelData.hasMenu) {
|
modelData.activate();
|
||||||
bar.toggleDropdown(contextMenu, function() {
|
|
||||||
let pos = parent.mapToItem(bar.contentItem, parent.width / 2, 0);
|
|
||||||
contextMenu.dropdownX = pos.x;
|
|
||||||
contextMenu.trayItem = modelData;
|
|
||||||
menuOpener.menu = modelData.menu;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
modelData.activate();
|
|
||||||
if (!modelData.hasMenu) {
|
|
||||||
trayFocusProc.running = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue