diff --git a/flake.lock b/flake.lock index bcb292de..ef950b56 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1726665257, - "narHash": "sha256-rEzEZtd3iyVo5RJ1OGujOlnywNf3gsrOnjAn1NLciD4=", + "lastModified": 1727261104, + "narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "752d0fbd141fabb5a1e7f865199b80e6e76f8d8e", + "rev": "b82fdaff917582a9d568969e15e61b398c71e990", "type": "github" }, "original": { @@ -226,11 +226,11 @@ "rust-analyzer-src": "rust-analyzer-src_2" }, "locked": { - "lastModified": 1727332394, - "narHash": "sha256-dBYQD4DPxu/hBndSbfMA5HhHrVnrxrW9Ju8R3augGzw=", + "lastModified": 1727591515, + "narHash": "sha256-ar9oGR8kT3S5K3b0EJrcZp1LjfYQdzWl/bBLCp2o50Y=", "owner": "nix-community", "repo": "fenix", - "rev": "60a35a47e8ae3721efaae2229ec6037e3fde2d17", + "rev": "c31647aab5e8a16087da6283ef9b2e6a9aae6772", "type": "github" }, "original": { @@ -250,11 +250,11 @@ ] }, "locked": { - "lastModified": 1727354220, - "narHash": "sha256-id0MCPFoBUPelaYAp1XNMOFyEYsdJ8fh/7h8pS/ODvQ=", + "lastModified": 1727565658, + "narHash": "sha256-5Q6RboJwDP9H1zdzLxZh0RqpocfJrttXNcPM+XGsYJ8=", "owner": "nix-community", "repo": "flake-firefox-nightly", - "rev": "28243fe4c0eaadd0d6f2314bc6bc3070fb9b2667", + "rev": "bbf0ccd57a37b1d755f70d3dcccfc9624c47a511", "type": "github" }, "original": { @@ -539,11 +539,11 @@ }, "hardware": { "locked": { - "lastModified": 1727040444, - "narHash": "sha256-19FNN5QT9Z11ZUMfftRplyNN+2PgcHKb3oq8KMW/hDA=", + "lastModified": 1727595438, + "narHash": "sha256-bAvkJYuZKeDwW/J/Ga/axplEbYbQhq6jdQBVdGcpuO8=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "d0cb432a9d28218df11cbd77d984a2a46caeb5ac", + "rev": "8e8c6cbad12ef805268b4e380a7298fbc275898d", "type": "github" }, "original": { @@ -599,11 +599,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1727245451, - "narHash": "sha256-dy6UVn4miQZZEqlGBJL+yGCyNMoI/Pb9UJwZAZTA6/U=", + "lastModified": 1727524329, + "narHash": "sha256-cSm1hktXvw1l1Doqr+LHSLR6X+7F6BShQI0DbygtmSI=", "owner": "helix-editor", "repo": "helix", - "rev": "b18a471ed189fb326a781181a28f3073f5c1fe1e", + "rev": "82dd96369302f60a9c83a2d54d021458f82bcd36", "type": "github" }, "original": { @@ -644,11 +644,11 @@ ] }, "locked": { - "lastModified": 1727346017, - "narHash": "sha256-z7OCFXXxIseJhEHiCkkUOkYxD9jtLU8Kf5Q9WC0SjJ8=", + "lastModified": 1727383923, + "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", "owner": "nix-community", "repo": "home-manager", - "rev": "c124568e1054a62c20fbe036155cc99237633327", + "rev": "ffe2d07e771580a005e675108212597e5b367d2d", "type": "github" }, "original": { @@ -765,6 +765,7 @@ "inputs": { "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", + "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", @@ -773,11 +774,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1727345453, - "narHash": "sha256-UOMbqaP2YO1xK8uVuAJ04HYQfPnS7XPbedca9rJo/Xc=", + "lastModified": 1727549598, + "narHash": "sha256-esywx7x3PvsLepRNTP1hYL96oJAWe0lUE9u5u9TAyfI=", "ref": "refs/heads/main", - "rev": "caaa9b11e4763ed0367f81bf97ceaad5175806fc", - "revCount": 5261, + "rev": "d73c14751ad40fd54d93baac2226f550142b0e74", + "revCount": 5275, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -810,6 +811,31 @@ } }, "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1727451107, + "narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-protocols_2": { "inputs": { "nixpkgs": [ "hyprland", @@ -944,11 +970,11 @@ ] }, "locked": { - "lastModified": 1727219120, - "narHash": "sha256-wmT+JpnDk6EjgASU2VGfS0nnu6oKA4Cw25o5fzpDD/Q=", + "lastModified": 1727300645, + "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "db956287d3aa194dda91d05c8eb286de2a569edf", + "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", "type": "github" }, "original": { @@ -969,11 +995,11 @@ ] }, "locked": { - "lastModified": 1726840673, - "narHash": "sha256-HIPEXyRRVZoqD6U+lFS1B0tsIU7p83FaB9m7KT/x6mQ=", + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "b68dab23fc922eae99306988133ee80a40b39ca5", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", "type": "github" }, "original": { @@ -1133,11 +1159,11 @@ "umu": "umu" }, "locked": { - "lastModified": 1727361799, - "narHash": "sha256-6NiqPuPLGWltDVYOqblgS0gkMtE/0EC/xykC5nOf4xQ=", + "lastModified": 1727574085, + "narHash": "sha256-vwERoi5pcO39raf92QMS6BjujfbRiHWA0rOb/XlQlmc=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "2684dfd9d04484c59ee84e8ba121b5e551dc5882", + "rev": "6401744e317693efe56495a863322894767277fd", "type": "github" }, "original": { @@ -1226,11 +1252,11 @@ }, "nixpkgs-small": { "locked": { - "lastModified": 1727320268, - "narHash": "sha256-B4AK91+9frHerQ6mFAtaR46ECMRtZufrtXFj/b5NqYU=", + "lastModified": 1727552795, + "narHash": "sha256-IZJVvM+8Jwk8RgWygbfAZ7mnLk0DxGI/2HBDSNxCIio=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea2838e1ce0a9da2abf88275843aca29d9f82b30", + "rev": "602fb03c3a4aaeb33ea15ae1c921325c593531b1", "type": "github" }, "original": { @@ -1338,11 +1364,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1726755586, - "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", + "lastModified": 1727122398, + "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", + "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", "type": "github" }, "original": { @@ -1385,11 +1411,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1727122398, - "narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=", + "lastModified": 1727348695, + "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093", + "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", "type": "github" }, "original": { @@ -1401,11 +1427,11 @@ }, "nur": { "locked": { - "lastModified": 1727362161, - "narHash": "sha256-lB/HAwbvHgnkqErELxNW0bsv/3Tx6ZPc7V4/pzyeogE=", + "lastModified": 1727596560, + "narHash": "sha256-222fcWG6s13RXuAK711nbrHs6wOb3UORXJ/vt3rCM60=", "owner": "nix-community", "repo": "NUR", - "rev": "f72f677c3064fdc20991610a3e990c5de0dc12e7", + "rev": "6acf80f88c3f8fbf4f95f5df7a936a488a7bca12", "type": "github" }, "original": { @@ -1492,11 +1518,11 @@ "rust-analyzer-src_2": { "flake": false, "locked": { - "lastModified": 1727284479, - "narHash": "sha256-NtdcPRY4m7GRedq1F8mv6qEZ7knzQ0ADlJr+bZoduAw=", + "lastModified": 1727465975, + "narHash": "sha256-jrr8r2CT9jsi6XDTTX+E39/CakTcQ9RYRp6rWGzLkk0=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "88fad4983e10bfcfb96180e00a55867758c8c055", + "rev": "546339a7be357b3e95fc4b79a8816dce540d477b", "type": "github" }, "original": { @@ -1792,11 +1818,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1727043148, - "narHash": "sha256-7RD5alitiAuijksDhRvtnsHKPz+ZHRDrMkTmqikiN5Y=", + "lastModified": 1727585736, + "narHash": "sha256-vEkcyKdFpfWbrtZlB5DCjNCmI2GudIJuHstWo3F9gL8=", "owner": "wez", "repo": "wezterm", - "rev": "2b76c63bb618d26609434c06282c8755229c4099", + "rev": "a2f2c07a29f5c98f6736cde0c86b24887f9fd48a", "type": "github" }, "original": { @@ -1809,7 +1835,7 @@ }, "xdph": { "inputs": { - "hyprland-protocols": "hyprland-protocols", + "hyprland-protocols": "hyprland-protocols_2", "hyprlang": [ "hyprland", "hyprlang" diff --git a/home/modules/devtools/helix/lang.nix b/home/modules/devtools/helix/lang.nix index 35ccc68f..41e76b1b 100644 --- a/home/modules/devtools/helix/lang.nix +++ b/home/modules/devtools/helix/lang.nix @@ -124,6 +124,10 @@ command = "${pkgs.clang-tools}/bin/clangd"; clangd.fallbackFlags = ["-std=c++2b"]; }; + cl-lsp = { + command = "${pkgs.clang-tools}/bin/clangd"; + clangd.fallbackFlags = ["-std=c++2b"]; + }; cmake-language-server = { command = lib.getExe pkgs.cmake-language-server; diff --git a/home/modules/wm/hyprland/cnst/inputs.nix b/home/modules/wm/hyprland/cnst/inputs.nix index c875b0f4..a00efd35 100644 --- a/home/modules/wm/hyprland/cnst/inputs.nix +++ b/home/modules/wm/hyprland/cnst/inputs.nix @@ -20,6 +20,8 @@ in { ]; input = { + kb_layout = "se"; + kb_variant = "nodeadkeys"; follow_mouse = 1; accel_profile = "flat"; sensitivity = 0; # -1.0 - 1.0, 0 means no modification. @@ -32,24 +34,24 @@ in { }; }; # Desktop keyboard - device = [ - { - name = "pfu-limited-hhkb-hybrid"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - { - name = "hhkb-hybrid_1-keyboard"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - # Laptop keyboard - { - name = "at-translated-set-2-keyboard"; - kb_layout = "se"; - kb_options = "ctrl:swapcaps"; - } - ]; + # device = [ + # { + # name = "pfu-limited-hhkb-hybrid"; + # kb_layout = "hhkbse"; + # kb_options = "lv3:rwin_switch"; + # } + # { + # name = "hhkb-hybrid_1-keyboard"; + # kb_layout = "hhkbse"; + # kb_options = "lv3:rwin_switch"; + # } + # # Laptop keyboard + # { + # name = "at-translated-set-2-keyboard"; + # kb_layout = "se"; + # kb_options = "ctrl:swapcaps"; + # } + # ]; gestures = { workspace_swipe = true; workspace_swipe_distance = 400; diff --git a/home/modules/wm/hyprland/cnst/rules.nix b/home/modules/wm/hyprland/cnst/rules.nix index 7a1a4559..7aefd9bb 100644 --- a/home/modules/wm/hyprland/cnst/rules.nix +++ b/home/modules/wm/hyprland/cnst/rules.nix @@ -23,7 +23,7 @@ in { "noborder,initialTitle:(tuirun)" #windowrulev2 = move 1708 32,class:(floatcal) "float,class:(org.keepassxc.KeePassXC)" - "size 843 500,class:(org.keepassxc.KeePassXC)" + "size 843 530,class:(org.keepassxc.KeePassXC)" "move 100%-w-20 40,class:(org.keepassxc.KeePassXC)" # RANGER/NNN SETTINGS diff --git a/home/modules/wm/hyprland/cnst/startup.nix b/home/modules/wm/hyprland/cnst/startup.nix index c43b3bb6..9530ed79 100644 --- a/home/modules/wm/hyprland/cnst/startup.nix +++ b/home/modules/wm/hyprland/cnst/startup.nix @@ -18,7 +18,7 @@ in { # exec-once = lxqt-policykit-agent & "pamixer --set-volume 50" "blueman-applet & udiskie -Nt" - # "mullvad-vpn" + "mullvad-vpn" # exec-once = swaybg -i ~/media/images/wallpaper.png "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" diff --git a/home/modules/wm/hyprland/toothpick/rules.nix b/home/modules/wm/hyprland/toothpick/rules.nix index 3270cd5c..a64d50e4 100644 --- a/home/modules/wm/hyprland/toothpick/rules.nix +++ b/home/modules/wm/hyprland/toothpick/rules.nix @@ -23,7 +23,7 @@ in { "noborder,initialTitle:(tuirun)" #windowrulev2 = move 1708 32,class:(floatcal) "float,class:(org.keepassxc.KeePassXC)" - "size 843 500,class:(org.keepassxc.KeePassXC)" + "size 843 530,class:(org.keepassxc.KeePassXC)" "move 100%-w-20 40,class:(org.keepassxc.KeePassXC)" # RANGER/NNN SETTINGS diff --git a/home/modules/wm/hyprland/toothpick/startup.nix b/home/modules/wm/hyprland/toothpick/startup.nix index 6b579de1..e65a4ca5 100644 --- a/home/modules/wm/hyprland/toothpick/startup.nix +++ b/home/modules/wm/hyprland/toothpick/startup.nix @@ -16,6 +16,7 @@ in { # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP "systemctl --user start polkit-gnome-authentication-agent-1" # exec-once = lxqt-policykit-agent & + "mullvad-vpn" "pamixer --set-volume 50" # exec-once = swaybg -i ~/media/images/wallpaper.png "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" diff --git a/hosts/cnix/modules.nix b/hosts/cnix/modules.nix index 4964fffb..d6ebb632 100644 --- a/hosts/cnix/modules.nix +++ b/hosts/cnix/modules.nix @@ -130,8 +130,9 @@ }; xserver = { amd = { + enable = false; hhkbse = { - enable = true; + enable = false; }; }; nvidia = { @@ -175,6 +176,9 @@ zram = { enable = true; }; + kanata = { + enable = true; + }; }; }; utils = { diff --git a/system/modules/default.nix b/system/modules/default.nix index 848c2ebb..ddd6dab7 100644 --- a/system/modules/default.nix +++ b/system/modules/default.nix @@ -40,6 +40,7 @@ "${systemModules}/sysd/system/powerd" "${systemModules}/sysd/system/udisks" "${systemModules}/sysd/system/zram" + "${systemModules}/sysd/system/kanata" "${systemModules}/utils/android" "${systemModules}/utils/anyrun" "${systemModules}/utils/brightnessctl" diff --git a/system/modules/sysd/system/kanata/default.nix b/system/modules/sysd/system/kanata/default.nix new file mode 100644 index 00000000..96fdfff1 --- /dev/null +++ b/system/modules/sysd/system/kanata/default.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.sysd.system.kanata; +in { + options = { + modules.sysd.system.kanata.enable = mkEnableOption "Enables kanata keyboard remapping"; + }; + config = mkIf cfg.enable { + services.kanata = { + enable = true; + package = pkgs.kanata-with-cmd; + keyboards.hhkbse = { + devices = ["/dev/input/by-id/usb-PFU_Limited_HHKB-Hybrid-event-kbd"]; + config = builtins.readFile (./. + "/hhkbse.kbd"); + }; + }; + }; +} diff --git a/system/modules/sysd/system/kanata/hhkbse.kbd b/system/modules/sysd/system/kanata/hhkbse.kbd new file mode 100644 index 00000000..54e9a142 --- /dev/null +++ b/system/modules/sysd/system/kanata/hhkbse.kbd @@ -0,0 +1,53 @@ +;; Swedish ISO105 +(deflocalkeys-linux + § 41 + + 12 + ´ 13 ;; Acute accent. Opposite to the grave accent (grv). + å 26 + ¨ 27 + ö 39 + ä 40 + ' 43 + < 86 + > 100 + , 51 + . 52 + - 53 +) + +(defsrc + esc 1 2 3 4 5 6 7 8 9 0 + ´ ' § + tab q w e r t y u i o p å ¨ bspc + lctl a s d f g h j k l ö ä ret + lsft z x c v b n m , . - rsft + lalt lmet spc rmet ralt +) + +(deflayer default + esc 1 2 3 4 5 6 7 8 9 0 + pgdn pgup del + tab q w e r t y u i o p å ' bspc + lctl a s d f g h j k l ö ä ret + @shift z x c v b n m , . - rsft + lalt lmet spc @level3 ralt +) + +(deflayer shift + esc S-1 S-2 S-3 RA-4 S-5 S-6 S-7 S-8 S-9 S-0 S-+ RA-7 RA-0 RA-< + tab S-q S-w S-e S-r S-t S-y S-u S-i S-o S-p S-å S-¨ bspc + lctl S-a S-s S-d S-f S-g S-h S-j S-k S-l S-ö S-ä S-ret + @shift S-z S-x S-c S-v S-b S-n S-m S-, S-. S-- rsft + lalt lmet spc @level3 ralt +) + +(deflayer level3 + esc 1 RA-2 RA-3 S-4 RA-5 RA-6 RA-7 RA-8 RA-9 RA-0 RA-+ ⇤ ⇥ S-' + tab q w RA-5 r t y u i o ▲ å RA-¨ bspc + lctl a s d f g h j k ◀ ▼ ▶ ret + @shift RA-S-z RA-S-x c v b n m , . - rsft + lalt lmet spc @level3 ralt +) + +(defalias + shift (layer-toggle shift) + level3 (layer-toggle level3) +)