mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 08:48:11 +09:00
nwg-drawer
This commit is contained in:
@@ -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" ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
description = "Full-screen Wayland application drawer";
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
"applications.gtk"
|
||||
"applications.nautilus"
|
||||
"hardwares.graphics"
|
||||
"services.fusuma"
|
||||
"systems.audio"
|
||||
"systems.fonts"
|
||||
];
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
description = "Touchpad gesture recognition for Wayland sessions";
|
||||
|
||||
includes = [ "applications.nwg-drawer" ];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{ primaryUser, ... }:
|
||||
{
|
||||
# Fusuma reads raw touchpad events through libinput.
|
||||
users.users.${primaryUser}.extraGroups = [ "input" ];
|
||||
}
|
||||
Reference in New Issue
Block a user