From ee2881141ee96ccb38073051f376988312b78893 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 11:22:30 -0600 Subject: [PATCH 1/6] Enable keyd and map CapsLock to Escape; update flake.lock --- flakes/de_plasma/de_plasma.nix | 1 + hosts/juni/flake.lock | 52 +++++++++++++++++----------------- hosts/juni/flake.nix | 4 +-- 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/flakes/de_plasma/de_plasma.nix b/flakes/de_plasma/de_plasma.nix index 42bba548..475c4934 100644 --- a/flakes/de_plasma/de_plasma.nix +++ b/flakes/de_plasma/de_plasma.nix @@ -160,6 +160,7 @@ in }; services.keyd = mkIf (!cfg.disableKeyd) { enable = true; + users.groups.keyd = { }; keyboards.default.settings = { main = { capslock = "escape"; diff --git a/hosts/juni/flake.lock b/hosts/juni/flake.lock index 6c939097..fb8036e5 100644 --- a/hosts/juni/flake.lock +++ b/hosts/juni/flake.lock @@ -6,11 +6,11 @@ }, "locked": { "dir": "flakes/beszel", - "lastModified": 1767575724, - "narHash": "sha256-L+3hoO4t3RCXkp9RXyXpJlCkzj6AdTOsstUv7RphEBM=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "f86b8085c2ad39986c194b28d51260f8f402572a", - "revCount": 1041, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, @@ -39,11 +39,11 @@ "common": { "locked": { "dir": "flakes/common", - "lastModified": 1767678258, - "narHash": "sha256-UIbi/8BEJnasj3yVK+I4Y2Gqxq7Li86rb8iuzWrNfco=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "d04f85587471ab83afeb18bc94e7e01dcfc3135b", - "revCount": 1062, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, @@ -59,11 +59,11 @@ }, "locked": { "dir": "flakes/de_plasma", - "lastModified": 1767575724, - "narHash": "sha256-L+3hoO4t3RCXkp9RXyXpJlCkzj6AdTOsstUv7RphEBM=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "f86b8085c2ad39986c194b28d51260f8f402572a", - "revCount": 1041, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, @@ -79,11 +79,11 @@ }, "locked": { "dir": "flakes/flatpaks", - "lastModified": 1767575724, - "narHash": "sha256-L+3hoO4t3RCXkp9RXyXpJlCkzj6AdTOsstUv7RphEBM=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "f86b8085c2ad39986c194b28d51260f8f402572a", - "revCount": 1041, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, @@ -120,11 +120,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1767514898, - "narHash": "sha256-ONYqnKrPzfKEEPChoJ9qPcfvBqW9ZgieDKD7UezWPg4=", + "lastModified": 1767619900, + "narHash": "sha256-KpoCBPvwHz3gAQtIUkohE2InRBFK3r0/FM6z5SPWfvM=", "owner": "rycee", "repo": "home-manager", - "rev": "7a06e8a2f844e128d3b210a000a62716b6040b7f", + "rev": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2", "type": "github" }, "original": { @@ -199,11 +199,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1767379071, - "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", + "lastModified": 1767640445, + "narHash": "sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i+bwD6XxMb8A=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fb7944c166a3b630f177938e478f0378e64ce108", + "rev": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5", "type": "github" }, "original": { @@ -1147,11 +1147,11 @@ }, "locked": { "dir": "flakes/opencode", - "lastModified": 1767575724, - "narHash": "sha256-L+3hoO4t3RCXkp9RXyXpJlCkzj6AdTOsstUv7RphEBM=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "f86b8085c2ad39986c194b28d51260f8f402572a", - "revCount": 1041, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, diff --git a/hosts/juni/flake.nix b/hosts/juni/flake.nix index 9449070e..194790ed 100644 --- a/hosts/juni/flake.nix +++ b/hosts/juni/flake.nix @@ -19,8 +19,8 @@ flatpaks.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/flatpaks"; # beszel.url = "path:../../flakes/beszel"; beszel.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/beszel"; - # de_plasma.url = "path:../../flakes/de_plasma"; - de_plasma.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/de_plasma"; + de_plasma.url = "path:../../flakes/de_plasma"; + # de_plasma.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/de_plasma"; # opencode.url = "path:../../flakes/opencode"; opencode.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/opencode"; From 203030cf8b60dcec846ed05df023fc6df7d85196 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 11:24:00 -0600 Subject: [PATCH 2/6] update opencode --- flakes/opencode/flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flakes/opencode/flake.lock b/flakes/opencode/flake.lock index 9821db5b..ad4c4d81 100644 --- a/flakes/opencode/flake.lock +++ b/flakes/opencode/flake.lock @@ -21,11 +21,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1767556352, - "narHash": "sha256-iYP/fa9guprb2hn8ONJrJe6U076zbeKHdqyyL0gvH8s=", + "lastModified": 1767719914, + "narHash": "sha256-xAQhyRB/tDIH7nkWdJVYCP6xFFfHoOP29RF8T6bmYDI=", "owner": "sst", "repo": "opencode", - "rev": "c545fa2a289518fda35be66d1c81936a54962702", + "rev": "1016a52cf1c28656ddd5c66689cf97b6d028c2f6", "type": "github" }, "original": { From 47297a187daa8b6964d5e53895e2f7f99c3aa1fc Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 11:52:09 -0600 Subject: [PATCH 3/6] update lio opencode --- hosts/lio/flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hosts/lio/flake.lock b/hosts/lio/flake.lock index 7d0e93e7..e8796861 100644 --- a/hosts/lio/flake.lock +++ b/hosts/lio/flake.lock @@ -1237,11 +1237,11 @@ }, "locked": { "dir": "flakes/opencode", - "lastModified": 1767587784, - "narHash": "sha256-xHZwNiDUshkQg1yUu+RFdkFAa8jj0XkAFpZjuUqi0wo=", + "lastModified": 1767719747, + "narHash": "sha256-1ISVytokGTCP7MvZPpMBO2bT+/VY3mxjZdWx9BcdzlE=", "ref": "refs/heads/master", - "rev": "effa01310bfe91ef7a39a035f021a0dc4e345e58", - "revCount": 1042, + "rev": "c90766c206e859d3eb2b273b43ef713426849d48", + "revCount": 1067, "type": "git", "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" }, From 3746f49c24e90f156c376fa4a88447cbbf66a08b Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 11:52:27 -0600 Subject: [PATCH 4/6] update keyd --- flakes/de_plasma/de_plasma.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flakes/de_plasma/de_plasma.nix b/flakes/de_plasma/de_plasma.nix index 475c4934..63b4bf0c 100644 --- a/flakes/de_plasma/de_plasma.nix +++ b/flakes/de_plasma/de_plasma.nix @@ -158,9 +158,10 @@ in services.xserver.xkb = { layout = "us"; }; + + users.groups.keyd = mkIf (!cfg.disableKeyd) { }; services.keyd = mkIf (!cfg.disableKeyd) { enable = true; - users.groups.keyd = { }; keyboards.default.settings = { main = { capslock = "escape"; From d416563f3abd7ec75a52014ddf715ff7443b7303 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 13:51:55 -0600 Subject: [PATCH 5/6] update keyd more --- flakes/de_plasma/de_plasma.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/flakes/de_plasma/de_plasma.nix b/flakes/de_plasma/de_plasma.nix index 63b4bf0c..f5874a63 100644 --- a/flakes/de_plasma/de_plasma.nix +++ b/flakes/de_plasma/de_plasma.nix @@ -169,6 +169,11 @@ in }; }; + # `keyd` drops privileges via `setgid(2)`, but the upstream unit + # uses `RestrictSUIDSGID=yes`, which blocks that and causes: + # "setgid: Operation not permitted". + systemd.services.keyd.serviceConfig.RestrictSUIDSGID = mkIf (!cfg.disableKeyd) false; + # Home Manager modules (plasma-manager + our HM layer) home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager From 739739d5956d26b9ed32614743b6e0b56c755fa2 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Tue, 6 Jan 2026 14:36:17 -0600 Subject: [PATCH 6/6] remove keyd its being stupid --- flakes/de_plasma/de_plasma.nix | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/flakes/de_plasma/de_plasma.nix b/flakes/de_plasma/de_plasma.nix index f5874a63..87958a8b 100644 --- a/flakes/de_plasma/de_plasma.nix +++ b/flakes/de_plasma/de_plasma.nix @@ -39,8 +39,6 @@ in description = "Enable SDDM Wayland and Plasma Wayland session."; }; - disableKeyd = lib.mkEnableOption "Disable keyd service for Plasma"; - appearance.dark.enable = mkOption { type = types.bool; default = true; @@ -159,20 +157,8 @@ in layout = "us"; }; - users.groups.keyd = mkIf (!cfg.disableKeyd) { }; - services.keyd = mkIf (!cfg.disableKeyd) { - enable = true; - keyboards.default.settings = { - main = { - capslock = "escape"; - }; - }; - }; - - # `keyd` drops privileges via `setgid(2)`, but the upstream unit - # uses `RestrictSUIDSGID=yes`, which blocks that and causes: - # "setgid: Operation not permitted". - systemd.services.keyd.serviceConfig.RestrictSUIDSGID = mkIf (!cfg.disableKeyd) false; + # CapsLock → Escape remap (works on Plasma Wayland) + services.xserver.xkb.options = lib.mkDefault "caps:escape"; # Home Manager modules (plasma-manager + our HM layer) home-manager.sharedModules = [