nwg-drawer

This commit is contained in:
2026-07-30 16:16:41 +09:00
parent 831ae7bbc2
commit ecabb8b630
6 changed files with 86 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
{ lib, pkgs, ... }:
let
nwgDrawer = lib.getExe pkgs.nwg-drawer;
in
{
home.packages = [ pkgs.nwg-drawer ];
# Keep the application grid resident so touchpad gestures can show it
# immediately instead of rebuilding the desktop-entry cache each time.
systemd.user.services.nwg-drawer = {
Unit = {
Description = "Resident nwg-drawer application grid";
Documentation = [ "https://github.com/nwg-piotr/nwg-drawer" ];
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
# Use niri's spawn action when available; nwg-drawer falls back to a
# direct launch under labwc.
ExecStart = "${nwgDrawer} -r -ovl -wm niri -closebtn right -fm nautilus -term ghostty";
Restart = "on-failure";
RestartSec = 2;
};
Install.WantedBy = [ "graphical-session.target" ];
};
}
+3
View File
@@ -0,0 +1,3 @@
{
description = "Full-screen Wayland application drawer";
}
@@ -8,6 +8,7 @@
"applications.gtk" "applications.gtk"
"applications.nautilus" "applications.nautilus"
"hardwares.graphics" "hardwares.graphics"
"services.fusuma"
"systems.audio" "systems.audio"
"systems.fonts" "systems.fonts"
]; ];
+44
View File
@@ -0,0 +1,44 @@
{ lib, pkgs, ... }:
let
fusuma = lib.getExe pkgs.fusuma;
nwgDrawer = lib.getExe pkgs.nwg-drawer;
in
{
home.packages = [ pkgs.fusuma ];
xdg.configFile."fusuma/config.yml".text = ''
pinch:
4:
in:
command: "${nwgDrawer} -open"
out:
command: "${nwgDrawer} -close"
threshold:
pinch: 0.5
interval:
pinch: 0.5
'';
systemd.user.services.fusuma = {
Unit = {
Description = "Fusuma multitouch gesture recognizer";
Documentation = [ "https://github.com/iberianpig/fusuma" ];
Requires = [ "nwg-drawer.service" ];
PartOf = [ "graphical-session.target" ];
After = [
"graphical-session.target"
"nwg-drawer.service"
];
};
Service = {
ExecStart = fusuma;
Restart = "on-failure";
RestartSec = 3;
};
Install.WantedBy = [ "graphical-session.target" ];
};
}
+5
View File
@@ -0,0 +1,5 @@
{
description = "Touchpad gesture recognition for Wayland sessions";
includes = [ "applications.nwg-drawer" ];
}
+5
View File
@@ -0,0 +1,5 @@
{ primaryUser, ... }:
{
# Fusuma reads raw touchpad events through libinput.
users.users.${primaryUser}.extraGroups = [ "input" ];
}