feat(wl-kbptr): package wl-kbptr for NixOS as home module
This commit is contained in:
@@ -19,6 +19,7 @@ in {
|
|||||||
./swaync.nix
|
./swaync.nix
|
||||||
./theme.nix
|
./theme.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
|
./wl-kbptr.nix
|
||||||
./wlr-which-key.nix
|
./wlr-which-key.nix
|
||||||
./wlsunset.nix
|
./wlsunset.nix
|
||||||
];
|
];
|
||||||
|
|||||||
37
users/modules/desktop/wl-kbptr.nix
Normal file
37
users/modules/desktop/wl-kbptr.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
configDir = config.xdg.configHome;
|
||||||
|
cfg = config.home.desktop.wl-kbptr;
|
||||||
|
iniFormat = pkgs.formats.ini {};
|
||||||
|
in {
|
||||||
|
options.home.desktop.wl-kbptr = {
|
||||||
|
enable = mkEnableOption "enable wl-kbptr";
|
||||||
|
config = mkOption {
|
||||||
|
inherit (iniFormat) type;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Options to add to the {file}`config` file. See
|
||||||
|
<https://github.com/moverest/wl-kbptr/blob/main/config.example>
|
||||||
|
for options.
|
||||||
|
'';
|
||||||
|
example = {
|
||||||
|
general = {
|
||||||
|
home_row_keys = "abcd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home = {
|
||||||
|
packages = [pkgs.wl-kbptr];
|
||||||
|
file."${configDir}/wl-kbptr/config" = mkIf (cfg.config != {}) {
|
||||||
|
source = iniFormat.generate "wl-kbptr-config" cfg.config;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -139,6 +139,17 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
spicetify.enable = true;
|
spicetify.enable = true;
|
||||||
};
|
};
|
||||||
|
wl-kbptr = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
general = {
|
||||||
|
# first eight chars to select areas, last three chars
|
||||||
|
# for left, right, middle click
|
||||||
|
home_row_keys = "auiectsrtsr";
|
||||||
|
modes = "tile,bisect";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
dev = {
|
dev = {
|
||||||
ai.claude.enable = true;
|
ai.claude.enable = true;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config.home.desktop.wlr-which-key.settings = {
|
config.home.desktop.wlr-which-key.settings = {
|
||||||
@@ -27,217 +28,223 @@
|
|||||||
logout = import ./logout.nix {inherit pkgs;};
|
logout = import ./logout.nix {inherit pkgs;};
|
||||||
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
||||||
plock = import ../../modules/cli/scripts/plock.nix {inherit pkgs;};
|
plock = import ../../modules/cli/scripts/plock.nix {inherit pkgs;};
|
||||||
in [
|
in
|
||||||
{
|
[
|
||||||
key = "a";
|
{
|
||||||
desc = "Apps";
|
key = "a";
|
||||||
submenu = [
|
desc = "Apps";
|
||||||
{
|
submenu = [
|
||||||
key = "b";
|
{
|
||||||
desc = "Browser";
|
key = "b";
|
||||||
cmd = "zen";
|
desc = "Browser";
|
||||||
}
|
cmd = "zen";
|
||||||
{
|
}
|
||||||
key = "B";
|
{
|
||||||
desc = "Qutebrowser";
|
key = "B";
|
||||||
cmd = "${pkgs.qutebrowser}/bin/qutebrowser";
|
desc = "Qutebrowser";
|
||||||
}
|
cmd = "${pkgs.qutebrowser}/bin/qutebrowser";
|
||||||
{
|
}
|
||||||
key = "d";
|
{
|
||||||
desc = "Discord";
|
key = "d";
|
||||||
cmd = "${pkgs.vesktop}/bin/vesktop";
|
desc = "Discord";
|
||||||
}
|
cmd = "${pkgs.vesktop}/bin/vesktop";
|
||||||
{
|
}
|
||||||
key = "e";
|
{
|
||||||
desc = "Emacs";
|
key = "e";
|
||||||
cmd = "${config.home.dev.editors.emacs.package}/bin/emacsclient -c -n";
|
desc = "Emacs";
|
||||||
}
|
cmd = "${config.home.dev.editors.emacs.package}/bin/emacsclient -c -n";
|
||||||
{
|
}
|
||||||
key = "g";
|
{
|
||||||
desc = "Gimp";
|
key = "g";
|
||||||
cmd = "${pkgs.gimp}/bin/gimp";
|
desc = "Gimp";
|
||||||
}
|
cmd = "${pkgs.gimp}/bin/gimp";
|
||||||
{
|
}
|
||||||
key = "h";
|
{
|
||||||
desc = "Handy";
|
key = "h";
|
||||||
cmd = "pkill -USR2 -n handy";
|
desc = "Handy";
|
||||||
}
|
cmd = "pkill -USR2 -n handy";
|
||||||
{
|
}
|
||||||
key = "n";
|
{
|
||||||
desc = "Nemo";
|
key = "n";
|
||||||
cmd = "${pkgs.nemo-with-extensions}/bin/nemo";
|
desc = "Nemo";
|
||||||
}
|
cmd = "${pkgs.nemo-with-extensions}/bin/nemo";
|
||||||
{
|
}
|
||||||
key = "N";
|
{
|
||||||
desc = "Nextcloud";
|
key = "N";
|
||||||
cmd = "${pkgs.nextcloud-client}/bin/nextcloud";
|
desc = "Nextcloud";
|
||||||
}
|
cmd = "${pkgs.nextcloud-client}/bin/nextcloud";
|
||||||
{
|
}
|
||||||
key = "r";
|
{
|
||||||
desc = "Rofi";
|
key = "r";
|
||||||
submenu = [
|
desc = "Rofi";
|
||||||
{
|
submenu = [
|
||||||
key = "b";
|
{
|
||||||
desc = "Bluetooth";
|
key = "b";
|
||||||
cmd = "${pkgs.rofi-bluetooth}/bin/rofi-bluetooth";
|
desc = "Bluetooth";
|
||||||
}
|
cmd = "${pkgs.rofi-bluetooth}/bin/rofi-bluetooth";
|
||||||
{
|
}
|
||||||
key = "c";
|
{
|
||||||
desc = "calc";
|
key = "c";
|
||||||
cmd = "rofi -show calc";
|
desc = "calc";
|
||||||
}
|
cmd = "rofi -show calc";
|
||||||
{
|
}
|
||||||
key = "e";
|
{
|
||||||
desc = "Emoji";
|
key = "e";
|
||||||
cmd = "rofi -show emoji";
|
desc = "Emoji";
|
||||||
}
|
cmd = "rofi -show emoji";
|
||||||
{
|
}
|
||||||
key = "r";
|
{
|
||||||
desc = "App Menu";
|
key = "r";
|
||||||
cmd = "rofi -show drun";
|
desc = "App Menu";
|
||||||
}
|
cmd = "rofi -show drun";
|
||||||
{
|
}
|
||||||
key = "s";
|
{
|
||||||
desc = "SSH";
|
key = "s";
|
||||||
cmd = "rofi -show ssh";
|
desc = "SSH";
|
||||||
}
|
cmd = "rofi -show ssh";
|
||||||
{
|
}
|
||||||
key = "y";
|
{
|
||||||
desc = "YouTube";
|
key = "y";
|
||||||
cmd = "${ytplay}/bin/ytplay";
|
desc = "YouTube";
|
||||||
}
|
cmd = "${ytplay}/bin/ytplay";
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
{
|
}
|
||||||
key = "b";
|
{
|
||||||
desc = "Buffers";
|
key = "b";
|
||||||
submenu = [
|
desc = "Buffers";
|
||||||
{
|
submenu = [
|
||||||
key = "c";
|
{
|
||||||
desc = "Center";
|
key = "c";
|
||||||
cmd = "${center-window}/bin/center-window";
|
desc = "Center";
|
||||||
}
|
cmd = "${center-window}/bin/center-window";
|
||||||
{
|
}
|
||||||
key = "d";
|
{
|
||||||
desc = "Close";
|
key = "d";
|
||||||
cmd = "${close-window}/bin/close-window";
|
desc = "Close";
|
||||||
}
|
cmd = "${close-window}/bin/close-window";
|
||||||
{
|
}
|
||||||
key = "f";
|
{
|
||||||
desc = "Fullscreen";
|
key = "f";
|
||||||
cmd = "${fullscreen}/bin/fullscreen";
|
desc = "Fullscreen";
|
||||||
}
|
cmd = "${fullscreen}/bin/fullscreen";
|
||||||
{
|
}
|
||||||
key = "F";
|
{
|
||||||
desc = "Float";
|
key = "F";
|
||||||
cmd = "${float-window}/bin/float-window";
|
desc = "Float";
|
||||||
}
|
cmd = "${float-window}/bin/float-window";
|
||||||
{
|
}
|
||||||
key = "u";
|
{
|
||||||
desc = "Urgent";
|
key = "u";
|
||||||
cmd = "${focus-urgent}/bin/focus-urgent";
|
desc = "Urgent";
|
||||||
}
|
cmd = "${focus-urgent}/bin/focus-urgent";
|
||||||
{
|
}
|
||||||
key = ".";
|
{
|
||||||
desc = "Resize";
|
key = ".";
|
||||||
submenu = [
|
desc = "Resize";
|
||||||
{
|
submenu = [
|
||||||
key = left;
|
{
|
||||||
desc = "Decrease Width";
|
key = left;
|
||||||
cmd = "echo decrease width";
|
desc = "Decrease Width";
|
||||||
keep-open = true;
|
cmd = "echo decrease width";
|
||||||
}
|
keep-open = true;
|
||||||
{
|
}
|
||||||
key = down;
|
{
|
||||||
desc = "Increase Height";
|
key = down;
|
||||||
cmd = "echo decrease height";
|
desc = "Increase Height";
|
||||||
keep-open = true;
|
cmd = "echo decrease height";
|
||||||
}
|
keep-open = true;
|
||||||
{
|
}
|
||||||
key = up;
|
{
|
||||||
desc = "Decrease Height";
|
key = up;
|
||||||
cmd = "echo decrease height";
|
desc = "Decrease Height";
|
||||||
keep-open = true;
|
cmd = "echo decrease height";
|
||||||
}
|
keep-open = true;
|
||||||
{
|
}
|
||||||
key = right;
|
{
|
||||||
desc = "Increase Width";
|
key = right;
|
||||||
cmd = "echo increase width";
|
desc = "Increase Width";
|
||||||
keep-open = true;
|
cmd = "echo increase width";
|
||||||
}
|
keep-open = true;
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
{
|
}
|
||||||
key = "l";
|
{
|
||||||
desc = "Lock session";
|
key = "l";
|
||||||
cmd = "${plock}/bin/plock";
|
desc = "Lock session";
|
||||||
}
|
cmd = "${plock}/bin/plock";
|
||||||
{
|
}
|
||||||
key = "p";
|
{
|
||||||
desc = "Power";
|
key = "p";
|
||||||
submenu = [
|
desc = "Power";
|
||||||
{
|
submenu = [
|
||||||
key = "l";
|
{
|
||||||
desc = "Logout";
|
key = "l";
|
||||||
cmd = "${logout}/bin/logout";
|
desc = "Logout";
|
||||||
}
|
cmd = "${logout}/bin/logout";
|
||||||
{
|
}
|
||||||
key = "s";
|
{
|
||||||
desc = "Suspend";
|
key = "s";
|
||||||
cmd = "systemctl suspend";
|
desc = "Suspend";
|
||||||
}
|
cmd = "systemctl suspend";
|
||||||
{
|
}
|
||||||
key = "r";
|
{
|
||||||
desc = "Reboot";
|
key = "r";
|
||||||
cmd = "systemctl reboot";
|
desc = "Reboot";
|
||||||
}
|
cmd = "systemctl reboot";
|
||||||
{
|
}
|
||||||
key = "o";
|
{
|
||||||
desc = "Poweroff";
|
key = "o";
|
||||||
cmd = "systemctl poweroff";
|
desc = "Poweroff";
|
||||||
}
|
cmd = "systemctl poweroff";
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
{
|
}
|
||||||
key = "s";
|
{
|
||||||
desc = "Screenshots";
|
key = "s";
|
||||||
submenu = [
|
desc = "Screenshots";
|
||||||
{
|
submenu = [
|
||||||
key = "Print";
|
{
|
||||||
desc = "Screenshot";
|
key = "Print";
|
||||||
cmd = "screenshot";
|
desc = "Screenshot";
|
||||||
}
|
cmd = "screenshot";
|
||||||
{
|
}
|
||||||
key = "d";
|
{
|
||||||
desc = "Delayed";
|
key = "d";
|
||||||
cmd = "screenshot -d 3";
|
desc = "Delayed";
|
||||||
}
|
cmd = "screenshot -d 3";
|
||||||
{
|
}
|
||||||
key = "D";
|
{
|
||||||
desc = "Select, Delay, Edit, and Copy";
|
key = "D";
|
||||||
cmd = "screenshot -secd 3";
|
desc = "Select, Delay, Edit, and Copy";
|
||||||
}
|
cmd = "screenshot -secd 3";
|
||||||
{
|
}
|
||||||
key = "e";
|
{
|
||||||
desc = "Select, Edit, and Copy";
|
key = "e";
|
||||||
cmd = "screenshot -sec";
|
desc = "Select, Edit, and Copy";
|
||||||
}
|
cmd = "screenshot -sec";
|
||||||
{
|
}
|
||||||
key = "g";
|
{
|
||||||
desc = "Select, Gimp, and Copy";
|
key = "g";
|
||||||
cmd = "screenshot -sgc";
|
desc = "Select, Gimp, and Copy";
|
||||||
}
|
cmd = "screenshot -sgc";
|
||||||
{
|
}
|
||||||
key = "s";
|
{
|
||||||
desc = "Select and Copy";
|
key = "s";
|
||||||
cmd = "screenshot -sc";
|
desc = "Select and Copy";
|
||||||
}
|
cmd = "screenshot -sc";
|
||||||
];
|
}
|
||||||
}
|
];
|
||||||
];
|
}
|
||||||
|
]
|
||||||
|
++ lib.lists.optional config.home.desktop.wl-kbptr.enable {
|
||||||
|
key = "m";
|
||||||
|
desc = "Mouse Warp";
|
||||||
|
cmd = "wl-kbptr";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user