From 059e72584f833bfefd01d34df7a59c30922cb40e Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Wed, 9 Jul 2025 16:29:31 -0500 Subject: [PATCH] make mac kbs make more sense --- hosts/desktop/services.nix | 47 ++++++++++++++++++++++++++++++++++++ hosts/mac-nixos/services.nix | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/hosts/desktop/services.nix b/hosts/desktop/services.nix index 7031b93..fd1bbb3 100755 --- a/hosts/desktop/services.nix +++ b/hosts/desktop/services.nix @@ -77,6 +77,53 @@ in }; ratbagd.enable = lib.mkDefault true; + + keyd = { + enable = true; + keyboards = { + default = { + ids = [ "*" ]; + settings = { + main = { + # Use ⌘ key (leftmeta) to activate macOS-like layer + leftmeta = "layer(meta_mac)"; + }; + + meta_mac = { + # Tab switching + tab = "swapm(app_switch_state, M-tab)"; + "`" = "A-f6"; + + # App shortcuts + c = "C-insert"; # Copy + v = "S-insert"; # Paste + x = "S-delete"; # Cut + + "1" = "A-1"; + "2" = "A-2"; + "3" = "A-3"; + "4" = "A-4"; + "5" = "A-5"; + "6" = "A-6"; + "7" = "A-7"; + "8" = "A-8"; + "9" = "A-9"; + + # Move to line start/end + left = "home"; + right = "end"; + }; + + app_switch_state = { + tab = "M-tab"; + right = "M-tab"; + "`" = "M-S-tab"; + left = "M-S-tab"; + }; + }; + }; + }; + }; }; systemd = { diff --git a/hosts/mac-nixos/services.nix b/hosts/mac-nixos/services.nix index 482390f..19d90ad 100644 --- a/hosts/mac-nixos/services.nix +++ b/hosts/mac-nixos/services.nix @@ -79,5 +79,52 @@ flatpak.enable = lib.mkDefault false; gvfs.enable = true; + + keyd = { + enable = true; + keyboards = { + default = { + ids = [ "*" ]; + settings = { + main = { + # Use ⌘ key (leftmeta) to activate macOS-like layer + leftmeta = "layer(meta_mac)"; + }; + + meta_mac = { + # Tab switching + tab = "swapm(app_switch_state, M-tab)"; + "`" = "A-f6"; + + # App shortcuts + c = "C-insert"; # Copy + v = "S-insert"; # Paste + x = "S-delete"; # Cut + + "1" = "A-1"; + "2" = "A-2"; + "3" = "A-3"; + "4" = "A-4"; + "5" = "A-5"; + "6" = "A-6"; + "7" = "A-7"; + "8" = "A-8"; + "9" = "A-9"; + + # Move to line start/end + left = "home"; + right = "end"; + }; + + app_switch_state = { + tab = "M-tab"; + right = "M-tab"; + "`" = "M-S-tab"; + left = "M-S-tab"; + }; + }; + }; + }; + }; }; }