Compare commits

..

169 Commits

Author SHA1 Message Date
Ryan Yin 8f3780ba5d feat: replace noctalia-shell with dma-shell
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-01-06 16:59:01 +08:00
Ryan Yin 23ff53dcac fix: noctalia - disable osd for brightness changes due to issue
https://github.com/noctalia-dev/noctalia-shell/issues/1281
2026-01-06 14:29:21 +08:00
Ryan Yin f9d0efd425 fix: noctalia - missing qt6ct.conf on reboot 2026-01-06 10:34:37 +08:00
Ryan Yin 1a9ca02329 noctalia-shell: update launcher widget 2026-01-05 23:41:59 +08:00
Ryan Yin 7216201bd6 docs: add desktop screenshots 2026-01-05 13:28:32 +08:00
Ryan Yin eda3221ac0 chore: noctalia - show cpu/mem usage in detail mode 2026-01-04 19:26:43 +08:00
Ryan Yin 909b8ffe06 chore: noctalia - add desktop widgets 2026-01-04 19:00:36 +08:00
Ryan Yin e1ef5587fd chore: update yazi config 2026-01-04 16:45:44 +08:00
Ryan Yin 6c228998e7 chore: noctalia - upgrade & settings adjustment 2026-01-04 16:33:41 +08:00
Ryan Yin ab8cacb04e flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-patched':
    'github:ryan4yin/nixpkgs/9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4?narHash=sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI%3D' (2025-11-11)
  → 'github:ryan4yin/nixpkgs/fd9662e1991b624a72e5e545963136906c5c1adf?narHash=sha256-uIZvxuyjwKJkcGFD/DEdmHuwjyjwkk6SkkR/5Z/cpdw%3D' (2026-01-04)
2026-01-04 16:18:10 +08:00
Ryan Yin 26c7076816 chore: noctalia - do not show cpu temporature 2026-01-04 13:30:55 +08:00
Ryan Yin 6853991712 docs: update desktop screenshots
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-01-04 11:36:06 +08:00
Ryan Yin 6db329c55d chore: noctalia - folders & images 2026-01-04 10:48:38 +08:00
Ryan Yin e83b7a867f refactor: auto start apps on login via xdg-autostart (#242)
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-01-03 11:03:14 -06:00
Ryan Yin e3fb563b79 fix: noctalia - brightness adjustment - apple silicon 2026-01-04 00:16:25 +08:00
Ryan Yin 74c8912897 refactor: replace gammastep by noctalia-shell, update README (#241) 2026-01-03 10:06:22 -06:00
Ryan Yin fb7a0cd178 feat: replace waybar/mako/anyrun/wlogout/swaylock with noctolia-shell, remove hyprland (#240) 2026-01-03 09:36:54 -06:00
Ryan Yin 847adc7d63 feat: add power management service 2026-01-03 20:16:37 +08:00
Ryan Yin 94e431abfc fix: error - only one wireless daemon is allowed at the time, speed up wechat download 2026-01-02 22:37:38 +08:00
Ryan Yin f4f3ff347c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/6a81c8cfb009e8dbd462d8c75f49a121efcb6e17?narHash=sha256-XqmvlUkYpaQzV2CksGR8MzjeqTBKkB3gSf26pYoNqWw%3D' (2025-12-25)
  → 'github:nixos/nixpkgs/eaf3f6b552c15b55d516e8cdca6579f7ec902865?narHash=sha256-bgO3UKGjkqbwQTgHInJIEJeqmV%2Bv8pSWxCPKUl64igk%3D' (2026-01-02)
2026-01-02 21:54:41 +08:00
Ryan Yin ff3cd9111f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a6531044f6d0bef691ea18d4d4ce44d0daa6e816?narHash=sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC%2B2IVK0NoVEzDoOh4DA4%3D' (2025-12-21)
  → 'github:NixOS/nixpkgs/0744ef1b047f07d31d9962d757ffe38ec14a4d41?narHash=sha256-SosfgQSqVmOkqVgNYJnxW5FvoIQX4grOcpIKNrIwz4o%3D' (2025-12-29)
2026-01-02 21:53:21 +08:00
Ryan Yin f6266d72e6 feat: persistent mozc's config & antigravity's data 2026-01-02 20:57:33 +08:00
Ryan Yin bc1bbf3318 fix: git aliases 2025-12-29 21:57:50 +08:00
Ryan Yin e9906c9322 feat: add antigravity
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-12-27 17:12:08 +08:00
Ryan Yin 72d14c7c9b Merge pull request #239 from ryan4yin/update
feat: update inputs, remove asahi's mesa workaround
2025-12-25 13:17:21 +08:00
Ryan Yin 9f4ff5a8a3 feat: update inputs, remove asahi's mesa workaround 2025-12-25 13:12:43 +08:00
Ryan Yin 38354330ea flake.lock: Update
Flake lock file updates:

• Updated input 'aagl':
    'github:ezKEa/aagl-gtk-on-nix/e272196d003064dfb177ed9cae6a12021b806048?narHash=sha256-aB2OhrotdYU8w3uQLio5a/IiyAQvzywOKr81oldqxss%3D' (2025-11-26)
  → 'github:ezKEa/aagl-gtk-on-nix/1dc0259e0dd6c3eba5ff96b7f597b6cf5627c62c?narHash=sha256-DzRLGukYRf%2BcnGyF9ukg/1n4mtgG3hKBrzE1fHCNZ2w%3D' (2025-12-22)
• Updated input 'catppuccin':
    'github:catppuccin/nix/931c6465c3eac4709684dbc320bca243252927df?narHash=sha256-jPpxBhrBOAKrXPxdrdXnq4w7x3UIkUZjarNLNYkb7Zo%3D' (2025-11-24)
  → 'github:catppuccin/nix/de1b60ca45a578f59f7d84c8d338b346017b2161?narHash=sha256-l8x0gU8mnYaGMl%2BgWrsSHKBJlZWD8KXJfHTkRlFiPI0%3D' (2025-12-17)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/d9529947a40e16f8e7efd8a1f680d01ff99f213b?narHash=sha256-bTElYF0d4XEGK9pT4I22%2BXSGZIN26lWEvk5D06cyZak%3D' (2025-11-26)
  → 'github:ghostty-org/ghostty/4af425e11c5547090caa20f9ad358dd30bfecbe9?narHash=sha256-Dk8zpqQfr%2BQjYH0SrZMVJh6%2BJ3iulIY/eZz7hP7tNjA%3D' (2025-12-24)
• Updated input 'ghostty/flake-compat':
    'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
  → 'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
• Added input 'ghostty/home-manager':
    'github:nix-community/home-manager/4fb695d10890e9fc6a19deadf85ff79ffb78da86?narHash=sha256-CPM7zm6csUx7vSfKvzMDIjepEJv1u/usmaT7zydzbuI%3D' (2025-08-21)
• Added input 'ghostty/home-manager/nixpkgs':
    follows 'ghostty/nixpkgs'
• Updated input 'ghostty/nixpkgs':
    'https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz?narHash=sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk%3D' (1980-01-01)
  → 'https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre896415.1d4c88323ac3/nixexprs.tar.xz?narHash=sha256-gI9PpaoX4/f28HkjcTbFVpFhtOxSDtOEdFaHZrdETe0%3D' (2025-11-15)
• Updated input 'ghostty/zig':
    'github:mitchellh/zig-overlay/365085b6652259753b598d43b723858184980bbe?narHash=sha256-/zj5GYO5PKhBWGzbHbqT%2BehY8EghuABdQ2WGfCwZpCQ%3D' (2025-10-14)
  → 'github:mitchellh/zig-overlay/64f8b42cfc615b2cf99144adf2b7728c7847c72a?narHash=sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS%2BNzcJsssE%3D' (2025-11-16)
• Updated input 'ghostty/zon2nix/nixpkgs':
    'https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz?narHash=sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs%3D' (2025-09-20)
  → follows 'ghostty/nixpkgs'
• Updated input 'helix':
    'github:mattwparas/helix/92bc3db129c639b4133a0a117cc8f3943b840886?narHash=sha256-HoGhLWTqiwr2GCUPSen7f20snqxyTGWhcd84VClHmI4%3D' (2025-11-24)
  → 'github:mattwparas/helix/a01f45b75ac20f8fa5ec7fd9f3c32e3ae8ab5d34?narHash=sha256-xDVuEKcBIY4cA7g9UwI8keimoHxQz/%2BfUXY7DA8EcsA%3D' (2025-12-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/89c9508bbe9b40d36b3dc206c2483ef176f15173?narHash=sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs%2BzlQ07dGQFk4%3D' (2025-12-17)
  → 'github:nix-community/home-manager/7eca7f7081036a7b740090994c9ec543927f89a7?narHash=sha256-hHKQhHkXxuPJwLkI8wdu826GLV5AcuW9/HVdc9eBnTU%3D' (2025-12-24)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/e95de00a471d07435e0527ff4db092c84998698e?narHash=sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE%3D' (2025-11-26)
  → 'github:lnl7/nix-darwin/c2b36207f2c396c79dbed9d40536db221bd4e363?narHash=sha256-N/sxS27%2Bt9nGvGWqwwAceSMW/Y5ddcypS/aiTnZ7ScA%3D' (2025-12-23)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/80e0aed8c6dd00c9fa41f82c808a8972632e3016?narHash=sha256-N6DsDLb8oDBWQ%2BQAq7qKmgk4jhW9AkzHjvXiUiT//Cw%3D' (2025-11-26)
  → 'github:fufexan/nix-gaming/4e3926b98be61b018915ded9f8f8706a4ce1a267?narHash=sha256-fvzdJMWM3Nisav0AYbCO9yQ0LbM2Od8Ulp6YBw2r3Ac%3D' (2025-12-24)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/2cccadc7357c0ba201788ae99c4dfa90728ef5e0?narHash=sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q%3D' (2025-11-21)
  → 'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/719359f4562934ae99f5443f20aa06c2ffff91fc?narHash=sha256-b0yj6kfvO8ApcSE%2BQmA6mUfu8IYG6/uU28OFn4PaC8M%3D' (2025-10-29)
  → 'github:nix-community/nixpkgs.lib/2075416fcb47225d9b68ac469a5c4801a9c4dd85?narHash=sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo%3D' (2025-12-14)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/032decf9db65efed428afd2fa39d80f7089085eb?narHash=sha256-PeSkNMvkpEvts%2B9DjFiop1iT2JuBpyknmBUs0Un0a4I%3D' (2025-07-07)
  → 'github:nix-community/nixos-generators/032a1878682fafe829edfcf5fdfad635a2efe748?narHash=sha256-NHF7QWa0ZPT8hsJrvijREW3%2BnifmF2rTXgS2v0tpcEA%3D' (2025-11-27)
• Updated input 'nixpak':
    'github:nixpak/nixpak/fd7e8f5d315158089ffbc34cc20792e43be6e666?narHash=sha256-gFjePmr09rRoAUfih4eeHX7aU3GTBUeaZvglKV%2B1ztI%3D' (2025-11-20)
  → 'github:nixpak/nixpak/51f7e5693113653be96f2606ec8ba0e2ea10936b?narHash=sha256-al5IYCT3vLDDFuEyOoOx5FIeZ00T/d%2BJ1QPK1LMXPCI%3D' (2025-12-23)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/52a2caecc898d0b46b2b905f058ccc5081f842da?narHash=sha256-8oNVE8TrD19ulHinjaqONf9QWCKK%2Bw4url56cdStMpM%3D' (2025-11-12)
  → 'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9?narHash=sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw%3D' (2025-12-15)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/b0585849abe7d02a774a853f7952d07bb910fd9e?narHash=sha256-jZi%2B9yKmeTMsJ4ZNqRei/wL16%2BQwYGrCl4EJ3QHfoDU%3D' (2025-11-15)
  → 'github:hercules-ci/hercules-ci-effects/edcbb19948b6caf1700434e369fde6ff9e6a3c93?narHash=sha256-UQhfCggNGDc7eam%2BEittlYmeW89CZVT1KkFIHZWBH7k%3D' (2025-12-15)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0254eab410b90ef2420c1059f908ae777e3b02f9?narHash=sha256-/US2Ei9JHXHVBAxV4FX49Q7H5s4UNBrIiOA6Xjzgq44%3D' (2025-12-06)
  → 'github:nixos/nixpkgs/a6531044f6d0bef691ea18d4d4ce44d0daa6e816?narHash=sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC%2B2IVK0NoVEzDoOh4DA4%3D' (2025-12-21)
• Updated input 'nixpkgs-2505':
    'github:nixos/nixpkgs/6c8f0cca84510cc79e09ea99a299c9bc17d03cb6?narHash=sha256-M5aFEFPppI4UhdOxwdmceJ9bDJC4T6C6CzCK1E2FZyo%3D' (2025-12-01)
  → 'github:nixos/nixpkgs/a6c3a6141ec1b367c58ead3f7f846c772a25f4e5?narHash=sha256-vS6LSOMDOB3s%2BL6tqw9IGujxnmUAZQnEG%2BVi640LayI%3D' (2025-12-22)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/dc205f7b4fdb04c8b7877b43edb7b73be7730081?narHash=sha256-sUoHmPr/EwXzRMpv1u/kH%2BdXuvJEyyF2Q7muE%2Bt0EU4%3D' (2025-11-25)
  → 'github:nixos/nixpkgs/8142186f001295e5a3239f485c8a49bf2de2695a?narHash=sha256-acLU/ag9VEoKkzOD202QASX25nG1eArXg5A0mHjKgxM%3D' (2025-12-23)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/e50ab9bb181f9fb3ce00e7a6007c70ddaa007203?narHash=sha256-acPMRCAPgPykzkwATwD1EfF7xgmbraAvIJyCeR6bKxc%3D' (2025-12-18)
  → 'github:nixos/nixpkgs/6a81c8cfb009e8dbd462d8c75f49a121efcb6e17?narHash=sha256-XqmvlUkYpaQzV2CksGR8MzjeqTBKkB3gSf26pYoNqWw%3D' (2025-12-25)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/a320ce8e6e2cc6b4397eef214d202a50a4583829?narHash=sha256-6zddwDs2n%2Bn01l%2B1TG6PlyokDdXzu/oBmEejcH5L5%2BA%3D' (2025-11-24)
  → 'github:nixos/nixpkgs/76701a179d3a98b07653e2b0409847499b2a07d3?narHash=sha256-5G1NDO2PulBx1RoaA6U1YoUDX0qZslpPxv%2Bn5GX6Qto%3D' (2025-12-23)
• Updated input 'nur-ryan4yin':
    'github:ryan4yin/nur-packages/89e4e49bc0279d5c379526b16360e20ca901e226?narHash=sha256-/E/H334pr4qo8bdTLjYahL7Tx3HMMJvKmNHDbhjq3Dc%3D' (2025-11-25)
  → 'github:ryan4yin/nur-packages/420e007374a83784ce915f0d0bffd670f302ee1b?narHash=sha256-23X12PirpI3HhJZVm2Z/9BTbEHlXjJxizB6Mot7qeLU%3D' (2025-12-14)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/50b9238891e388c9fdc6a5c49e49c42533a1b5ce?narHash=sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh%2BM4Qc%3D' (2025-11-24)
  → 'github:cachix/git-hooks.nix/b68b780b69702a090c8bb1b973bab13756cc7a27?narHash=sha256-t3T/xm8zstHRLx%2BpIHxVpQTiySbKqcQbK%2Br%2B01XVKc0%3D' (2025-12-16)
2025-12-25 12:40:13 +08:00
Ryan Yin bda311ad9a chore: use glm 4.7 for claude code 2025-12-24 11:45:06 +08:00
Ryan Yin 2bc25074a6 feat: apple touchbar - remove search key 2025-12-19 16:20:47 +08:00
Ryan Yin 219a7a6e0b feat: apple touchbar - add f1 f2 & f12 2025-12-19 16:19:19 +08:00
Ryan Yin 85394e25f4 fix: waybar - style for wireplumber.source 2025-12-19 16:04:16 +08:00
Ryan Yin a0fc2040a9 Keybindings and waybar (#238)
* feat: niri & hyprland - adjust keybindings
* feat: waybar - add micphone icon, use WirePlumber, etc
2025-12-19 01:52:39 -06:00
Ryan Yin b7f5aed4b8 docs: how to update nixos-unstable 2025-12-19 10:15:42 +08:00
Ryan Yin 6a23332ce1 chore: niri - hotkey-overlay skip-at-startup 2025-12-19 10:09:18 +08:00
Ryan Yin 12decc32b6 fix: niri keybinding for wlogout 2025-12-19 10:06:04 +08:00
Ryan Yin e7e9a43dbb flake.lock: Update
Flake lock file updates:

• Updated input 'mysecrets':
    'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=76c00cee0b7749518eef167a842a6c7a6d245a4e&shallow=1' (2025-10-21)
  → 'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=cfe34c222cf7ee4290438c97e6cc734aa7792346&shallow=1' (2025-12-18)
2025-12-19 09:57:01 +08:00
Ryan Yin 29760ddb27 refactor: update niri, write config in kdl, remove niri-flake (#237)
• Updated input 'nixpkgs':
  → 'github:NixOS/nixpkgs/0254eab410b90ef2420c1059f908ae777e3b02f9?narHash=sha256-/US2Ei9JHXHVBAxV4FX49Q7H5s4UNBrIiOA6Xjzgq44%3D' (2025-12-06)

• Updated input 'home-manager':
    'github:nix-community/home-manager/f4cb25928fafa9ae68660fe71f730fc820a59028?narHash=sha256-5xOuutXM7UPTUcn3uDAD8UlPQsXmqPrX81cXoDOAGcA%3D' (2025-11-26)
  → 'github:nix-community/home-manager/89c9508bbe9b40d36b3dc206c2483ef176f15173?narHash=sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs%2BzlQ07dGQFk4%3D' (2025-12-17)

• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/6812bcfd614abedbdb3f68d7b6554eda6ca3e014?narHash=sha256-sNF/PZcuzYBHKRBkerEiPf5mkZM15A3fWD%2BlqpwKc60%3D' (2025-12-15)
  → 'github:nixos/nixpkgs/e50ab9bb181f9fb3ce00e7a6007c70ddaa007203?narHash=sha256-acPMRCAPgPykzkwATwD1EfF7xgmbraAvIJyCeR6bKxc%3D' (2025-12-18)

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-12-18 19:56:46 -06:00
Ryan Yin 307f5a490c feat: fcitx5 - add new group for internaional chars input
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-12-17 19:18:52 +08:00
Ryan Yin 2e53101fb7 feat: fcitx5 - add japanese ime 2025-12-17 15:50:35 +08:00
Ryan Yin b6c1456f46 chore: update nixpkgs-master 2025-12-15 16:48:33 +08:00
Ryan Yin cdf4ab580f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/5c46f3bd98147c8d82366df95bbef2cab3a967ea?narHash=sha256-nXv6xb7cq%2BXpjBYIjWEGTLCqQetxJu6zvVlrqHMsCOA%3D' (2025-11-26)
  → 'github:nixos/nixpkgs/6812bcfd614abedbdb3f68d7b6554eda6ca3e014?narHash=sha256-sNF/PZcuzYBHKRBkerEiPf5mkZM15A3fWD%2BlqpwKc60%3D' (2025-12-15)
2025-12-15 16:42:05 +08:00
Ryan Yin fdcc3be59d chore: update claude models 2025-12-03 14:09:06 +08:00
Ryan Yin 3c2ad0bec2 feat(darwin): set terminal font size to 15 2025-12-01 11:13:42 +08:00
Ryan Yin 81dbc5b8de feat(darwin): adjust terminal font size 2025-12-01 10:57:39 +08:00
Ryan Yin 618f26017c feat(darwin): aerosapce - adjust windows 2025-12-01 10:14:53 +08:00
Ryan Yin 4163d09af8 feat: optimizing swap on zram 2025-11-28 19:21:36 +08:00
Ryan Yin 13031e30c2 chore: upgrade code-cursor, avoid compile zed-editor from source 2025-11-27 11:08:10 +08:00
Ryan Yin 3d2a2d50af fix: foot - do not resize the window on font resizing 2025-11-27 11:06:06 +08:00
Ryan Yin 3bf1b986cf feat: upgrade nixpkgs stable to 25.11, update nixos-apple-silicon, gh… (#236)
* feat: upgrade nixpkgs stable to 25.11, update nixos-apple-silicon, ghostty, anyrun, etc
* fix: asahi-nixos - revert mesa to 25.2.6
* fix: disable gitui - it's broken on aarch64-darwin currently

---------

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-26 20:54:44 -06:00
Ryan Yin 7cf0e96efa feat: helix with steel, preserve steel's package 2025-11-23 16:16:02 +08:00
Ryan Yin 87a1d56247 feat: helix - add steel as the plugin system
fix: evaluation warning - 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system'

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-23 13:40:26 +08:00
Ryan Yin def33a486b fix: vscode - password-store (#235)
* feat: vscode + code-cursor, fix password-store, update

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-16 07:47:47 -06:00
Ryan Yin 62bac83db4 fix: README - badge 2025-11-12 07:23:28 -06:00
Ryan Yin e0d0ff9203 flake.lock: Update (#233)
* flake.lock: Update

Flake lock file updates:

• Updated input 'aagl':
    'github:ezKEa/aagl-gtk-on-nix/944f9903859ad16db762fbe573fb6f05f7367e16?narHash=sha256-SeDqOZQoARl/xxEMdej09IScCf77SEQfRAjED7lBgMY%3D' (2025-09-22)
  → 'github:ezKEa/aagl-gtk-on-nix/1172be1377bc65581004f4d5927b58c5c7d96639?narHash=sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU%3D' (2025-11-03)
• Updated input 'aagl/flake-compat':
    'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
  → 'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
• Updated input 'aagl/rust-overlay':
    'github:oxalica/rust-overlay/d2bac276ac7e669a1f09c48614538a37e3eb6d0f?narHash=sha256-kx2uELmVnAbiekj/YFfWR26OXqXedImkhe2ocnbumTA%3D' (2025-09-22)
  → 'github:oxalica/rust-overlay/59c45eb69d9222a4362673141e00ff77842cd219?narHash=sha256-myRIDh%2BPxaREz%2Bz9LzbqBJF%2BSnTFJwkthKDX9zMyddY%3D' (2025-10-30)
• Updated input 'catppuccin':
    'github:catppuccin/nix/2e0aacdd6abbecd1b1c0511a2fcd1460a6bc6645?narHash=sha256-yqh6EEhlpVWRoKl85o1s%2BQZ72UHWTvornnc3C0Ls484%3D' (2025-09-19)
  → 'github:catppuccin/nix/728cb0a667ce37bb0c68557dba819c7fb54ff1c8?narHash=sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo%3D' (2025-11-07)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/f97518cc100599186846282457be520fda11f467?narHash=sha256-y0B40QQ//4fpTAUfhZjoDEiUejhb2hXl5LcpNenRpYM%3D' (2025-09-23)
  → 'github:ghostty-org/ghostty/bed219c132f1940a23eba50cdd7a40e4c2718149?narHash=sha256-sic0p21KmUz/u9KsdVTIfZRDDRg9brTWs2IDb4F%2By48%3D' (2025-11-10)
• Updated input 'ghostty/nixpkgs':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz?narHash=sha256-zRDR%2BEbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY%3D' (2025-05-25)
  → 'https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz?narHash=sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk%3D' (1980-01-01)
• Updated input 'ghostty/zig':
    'github:mitchellh/zig-overlay/aafb1b093fb838f7a02613b719e85ec912914221?narHash=sha256-3i0IL3s18hdDlbsf0/E%2B5kyPRkZwGPbSFngq5eToiAA%3D' (2025-05-26)
  → 'github:mitchellh/zig-overlay/365085b6652259753b598d43b723858184980bbe?narHash=sha256-/zj5GYO5PKhBWGzbHbqT%2BehY8EghuABdQ2WGfCwZpCQ%3D' (2025-10-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/676c0159ed51d10489a249ecdc61e115c2a90d03?narHash=sha256-XhSTUBFOtuumxAUVxTVD5k7nE/FgK11YUxAgzNQcmLU%3D' (2025-09-24)
  → 'github:nix-community/home-manager/37a3d97f2873e0f68711117c34d04b7c7ead8f4e?narHash=sha256-t2U/GLLXHa2%2BkJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs%3D' (2025-11-10)
• Updated input 'niri':
    'github:sodiboo/niri-flake/6e26dd2cece5430571b45ffe3d97213431b3e86f?narHash=sha256-/f1k6oL2UqpDxe0MasJyLpXJj80Az/TxBbEf4hinmgI%3D' (2025-09-23)
  → 'github:sodiboo/niri-flake/44c5a2c19b7b22d1b2375ef95f656291a0af3a1b?narHash=sha256-eu8Gkb/y/5pRS3Ml/sg3oeUtFFzlJMpDrJRgPgOXz38%3D' (2025-11-10)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/3850739e445b95a73c2466a718ccaf3a9a406c06?narHash=sha256-EQecFZ5VZtNjN/yzDA/RV13fK3EdLPblcf9p5wVNACo%3D' (2025-09-23)
  → 'github:YaLTeR/niri/978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3?narHash=sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg%3D' (2025-11-10)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
  → 'github:NixOS/nixpkgs/b6a8526db03f735b89dd5ff348f53f752e7ddc8e?narHash=sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV%2B3DSADBX7/9YQ%3D' (2025-11-08)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
  → 'github:NixOS/nixpkgs/c2448301fb856e351aab33e64c33a3fc8bcf637d?narHash=sha256-HiRDeUOD1VLklHeOmaKDzf%2B8Hb7vSWPVFcWwaTrpm%2BU%3D' (2025-11-10)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/03368548ba745e17a85bd631613a59cb2d8469a4?narHash=sha256-sB2GAOjhjoWnjU6A/uHNJiY6O3UeztV5pJAN2g1FkXU%3D' (2025-09-22)
  → 'github:Supreeeme/xwayland-satellite/6338574bc5c036487486acde264f38f39ea15fad?narHash=sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk%3D' (2025-11-10)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/25381509d5c91bbf3c30e23abc6d8476d2143cd1?narHash=sha256-yGA6MV0E4JSEXqLTb4ZZkmdJZcoQ8HUzihRRX12Bvpg%3D' (2025-09-21)
  → 'github:lnl7/nix-darwin/5125a3cd414dc98bbe2c528227aa6b62ee61f733?narHash=sha256-/QLk1bzmbcqJt9sU43%2By/3tHtXhAy0l8Ck0MoO2%2BevQ%3D' (2025-11-08)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/6418c314274a8ce27078402ab1fbac7c06da7a36?narHash=sha256-Ff5IFCEABf3CStKvf8MqJe7jwrHk2J8swdYTrwOj9dk%3D' (2025-09-24)
  → 'github:fufexan/nix-gaming/eefca17cb40462878ee1c46ac6910b2ec21adaa8?narHash=sha256-M4rbwlO4peCHRvA%2BWNYCmg8je4YBF7kSY9tG%2Bp1kEKo%3D' (2025-11-11)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/26d05891e14c88eb4a5d5bee659c0db5afb609d8?narHash=sha256-xxdepIcb39UJ94%2BYydGP221rjnpkDZUlykKuF54PsqI%3D' (2025-11-06)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/a73b9c743612e4244d865a2fdee11865283c04e6?narHash=sha256-x2rJ%2BOvzq0sCMpgfgGaaqgBSwY%2BLST%2BWbZ6TytnT9Rk%3D' (2025-08-10)
  → 'github:nix-community/nixpkgs.lib/719359f4562934ae99f5443f20aa06c2ffff91fc?narHash=sha256-b0yj6kfvO8ApcSE%2BQmA6mUfu8IYG6/uU28OFn4PaC8M%3D' (2025-10-29)
• Updated input 'nixpak':
    'github:nixpak/nixpak/17df00be4383dbf88c42ed1fa519cc6dd71df042?narHash=sha256-eGksZmv1ie834yfgJW0z85eZZo10A/JE%2B6dhHNWQajQ%3D' (2025-09-18)
  → 'github:nixpak/nixpak/e4bcce21a735a07c409b696b31c17f6640ca0aa2?narHash=sha256-riBOo30D8DhqQobcIYAC6sDl9PHBUq9ukjS4NjnjEM4%3D' (2025-11-06)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/0010412d62a25d959151790968765a70c436598b?narHash=sha256-z5PlZ47j50VNF3R%2BIMS9LmzI5fYRGY/Z5O5tol1c9I4%3D' (2025-11-01)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/1a3667d33e247ad35ca250698d63f49a5453d824?narHash=sha256-ENUhCRWgSX4ni751HieNuQoq06dJvApV/Nm89kh%2B/A0%3D' (2025-09-16)
  → 'github:hercules-ci/hercules-ci-effects/7db2b867219a26781437d840ce457b75b7645154?narHash=sha256-pLE7U5gOtlA/2wbKCsVRYf5DqMQ5TWBCrCfZGytDDeo%3D' (2025-10-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
  → 'github:nixos/nixpkgs/b6a8526db03f735b89dd5ff348f53f752e7ddc8e?narHash=sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV%2B3DSADBX7/9YQ%3D' (2025-11-08)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/a1f79a1770d05af18111fbbe2a3ab2c42c0f6cd0?narHash=sha256-5rdAi7CTvM/kSs6fHe1bREIva5W3TbImsto%2BdxG4mBo%3D' (2025-09-21)
  → 'github:nixos/nixpkgs/e1ebeec86b771e9d387dd02d82ffdc77ac753abc?narHash=sha256-g/da4FzvckvbiZT075Sb1/YDNDr%2BtGQgh4N8i5ceYMg%3D' (2025-11-07)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/2a8c7895537748fb6d8f0a14c08a482ffe549441?narHash=sha256-MFd2bpd3V/Nr2UhFE0uhF/21JNi5GrbCXqwCFCt4Mlg%3D' (2025-11-01)
  → 'github:nixos/nixpkgs/31fa703ba440e16d86d31598dc0601b117769b91?narHash=sha256-QiSTsHcXiu2O84iPhedQde/62TlUWwj%2BjqoYNpE%2BQ28%3D' (2025-11-11)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
  → 'github:nixos/nixpkgs/c2448301fb856e351aab33e64c33a3fc8bcf637d?narHash=sha256-HiRDeUOD1VLklHeOmaKDzf%2B8Hb7vSWPVFcWwaTrpm%2BU%3D' (2025-11-10)
• Updated input 'nu_scripts':
    'github:nushell/nu_scripts/0b97c5e1444b13db7c263bee646dea1e1ffe4ddb?narHash=sha256-tKMLaSNniylbo9f0wdUzUZm059RPqyFQlxMtiTPIkWQ%3D' (2025-10-15)
  → 'github:nushell/nu_scripts/449dd3d06598714c2ba0ee3fa3556e24d034c624?narHash=sha256-4ibgz7y1fsBn2aDuptqpdLd4Wdfx2sKGs7wVRJxCWW0%3D' (2025-11-02)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/54df955a695a84cd47d4a43e08e1feaf90b1fd9b?narHash=sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo%3D' (2025-09-17)
  → 'github:cachix/git-hooks.nix/8e7576e79b88c16d7ee3bbd112c8d90070832885?narHash=sha256-j%2BrNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0%3D' (2025-11-06)

* fix: adb and fastboot's udev rules are now integrated within systemd

* fix: programs.git - renamed options

* fix: package rename

* fix: comment out joplin-desktop - Electron version 36.9.5 is EOL

* fix: rust-overlay - aagl & lanzaboote

* fix: nu_scripts
2025-11-10 22:45:53 -06:00
Ryan Yin 1385a34f1a fix: nu_scripts 2025-11-11 12:45:04 +08:00
Ryan Yin 744fbf9ce5 fix: rust-overlay - aagl & lanzaboote 2025-11-11 11:59:40 +08:00
Ryan Yin a23073bfee fix: comment out joplin-desktop - Electron version 36.9.5 is EOL 2025-11-11 11:09:49 +08:00
Ryan Yin 60d1909055 fix: package rename 2025-11-11 11:06:20 +08:00
Ryan Yin cd4389a40f fix: programs.git - renamed options 2025-11-11 10:59:04 +08:00
Ryan Yin d0035905e1 fix: adb and fastboot's udev rules are now integrated within systemd 2025-11-11 10:58:30 +08:00
Ryan Yin fdf66fbae0 flake.lock: Update
Flake lock file updates:

• Updated input 'aagl':
    'github:ezKEa/aagl-gtk-on-nix/944f9903859ad16db762fbe573fb6f05f7367e16?narHash=sha256-SeDqOZQoARl/xxEMdej09IScCf77SEQfRAjED7lBgMY%3D' (2025-09-22)
  → 'github:ezKEa/aagl-gtk-on-nix/1172be1377bc65581004f4d5927b58c5c7d96639?narHash=sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU%3D' (2025-11-03)
• Updated input 'aagl/flake-compat':
    'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885?narHash=sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX%2BfjA8Xf8PUmqCY%3D' (2025-05-12)
  → 'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
• Updated input 'aagl/rust-overlay':
    'github:oxalica/rust-overlay/d2bac276ac7e669a1f09c48614538a37e3eb6d0f?narHash=sha256-kx2uELmVnAbiekj/YFfWR26OXqXedImkhe2ocnbumTA%3D' (2025-09-22)
  → 'github:oxalica/rust-overlay/59c45eb69d9222a4362673141e00ff77842cd219?narHash=sha256-myRIDh%2BPxaREz%2Bz9LzbqBJF%2BSnTFJwkthKDX9zMyddY%3D' (2025-10-30)
• Updated input 'catppuccin':
    'github:catppuccin/nix/2e0aacdd6abbecd1b1c0511a2fcd1460a6bc6645?narHash=sha256-yqh6EEhlpVWRoKl85o1s%2BQZ72UHWTvornnc3C0Ls484%3D' (2025-09-19)
  → 'github:catppuccin/nix/728cb0a667ce37bb0c68557dba819c7fb54ff1c8?narHash=sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo%3D' (2025-11-07)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/f97518cc100599186846282457be520fda11f467?narHash=sha256-y0B40QQ//4fpTAUfhZjoDEiUejhb2hXl5LcpNenRpYM%3D' (2025-09-23)
  → 'github:ghostty-org/ghostty/bed219c132f1940a23eba50cdd7a40e4c2718149?narHash=sha256-sic0p21KmUz/u9KsdVTIfZRDDRg9brTWs2IDb4F%2By48%3D' (2025-11-10)
• Updated input 'ghostty/nixpkgs':
    'https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz?narHash=sha256-zRDR%2BEbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY%3D' (2025-05-25)
  → 'https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz?narHash=sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk%3D' (1980-01-01)
• Updated input 'ghostty/zig':
    'github:mitchellh/zig-overlay/aafb1b093fb838f7a02613b719e85ec912914221?narHash=sha256-3i0IL3s18hdDlbsf0/E%2B5kyPRkZwGPbSFngq5eToiAA%3D' (2025-05-26)
  → 'github:mitchellh/zig-overlay/365085b6652259753b598d43b723858184980bbe?narHash=sha256-/zj5GYO5PKhBWGzbHbqT%2BehY8EghuABdQ2WGfCwZpCQ%3D' (2025-10-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/676c0159ed51d10489a249ecdc61e115c2a90d03?narHash=sha256-XhSTUBFOtuumxAUVxTVD5k7nE/FgK11YUxAgzNQcmLU%3D' (2025-09-24)
  → 'github:nix-community/home-manager/37a3d97f2873e0f68711117c34d04b7c7ead8f4e?narHash=sha256-t2U/GLLXHa2%2BkJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs%3D' (2025-11-10)
• Updated input 'niri':
    'github:sodiboo/niri-flake/6e26dd2cece5430571b45ffe3d97213431b3e86f?narHash=sha256-/f1k6oL2UqpDxe0MasJyLpXJj80Az/TxBbEf4hinmgI%3D' (2025-09-23)
  → 'github:sodiboo/niri-flake/44c5a2c19b7b22d1b2375ef95f656291a0af3a1b?narHash=sha256-eu8Gkb/y/5pRS3Ml/sg3oeUtFFzlJMpDrJRgPgOXz38%3D' (2025-11-10)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/3850739e445b95a73c2466a718ccaf3a9a406c06?narHash=sha256-EQecFZ5VZtNjN/yzDA/RV13fK3EdLPblcf9p5wVNACo%3D' (2025-09-23)
  → 'github:YaLTeR/niri/978c4e6c8afc0199e2cbd9037bdc7c41fbbab2a3?narHash=sha256-LCddK36/6u73jed1yuqbu6JKWIITsc42qoM883DgwJg%3D' (2025-11-10)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
  → 'github:NixOS/nixpkgs/b6a8526db03f735b89dd5ff348f53f752e7ddc8e?narHash=sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV%2B3DSADBX7/9YQ%3D' (2025-11-08)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
  → 'github:NixOS/nixpkgs/c2448301fb856e351aab33e64c33a3fc8bcf637d?narHash=sha256-HiRDeUOD1VLklHeOmaKDzf%2B8Hb7vSWPVFcWwaTrpm%2BU%3D' (2025-11-10)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/03368548ba745e17a85bd631613a59cb2d8469a4?narHash=sha256-sB2GAOjhjoWnjU6A/uHNJiY6O3UeztV5pJAN2g1FkXU%3D' (2025-09-22)
  → 'github:Supreeeme/xwayland-satellite/6338574bc5c036487486acde264f38f39ea15fad?narHash=sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk%3D' (2025-11-10)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/25381509d5c91bbf3c30e23abc6d8476d2143cd1?narHash=sha256-yGA6MV0E4JSEXqLTb4ZZkmdJZcoQ8HUzihRRX12Bvpg%3D' (2025-09-21)
  → 'github:lnl7/nix-darwin/5125a3cd414dc98bbe2c528227aa6b62ee61f733?narHash=sha256-/QLk1bzmbcqJt9sU43%2By/3tHtXhAy0l8Ck0MoO2%2BevQ%3D' (2025-11-08)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/6418c314274a8ce27078402ab1fbac7c06da7a36?narHash=sha256-Ff5IFCEABf3CStKvf8MqJe7jwrHk2J8swdYTrwOj9dk%3D' (2025-09-24)
  → 'github:fufexan/nix-gaming/eefca17cb40462878ee1c46ac6910b2ec21adaa8?narHash=sha256-M4rbwlO4peCHRvA%2BWNYCmg8je4YBF7kSY9tG%2Bp1kEKo%3D' (2025-11-11)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/26d05891e14c88eb4a5d5bee659c0db5afb609d8?narHash=sha256-xxdepIcb39UJ94%2BYydGP221rjnpkDZUlykKuF54PsqI%3D' (2025-11-06)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/a73b9c743612e4244d865a2fdee11865283c04e6?narHash=sha256-x2rJ%2BOvzq0sCMpgfgGaaqgBSwY%2BLST%2BWbZ6TytnT9Rk%3D' (2025-08-10)
  → 'github:nix-community/nixpkgs.lib/719359f4562934ae99f5443f20aa06c2ffff91fc?narHash=sha256-b0yj6kfvO8ApcSE%2BQmA6mUfu8IYG6/uU28OFn4PaC8M%3D' (2025-10-29)
• Updated input 'nixpak':
    'github:nixpak/nixpak/17df00be4383dbf88c42ed1fa519cc6dd71df042?narHash=sha256-eGksZmv1ie834yfgJW0z85eZZo10A/JE%2B6dhHNWQajQ%3D' (2025-09-18)
  → 'github:nixpak/nixpak/e4bcce21a735a07c409b696b31c17f6640ca0aa2?narHash=sha256-riBOo30D8DhqQobcIYAC6sDl9PHBUq9ukjS4NjnjEM4%3D' (2025-11-06)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751?narHash=sha256-%2BuWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw%3D' (2025-09-01)
  → 'github:hercules-ci/flake-parts/0010412d62a25d959151790968765a70c436598b?narHash=sha256-z5PlZ47j50VNF3R%2BIMS9LmzI5fYRGY/Z5O5tol1c9I4%3D' (2025-11-01)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/1a3667d33e247ad35ca250698d63f49a5453d824?narHash=sha256-ENUhCRWgSX4ni751HieNuQoq06dJvApV/Nm89kh%2B/A0%3D' (2025-09-16)
  → 'github:hercules-ci/hercules-ci-effects/7db2b867219a26781437d840ce457b75b7645154?narHash=sha256-pLE7U5gOtlA/2wbKCsVRYf5DqMQ5TWBCrCfZGytDDeo%3D' (2025-10-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
  → 'github:nixos/nixpkgs/b6a8526db03f735b89dd5ff348f53f752e7ddc8e?narHash=sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV%2B3DSADBX7/9YQ%3D' (2025-11-08)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/a1f79a1770d05af18111fbbe2a3ab2c42c0f6cd0?narHash=sha256-5rdAi7CTvM/kSs6fHe1bREIva5W3TbImsto%2BdxG4mBo%3D' (2025-09-21)
  → 'github:nixos/nixpkgs/e1ebeec86b771e9d387dd02d82ffdc77ac753abc?narHash=sha256-g/da4FzvckvbiZT075Sb1/YDNDr%2BtGQgh4N8i5ceYMg%3D' (2025-11-07)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/2a8c7895537748fb6d8f0a14c08a482ffe549441?narHash=sha256-MFd2bpd3V/Nr2UhFE0uhF/21JNi5GrbCXqwCFCt4Mlg%3D' (2025-11-01)
  → 'github:nixos/nixpkgs/31fa703ba440e16d86d31598dc0601b117769b91?narHash=sha256-QiSTsHcXiu2O84iPhedQde/62TlUWwj%2BjqoYNpE%2BQ28%3D' (2025-11-11)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
  → 'github:nixos/nixpkgs/c2448301fb856e351aab33e64c33a3fc8bcf637d?narHash=sha256-HiRDeUOD1VLklHeOmaKDzf%2B8Hb7vSWPVFcWwaTrpm%2BU%3D' (2025-11-10)
• Updated input 'nu_scripts':
    'github:nushell/nu_scripts/0b97c5e1444b13db7c263bee646dea1e1ffe4ddb?narHash=sha256-tKMLaSNniylbo9f0wdUzUZm059RPqyFQlxMtiTPIkWQ%3D' (2025-10-15)
  → 'github:nushell/nu_scripts/449dd3d06598714c2ba0ee3fa3556e24d034c624?narHash=sha256-4ibgz7y1fsBn2aDuptqpdLd4Wdfx2sKGs7wVRJxCWW0%3D' (2025-11-02)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/54df955a695a84cd47d4a43e08e1feaf90b1fd9b?narHash=sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo%3D' (2025-09-17)
  → 'github:cachix/git-hooks.nix/8e7576e79b88c16d7ee3bbd112c8d90070832885?narHash=sha256-j%2BrNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0%3D' (2025-11-06)
2025-11-11 10:47:15 +08:00
Ryan Yin 125bce3bc2 fix: cuda12.8-cuda_cudart-12.8.90 is marked as broken 2025-11-02 16:21:24 +08:00
Ryan Yin 6ae7fee541 feat: gaming - add bbe 2025-11-02 16:13:04 +08:00
Ryan Yin 8d1c70cc72 docs: gaming 2025-11-02 16:13:04 +08:00
Ryan Yin de05214ec5 chore: nixpaks - update dbus policies
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-01 21:26:01 +08:00
Ryan Yin 34fdd92351 feat: comment out nixpkgs-unstable, we use unstable by default (#232)
* feat: comment out nixpkgs-unstable, we use unstable by default

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>

* fix: typo...

---------

Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-01 07:21:57 -06:00
Ryan Yin 0c2dcc0734 feat: update nixpkgs-patched & nixpaks-common 2025-11-01 20:01:22 +08:00
Ryan Yin 2f47f7dc76 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-patched':
    'github:ryan4yin/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe?narHash=sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL%2Bnma8o%3D' (2025-09-08)
  → 'github:ryan4yin/nixpkgs/08dacfca559e1d7da38f3cf05f1f45ee9bfd213c?narHash=sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI%3D' (2025-10-28)
2025-11-01 20:00:08 +08:00
Ryan Yin 082327c693 chore: ~/.claude.json - bindmount 2025-11-01 18:33:09 +08:00
Ryan Yin 1436c6c069 chore: nixpaks 2025-11-01 16:34:00 +08:00
Ryan Yin b034b383d7 feat: add flameshot 2025-11-01 15:00:10 +08:00
Ryan Yin 863f6a31f7 feat: upgrade code-cursor
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-01 13:54:17 +08:00
Ryan Yin 0cdc201974 fix: claude-code 2025-11-01 12:10:52 +08:00
Ryan Yin 40b782d94b fix: niri - screencapture 2025-11-01 11:41:29 +08:00
Ryan Yin 23de363622 feat: add jc
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-11-01 10:30:25 +08:00
Ryan Yin 2195a599d6 feat: update model for claude-code 2025-10-21 13:17:51 +08:00
Ryan Yin c58e76574e feat: update model for claude-code 2025-10-21 09:45:02 +08:00
Ryan Yin 7fbd31a70a fix: fontconfig serif & sans (#230) 2025-10-19 09:28:09 +08:00
Ryan Yin e8a227dcb7 feat(nixos): hyprland - gestures 2025-10-18 20:02:45 +08:00
Ryan Yin 74420b4161 fix(nixos): hyprland - enable polkit-gnome to get auth work 2025-10-18 19:55:30 +08:00
Ryan Yin aabe1c65fa fix: nixos-installer - use nixos-unstable (#228)
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2025-10-16 21:16:58 -06:00
Ryan Yin b25d30dd62 chore: nixos-installer - update flake.nix 2025-10-16 15:22:17 +08:00
Ryan Yin 57cd863aa5 feat: remove determinate nix 2025-10-16 13:23:36 +08:00
Ryan Yin 492708cfc7 feat: nixos-apple-silicon - build full NixOS kernel to enable BTF/BPF 2025-10-16 13:15:35 +08:00
Ryan Yin a5bd9c1d09 chore: use nu_scripts from git 2025-10-16 10:14:45 +08:00
Ryan Yin 73642f6686 refactor: install core cli tools at system-level 2025-10-15 12:48:58 +08:00
Ryan Yin d06fdb3076 feat: add procs - replacement of ps 2025-10-15 11:13:26 +08:00
Ryan Yin 956a997eb8 feat(nixos): add systemctl-tui 2025-10-15 10:57:55 +08:00
Ryan Yin f9bb934218 fix(home/base/tui/shell): nushell - use both git-completions & git-aliases 2025-10-15 10:49:53 +08:00
Ryan Yin 0029bdc8c7 feat: gcloud aliases (#226) 2025-10-14 19:49:14 -06:00
Ryan Yin 18946a0814 chore: remove mihomo-party 2025-10-02 11:50:46 +08:00
Ryan Yin 5479ea26cd feat: add netbird for homelab, keep tailscale for work (#225) 2025-10-02 11:49:05 +08:00
Ryan Yin 7885d10e29 refactor: grafana - add more datasources, rewrite in nix 2025-09-26 23:46:54 +08:00
Ryan Yin 935a1dccda feat: grafana - add more plugins 2025-09-26 21:37:23 +08:00
Ryan Yin 958f5878c1 chore: alertmanager - adjust group labels 2025-09-26 19:12:45 +08:00
Ryan Yin 5e727543c1 feat: Grafana Dashboards & VMAlert (#224)
* chore: grafana - remove useless dashboards
* fix: alertmanager - metrics
* fix: victoria-metrics - job filter
* feat: add recoding rules
* fix: grafana - add or update uid for all dashboards
* fix: vmalert - remoteWrite
2025-09-26 19:10:32 +08:00
Ryan Yin 38f9a3e1bb fix: vmalert - remoteWrite 2025-09-26 19:07:04 +08:00
Ryan Yin 902f558995 fix: grafana - add or update uid for all dashboards 2025-09-26 18:56:06 +08:00
Ryan Yin 2961a9591a feat: add recoding rules 2025-09-26 18:56:06 +08:00
Ryan Yin a8ac95ebad chore: grafana - remove useless dashboards
fix: alertmanager - metrics
fix: victoria-metrics - job filter
2025-09-26 18:36:29 +08:00
Ryan Yin 3ac0cea3cc fix: time zone in nixpak 2025-09-26 14:12:42 +08:00
Ryan Yin 58e333a23b chore: starship - disable aws & gcp module 2025-09-26 11:31:48 +08:00
Ryan Yin ba86a02fca feat: starship - enable kubernetes & os, adjust settings 2025-09-26 11:19:15 +08:00
Ryan Yin 7b28c08ab6 feat: block qqpatch.gtimg.cn by resolve it to 127.0.0.1 2025-09-26 10:27:09 +08:00
Ryan Yin 6f09e34c21 fix: qemu-user-static on aarch64 - disable pie 2025-09-24 14:35:26 +08:00
Ryan Yin 553e8d16e5 fix(WIP): qemu-user-static - too many GOT entries for -fpic, please recompile with -fPIC 2025-09-24 14:19:27 +08:00
Ryan Yin ebce6504c6 flake.lock: Update
Flake lock file updates:

• Updated input 'aagl':
    'github:ezKEa/aagl-gtk-on-nix/8e105b0850a1c9bc81affcae689db92f35d28595?narHash=sha256-yHMlD/8m4RQOrFwtaaZUfKn6hr0i3DhkoD%2BGzcd2qns%3D' (2025-09-13)
  → 'github:ezKEa/aagl-gtk-on-nix/944f9903859ad16db762fbe573fb6f05f7367e16?narHash=sha256-SeDqOZQoARl/xxEMdej09IScCf77SEQfRAjED7lBgMY%3D' (2025-09-22)
• Updated input 'aagl/rust-overlay':
    'github:oxalica/rust-overlay/6db0fb0e9cec2e9729dc52bf4898e6c135bb8a0f?narHash=sha256-afOx8AG0KYtw7mlt6s6ahBBy7eEHZwws3iCRoiuRQS4%3D' (2025-08-07)
  → 'github:oxalica/rust-overlay/d2bac276ac7e669a1f09c48614538a37e3eb6d0f?narHash=sha256-kx2uELmVnAbiekj/YFfWR26OXqXedImkhe2ocnbumTA%3D' (2025-09-22)
• Updated input 'blender-bin':
    'github:edolstra/nix-warez/0873f0bab56b6af0953db620b0fb2ec517513a7e?dir=blender&narHash=sha256-%2BaNWKYKUXgjcBIv5zqDM8Hta4CmB4FRTNX3vq68d6Vo%3D' (2025-09-12)
  → 'github:edolstra/nix-warez/f49a87422539d748a34b9f3b07a7b8ced7242dff?dir=blender&narHash=sha256-GlScQnoFgaFLQ9cd4llbJSisR0LjafjMAkBZQV7m4uk%3D' (2025-09-18)
• Updated input 'catppuccin':
    'github:catppuccin/nix/039cd59357bc6fdd8d9848717069fbc9ee609a73?narHash=sha256-dzKGtCdGbW7v95MS6pxb97u025JP24QsqCLE5bHAumI%3D' (2025-09-15)
  → 'github:catppuccin/nix/2e0aacdd6abbecd1b1c0511a2fcd1460a6bc6645?narHash=sha256-yqh6EEhlpVWRoKl85o1s%2BQZ72UHWTvornnc3C0Ls484%3D' (2025-09-19)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/0f0a61c38dbebbd70979afbd3df81bf143efca9d?narHash=sha256-4yQjtJnX3tyDASjZTVRZWOBADrjJCaXMESFzM2uMvXQ%3D' (2025-09-16)
  → 'github:ghostty-org/ghostty/f97518cc100599186846282457be520fda11f467?narHash=sha256-y0B40QQ//4fpTAUfhZjoDEiUejhb2hXl5LcpNenRpYM%3D' (2025-09-23)
• Updated input 'ghostty/zon2nix':
    'github:jcollie/zon2nix/dc78177e2ad28d5a407c9e783ee781bd559d7dd5?narHash=sha256-4XyJ6fmKd9wgJ7vHUQuULYy5ps2gUgkkDk/PrJb2OPY%3D' (2025-09-06)
  → 'github:jcollie/zon2nix/bf983aa90ff169372b9fa8c02e57ea75e0b42245?narHash=sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG%2B62znXctWM%3D' (2025-09-20)
• Updated input 'ghostty/zon2nix/nixpkgs':
    'https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz?narHash=sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko%3D' (2025-08-23)
  → 'https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz?narHash=sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs%3D' (2025-09-20)
• Updated input 'home-manager':
    'github:nix-community/home-manager/fb928abb67bd4df99040721ed48c3b42e24b1d08?narHash=sha256-D0KVKNgWSDVjYFgPLEtSQvSKchTBT0YqSbNlH7OQ%2Bbo%3D' (2025-09-17)
  → 'github:nix-community/home-manager/676c0159ed51d10489a249ecdc61e115c2a90d03?narHash=sha256-XhSTUBFOtuumxAUVxTVD5k7nE/FgK11YUxAgzNQcmLU%3D' (2025-09-24)
• Updated input 'niri':
    'github:sodiboo/niri-flake/addd500206b992b1c9211e0dfecb70c1d0c9821a?narHash=sha256-5BUDFG%2BHnB4ZBLZSxbQ5tuueOVQDkSHi/8tUsJWlXl8%3D' (2025-09-16)
  → 'github:sodiboo/niri-flake/6e26dd2cece5430571b45ffe3d97213431b3e86f?narHash=sha256-/f1k6oL2UqpDxe0MasJyLpXJj80Az/TxBbEf4hinmgI%3D' (2025-09-23)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/08f5c6fecb3c5c81d63a0bf7248c85ae3299a4a5?narHash=sha256-yDFq5/uwQV9NetcKduw0A/3XmGN/Z3ovMCTZkUv0B6Y%3D' (2025-09-16)
  → 'github:YaLTeR/niri/3850739e445b95a73c2466a718ccaf3a9a406c06?narHash=sha256-EQecFZ5VZtNjN/yzDA/RV13fK3EdLPblcf9p5wVNACo%3D' (2025-09-23)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
  → 'github:NixOS/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/9a094440e02a699be5c57453a092a8baf569bdad?narHash=sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs%3D' (2025-09-14)
  → 'github:NixOS/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/970728d0d9d1eada342bb8860af214b601139e58?narHash=sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y%3D' (2025-09-06)
  → 'github:Supreeeme/xwayland-satellite/03368548ba745e17a85bd631613a59cb2d8469a4?narHash=sha256-sB2GAOjhjoWnjU6A/uHNJiY6O3UeztV5pJAN2g1FkXU%3D' (2025-09-22)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/830b3f0b50045cf0bcfd4dab65fad05bf882e196?narHash=sha256-MhDltfXesGH8VkGv3hmJ1QEKl1ChTIj9wmGAFfWj/Wk%3D' (2025-09-09)
  → 'github:lnl7/nix-darwin/25381509d5c91bbf3c30e23abc6d8476d2143cd1?narHash=sha256-yGA6MV0E4JSEXqLTb4ZZkmdJZcoQ8HUzihRRX12Bvpg%3D' (2025-09-21)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/17db183a6a2ba1217bbfc123b47d4b5ee70b256a?narHash=sha256-wmlDAkOrwX9cvhXQa7wekGr/5G6SfE2D5KlvuvSEEXc%3D' (2025-09-14)
  → 'github:fufexan/nix-gaming/6418c314274a8ce27078402ab1fbac7c06da7a36?narHash=sha256-Ff5IFCEABf3CStKvf8MqJe7jwrHk2J8swdYTrwOj9dk%3D' (2025-09-24)
• Updated input 'nixpak':
    'github:nixpak/nixpak/7e7c4f735a766a359c10e59a6e99f4964eefa82f?narHash=sha256-SQKn77oAyNcxumJrOIGZbCN/FDKgUqq5vHzV4ehGJFw%3D' (2025-09-11)
  → 'github:nixpak/nixpak/17df00be4383dbf88c42ed1fa519cc6dd71df042?narHash=sha256-eGksZmv1ie834yfgJW0z85eZZo10A/JE%2B6dhHNWQajQ%3D' (2025-09-18)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/99e03e72e3f7e13506f80ef9ebaedccb929d84d0?narHash=sha256-AavrbMltJKcC2Fx0lfJoZfmy7g87ebXU0ddVenhajLA%3D' (2025-08-15)
  → 'github:hercules-ci/hercules-ci-effects/1a3667d33e247ad35ca250698d63f49a5453d824?narHash=sha256-ENUhCRWgSX4ni751HieNuQoq06dJvApV/Nm89kh%2B/A0%3D' (2025-09-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
  → 'github:nixos/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/08b8f92ac6354983f5382124fef6006cade4a1c1?narHash=sha256-TjqVmbpoCqWywY9xIZLTf6ANFvDCXdctCjoYuYPYdMI%3D' (2025-09-16)
  → 'github:nixos/nixpkgs/a1f79a1770d05af18111fbbe2a3ab2c42c0f6cd0?narHash=sha256-5rdAi7CTvM/kSs6fHe1bREIva5W3TbImsto%2BdxG4mBo%3D' (2025-09-21)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
  → 'github:nixos/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/9a094440e02a699be5c57453a092a8baf569bdad?narHash=sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs%3D' (2025-09-14)
  → 'github:nixos/nixpkgs/d1d883129b193f0b495d75c148c2c3a7d95789a0?narHash=sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k%3D' (2025-09-23)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
  → 'github:nixos/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/302af509428169db34f268324162712d10559f74?narHash=sha256-4DpXmct/2rcLgScT1CXOLr0TUeIlrBB1rnFqCOf5MUw%3D' (2025-09-15)
  → 'github:cachix/git-hooks.nix/54df955a695a84cd47d4a43e08e1feaf90b1fd9b?narHash=sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo%3D' (2025-09-17)
2025-09-24 11:53:41 +08:00
Ryan Yin e3a33fdf03 fix: podman cross platform - binfmt 2025-09-24 11:47:23 +08:00
Ryan Yin 16c8b893d3 fix: niri - touchpad - disable on typing 2025-09-20 17:45:13 +08:00
Ryan Yin 9509c15ac3 fix: telegram - for niri to recognize the app ID(WIP) 2025-09-19 23:04:05 +08:00
Ryan Yin 6a74052413 chore: updte renamed package 2025-09-19 09:19:42 +08:00
Ryan Yin 205b1466de feat: nixpak telegram-desktop, move data to flatpak's appDataDir ~/.var 2025-09-19 00:32:10 +08:00
Ryan Yin 8b2b43d28a feat: optimize nixpaks 2025-09-19 00:04:31 +08:00
Ryan Yin 0c6e5dc32e refactor: aquamarine - enable tailscale 2025-09-18 22:59:22 +08:00
Ryan Yin 95abfef3a9 feat: update alertmanager message template 2025-09-18 21:52:58 +08:00
Ryan Yin 070aeae8db feat: gaming (#223)
* refactor: configure gaming suite via options, use pkgs-x64
* fix: gaming on apple silicon (not work yet)
2025-09-17 13:54:27 +08:00
Ryan Yin 35f9816db9 Merge pull request #222 from ryan4yin/flake-update
chore: flake update, replace lix with dix
2025-09-17 13:41:18 +08:00
Ryan Yin 9f97c659d6 fix: lix is broken, use dix instead 2025-09-17 13:38:04 +08:00
Ryan Yin d6954ea964 flake.lock: Update
Flake lock file updates:

• Updated input 'blender-bin':
    'github:edolstra/nix-warez/8ae661516ca53314cfad8a8d3ab41e2274fdc168?dir=blender' (2025-08-22)
  → 'github:edolstra/nix-warez/0873f0bab56b6af0953db620b0fb2ec517513a7e?dir=blender' (2025-09-12)
• Updated input 'catppuccin':
    'github:catppuccin/nix/d75e3fe67f49728cb5035bc791f4b9065ff3a2c9' (2025-09-08)
  → 'github:catppuccin/nix/039cd59357bc6fdd8d9848717069fbc9ee609a73' (2025-09-15)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/0dc324607d289fcf5588fb9da4bd2c5459353974' (2025-09-09)
  → 'github:ghostty-org/ghostty/0f0a61c38dbebbd70979afbd3df81bf143efca9d' (2025-09-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/17a10049486f6698fca32097d8f52c0c895542b0' (2025-09-14)
  → 'github:nix-community/home-manager/6efc49be7c6115a0e07b3a2fa042cd41d9195545' (2025-09-17)
• Updated input 'niri':
    'github:sodiboo/niri-flake/ef694b996daeeb8684c0adfaa9b7067a6e709054' (2025-09-09)
  → 'github:sodiboo/niri-flake/addd500206b992b1c9211e0dfecb70c1d0c9821a' (2025-09-16)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/bdee1a657699a77bc4cdb050f7355f37f64c45a6' (2025-09-08)
  → 'github:YaLTeR/niri/08f5c6fecb3c5c81d63a0bf7248c85ae3299a4a5' (2025-09-16)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
  → 'github:NixOS/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-13)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/d179d77c139e0a3f5c416477f7747e9d6b7ec315' (2025-09-09)
  → 'github:NixOS/nixpkgs/9a094440e02a699be5c57453a092a8baf569bdad' (2025-09-14)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/cae14b9ee74180bda2c1f312958fe710b4267fce' (2025-09-09)
  → 'github:fufexan/nix-gaming/17db183a6a2ba1217bbfc123b47d4b5ee70b256a' (2025-09-14)
• Updated input 'nixpak':
    'github:nixpak/nixpak/0cd505152f03cc703550b01c6eab7ed95bca5339' (2025-09-04)
  → 'github:nixpak/nixpak/7e7c4f735a766a359c10e59a6e99f4964eefa82f' (2025-09-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
  → 'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-13)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0' (2025-09-05)
  → 'github:nixos/nixpkgs/08b8f92ac6354983f5382124fef6006cade4a1c1' (2025-09-16)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
  → 'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-13)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/d179d77c139e0a3f5c416477f7747e9d6b7ec315' (2025-09-09)
  → 'github:nixos/nixpkgs/9a094440e02a699be5c57453a092a8baf569bdad' (2025-09-14)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
  → 'github:nixos/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1' (2025-09-13)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/ab82ab08d6bf74085bd328de2a8722c12d97bd9d' (2025-09-07)
  → 'github:cachix/git-hooks.nix/302af509428169db34f268324162712d10559f74' (2025-09-15)
2025-09-17 13:24:39 +08:00
Ryan Yin 755596484b docs: add comments for proton & winetriks 2025-09-16 23:29:16 +08:00
Ryan Yin d729ca1377 refacotor: python packages 2025-09-16 12:09:02 +08:00
Ryan Yin 918403b098 feat: gaming - docs, persistent data, add lutris, heroic & star rail 2025-09-14 23:57:27 +08:00
Ryan Yin 1b663c757b fix: node_exporter - exclude also run/credentials/.+ & run/user/.+ 2025-09-14 11:28:12 +08:00
Ryan Yin a5b57cd16e fix: alert - exclude also /persistent-prefixed paths 2025-09-14 11:09:48 +08:00
Ryan Yin 48a9d7c507 fix: idols-aquamarine - alert (#221)
* fix: idols-aquamarine - alert

* feat: add dashboards for victoriametrics

* fix: node_exporter - exclude docker/podman/kubelet mounts and /home/ryan bindmounts

* fix: alert - add coredns, comment out some useless alert rules
2025-09-14 10:48:38 +08:00
Ryan Yin 7a82b8085a fix: alert - add coredns, comment out some useless alert rules 2025-09-14 10:40:12 +08:00
Ryan Yin c8182216ae fix: node_exporter - exclude docker/podman/kubelet mounts and /home/ryan bindmounts 2025-09-14 10:15:20 +08:00
Ryan Yin e5b9a4917e feat: add dashboards for victoriametrics 2025-09-14 09:44:09 +08:00
Ryan Yin f771ec76a0 fix: idols-aquamarine - alert 2025-09-14 09:28:50 +08:00
Ryan Yin 01b69e810e fix: downgrade kubernetes-helm due to regression in 3.18.x, related to schema validation 2025-09-12 19:47:23 +08:00
Ryan Yin 7f112010c2 feat: update alert rules 2025-09-12 11:50:17 +08:00
Ryan Yin e902a9bdb1 feat: update anyrun & use gtk4 css, revert nvidia to prod driver (#220)
fix: nvidia: revert to prod driver to fix GTK4 apps hang on close
2025-09-11 10:41:09 +08:00
Ryan Yin 07d6a5e102 fix: anyrun - The package should come from the same flake as all the plugins 2025-09-10 22:48:57 +08:00
Ryan Yin b6796f9592 flake.lock: Update
Flake lock file updates:

• Updated input 'catppuccin':
    'github:catppuccin/nix/842da43be0d00d7cf4c26faf279bc71a614c259b' (2025-08-28)
  → 'github:catppuccin/nix/d75e3fe67f49728cb5035bc791f4b9065ff3a2c9' (2025-09-08)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/a51a956bdb15a3868abf688f5679da4ea897b845' (2025-08-31)
  → 'github:ghostty-org/ghostty/0dc324607d289fcf5588fb9da4bd2c5459353974' (2025-09-09)
• Updated input 'ghostty/zon2nix':
    'github:jcollie/zon2nix/d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60' (2025-08-24)
  → 'github:jcollie/zon2nix/dc78177e2ad28d5a407c9e783ee781bd559d7dd5' (2025-09-06)
• Removed input 'ghostty/zon2nix/flake-utils'
• Updated input 'home-manager':
    'github:nix-community/home-manager/99a69bdf8a3c6bf038c4121e9c4b6e99706a187a' (2025-08-30)
  → 'github:nix-community/home-manager/3c97248d6f896232355735e34bb518ae9f130c5d' (2025-09-10)
• Updated input 'niri':
    'github:sodiboo/niri-flake/01285d6ffb9214e6e524cfb7a4752a3c20be6b2b' (2025-08-30)
  → 'github:sodiboo/niri-flake/ef694b996daeeb8684c0adfaa9b7067a6e709054' (2025-09-09)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294' (2025-08-30)
  → 'github:YaLTeR/niri/bdee1a657699a77bc4cdb050f7355f37f64c45a6' (2025-09-08)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
  → 'github:NixOS/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
  → 'github:NixOS/nixpkgs/d179d77c139e0a3f5c416477f7747e9d6b7ec315' (2025-09-09)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/1d156aa8d30b124ff770488e5e34289a08ff4207' (2025-08-30)
  → 'github:Supreeeme/xwayland-satellite/970728d0d9d1eada342bb8860af214b601139e58' (2025-09-06)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
  → 'github:lnl7/nix-darwin/830b3f0b50045cf0bcfd4dab65fad05bf882e196' (2025-09-09)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/4c92760b8d12d0d36e8e189d890d1c01a7ae646e' (2025-08-31)
  → 'github:fufexan/nix-gaming/cae14b9ee74180bda2c1f312958fe710b4267fce' (2025-09-09)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
  → 'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751' (2025-09-01)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/0f36c44e01a6129be94e3ade315a5883f0228a6e' (2025-07-27)
  → 'github:nix-community/nixpkgs.lib/a73b9c743612e4244d865a2fdee11865283c04e6' (2025-08-10)
• Updated input 'nixpak':
    'github:nixpak/nixpak/d73116f6b9eb8cd5f1acc1a3dc9e9979ba5c3131' (2025-08-28)
  → 'github:nixpak/nixpak/0cd505152f03cc703550b01c6eab7ed95bca5339' (2025-09-04)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
  → 'github:hercules-ci/flake-parts/4524271976b625a4a605beefd893f270620fd751' (2025-09-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
  → 'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/a918bb3594dd243c2f8534b3be01b3cb4ed35fd1' (2025-08-30)
  → 'github:nixos/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0' (2025-09-05)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
  → 'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
• Updated input 'nixpkgs-patched':
    'github:ryan4yin/nixpkgs/361887dbb55312dd449193578200beedb6688fcf' (2025-09-01)
  → 'github:ryan4yin/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
  → 'github:nixos/nixpkgs/d179d77c139e0a3f5c416477f7747e9d6b7ec315' (2025-09-09)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
  → 'github:nixos/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe' (2025-09-08)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/e891a93b193fcaf2fc8012d890dc7f0befe86ec2' (2025-08-23)
  → 'github:cachix/git-hooks.nix/ab82ab08d6bf74085bd328de2a8722c12d97bd9d' (2025-09-07)
• Updated input 'preservation':
    'github:nix-community/preservation/286737ba485f30c1687c833e66f5901a6c8dc019' (2025-07-01)
  → 'github:nix-community/preservation/93416f4614ad2dfed5b0dcf12f27e57d27a5ab11' (2025-09-09)
2025-09-10 21:48:50 +08:00
Ryan Yin 4c04c8e3a3 Merge pull request #219 from ryan4yin/anyrun
polish: anyrun - update config & css style
2025-09-10 21:48:09 +08:00
Ryan Yin e14c197e8f fix: qq with inputmethod 2025-09-01 14:45:32 +08:00
Ryan Yin a1d51ffe0c fix: qq with input method https://patch-diff.githubusercontent.com/raw/NixOS/nixpkgs/pull/439070.patch 2025-09-01 14:28:06 +08:00
Ryan Yin 8d7b622430 fix: nixos/logind: migrate to settings option 2025-09-01 14:04:13 +08:00
Ryan Yin da1e7253da docs: flypy - user customized words, fix typos 2025-09-01 14:00:24 +08:00
Ryan Yin 123d90a8dd fix: niri - windowrule for chromium 2025-09-01 10:01:55 +08:00
Ryan Yin 2483ee2707 fix: update nixos-appli-silicon 2025-09-01 09:50:12 +08:00
Ryan Yin 3eec0b94a0 feat: preservation - add sunshine & obs-studio 2025-08-31 13:26:21 +08:00
Ryan Yin ac68092d88 chore: flake update & adjustment (#218)
* flake.lock: Update

Flake lock file updates:

• Updated input 'anyrun':
    'github:Kirottu/anyrun/0c3fa788227d29cf8b0184e553c83021bcebad7c' (2025-08-17)
  → 'github:Kirottu/anyrun/af1ffe4f17921825ff2a773995604dce2b2df3cd' (2025-08-19)
• Updated input 'anyrun/flake-parts':
    'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5' (2025-04-01)
  → 'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
• Updated input 'blender-bin':
    'github:edolstra/nix-warez/e8b2b3214f07970e45ec3fc98d957b0507a3564a?dir=blender' (2025-08-01)
  → 'github:edolstra/nix-warez/8ae661516ca53314cfad8a8d3ab41e2274fdc168?dir=blender' (2025-08-22)
• Updated input 'catppuccin':
    'github:catppuccin/nix/a2ef20ed6fb921073c2d1b1929447c3bd88f595e' (2025-08-16)
  → 'github:catppuccin/nix/842da43be0d00d7cf4c26faf279bc71a614c259b' (2025-08-28)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/11d56235f9e4a227b794a87a503785ef9f3349ed' (2025-08-15)
  → 'github:ghostty-org/ghostty/a51a956bdb15a3868abf688f5679da4ea897b845' (2025-08-31)
• Updated input 'ghostty/zon2nix':
    'github:jcollie/zon2nix/56c159be489cc6c0e73c3930bd908ddc6fe89613' (2025-03-16)
  → 'github:jcollie/zon2nix/d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60' (2025-08-24)
• Updated input 'ghostty/zon2nix/nixpkgs':
    follows 'ghostty/nixpkgs'
  → 'https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz?narHash=sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko%3D' (2025-08-23)
• Updated input 'home-manager':
    'github:nix-community/home-manager/8b4ac149687e8520187a66f05e9d4eafebf96522' (2025-08-17)
  → 'github:nix-community/home-manager/99a69bdf8a3c6bf038c4121e9c4b6e99706a187a' (2025-08-30)
• Updated input 'niri':
    'github:sodiboo/niri-flake/9aa137af01f05386e5bb5050e983750017007a66' (2025-08-17)
  → 'github:sodiboo/niri-flake/01285d6ffb9214e6e524cfb7a4752a3c20be6b2b' (2025-08-30)
• Updated input 'niri/niri-stable':
    'github:YaLTeR/niri/8ba57fcf25d2fc9565131684a839d58703f1dae7' (2025-05-25)
  → 'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294' (2025-08-30)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/a6febb86aa5af0df7bf2792ca027ef95a503d599' (2025-08-17)
  → 'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294' (2025-08-30)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:NixOS/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/ad7196ae55c295f53a7d1ec39e4a06d922f3b899' (2025-08-15)
  → 'github:NixOS/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
• Updated input 'niri/xwayland-satellite-stable':
    'github:Supreeeme/xwayland-satellite/3ba30b149f9eb2bbf42cf4758d2158ca8cceef73' (2025-05-29)
  → 'github:Supreeeme/xwayland-satellite/388d291e82ffbc73be18169d39470f340707edaa' (2025-08-18)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/5a184d435927c3423f0ad189ea2b490578450fb7' (2025-08-15)
  → 'github:Supreeeme/xwayland-satellite/1d156aa8d30b124ff770488e5e34289a08ff4207' (2025-08-30)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/7220b01d679e93ede8d7b25d6f392855b81dd475' (2025-08-15)
  → 'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/f2bf778502254d8852402a83ae346fd803095ccc' (2025-08-17)
  → 'github:fufexan/nix-gaming/4c92760b8d12d0d36e8e189d890d1c01a7ae646e' (2025-08-31)
• Updated input 'nixos-apple-silicon/flake-compat':
    'github:nix-community/flake-compat/8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c' (2023-06-29)
  → 'github:nix-community/flake-compat/0f158086a2ecdbb138cd0429410e44994f1b7e4b' (2025-05-02)
• Updated input 'nixpak':
    'github:nixpak/nixpak/ae70d05017be7e0aa6c1cf5f267fe6953eb027e6' (2025-08-14)
  → 'github:nixpak/nixpak/d73116f6b9eb8cd5f1acc1a3dc9e9979ba5c3131' (2025-08-28)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/5f2e09654b2e70ba643e41609d9f9b6640f22113' (2025-07-15)
  → 'github:hercules-ci/hercules-ci-effects/99e03e72e3f7e13506f80ef9ebaedccb929d84d0' (2025-08-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/32f313e49e42f715491e1ea7b306a87c16fe0388' (2025-08-15)
  → 'github:nixos/nixpkgs/a918bb3594dd243c2f8534b3be01b3cb4ed35fd1' (2025-08-30)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/ad7196ae55c295f53a7d1ec39e4a06d922f3b899' (2025-08-15)
  → 'github:nixos/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864' (2025-08-05)
  → 'github:cachix/git-hooks.nix/e891a93b193fcaf2fc8012d890dc7f0befe86ec2' (2025-08-23)

* chore: niri xwayland-satellite integration

* feat: ssh - `programs.ssh` default values will be removed in the future

* fix: comment out all fgpa tools - nextpnr failed to build
2025-08-31 13:23:13 +08:00
Ryan Yin 601816a5ee fix: comment out all fgpa tools - nextpnr failed to build 2025-08-31 13:15:28 +08:00
Ryan Yin 3a21601778 feat: ssh - programs.ssh default values will be removed in the future 2025-08-31 13:08:57 +08:00
Ryan Yin d1eadc6f40 chore: niri xwayland-satellite integration 2025-08-31 13:04:04 +08:00
Ryan Yin 3c90833fb4 flake.lock: Update
Flake lock file updates:

• Updated input 'anyrun':
    'github:Kirottu/anyrun/0c3fa788227d29cf8b0184e553c83021bcebad7c' (2025-08-17)
  → 'github:Kirottu/anyrun/af1ffe4f17921825ff2a773995604dce2b2df3cd' (2025-08-19)
• Updated input 'anyrun/flake-parts':
    'github:hercules-ci/flake-parts/c621e8422220273271f52058f618c94e405bb0f5' (2025-04-01)
  → 'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
• Updated input 'blender-bin':
    'github:edolstra/nix-warez/e8b2b3214f07970e45ec3fc98d957b0507a3564a?dir=blender' (2025-08-01)
  → 'github:edolstra/nix-warez/8ae661516ca53314cfad8a8d3ab41e2274fdc168?dir=blender' (2025-08-22)
• Updated input 'catppuccin':
    'github:catppuccin/nix/a2ef20ed6fb921073c2d1b1929447c3bd88f595e' (2025-08-16)
  → 'github:catppuccin/nix/842da43be0d00d7cf4c26faf279bc71a614c259b' (2025-08-28)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/11d56235f9e4a227b794a87a503785ef9f3349ed' (2025-08-15)
  → 'github:ghostty-org/ghostty/a51a956bdb15a3868abf688f5679da4ea897b845' (2025-08-31)
• Updated input 'ghostty/zon2nix':
    'github:jcollie/zon2nix/56c159be489cc6c0e73c3930bd908ddc6fe89613' (2025-03-16)
  → 'github:jcollie/zon2nix/d9dc9ef1ab9ae45b5c9d80c6a747cc9968ee0c60' (2025-08-24)
• Updated input 'ghostty/zon2nix/nixpkgs':
    follows 'ghostty/nixpkgs'
  → 'https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz?narHash=sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko%3D' (2025-08-23)
• Updated input 'home-manager':
    'github:nix-community/home-manager/8b4ac149687e8520187a66f05e9d4eafebf96522' (2025-08-17)
  → 'github:nix-community/home-manager/99a69bdf8a3c6bf038c4121e9c4b6e99706a187a' (2025-08-30)
• Updated input 'niri':
    'github:sodiboo/niri-flake/9aa137af01f05386e5bb5050e983750017007a66' (2025-08-17)
  → 'github:sodiboo/niri-flake/01285d6ffb9214e6e524cfb7a4752a3c20be6b2b' (2025-08-30)
• Updated input 'niri/niri-stable':
    'github:YaLTeR/niri/8ba57fcf25d2fc9565131684a839d58703f1dae7' (2025-05-25)
  → 'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294' (2025-08-30)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/a6febb86aa5af0df7bf2792ca027ef95a503d599' (2025-08-17)
  → 'github:YaLTeR/niri/01be0e65f4eb91a9cd624ac0b76aaeab765c7294' (2025-08-30)
• Updated input 'niri/nixpkgs':
    'github:NixOS/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:NixOS/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/ad7196ae55c295f53a7d1ec39e4a06d922f3b899' (2025-08-15)
  → 'github:NixOS/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
• Updated input 'niri/xwayland-satellite-stable':
    'github:Supreeeme/xwayland-satellite/3ba30b149f9eb2bbf42cf4758d2158ca8cceef73' (2025-05-29)
  → 'github:Supreeeme/xwayland-satellite/388d291e82ffbc73be18169d39470f340707edaa' (2025-08-18)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/5a184d435927c3423f0ad189ea2b490578450fb7' (2025-08-15)
  → 'github:Supreeeme/xwayland-satellite/1d156aa8d30b124ff770488e5e34289a08ff4207' (2025-08-30)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/7220b01d679e93ede8d7b25d6f392855b81dd475' (2025-08-15)
  → 'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/f2bf778502254d8852402a83ae346fd803095ccc' (2025-08-17)
  → 'github:fufexan/nix-gaming/4c92760b8d12d0d36e8e189d890d1c01a7ae646e' (2025-08-31)
• Updated input 'nixos-apple-silicon/flake-compat':
    'github:nix-community/flake-compat/8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c' (2023-06-29)
  → 'github:nix-community/flake-compat/0f158086a2ecdbb138cd0429410e44994f1b7e4b' (2025-05-02)
• Updated input 'nixpak':
    'github:nixpak/nixpak/ae70d05017be7e0aa6c1cf5f267fe6953eb027e6' (2025-08-14)
  → 'github:nixpak/nixpak/d73116f6b9eb8cd5f1acc1a3dc9e9979ba5c3131' (2025-08-28)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/5f2e09654b2e70ba643e41609d9f9b6640f22113' (2025-07-15)
  → 'github:hercules-ci/hercules-ci-effects/99e03e72e3f7e13506f80ef9ebaedccb929d84d0' (2025-08-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/32f313e49e42f715491e1ea7b306a87c16fe0388' (2025-08-15)
  → 'github:nixos/nixpkgs/a918bb3594dd243c2f8534b3be01b3cb4ed35fd1' (2025-08-30)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/ad7196ae55c295f53a7d1ec39e4a06d922f3b899' (2025-08-15)
  → 'github:nixos/nixpkgs/41d292bfc37309790f70f4c120b79280ce40af16' (2025-08-29)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa' (2025-08-30)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864' (2025-08-05)
  → 'github:cachix/git-hooks.nix/e891a93b193fcaf2fc8012d890dc7f0befe86ec2' (2025-08-23)
2025-08-31 12:55:50 +08:00
Ryan Yin fcc90318f2 chore: nixos user groups 2025-08-31 12:51:14 +08:00
Ryan Yin ccec1d4c29 fix: wallpaper.service/start deleted to break ordering cycle starting with app-nm-applet@autostart.service/start 2025-08-31 12:18:38 +08:00
Ryan Yin c56593516d fix: wireshark 2025-08-27 17:12:51 +08:00
Ryan Yin 8e356dd6fc refactor: steam (#217) 2025-08-22 16:16:35 +08:00
Ryan Yin 7a1a9644c6 fix: steam 2025-08-22 11:55:51 +08:00
Ryan Yin eb38e7c6af docs: readme - remove xorg 2025-08-22 09:50:54 +08:00
Ryan Yin 1099cc7ab0 docs: readme for niri 2025-08-22 09:49:34 +08:00
Ryan Yin d21131deca feat: add tokei 2025-08-21 17:53:00 +08:00
Ryan Yin 497823f9a3 docs: home/ 2025-08-21 15:59:43 +08:00
Ryan Yin 76ca2dbb65 docs: hosts 2025-08-21 15:40:28 +08:00
Ryan Yin e685d4416e docs: hosts 2025-08-21 15:39:19 +08:00
Ryan Yin cb47adb6b3 feat: update docs via LLM (#216) 2025-08-21 15:32:50 +08:00
Ryan Yin a9bc0ebdb8 feat: kubie 2025-08-21 14:30:55 +08:00
Ryan Yin 1a3b80b608 chore: remove unused fcitx5-chinese-addons 2025-08-21 00:23:52 +08:00
Ryan Yin 7a6f4fb3ea feat: add shoukei into my main ssh keys 2025-08-20 23:08:37 +08:00
Ryan Yin 5c236517bc feat: refactor, update settings for sunshine (#215) 2025-08-20 22:12:43 +08:00
Ryan Yin bccd5475df feat: niri - update keybindigs 2025-08-20 20:35:24 +08:00
Ryan Yin c199f11582 feat: niri - update window rules 2025-08-20 20:25:34 +08:00
Ryan Yin 0a27530c11 fix: niri - add support for xwayland 2025-08-20 20:14:55 +08:00
Ryan Yin 41d521e6f5 docs: niri - screenshot 2025-08-20 19:32:38 +08:00
Ryan Yin b7f12a6ff2 fix: niri - settings per host (#214) 2025-08-20 14:55:08 +08:00
Ryan Yin 155c02ed66 docs: README - update 2025-08-20 13:21:35 +08:00
263 changed files with 14229 additions and 8738 deletions
+2 -2
View File
@@ -25,9 +25,9 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install nix - name: Install nix
uses: cachix/install-nix-action@v24 uses: cachix/install-nix-action@v31
with: with:
install_url: https://nixos.org/nix/install install_url: https://nixos.org/nix/install
extra_nix_config: | extra_nix_config: |
+1
View File
@@ -8,3 +8,4 @@ logs/
core* core*
!core/ !core/
!core.nix !core.nix
!coredns*
+12 -1
View File
@@ -1,10 +1,21 @@
[files] [files]
# Respect .ignore files.
ignore-dot = true ignore-dot = true
# Respect ignore files.
ignore-files = true ignore-files = true
extend-exclude = ["themes/", "data/", "static-surprises/", "resources/"] # Typos-specific ignore globs (gitignore syntax).
# NOTE: This setting is ignored when you pass the path directly on the command line, as cachix/git-hooks.nix does.
# To ignore those files, you must also exclude those directories via git-hooks.hooks.typos.settings.exclude.
extend-exclude = [
"data/",
"rime-data/",
]
[default] [default]
# Check binary files as text.
binary = false binary = false
# Verify spelling in file names.
check-filename = true
# ignore some special identifiers(sha256, mac address, crypto keys, etc) # ignore some special identifiers(sha256, mac address, crypto keys, etc)
extend-ignore-re = [ extend-ignore-re = [
"iterm2", "iterm2",
+6 -9
View File
@@ -100,7 +100,12 @@ repair-store *paths:
# Update all Nixpkgs inputs # Update all Nixpkgs inputs
[group('nix')] [group('nix')]
up-nix: up-nix:
nix flake update nixpkgs nixpkgs-stable nixpkgs-unstable nixpkgs-darwin nixpkgs-ollama nix flake update --commit-lock-file nixpkgs-stable nixpkgs-master nixpkgs-darwin nixpkgs-patched
# override nixpkgs's commit hash
[group('nix')]
override-pkgs hash:
nix flake update --commit-lock-file nixpkgs --override-input nixpkgs github:NixOS/nixpkgs/{{hash}}
############################################################################ ############################################################################
# #
@@ -116,14 +121,6 @@ local mode="default":
use {{utils_nu}} *; use {{utils_nu}} *;
nixos-switch (hostname) {{mode}} nixos-switch (hostname) {{mode}}
# Deploy the hyprland nixosConfiguration by hostname match
[linux]
[group('desktop')]
hypr mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
nixos-switch $"(hostname)-hyprland" {{mode}}
# Deploy the niri nixosConfiguration by hostname match # Deploy the niri nixosConfiguration by hostname match
[linux] [linux]
[group('desktop')] [group('desktop')]
+41 -54
View File
@@ -8,9 +8,9 @@
<a href="https://github.com/ryan4yin/nix-config/stargazers"> <a href="https://github.com/ryan4yin/nix-config/stargazers">
<img alt="Stargazers" src="https://img.shields.io/github/stars/ryan4yin/nix-config?style=for-the-badge&logo=starship&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41"></a> <img alt="Stargazers" src="https://img.shields.io/github/stars/ryan4yin/nix-config?style=for-the-badge&logo=starship&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41"></a>
<a href="https://nixos.org/"> <a href="https://nixos.org/">
<img src="https://img.shields.io/badge/NixOS-25.05-informational.svg?style=for-the-badge&logo=nixos&color=F2CDCD&logoColor=D9E0EE&labelColor=302D41"></a> <img src="https://img.shields.io/badge/NixOS-25.11-informational.svg?style=for-the-badge&logo=nixos&color=F2CDCD&logoColor=D9E0EE&labelColor=302D41"></a>
<a href="https://github.com/ryan4yin/nixos-and-flakes-book"> <a href="https://github.com/ryan4yin/nixos-and-flakes-book">
<img src="https://img.shields.io/static/v1?label=Nix Flakes&message=learning&style=for-the-badge&logo=nixos&color=DDB6F2&logoColor=D9E0EE&labelColor=302D41"></a> <img src="https://img.shields.io/badge/Nix%20Flakes-learning-informational.svg?style=for-the-badge&logo=nixos&color=F2CDCD&logoColor=D9E0EE&labelColor=302D41"></a>
</a> </a>
</p> </p>
@@ -23,7 +23,7 @@
This repository is home to the nix code that builds my systems: This repository is home to the nix code that builds my systems:
1. NixOS Desktops: NixOS with home-manager, hyprland, agenix, etc. 1. NixOS Desktops: NixOS with home-manager, niri, agenix, etc.
2. macOS Desktops: nix-darwin with home-manager, share the same home-manager configuration with 2. macOS Desktops: nix-darwin with home-manager, share the same home-manager configuration with
NixOS Desktops. NixOS Desktops.
3. NixOS Servers: virtual machines running on Proxmox/KubeVirt, with various services, such as 3. NixOS Servers: virtual machines running on Proxmox/KubeVirt, with various services, such as
@@ -54,36 +54,36 @@ You don't have to go through the pain I've experienced again! Check out my
## Components ## Components
| | NixOS(Wayland) | | | NixOS(Wayland) |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Window Manager** | [Hyprland][Hyprland] / [Niri][Niri] | | **Window Manager** | [Niri][Niri] |
| **Terminal Emulator** | [Zellij][Zellij] + [Kitty][Kitty] | | **Terminal Emulator** | [Zellij][Zellij] + [foot][foot]/[Kitty][Kitty]/[Alacritty][Alacritty]/[Ghostty][Ghostty] |
| **Bar** | [Waybar][Waybar] | | **Status Bar** / **Notifier** / **Launcher** / **lockscreens** | [noctalia-shell][noctalia-shell] |
| **Application Launcher** | [anyrun][anyrun] | | **Display Manager** | [tuigreet][tuigreet] |
| **Notification Daemon** | [Mako][Mako] | | **Color Scheme** | [catppuccin-nix][catppuccin-nix] |
| **Display Manager** | [GDM][GDM] | | **network management tool** | [NetworkManager][NetworkManager] |
| **Color Scheme** | [Catppuccin][Catppuccin] | | **Input method framework** | [Fcitx5][Fcitx5] + [rime][rime] + [小鹤音形 flypy][flypy] |
| **network management tool** | [NetworkManager][NetworkManager] | | **System resource monitor** | [Btop][Btop] |
| **Input method framework** | [Fcitx5][Fcitx5] | | **File Manager** | [Yazi][Yazi] + [thunar][thunar] |
| **System resource monitor** | [Btop][Btop] | | **Shell** | [Nushell][Nushell] + [Starship][Starship] |
| **File Manager** | [Yazi][Yazi] + [thunar][thunar] | | **Media Player** | [mpv][mpv] |
| **Shell** | [Nushell][Nushell] + [Starship][Starship] | | **Text Editor** | [Neovim][Neovim] |
| **Media Player** | [mpv][mpv] | | **Fonts** | [Nerd fonts][Nerd fonts] |
| **Text Editor** | [Neovim][Neovim] | | **Image Viewer** | [imv][imv] |
| **Fonts** | [Nerd fonts][Nerd fonts] | | **Screenshot Software** | Niri's builtin function |
| **Image Viewer** | [imv][imv] | | **Screen Recording** | [OBS][OBS] |
| **Screenshot Software** | [hyprshot][hyprshot] | | **Filesystem & Encryption** | tmpfs as `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] encrypted partition for persistent, unlock via passphrase |
| **Screen Recording** | [OBS][OBS] | | **Secure Boot** | [lanzaboote][lanzaboote] |
| **Filesystem & Encryption** | tmpfs on `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] encrypted partition for persistent, unlock via passphrase |
| **Secure Boot** | [lanzaboote][lanzaboote] |
Wallpapers: https://github.com/ryan4yin/wallpapers Wallpapers: https://github.com/ryan4yin/wallpapers
## Hyprland + AstroNvim ## Screenshots
![](./_img/hyprland_2023-07-29_1.webp) ![desktop](./_img/2026-01-05_niri-noctalia_desktop.webp)
![](./_img/hyprland_2023-07-29_2.webp) ![overview](./_img/2026-01-04_niri-noctalia_overview.webp)
![nvim](./_img/2026-01-04_niri-noctalia_nvim.webp)
## Neovim ## Neovim
@@ -109,18 +109,15 @@ For NixOS:
> To deploy this flake from NixOS's official ISO image (purest installation method), please refer to > To deploy this flake from NixOS's official ISO image (purest installation method), please refer to
> [./nixos-installer/](./nixos-installer/) > [./nixos-installer/](./nixos-installer/)
> Need to restart the machine when switching between `wayland` and `xorg`.
```bash ```bash
# deploy one of the configuration based on the hostname # deploy one of the configuration based on the hostname
sudo nixos-rebuild switch --flake .#ai-hyprland sudo nixos-rebuild switch --flake .#ai-niri
# deploy via `just`(a command runner with similar syntax to make) & Justfile # Deploy the niri nixosConfiguration by hostname match
# Deploy the hyprland nixosConfiguration by hostname match just niri
just hypr
# or we can deploy with details # or we can deploy with details
just hypr debug just niri debug
``` ```
For macOS: For macOS:
@@ -156,53 +153,43 @@ Other dotfiles that inspired me:
- [davidtwco/veritas](https://github.com/davidtwco/veritas) - [davidtwco/veritas](https://github.com/davidtwco/veritas)
- [gvolpe/nix-config](https://github.com/gvolpe/nix-config) - [gvolpe/nix-config](https://github.com/gvolpe/nix-config)
- [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes) - [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes)
- [fufexan/dotfiles](https://github.com/fufexan/dotfiles): gtk theme, xdg, git, media, anyrun, - [fufexan/dotfiles](https://github.com/fufexan/dotfiles): gtk theme, xdg, git, media, etc.
etc.
- [nix-community/srvos](https://github.com/nix-community/srvos): a collection of opinionated and - [nix-community/srvos](https://github.com/nix-community/srvos): a collection of opinionated and
sharable NixOS configurations for servers sharable NixOS configurations for servers
- Modularized NixOS Configuration - Modularized NixOS Configuration
- [hlissner/dotfiles](https://github.com/hlissner/dotfiles) - [hlissner/dotfiles](https://github.com/hlissner/dotfiles)
- [viperML/dotfiles](https://github.com/viperML/dotfiles) - [viperML/dotfiles](https://github.com/viperML/dotfiles)
- Hyprland(wayland)
- [notwidow/hyprland](https://github.com/notwidow/hyprland): This is where I start my hyprland
journey.
- [HeinzDev/Hyprland-dotfiles](https://github.com/HeinzDev/Hyprland-dotfiles): Refer to the waybar
configuration here.
- [Zeioth/zeioth-hyprland-config](https://github.com/Zeioth/zeioth-hyprland-config)
- [linuxmobile/kaku](https://github.com/linuxmobile/kaku)
- Neovim/AstroNvim - Neovim/AstroNvim
- [maxbrunet/dotfiles](https://github.com/maxbrunet/dotfiles): astronvim with nix flakes. - [maxbrunet/dotfiles](https://github.com/maxbrunet/dotfiles): astronvim with nix flakes.
- Misc - Misc
- [1amSimp1e/dots](https://github.com/1amSimp1e/dots) - [1amSimp1e/dots](https://github.com/1amSimp1e/dots)
[Hyprland]: https://github.com/hyprwm/Hyprland
[Niri]: https://github.com/YaLTeR/niri [Niri]: https://github.com/YaLTeR/niri
[Kitty]: https://github.com/kovidgoyal/kitty [Kitty]: https://github.com/kovidgoyal/kitty
[foot]: https://codeberg.org/dnkl/foot
[Alacritty]: https://github.com/alacritty/alacritty
[Ghostty]: https://github.com/ghostty-org/ghostty
[Nushell]: https://github.com/nushell/nushell [Nushell]: https://github.com/nushell/nushell
[Starship]: https://github.com/starship/starship [Starship]: https://github.com/starship/starship
[Waybar]: https://github.com/Alexays/Waybar
[polybar]: https://github.com/polybar/polybar
[rofi]: https://github.com/davatorium/rofi
[anyrun]: https://github.com/Kirottu/anyrun
[Dunst]: https://github.com/dunst-project/dunst
[Fcitx5]: https://github.com/fcitx/fcitx5 [Fcitx5]: https://github.com/fcitx/fcitx5
[rime]: https://wiki.archlinux.org/title/Rime
[flypy]: https://flypy.cc/
[Btop]: https://github.com/aristocratos/btop [Btop]: https://github.com/aristocratos/btop
[mpv]: https://github.com/mpv-player/mpv [mpv]: https://github.com/mpv-player/mpv
[Zellij]: https://github.com/zellij-org/zellij [Zellij]: https://github.com/zellij-org/zellij
[Neovim]: https://github.com/neovim/neovim [Neovim]: https://github.com/neovim/neovim
[AstroNvim]: https://github.com/AstroNvim/AstroNvim [AstroNvim]: https://github.com/AstroNvim/AstroNvim
[Hyprshot]: https://github.com/Gustash/Hyprshot
[imv]: https://sr.ht/~exec64/imv/ [imv]: https://sr.ht/~exec64/imv/
[OBS]: https://obsproject.com [OBS]: https://obsproject.com
[Mako]: https://github.com/emersion/mako
[Nerd fonts]: https://github.com/ryanoasis/nerd-fonts [Nerd fonts]: https://github.com/ryanoasis/nerd-fonts
[catppuccin]: https://github.com/catppuccin/catppuccin [catppuccin-nix]: https://github.com/catppuccin/nix
[NetworkManager]: https://wiki.gnome.org/Projects/NetworkManager [NetworkManager]: https://wiki.gnome.org/Projects/NetworkManager
[wl-clipboard]: https://github.com/bugaevc/wl-clipboard [wl-clipboard]: https://github.com/bugaevc/wl-clipboard
[GDM]: https://wiki.archlinux.org/title/GDM [tuigreet]: https://github.com/apognu/tuigreet
[thunar]: https://gitlab.xfce.org/xfce/thunar [thunar]: https://gitlab.xfce.org/xfce/thunar
[Yazi]: https://github.com/sxyazi/yazi [Yazi]: https://github.com/sxyazi/yazi
[Catppuccin]: https://github.com/catppuccin/catppuccin [Catppuccin]: https://github.com/catppuccin/catppuccin
[Btrfs]: https://btrfs.readthedocs.io [Btrfs]: https://btrfs.readthedocs.io
[LUKS]: https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system [LUKS]: https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system
[lanzaboote]: https://github.com/nix-community/lanzaboote [lanzaboote]: https://github.com/nix-community/lanzaboote
[noctalia-shell]: https://github.com/noctalia-dev/noctalia-shell
Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+18 -2
View File
@@ -3,5 +3,21 @@
This is my private Private Key Infrastructure (PKI) / Certificate Authority (CA) for my personal This is my private Private Key Infrastructure (PKI) / Certificate Authority (CA) for my personal
use. It is used to issue certificates for my own servers and services. use. It is used to issue certificates for my own servers and services.
All the private keys are ignored by git, and will be stored in my private secrets repo ## Current Structure
[../secrets](../secrets/)
- **ecc-ca.crt** - ECC CA certificate file
- **ecc-ca.srl** - CA serial number file for certificate tracking
- **ecc-csr.conf** - OpenSSL configuration file for certificate signing requests
- **ecc-server.crt** - Server certificate signed by the ECC CA
- **gen-certs.sh** - Shell script to generate certificates automatically
## Security Notes
All private keys (`.key` files) are ignored by git and stored in a private secrets repository. The
public certificates and configuration files are committed to this repository for reference.
## Usage
Run `./gen-certs.sh` to generate new certificates using the ECC CA configuration.
See [../secrets](../secrets/) for the corresponding private key management.
Generated
+409 -394
View File
File diff suppressed because it is too large Load Diff
+41 -28
View File
@@ -16,14 +16,14 @@
nixConfig = { nixConfig = {
# substituers will be appended to the default substituters when fetching packages # substituers will be appended to the default substituters when fetching packages
extra-substituters = [ extra-substituters = [
"https://anyrun.cachix.org"
# "https://nix-gaming.cachix.org" # "https://nix-gaming.cachix.org"
# "https://nixpkgs-wayland.cachix.org" # "https://nixpkgs-wayland.cachix.org"
# "https://install.determinate.systems"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
# "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" # "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
# "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" # "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
# "cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM="
]; ];
}; };
@@ -34,15 +34,20 @@
# which represents the GitHub repository URL + branch/commit-id/tag. # which represents the GitHub repository URL + branch/commit-id/tag.
# Official NixOS package source, using nixos's unstable branch by default # Official NixOS package source, using nixos's unstable branch by default
# Find git commit hash with build status here(3 jobs per day):
# https://hydra.nixos.org/jobset/nixpkgs/unstable
# update via nix flake update nixpkgs --override-input nixpkgs github:NixOS/nixpkgs/<commit-hash>
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable-small"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-2505.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-ollama.url = "github:nixos/nixpkgs/nixos-unstable"; # nixpkgs with some custom patches
nixpkgs-patched.url = "github:ryan4yin/nixpkgs/nixos-unstable-patched";
# get some latest packages from the master branch
nixpkgs-master.url = "github:nixos/nixpkgs/master";
# for macos # for macos
# nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin"; # nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.11-darwin";
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nix-darwin = { nix-darwin = {
url = "github:lnl7/nix-darwin"; url = "github:lnl7/nix-darwin";
@@ -52,7 +57,7 @@
# home-manager, used for managing user configuration # home-manager, used for managing user configuration
home-manager = { home-manager = {
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
# url = "github:nix-community/home-manager/release-25.05"; # url = "github:nix-community/home-manager/release-25.11";
# The `follows` keyword in inputs is used for inheritance. # The `follows` keyword in inputs is used for inheritance.
# Here, `inputs.nixpkgs` of home-manager is kept consistent with the `inputs.nixpkgs` of the current flake, # Here, `inputs.nixpkgs` of home-manager is kept consistent with the `inputs.nixpkgs` of the current flake,
@@ -67,7 +72,7 @@
}; };
lanzaboote = { lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2"; url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -75,14 +80,6 @@
url = "github:nix-community/preservation"; url = "github:nix-community/preservation";
}; };
# community wayland nixpkgs
# nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
# anyrun - a wayland launcher
anyrun = {
url = "github:Kirottu/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
# generate iso/qcow2/docker/... image from nixos configuration # generate iso/qcow2/docker/... image from nixos configuration
nixos-generators = { nixos-generators = {
url = "github:nix-community/nixos-generators"; url = "github:nix-community/nixos-generators";
@@ -97,11 +94,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = { disko = {
url = "github:nix-community/disko/v1.11.0"; url = "github:nix-community/disko/v1.11.0";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -129,7 +121,7 @@
}; };
ghostty = { ghostty = {
url = "github:ghostty-org/ghostty"; url = "github:ghostty-org/ghostty/tip"; # Latest Continuous Release
}; };
blender-bin = { blender-bin = {
@@ -138,17 +130,38 @@
}; };
nixos-apple-silicon = { nixos-apple-silicon = {
# 2025-07-04 # asahi-6.17.7-2
url = "github:nix-community/nixos-apple-silicon/release-2025-08-10"; url = "github:nix-community/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri.url = "github:sodiboo/niri-flake"; helix = {
# Helix with steel as plugin system
# https://github.com/helix-editor/helix/pull/8675
url = "github:mattwparas/helix/steel-event-system";
inputs.nixpkgs.follows = "nixpkgs";
};
dms = {
url = "github:AvengeMedia/DankMaterialShell/stable";
inputs.nixpkgs.follows = "nixpkgs";
};
# -------------- Gaming ---------------------
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
aagl = {
url = "github:ezKEa/aagl-gtk-on-nix/release-25.11";
# inputs.nixpkgs.follows = "nixpkgs";
};
######################## Some non-flake repositories ######################################### ######################## Some non-flake repositories #########################################
polybar-themes = { nu_scripts = {
url = "github:adi1090x/polybar-themes"; url = "github:ryan4yin/nu_scripts";
flake = false; flake = false;
}; };
+46 -14
View File
@@ -12,14 +12,53 @@
1. Accessing the network when they don't need to. 1. Accessing the network when they don't need to.
1. Accessing hardware devices they don't need. 1. Accessing hardware devices they don't need.
## Current Status ## Current Structure
1. **System Level**: ### 1. **System Level**
- [ ] AppArmor
- [ ] Kernel & System Hardening - **AppArmor** (`apparmor/`): AppArmor profiles and configuration
1. **Per-App Level**: - **Kernel & System Hardening** (`profiles/`): System-wide hardening profiles
- Nixpak (Bubblewrap, running at user-level)
- Firejail (a SUID program, meaning it's running as root) ### 2. **Per-App Level**
- **Nixpak** (`nixpaks/`): Bubblewrap-based sandboxing for applications
- Firefox configuration
- QQ (Chinese messaging app) configuration
- Modular system with reusable components
- **Firejail** (legacy): SUID-based sandboxing (not used)
- **Bubblewrap** (`bwraps/`): Direct bubblewrap configurations
- WeChat sandboxing configuration
## Current Implementation Status
| Component | Status | Notes |
| ----------------- | --------- | ------------------------------ |
| AppArmor Profiles | 🚧 WIP | Basic structure in place |
| Nixpak Firefox | ✅ Active | Firefox sandboxing via nixpak |
| Nixpak QQ | ✅ Active | QQ application sandboxing |
| Bubblewrap WeChat | ✅ Active | WeChat specific sandboxing |
| System Profiles | 🚧 WIP | Hardened system configurations |
## Directory Structure
```
hardening/
├── README.md
├── apparmor/ # AppArmor security profiles
│ └── default.nix
├── bwraps/ # Direct bubblewrap configurations
│ ├── default.nix
│ └── wechat.nix
├── nixpaks/ # Nixpak application sandboxing
│ ├── default.nix
│ ├── firefox.nix
│ ├── qq.nix
│ └── modules/ # Reusable nixpak modules
│ ├── gui-base.nix
│ └── network.nix
└── profiles/ # System hardening profiles
└── default.nix
```
## Kernel Hardening ## Kernel Hardening
@@ -69,13 +108,6 @@ provide a much higher level of security.
- [Paranoid NixOS Setup - xeiaso](https://xeiaso.net/blog/paranoid-nixos-2021-07-18/) - [Paranoid NixOS Setup - xeiaso](https://xeiaso.net/blog/paranoid-nixos-2021-07-18/)
- [nix-mineral](https://github.com/cynicsketch/nix-mineral): NixOS module for convenient system - [nix-mineral](https://github.com/cynicsketch/nix-mineral): NixOS module for convenient system
hardening. hardening.
- nixpak configs:
- https://github.com/pokon548/OysterOS/tree/b97604d89953373d6316286b96f6a964af2c398d/desktop/application
- https://github.com/segment-tree/my-nixos/tree/ceb6041f73bd9edcb78a8818b27a28f7c629193b/hm/me/apps/nixpak
- https://github.com/Keksgesicht/nixos-config/tree/91cc77d8d6b598da7c4dbed143e0009c2dea6940/packages/nixpak
- https://github.com/bluskript/nix-config/blob/7ecb6a7254c1ac4969072f4c4febdc19f8b83b30/pkgs/nixpak/default.nix
- firejail configs:
- https://github.com/stelcodes/nixos-config/blob/f8967c82a5e5f3d128eb1aaf7498b5f918f719ec/packages/overlay.nix#L261
- apparmor configs: - apparmor configs:
- https://github.com/zramctl/dotfiles/blob/4fe177f6984154960942bb47d5a375098ec6ed6a/modules/nixos/security/apparmor.nix#L4 - https://github.com/zramctl/dotfiles/blob/4fe177f6984154960942bb47d5a375098ec6ed6a/modules/nixos/security/apparmor.nix#L4
- https://git.grimmauld.de/Grimmauld/grimm-nixos-laptop/src/branch/main/hardening - https://git.grimmauld.de/Grimmauld/grimm-nixos-laptop/src/branch/main/hardening
+8 -6
View File
@@ -16,17 +16,19 @@ let
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/we/wechat/package.nix # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/we/wechat/package.nix
sources = { sources = {
aarch64-linux = { aarch64-linux = {
version = "4.0.1.11"; version = "4.1.0.13";
src = fetchurl { src = fetchurl {
url = "https://web.archive.org/web/20250512112413if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage"; # url = "https://web.archive.org/web/20251209092116if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
hash = "sha256-Rg+FWNgOPC02ILUskQqQmlz1qNb9AMdvLcRWv7NQhGk="; url = "https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
hash = "sha256-/d5crM6IGd0k0fSlBSQx4TpIVX/8iib+an0VMkWMNdw=";
}; };
}; };
x86_64-linux = { x86_64-linux = {
version = "4.0.1.11"; version = "4.1.0.13";
src = fetchurl { src = fetchurl {
url = "https://web.archive.org/web/20250512110825if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage"; # url = "https://web.archive.org/web/20251219062558if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
hash = "sha256-gBWcNQ1o1AZfNsmu1Vi1Kilqv3YbR+wqOod4XYAeVKo="; url = "https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
hash = "sha256-+r5Ebu40GVGG2m2lmCFQ/JkiDsN/u7XEtnLrB98602w=";
}; };
}; };
}; };
+4 -8
View File
@@ -1,5 +1,6 @@
{ {
pkgs, pkgs,
pkgs-master,
nixpak, nixpak,
... ...
}: }:
@@ -14,21 +15,16 @@ let
(sloth.concat' sloth.homeDir mapdir) (sloth.concat' sloth.homeDir mapdir)
]; ];
}; };
wrapper = _pkgs: path: (_pkgs.callPackage path callArgs).config.script; wrapper = _pkgs: path: (_pkgs.callPackage path callArgs);
in in
{ {
# Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules # Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules
nixpkgs.overlays = [ nixpkgs.overlays = [
(_: super: { (_: super: {
nixpaks = { nixpaks = {
qq = wrapper super ./qq.nix; qq = wrapper pkgs-master ./qq.nix;
qq-desktop-item = super.callPackage ./qq-desktop-item.nix { }; telegram-desktop = wrapper super ./telegram-desktop.nix;
wechat = wrapper super ./wechat.nix;
wechat-desktop-item = super.callPackage ./wechat-desktop-item.nix { };
firefox = wrapper super ./firefox.nix; firefox = wrapper super ./firefox.nix;
firefox-desktop-item = super.callPackage ./firefox-desktop-item.nix { };
}; };
}) })
]; ];
@@ -1,11 +0,0 @@
{ makeDesktopItem }:
makeDesktopItem {
name = "firefox";
desktopName = "firefox";
exec = "firefox %U";
terminal = false;
icon = "firefox";
type = "Application";
categories = [ "Network" ];
comment = "firefox boxed";
}
+110 -71
View File
@@ -5,84 +5,123 @@
# - Firefox's flatpak manifest: https://hg.mozilla.org/mozilla-central/file/tip/taskcluster/docker/firefox-flatpak/runme.sh#l151 # - Firefox's flatpak manifest: https://hg.mozilla.org/mozilla-central/file/tip/taskcluster/docker/firefox-flatpak/runme.sh#l151
{ {
lib, lib,
pkgs, firefox,
mkNixPak, mkNixPak,
buildEnv,
makeDesktopItem,
... ...
}: }:
mkNixPak {
config =
{
config,
sloth,
...
}:
{
app = {
package = pkgs.firefox-wayland;
binPath = "bin/firefox";
};
flatpak.appId = "org.mozilla.firefox";
imports = [ let
./modules/gui-base.nix appId = "org.mozilla.firefox";
./modules/network.nix wrapped = mkNixPak {
]; config =
{
config,
sloth,
...
}:
{
app = {
package = firefox;
binPath = "bin/firefox";
};
flatpak.appId = appId;
# list all dbus services: imports = [
# ls -al /run/current-system/sw/share/dbus-1/services/ ./modules/gui-base.nix
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/ ./modules/network.nix
dbus.policies = { ./modules/common.nix
"org.mozilla.firefox.*" = "own"; # firefox
"org.mozilla.firefox_beta.*" = "own"; # firefox beta
"org.mpris.MediaPlayer2.firefox.*" = "own";
"org.freedesktop.NetworkManager" = "talk";
"org.gnome.Shell.Screencast" = "talk";
# System tray icon
"org.freedesktop.Notifications" = "talk";
"org.kde.StatusNotifierWatcher" = "talk";
# File Manager
"org.freedesktop.FileManager1" = "talk";
# Uses legacy StatusNotifier implementation
"org.kde.*" = "own";
};
bubblewrap = {
# To trace all the home files QQ accesses, you can use the following nushell command:
# just trace-access firefox
# See the Justfile in the root of this repository for more information.
bind.rw = [
# given the read write permission to the following directories.
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
(sloth.mkdir (sloth.concat' sloth.homeDir "/.mozilla"))
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
];
bind.ro = [
"/sys/bus/pci"
[
"${config.app.package}/lib/firefox"
"/app/etc/firefox"
]
# ================ for browserpass extension ===============================
"/etc/gnupg"
(sloth.concat' sloth.homeDir "/.gnupg") # gpg's config
(sloth.concat' sloth.homeDir "/.local/share/password-store") # my secrets
(sloth.concat' sloth.runtimeDir "/gnupg") # for access gpg-agent socket
# Unsure
(sloth.concat' sloth.xdgConfigHome "/dconf")
]; ];
sockets = { bubblewrap = {
x11 = false; # To trace all the home files Firefox accesses, you can use the following nushell command:
wayland = true; # just trace-access firefox
pipewire = true; # See the Justfile in the root of this repository for more information.
bind.rw = [
# given the read write permission to the following directories.
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
(sloth.mkdir (sloth.concat' sloth.homeDir "/.mozilla"))
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
sloth.xdgPicturesDir
];
bind.ro = [
"/sys/bus/pci"
[
"${config.app.package}/lib/firefox"
"/app/etc/firefox"
]
# ================ for browserpass extension ===============================
"/etc/gnupg"
(sloth.concat' sloth.homeDir "/.gnupg") # gpg's config
(sloth.concat' sloth.homeDir "/.local/share/password-store") # my secrets
(sloth.concat' sloth.runtimeDir "/gnupg") # for access gpg-agent socket
# Unsure
(sloth.concat' sloth.xdgConfigHome "/dconf")
];
sockets = {
x11 = false;
wayland = true;
pipewire = true;
};
}; };
}; };
}; };
exePath = lib.getExe wrapped.config.script;
in
buildEnv {
inherit (wrapped.config.script) name meta passthru;
paths = [
wrapped.config.script
(makeDesktopItem {
name = appId;
desktopName = "Firefox";
genericName = "Firefox Boxed";
comment = "Firefox Browser";
exec = "${exePath} %U";
terminal = false;
icon = "firefox";
startupNotify = true;
startupWMClass = "firefox";
type = "Application";
categories = [
"Network"
"WebBrowser"
];
mimeTypes = [
"text/html"
"text/xml"
"application/xhtml+xml"
"application/vnd.mozilla.xul+xml"
"x-scheme-handler/http"
"x-scheme-handler/https"
];
actions = {
new-private-window = {
name = "New Private Window";
exec = "${exePath} --private-window %U";
};
new-window = {
name = "New Window";
exec = "${exePath} --new-window %U";
};
profile-manager-window = {
name = "Profile Manager";
exec = "${exePath} --ProfileManager";
};
};
extraConfig = {
X-Flatpak = appId;
};
})
];
} }
+234
View File
@@ -0,0 +1,234 @@
# https://github.com/mnixry/nixos-config/blob/74913c2b90d06e31170bbbaa0074f915721da224/desktop/packages/nixpaks-common.nix
# https://github.com/Kraftland/portable/blob/09c4a4227538a3f42de208a6ecbdc938ac9c00dd/portable.sh
# https://flatpak.github.io/xdg-desktop-portal/docs/api-reference.html
{
lib,
sloth,
config,
...
}:
let
inherit (config.flatpak) appId;
in
{
config = {
# list all dbus services:
# ls -al /run/current-system/sw/share/dbus-1/services/
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
dbus = {
# `--see`: The bus name can be enumerated by the application.
# `--talk`: The application can send messages to, and receive replies and signals from, the bus name.
# `--own`: The application can own the bus name
policies = {
"${appId}" = "own";
"${appId}.*" = "own";
"org.freedesktop.DBus" = "talk";
"ca.desrt.dconf" = "talk";
"org.freedesktop.appearance" = "talk";
"org.freedesktop.appearance.*" = "talk";
}
// (builtins.listToAttrs (
map (id: lib.nameValuePair "org.kde.StatusNotifierItem-${toString id}-1" "own") (
lib.lists.range 2 29
)
))
// {
# --- MPRIS Media Control ---
# Allows the app to register as a media player. These are derived from the appID.
"org.mpris.MediaPlayer2.${appId}" = "own";
"org.mpris.MediaPlayer2.${appId}.*" = "own";
"org.mpris.MediaPlayer2.${lib.lists.last (lib.strings.splitString "." appId)}" = "own";
"org.mpris.MediaPlayer2.${lib.lists.last (lib.strings.splitString "." appId)}.*" = "own";
# --- General Desktop Integration ---
"com.canonical.AppMenu.Registrar" = "talk"; # For Ubuntu AppMenu
"org.freedesktop.FileManager1" = "talk";
"org.freedesktop.Notifications" = "talk";
"org.kde.StatusNotifierWatcher" = "talk";
"org.gnome.Shell.Screencast" = "talk";
# --- Accessibility (a11y) 无障碍服务 ---
"org.a11y.Bus" = "see";
# --- Portal Access ---
# "org.freedesktop.portal.*" = "talk";
"org.freedesktop.portal.Documents" = "talk";
"org.freedesktop.portal.FileTransfer" = "talk";
"org.freedesktop.portal.FileTransfer.*" = "talk";
"org.freedesktop.portal.Notification" = "talk";
"org.freedesktop.portal.OpenURI" = "talk";
"org.freedesktop.portal.OpenURI.OpenFile" = "talk";
"org.freedesktop.portal.OpenURI.OpenURI" = "talk";
"org.freedesktop.portal.Print" = "talk";
"org.freedesktop.portal.Request" = "see";
# --- Input Method Portals ---
"org.freedesktop.portal.Fcitx" = "talk";
"org.freedesktop.portal.Fcitx.*" = "talk";
"org.freedesktop.portal.IBus" = "talk";
"org.freedesktop.portal.IBus.*" = "talk";
};
# '--call' rules permit specific method calls on D-Bus interfaces.
rules.call = {
# --- Accessibility (a11y) 无障碍服务 ---
"org.a11y.Bus" = [
"org.a11y.Bus.GetAddress@/org/a11y/bus"
"org.freedesktop.DBus.Properties.Get@/org/a11y/bus"
];
# --- General Portal Rules ---
"org.freedesktop.FileManager1" = [ "*" ];
"org.freedesktop.Notifications.*" = [ "*" ];
"org.freedesktop.portal.Documents" = [ "*" ];
"org.freedesktop.portal.FileTransfer" = [ "*" ];
"org.freedesktop.portal.FileTransfer.*" = [ "*" ];
"org.freedesktop.portal.Fcitx" = [ "*" ];
"org.freedesktop.portal.Fcitx.*" = [ "*" ];
"org.freedesktop.portal.IBus" = [ "*" ];
"org.freedesktop.portal.IBus.*" = [ "*" ];
"org.freedesktop.portal.Notification" = [ "*" ];
"org.freedesktop.portal.OpenURI" = [ "*" ];
"org.freedesktop.portal.OpenURI.OpenFile" = [ "*" ];
"org.freedesktop.portal.OpenURI.OpenURI" = [ "*" ];
"org.freedesktop.portal.Print" = [ "*" ];
"org.freedesktop.portal.Request" = [ "*" ];
# --- Main Desktop Portal Interface ---
# A comprehensive list of permissions for interacting with the desktop environment.
"org.freedesktop.portal.Desktop" = [
# Properties & Settings
"org.freedesktop.DBus.Properties.GetAll"
"org.freedesktop.DBus.Properties.Get@/org/freedesktop/portal/desktop"
"org.freedesktop.portal.Session.Close"
"org.freedesktop.portal.Settings.ReadAll"
"org.freedesktop.portal.Settings.Read"
"org.freedesktop.portal.Account.GetUserInformation"
# Network & Proxy
"org.freedesktop.portal.NetworkMonitor"
"org.freedesktop.portal.NetworkMonitor.*"
"org.freedesktop.portal.ProxyResolver.Lookup"
"org.freedesktop.portal.ProxyResolver.Lookup.*"
# Screenshot / Screen Capture & Sharing
"org.freedesktop.portal.ScreenCast"
"org.freedesktop.portal.ScreenCast.*"
"org.freedesktop.portal.Screenshot"
"org.freedesktop.portal.Screenshot.Screenshot"
# Device Access(Camera / USB)
"org.freedesktop.portal.Camera"
"org.freedesktop.portal.Camera.*"
"org.freedesktop.portal.Usb"
"org.freedesktop.portal.Usb.*"
# Remote Desktop
"org.freedesktop.portal.RemoteDesktop"
"org.freedesktop.portal.RemoteDesktop.*"
# File Operations
"org.freedesktop.portal.Documents"
"org.freedesktop.portal.Documents.*"
"org.freedesktop.portal.FileChooser"
"org.freedesktop.portal.FileChooser.*"
"org.freedesktop.portal.FileTransfer"
"org.freedesktop.portal.FileTransfer.*"
# Notifications & Printing
"org.freedesktop.portal.Notification"
"org.freedesktop.portal.Notification.*"
"org.freedesktop.portal.Print"
"org.freedesktop.portal.Print.*"
# Open/Launch Handlers
"org.freedesktop.portal.OpenURI"
"org.freedesktop.portal.OpenURI.*"
"org.freedesktop.portal.Email.ComposeEmail"
# Input Methods
"org.freedesktop.portal.Fcitx"
"org.freedesktop.portal.Fcitx.*"
"org.freedesktop.portal.IBus"
"org.freedesktop.portal.IBus.*"
# Secrets (Keyring)
"org.freedesktop.portal.Secret"
"org.freedesktop.portal.Secret.RetrieveSecret"
# Get/Update GlobalShortcuts
# "org.freedesktop.portal.GlobalShortcuts"
# "org.freedesktop.portal.GlobalShortcuts.*"
# -- get the user's location
# "org.freedesktop.portal.Location"
# "org.freedesktop.portal.Location.*"
# -- inhibit the user session from ending, suspending, idling or getting switched away.
"org.freedesktop.portal.Inhibit"
"org.freedesktop.portal.Inhibit.*"
# Generic Request Fallback
"org.freedesktop.portal.Request"
];
};
# 'broadcast' rules permit receiving signals from D-Bus names.
rules.broadcast = {
"org.freedesktop.portal.*" = [ "@/org/freedesktop/portal/*" ];
};
args = [
"--filter"
"--sloppy-names"
"--log"
];
};
etc.sslCertificates.enable = true;
bubblewrap = {
network = lib.mkDefault true;
sockets = {
wayland = true;
pulse = true;
};
bind.rw = with sloth; [
[
(mkdir appDataDir)
xdgDataHome
]
[
(mkdir appConfigDir)
xdgConfigHome
]
[
(mkdir appCacheDir)
xdgCacheHome
]
(sloth.concat [
sloth.runtimeDir
"/"
(sloth.envOr "WAYLAND_DISPLAY" "no")
])
(sloth.concat' sloth.runtimeDir "/at-spi/bus")
(sloth.concat' sloth.runtimeDir "/gvfsd")
(sloth.concat' sloth.runtimeDir "/dconf")
(sloth.concat' sloth.xdgCacheHome "/fontconfig")
(sloth.concat' sloth.xdgCacheHome "/mesa_shader_cache")
(sloth.concat' sloth.xdgCacheHome "/mesa_shader_cache_db")
(sloth.concat' sloth.xdgCacheHome "/radv_builtin_shaders")
];
bind.ro = [
(sloth.concat' sloth.runtimeDir "/doc")
(sloth.concat' sloth.xdgConfigHome "/kdeglobals")
(sloth.concat' sloth.xdgConfigHome "/gtk-2.0")
(sloth.concat' sloth.xdgConfigHome "/gtk-3.0")
(sloth.concat' sloth.xdgConfigHome "/gtk-4.0")
(sloth.concat' sloth.xdgConfigHome "/fontconfig")
(sloth.concat' sloth.xdgConfigHome "/dconf")
];
bind.dev = [ "/dev/shm" ] ++ (map (id: "/dev/video${toString id}") (lib.lists.range 0 9));
};
};
}
+3 -11
View File
@@ -16,15 +16,7 @@ in
config = { config = {
dbus.policies = { dbus.policies = {
"${config.flatpak.appId}" = "own"; "${config.flatpak.appId}" = "own";
"org.freedesktop.DBus" = "talk"; # we add other policies in ./common.nix
"org.gtk.vfs.*" = "talk";
"org.gtk.vfs" = "talk";
"ca.desrt.dconf" = "talk";
"org.a11y.Bus" = "talk";
# for default portal & gtk/hyprland's portal
"org.freedesktop.portal.*" = "talk";
"org.freedesktop.impl.portal.desktop.*" = "talk";
}; };
# https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix # https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix
# 1. bind readonly - /run/opengl-driver # 1. bind readonly - /run/opengl-driver
@@ -69,8 +61,8 @@ in
(sloth.concat' sloth.xdgConfigHome "/fontconfig") (sloth.concat' sloth.xdgConfigHome "/fontconfig")
"/etc/fonts" # for fontconfig "/etc/fonts" # for fontconfig
"/etc/machine-id" "/etc/localtime" # this is a symlink to /etc/zoneinfo/xxx
"/etc/localtime" "/etc/zoneinfo"
# Fix: libEGL warning: egl: failed to create dri2 screen # Fix: libEGL warning: egl: failed to create dri2 screen
"/etc/egl" "/etc/egl"
-17
View File
@@ -1,17 +0,0 @@
{
makeDesktopItem,
qq,
}:
makeDesktopItem {
name = "qq";
desktopName = "QQ";
exec = "${qq}/bin/qq %U";
terminal = false;
# To find the icon name(nushell):
# let p = NIXPKGS_ALLOW_UNFREE=1 nix eval --impure nixpkgs#qq.outPath | str trim --char '"'
# tree $"($p)/share/icons"
icon = "${qq}/share/icons/hicolor/512x512/apps/qq.png";
type = "Application";
categories = [ "Network" ];
comment = "QQ boxed";
}
+63 -53
View File
@@ -5,65 +5,75 @@
# - QQ's flatpak manifest: https://github.com/flathub/com.qq.QQ/blob/master/com.qq.QQ.yaml # - QQ's flatpak manifest: https://github.com/flathub/com.qq.QQ/blob/master/com.qq.QQ.yaml
{ {
lib, lib,
pkgs, qq,
mkNixPak, mkNixPak,
buildEnv,
makeDesktopItem,
... ...
}: }:
mkNixPak {
config = let
{ sloth, ... }: appId = "com.qq.QQ";
{
app = { wrapped = mkNixPak {
package = pkgs.qq.override { config =
# fix fcitx5 input method { sloth, ... }:
commandLineArgs = lib.concatStringsSep " " [ "--enable-wayland-ime" ]; {
app = {
package = qq;
binPath = "bin/qq";
}; };
binPath = "bin/qq"; flatpak.appId = appId;
};
flatpak.appId = "com.tencent.qq";
imports = [ imports = [
./modules/gui-base.nix ./modules/gui-base.nix
./modules/network.nix ./modules/network.nix
]; ./modules/common.nix
# list all dbus services:
# ls -al /run/current-system/sw/share/dbus-1/services/
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
dbus.policies = {
"org.gnome.Shell.Screencast" = "talk";
# System tray icon
"org.freedesktop.Notifications" = "talk";
"org.kde.StatusNotifierWatcher" = "talk";
# File Manager
"org.freedesktop.FileManager1" = "talk";
# Uses legacy StatusNotifier implementation
"org.kde.*" = "own";
};
bubblewrap = {
# To trace all the home files QQ accesses, you can use the following nushell command:
# just trace-access qq
# See the Justfile in the root of this repository for more information.
bind.rw = [
# given the read write permission to the following directories.
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
(sloth.mkdir (
sloth.concat [
sloth.xdgConfigHome
"/QQ"
]
))
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
]; ];
sockets = {
x11 = false; bubblewrap = {
wayland = true; # To trace all the home files QQ accesses, you can use the following nushell command:
pipewire = true; # just trace-access qq
# See the Justfile in the root of this repository for more information.
bind.rw = [
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
sloth.xdgPicturesDir
];
sockets = {
x11 = false;
wayland = true;
pipewire = true;
};
}; };
}; };
}; };
exePath = lib.getExe wrapped.config.script;
in
buildEnv {
inherit (wrapped.config.script) name meta passthru;
paths = [
wrapped.config.script
(makeDesktopItem {
name = appId;
desktopName = "QQ";
genericName = "QQ Boxed";
comment = "Tencent QQ, also known as QQ, is an instant messaging software service and web portal developed by the Chinese technology company Tencent.";
exec = "${exePath} %U";
terminal = false;
icon = "${qq}/share/icons/hicolor/512x512/apps/qq.png";
startupNotify = true;
startupWMClass = "QQ";
type = "Application";
categories = [
"InstantMessaging"
"Network"
];
extraConfig = {
X-Flatpak = appId;
};
})
];
} }
+101
View File
@@ -0,0 +1,101 @@
{
lib,
telegram-desktop,
buildEnv,
mkNixPak,
makeDesktopItem,
...
}:
let
appId = "org.telegram.desktop";
wrapped = mkNixPak {
config =
{ sloth, ... }:
{
imports = [
./modules/gui-base.nix
./modules/network.nix
./modules/common.nix
];
app.package = telegram-desktop;
flatpak = {
appId = appId;
};
dbus = {
enable = true;
policies = {
"com.canonical.indicator.application" = "talk";
"org.ayatana.indicator.application" = "talk";
"org.sigxcpu.Feedback" = "talk";
};
};
bubblewrap = {
bind.rw = [
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
sloth.xdgPicturesDir
];
sockets = {
x11 = false;
wayland = true;
pipewire = true;
};
};
};
};
exePath = lib.getExe wrapped.config.script;
in
buildEnv {
inherit (wrapped.config.script) name meta passthru;
paths = [
wrapped.config.script
(makeDesktopItem {
name = appId;
desktopName = "Telegram";
comment = "New era of messaging";
tryExec = "${exePath}";
exec = "${exePath} -- %u";
icon = appId;
startupNotify = true;
startupWMClass = appId;
terminal = false;
type = "Application";
categories = [
"Chat"
"Network"
"InstantMessaging"
"Qt"
];
mimeTypes = [
"x-scheme-handler/tg"
"x-scheme-handler/tonsite"
];
keywords = [
"tg"
"chat"
"im"
"messaging"
"messenger"
"sms"
"tdesktop"
];
actions = {
quit = {
name = "Quit Telegram";
exec = "${exePath} -quit";
icon = "application-exit";
};
};
extraConfig = {
X-Flatpak = appId;
DBusActivatable = "true";
SingleMainWindow = "true";
X-GNOME-UsesNotifications = "true";
X-GNOME-SingleWindow = "true";
};
})
];
}
+46 -3
View File
@@ -1,5 +1,48 @@
# Home Manager's Submodules # Home Manager's Submodules
1. `base`: The base module that is suitable for both Linux and macOS. This directory contains all Home Manager configurations organized by platform and functionality.
2. `linux`: Linux-specific configuration.
3. `darwin`: macOS-specific configuration. ## Current Structure
```
home/
├── base/ # Cross-platform home manager configurations
│ ├── core/ # Essential applications and settings
│ │ ├── editors/ # Editor configurations (Neovim, Helix)
│ │ ├── shells/ # Shell configurations (Nushell, Zellij)
│ │ └── ...
│ ├── gui/ # GUI applications and desktop settings
│ │ ├── terminal/ # Terminal emulators (Kitty, Alacritty, etc.)
│ │ └── ...
│ ├── tui/ # Terminal/TUI applications
│ │ ├── editors/ # TUI editors and related tools
│ │ ├── encryption/ # GPG, password-store, etc.
│ │ └── ...
│ └── home.nix # Main home manager entry point
├── linux/ # Linux-specific home manager configurations
│ ├── base/ # Linux base configurations
│ ├── gui/ # Linux GUI applications
│ │ ├── niri/ # Niri window manager
│ │ └── ...
│ ├── editors/ # Linux-specific editors
│ └── ...
└── darwin/ # macOS-specific home manager configurations
├── aerospace/ # macOS window manager
├── proxy/ # Proxy configurations
└── ...
```
## Module Overview
1. **base**: The base module suitable for both Linux and macOS
- Cross-platform applications and settings
- Shared configurations for editors, shells, and essential tools
2. **linux**: Linux-specific configuration
- Desktop environments (Noctalia Shell, Niri compositor)
- Linux-specific GUI applications
- System integration tools
3. **darwin**: macOS-specific configuration
- macOS applications and services
- Platform-specific integrations (Aerospace, Squirrel, etc.)
+64 -3
View File
@@ -1,5 +1,66 @@
# Home Manager's Base Submodules # Home Manager's Base Submodules
1. `server`: Configuration which is suitable for both servers and desktops. This directory contains cross-platform base configurations that are shared between Linux and Darwin
1. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. systems.
1. `core.nix`: Minimal home-manager's config
## Configuration Structure
### Core System
- **core/**: Essential cross-platform configurations
- **core.nix**: Minimal home-manager configuration
- **shells/**: Shell configurations (bash, zsh, fish, nu)
- **editors/**: Text editor configurations
- **neovim/**: Neovim with custom plugins and settings
- **helix/**: Helix editor configuration
- **btop.nix**: System monitoring tools
- **git.nix**: Git configuration and aliases
- **npm.nix**: Node.js package management
- **pip.nix**: Python package management
- **starship.nix**: Cross-shell prompt configuration
- **theme.nix**: Color schemes and theming
- **yazi.nix**: Terminal file manager configuration
- **zellij/**: Terminal multiplexer with custom layouts
### Desktop Environment
- **gui/**: Cross-platform GUI applications and configurations
- **dev-tools.nix**: Development tools and IDEs
- **media.nix**: Media players and utilities
- **terminal/**: Terminal emulator configurations
- **alacritty/**: Alacritty terminal
- **kitty/**: Kitty terminal
- **foot/**: Foot terminal (Linux)
- **ghostty/**: Ghostty terminal
### Terminal Interface
- **tui/**: Terminal-based interface configurations
- **cloud/**: Cloud development tools (Terraform, etc.)
- **container.nix**: Container tools (Docker, Podman)
- **dev-tools.nix**: Terminal-based development tools
- **editors/**: Terminal editor configurations
- **encryption/**: Encryption and security tools
- **gpg/**: GPG key management
- **password-store/**: Password management with pass
- **shell.nix**: Shell environment configurations
- **ssh/**: SSH configuration and management
- **zellij/**: Terminal workspace management
### System Management
- **home.nix**: Main home manager configuration file
## Platform Compatibility
All configurations in this directory are designed to work across:
- **Linux**: All distributions with Nix and Home Manager
- **macOS**: Darwin systems with Home Manager
- **WSL**: Windows Subsystem for Linux
## Usage
These base configurations provide the foundation for both Linux and Darwin systems, ensuring
consistent environments across different platforms while allowing for platform-specific
customizations.
+8 -31
View File
@@ -1,34 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
# Misc
cowsay
gnupg
gnumake
# Modern cli tools, replacement of grep/sed/...
# Interactively filter its input using fuzzy searching, not limit to filenames.
fzf
# search for files by name, faster than find
fd
# search for files by its content, replacement of grep
(ripgrep.override { withPCRE2 = true; })
# A fast and polyglot tool for code searching, linting, rewriting at large scale
# supported languages: only some mainstream languages currently(do not support nix/nginx/yaml/toml/...)
ast-grep
sad # CLI search and replace, just like sed, but with diff preview.
yq-go # yaml processor https://github.com/mikefarah/yq
just # a command runner like make, but simpler
hyperfine # command-line benchmarking tool
gping # ping, but with a graph(TUI)
doggo # DNS client for humans
duf # Disk Usage/Free Utility - a better 'df' alternative
du-dust # A more intuitive version of `du` in rust
gdu # disk usage analyzer(replacement of `du`)
# nix related # nix related
# #
# it provides the command `nom` works just like `nix # it provides the command `nom` works just like `nix
@@ -42,10 +14,15 @@
# https://github.com/utdemir/nix-tree # https://github.com/utdemir/nix-tree
nix-tree # A TUI to visualize the dependency graph of a nix derivation nix-tree # A TUI to visualize the dependency graph of a nix derivation
# productivity # misc
cowsay
gnupg
caddy # A webserver with automatic HTTPS via Let's Encrypt(replacement of nginx) caddy # A webserver with automatic HTTPS via Let's Encrypt(replacement of nginx)
croc # File transfer between computers securely and easily # A fast and polyglot tool for code searching, linting, rewriting at large scale
ncdu # analyzer your disk usage Interactively, via TUI(replacement of `du`) # supported languages: only some mainstream languages currently(do not support nix/nginx/yaml/toml/...)
ast-grep
# other core cli tools are installed at system-level
]; ];
# A modern replacement for ls # A modern replacement for ls
+8 -1
View File
@@ -1,3 +1,10 @@
# Editors # Editors
See [desktop/editors/](../../desktop/editors/) for more details. This directory contains editor configurations that are shared across different environments.
## Available Editors
- **neovim/**: Neovim configuration with AstroNvim
- **helix/**: Helix editor configuration
These configurations are designed to work across both terminal and GUI environments.
+1 -3
View File
@@ -1,6 +1,4 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
programs.helix = { programs.helix.enable = true;
enable = true;
};
} }
+52 -50
View File
@@ -40,18 +40,27 @@
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
userName = myvars.userfullname; # signing = {
userEmail = myvars.useremail; # key = "xxx";
# signByDefault = true;
# };
includes = [ includes = [
{ {
# use different email & name for work # use different email & name for work:
#
# [user]
# email = "xxx@xxx.com"
# name = "Ryan Yin"
path = "~/work/.gitconfig"; path = "~/work/.gitconfig";
condition = "gitdir:~/work/"; condition = "gitdir:~/work/";
} }
]; ];
extraConfig = { settings = {
user.email = myvars.useremail;
user.name = myvars.userfullname;
init.defaultBranch = "main"; init.defaultBranch = "main";
trim.bases = "develop,master,main"; # for git-trim trim.bases = "develop,master,main"; # for git-trim
push.autoSetupRemote = true; push.autoSetupRemote = true;
@@ -63,58 +72,51 @@
"ssh://git@github.com/ryan4yin" = { "ssh://git@github.com/ryan4yin" = {
insteadOf = "https://github.com/ryan4yin"; insteadOf = "https://github.com/ryan4yin";
}; };
# "ssh://git@gitlab.com/" = { # "ssh://git@bitbucket.com/ryan4yin" = {
# insteadOf = "https://gitlab.com/"; # insteadOf = "https://bitbucket.com/ryan4yin";
# };
# "ssh://git@bitbucket.com/" = {
# insteadOf = "https://bitbucket.com/";
# }; # };
}; };
};
# signing = { alias = {
# key = "xxx"; # common aliases
# signByDefault = true; br = "branch";
# }; co = "checkout";
st = "status";
ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate";
ll = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate --numstat";
cm = "commit -m"; # commit via `git cm <message>`
ca = "commit -am"; # commit all changes via `git ca <message>`
dc = "diff --cached";
# A syntax-highlighting pager for git, diff, grep, and blame output amend = "commit --amend -m"; # amend commit message via `git amend <message>`
delta = { unstage = "reset HEAD --"; # unstage file via `git unstage <file>`
enable = true; merged = "branch --merged"; # list merged(into HEAD) branches via `git merged`
options = { unmerged = "branch --no-merged"; # list unmerged(into HEAD) branches via `git unmerged`
diff-so-fancy = true; nonexist = "remote prune origin --dry-run"; # list non-exist(remote) branches via `git nonexist`
line-numbers = true;
true-color = "always"; # delete merged branches except master & dev & staging
# features => named groups of settings, used to keep related settings organized # `!` indicates it's a shell script, not a git subcommand
# features = ""; delmerged = ''! git branch --merged | egrep -v "(^\*|main|master|dev|staging)" | xargs git branch -d'';
# delete non-exist(remote) branches
delnonexist = "remote prune origin";
# aliases for submodule
update = "submodule update --init --recursive";
foreach = "submodule foreach";
}; };
}; };
};
aliases = { # A syntax-highlighting pager for git, diff, grep, and blame output
# common aliases programs.delta = {
br = "branch"; enable = true;
co = "checkout"; enableGitIntegration = true;
st = "status"; options = {
ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate"; diff-so-fancy = true;
ll = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate --numstat"; line-numbers = true;
cm = "commit -m"; # commit via `git cm <message>` true-color = "always";
ca = "commit -am"; # commit all changes via `git ca <message>` # features => named groups of settings, used to keep related settings organized
dc = "diff --cached"; # features = "";
amend = "commit --amend -m"; # amend commit message via `git amend <message>`
unstage = "reset HEAD --"; # unstage file via `git unstage <file>`
merged = "branch --merged"; # list merged(into HEAD) branches via `git merged`
unmerged = "branch --no-merged"; # list unmerged(into HEAD) branches via `git unmerged`
nonexist = "remote prune origin --dry-run"; # list non-exist(remote) branches via `git nonexist`
# delete merged branches except master & dev & staging
# `!` indicates it's a shell script, not a git subcommand
delmerged = ''! git branch --merged | egrep -v "(^\*|main|master|dev|staging)" | xargs git branch -d'';
# delete non-exist(remote) branches
delnonexist = "remote prune origin";
# aliases for submodule
update = "submodule update --init --recursive";
foreach = "submodule foreach";
}; };
}; };
@@ -122,5 +124,5 @@
programs.lazygit.enable = true; programs.lazygit.enable = true;
# Yet another Git TUI (written in rust). # Yet another Git TUI (written in rust).
programs.gitui.enable = true; programs.gitui.enable = false;
} }
-1
View File
@@ -27,7 +27,6 @@ in
# NOTE: nushell will be launched in bash, so it can inherit all the eenvironment variables. # NOTE: nushell will be launched in bash, so it can inherit all the eenvironment variables.
programs.nushell = { programs.nushell = {
enable = true; enable = true;
# package = pkgs-unstable.nushell;
configFile.source = ./config.nu; configFile.source = ./config.nu;
inherit shellAliases; inherit shellAliases;
}; };
+14 -10
View File
@@ -6,20 +6,24 @@
enableZshIntegration = true; enableZshIntegration = true;
enableNushellIntegration = true; enableNushellIntegration = true;
# https://starship.rs/config/
settings = { settings = {
# Get editor completions based on the config schema
"$schema" = "https://starship.rs/config-schema.json";
character = { character = {
success_symbol = "[](bold green)"; success_symbol = "[](bold green)";
error_symbol = "[](bold red)"; error_symbol = "[](bold red)";
}; };
aws = { # I never rely on the defaults, so this module is useless to me—disabled.
symbol = "🅰 "; # I prefer adding --project, --region to very gcloud/aws command.
}; aws.disabled = true;
gcloud = { gcloud.disabled = true;
# do not show the account/project's info
# to avoid the leak of sensitive information when sharing the terminal kubernetes = {
format = "on [$symbol$active(\($region\))]($style) "; symbol = "";
symbol = "🅶 "; disabled = false;
}; };
os.disabled = false;
}; };
}; };
} }
+1 -1
View File
@@ -8,7 +8,7 @@
enableBashIntegration = true; enableBashIntegration = true;
enableNushellIntegration = true; enableNushellIntegration = true;
settings = { settings = {
manager = { mgr = {
show_hidden = true; show_hidden = true;
sort_dir_first = true; sort_dir_first = true;
}; };
+1 -1
View File
@@ -52,7 +52,7 @@ Error opening terminal: xterm-kitty.
NixOS preserve the `TERMINFO` and `TERMINFO_DIRS` environment variables, for `root` and the `wheel` NixOS preserve the `TERMINFO` and `TERMINFO_DIRS` environment variables, for `root` and the `wheel`
group: group:
[nixpkgs/nixos/modules/config/terminfo.nix](https://github.com/NixOS/nixpkgs/blob/nixos-25.05/nixos/modules/config/terminfo.nix#L18) [nixpkgs/nixos/modules/config/terminfo.nix](https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modules/config/terminfo.nix#L18)
For nix-darwin, take a look at <https://github.com/LnL7/nix-darwin/wiki/Terminfo-issues> For nix-darwin, take a look at <https://github.com/LnL7/nix-darwin/wiki/Terminfo-issues>
+1 -3
View File
@@ -1,6 +1,5 @@
{ {
pkgs, pkgs,
pkgs-unstable,
... ...
}: }:
########################################################### ###########################################################
@@ -26,7 +25,6 @@
{ {
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
# package = pkgs-unstable.alacritty;
# https://alacritty.org/config-alacritty.html # https://alacritty.org/config-alacritty.html
settings = { settings = {
window = { window = {
@@ -52,7 +50,7 @@
bold_italic = { bold_italic = {
family = "Maple Mono NF CN"; family = "Maple Mono NF CN";
}; };
size = if pkgs.stdenv.isDarwin then 14 else 13; size = 13;
}; };
terminal = { terminal = {
# Spawn a nushell in login mode via `bash` # Spawn a nushell in login mode via `bash`
+2 -1
View File
@@ -17,8 +17,9 @@
settings = { settings = {
main = { main = {
term = "foot"; # or "xterm-256color" for maximum compatibility term = "foot"; # or "xterm-256color" for maximum compatibility
font = "Maple Mono NF CN:size=14"; font = "Maple Mono NF CN:size=13";
dpi-aware = "no"; # scale via window manager instead dpi-aware = "no"; # scale via window manager instead
resize-keep-grid = "no"; # do not resize the window on font resizing
# Spawn a nushell in login mode via `bash` # Spawn a nushell in login mode via `bash`
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'"; shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
+1 -1
View File
@@ -16,7 +16,7 @@
pkgs.hello # pkgs.ghostty is currently broken on darwin pkgs.hello # pkgs.ghostty is currently broken on darwin
else else
pkgs.ghostty; # the stable version pkgs.ghostty; # the stable version
# package = ghostty.packages.${pkgs.system}.default; # the latest version # package = ghostty.packages.${pkgs.stdenv.hostPlatform.system}.default; # the latest version
enableBashIntegration = false; enableBashIntegration = false;
installBatSyntax = false; installBatSyntax = false;
# installVimSyntax = true; # installVimSyntax = true;
+1 -1
View File
@@ -19,7 +19,7 @@
font = { font = {
name = "Maple Mono NF CN"; name = "Maple Mono NF CN";
# use different font size on macOS # use different font size on macOS
size = if pkgs.stdenv.isDarwin then 14 else 13; size = 13;
}; };
# consistent with other terminal emulators # consistent with other terminal emulators
+3 -2
View File
@@ -1,6 +1,6 @@
{ {
pkgs, pkgs,
pkgs-unstable, pkgs-2505,
nur-ryan4yin, nur-ryan4yin,
... ...
}: }:
@@ -14,6 +14,7 @@
kubectl kubectl
kubectx # kubectx & kubens kubectx # kubectx & kubens
kubie # same as kubectl-ctx, but per-shell (wont touch kubeconfig).
kubectl-view-secret # kubectl view-secret kubectl-view-secret # kubectl view-secret
kubectl-tree # kubectl tree kubectl-tree # kubectl tree
kubectl-node-shell # exec into node kubectl-node-shell # exec into node
@@ -24,7 +25,7 @@
istioctl istioctl
clusterctl # for kubernetes cluster-api clusterctl # for kubernetes cluster-api
kubevirt # virtctl kubevirt # virtctl
kubernetes-helm pkgs-2505.kubernetes-helm
fluxcd fluxcd
argocd argocd
+2 -2
View File
@@ -1,6 +1,5 @@
{ {
pkgs, pkgs,
pkgs-unstable,
... ...
}: }:
{ {
@@ -18,6 +17,8 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
colmena # nixos's remote deployment tool colmena # nixos's remote deployment tool
tokei # count lines of code, alternative to cloc
# db related # db related
mycli mycli
pgcli pgcli
@@ -34,7 +35,6 @@
devbox devbox
bfg-repo-cleaner # remove large files from git history bfg-repo-cleaner # remove large files from git history
k6 # load testing tool k6 # load testing tool
protobuf # protocol buffer compiler
# solve coding extercises - learn by doing # solve coding extercises - learn by doing
exercism exercism
+23 -2
View File
@@ -1,8 +1,29 @@
{ pkgs, ... }:
{ {
config,
pkgs,
helix,
...
}:
let
helixPackages = helix.packages.${pkgs.stdenv.hostPlatform.system};
in
{
# to make steel work, we need to git clone this repo to your home directory.
home.sessionVariables.HELIX_STEEL_CONFIG = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/helix/steel";
home.packages = with pkgs; [
steel
];
programs.helix = { programs.helix = {
enable = true; enable = true;
package = pkgs.helix; # enable steel as the plugin system
# https://github.com/helix-editor/helix/pull/8675
# https://github.com/mattwparas/helix/blob/steel-event-system/STEEL.md
package = helixPackages.default.overrideAttrs (prevAttrs: {
cargoBuildFeatures = prevAttrs.cargoBuildFeatures or [ ] ++ [ "steel" ];
});
settings = { settings = {
editor = { editor = {
line-number = "relative"; line-number = "relative";
@@ -0,0 +1,40 @@
;; The helix.scm module will be loaded first before anything else,
;; the runtime will require this module, and any functions exported
;; will now be available to be used as typed commands, e.g. :git-add :open-helix-scm
(require "helix/editor.scm")
(require (prefix-in helix. "helix/commands.scm"))
(require (prefix-in helix.static. "helix/static.scm"))
(provide shell git-add open-helix-scm open-init-scm)
(define (current-path)
(let* ([focus (editor-focus)]
[focus-doc-id (editor->doc-id focus)])
(editor-document->path focus-doc-id)))
;;@doc
;; Specialized shell implementation, where % is a wildcard for the current file
(define (shell . args)
(helix.run-shell-command
(string-join
;; Replace the % with the current file
(map (lambda (x) (if (equal? x "%") (current-path) x)) args)
" ")))
;;@doc
;; Adds the current file to git
(define (git-add)
(shell "git" "add" "%"))
;;@doc
;; Open the helix.scm file
(define (open-helix-scm)
(helix.open (helix.static.get-helix-scm-path)))
;;@doc
;; Opens the init.scm file
(define (open-init-scm)
(helix.open (helix.static.get-init-scm-path)))
@@ -0,0 +1,24 @@
;; The init.scm file is run at the top level, immediately after the helix.scm module is required.
;; The helix context is available here, so you can interact with the editor.
;; configure the LSP for steel
(require "helix/configuration.scm")
(define-lsp "steel-language-server" (command "steel-language-server") (args '()))
(define-language "scheme"
(language-servers '("steel-language-server")))
;; show splash screen - when you open with no argument
(require "mattwparas-helix-package/splash.scm")
(when (equal? (command-line) '("hx"))
(show-splash))
;; Terminal & shell
(require "steel-pty/term.scm")
(set-default-shell! "nu")
;; File Watcher
(require "helix-file-watcher/file-watcher.scm")
(spawn-watcher)
;; File Tree
(require "mattwparas-helix-package/cogs/file-tree.scm")
+1 -2
View File
@@ -2,7 +2,6 @@
config, config,
lib, lib,
pkgs, pkgs,
pkgs-unstable,
... ...
}: }:
############################################################################### ###############################################################################
@@ -29,7 +28,7 @@ in
programs.neovim = { programs.neovim = {
enable = true; enable = true;
package = pkgs-unstable.neovim-unwrapped; package = pkgs.neovim-unwrapped;
# defaultEditor = true; # set EDITOR at system-wide level # defaultEditor = true; # set EDITOR at system-wide level
viAlias = true; viAlias = true;
+18 -13
View File
@@ -1,6 +1,6 @@
{ {
pkgs, pkgs,
pkgs-unstable, pkgs-master,
... ...
}: }:
{ {
@@ -30,13 +30,13 @@
#-- dockerfile #-- dockerfile
hadolint # Dockerfile linter hadolint # Dockerfile linter
nodePackages.dockerfile-language-server-nodejs dockerfile-language-server
#-- markdown #-- markdown
marksman # language server for markdown marksman # language server for markdown
glow # markdown previewer glow # markdown previewer
pandoc # document converter pandoc # document converter
pkgs-unstable.hugo # static site generator pkgs-master.hugo # static site generator
#-- sql #-- sql
sqlfluff sqlfluff
@@ -63,14 +63,15 @@
vscode-extensions.vadimcn.vscode-lldb.adapter # codelldb - debugger vscode-extensions.vadimcn.vscode-lldb.adapter # codelldb - debugger
#-- python #-- python
pipx # Install and Run Python Applications in Isolated Environments
uv # python project package manager
pyright # python language server
(python313.withPackages ( (python313.withPackages (
ps: with ps; [ ps: with ps; [
# python language server
pyright
ruff ruff
pipx # Install and Run Python Applications in Isolated Environments
black # python formatter black # python formatter
# debugpy uv # python project package manager
# my commonly used python packages # my commonly used python packages
jupyter jupyter
@@ -80,16 +81,20 @@
pyquery pyquery
pyyaml pyyaml
boto3 boto3
# misc
protobuf # protocol buffer compiler
numpy
] ]
)) ))
#-- rust #-- rust
# we'd better use the rust-overlays for rust development # we'd better use the rust-overlays for rust development
pkgs-unstable.rustc pkgs-master.rustc
pkgs-unstable.rust-analyzer pkgs-master.rust-analyzer
pkgs-unstable.cargo # rust package manager pkgs-master.cargo # rust package manager
pkgs-unstable.rustfmt pkgs-master.rustfmt
pkgs-unstable.clippy # rust linter pkgs-master.clippy # rust linter
#-- golang #-- golang
go go
@@ -136,7 +141,7 @@
# fnlfmt # fennel # fnlfmt # fennel
# ( # (
# if pkgs.stdenv.isLinux && pkgs.stdenv.isx86 # if pkgs.stdenv.isLinux && pkgs.stdenv.isx86
# then pkgs-unstable.akkuPackages.scheme-langserver # then pkgs-master.akkuPackages.scheme-langserver
# else pkgs.emptyDirectory # else pkgs.emptyDirectory
# ) # )
# ] # ]
-1
View File
@@ -1,6 +1,5 @@
{ {
pkgs, pkgs,
pkgs-unstable,
... ...
}: }:
{ {
-53
View File
@@ -1,53 +0,0 @@
{
config,
pkgs-unstable,
...
}:
let
inherit (pkgs-unstable) nu_scripts;
in
{
programs.nushell = {
# load the alias file for work
# the file must exist, otherwise nushell will complain about it!
#
# currently, nushell does not support conditional sourcing of files
# https://github.com/nushell/nushell/issues/8214
extraConfig = ''
source /etc/agenix/alias-for-work.nushell
# using claude-code with kimi k2
$env.ANTHROPIC_BASE_URL = "https://api.moonshot.cn/anthropic/"
$env.ANTHROPIC_API_KEY = $env.MOONSHOT_API_KEY
# Directories in this constant are searched by the
# `use` and `source` commands.
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}/share/nu_scripts']
# completion
use custom-completions/cargo/cargo-completions.nu *
use custom-completions/curl/curl-completions.nu *
use custom-completions/git/git-completions.nu *
use custom-completions/glow/glow-completions.nu *
use custom-completions/just/just-completions.nu *
use custom-completions/make/make-completions.nu *
use custom-completions/man/man-completions.nu *
use custom-completions/nix/nix-completions.nu *
use custom-completions/ssh/ssh-completions.nu *
use custom-completions/tar/tar-completions.nu *
use custom-completions/tcpdump/tcpdump-completions.nu *
use custom-completions/zellij/zellij-completions.nu *
# use custom-completions/zoxide/zoxide-completions.nu *
# alias
# use aliases/git/git-aliases.nu *
use aliases/eza/eza-aliases.nu *
use aliases/bat/bat-aliases.nu *
# modules
use modules/argx *
use modules/lg *
use modules/kubernetes *
'';
};
}
+39
View File
@@ -0,0 +1,39 @@
# Google Cloud CLI aliases
# Based on https://cloud.google.com/sdk/docs/configurations
# Note: Avoided conflicts with common git aliases (gc, gca, gcl, gcs, gcu, gs, etc.)
# Configuration management
export alias gccfg = gcloud config configurations create
export alias gcact = gcloud config configurations activate
export alias gclist = gcloud config configurations list
export alias gcdel = gcloud config configurations delete
export alias gcset = gcloud config set
export alias gcunset = gcloud config unset
export alias gcconfig = gcloud config list
# Authentication
export alias gclogin = gcloud auth login
export alias gcauth = gcloud auth list
export alias gcapp = gcloud auth application-default login
# Project management
export alias gcproj = gcloud config set project
export alias gcget = gcloud config get-value project
# Compute Engine
export alias gcinst = gcloud compute instances list
export alias gccreate = gcloud compute instances create
export alias gcdelete = gcloud compute instances delete
export alias gcssh = gcloud compute ssh
export alias gck8sget = gcloud container clusters get-credentials
# Storage
export alias gcst = gcloud storage
export alias gcstls = gcloud storage ls
export alias gcstcp = gcloud storage cp
export alias gcstrm = gcloud storage rm
# General shortcuts
export alias gcloud = gcloud
export alias gcinfo = gcloud info
export alias gcver = gcloud version
+72
View File
@@ -0,0 +1,72 @@
{
nu_scripts,
...
}:
{
programs.nushell = {
# load the alias file for work
# the file must exist, otherwise nushell will complain about it!
#
# currently, nushell does not support conditional sourcing of files
# https://github.com/nushell/nushell/issues/8214
extraConfig = ''
source /etc/agenix/alias-for-work.nushell
$env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
# using claude-code with kimi k2
# https://platform.moonshot.cn/docs/guide/agent-support
# $env.ANTHROPIC_BASE_URL = "https://api.moonshot.cn/anthropic/"
# $env.ANTHROPIC_AUTH_TOKEN = $env.MOONSHOT_API_KEY
# $env.ANTHROPIC_MODEL = "kimi-k2-thinking"
# $env.ANTHROPIC_DEFAULT_HAIKU_MODEL = "kimi-k2-thinking-turbo"
# using claude-code with glm llm
# https://docs.bigmodel.cn/cn/coding-plan/tool/claude
$env.ANTHROPIC_BASE_URL = "https://open.bigmodel.cn/api/anthropic"
$env.ANTHROPIC_AUTH_TOKEN = $env.ZAI_API_KEY
$env.ANTHROPIC_MODEL = "glm-4.7"
$env.ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-4.5-air"
# using claude-code with qwen llm
# https://bailian.console.aliyun.com/?tab=doc#/doc/?type=model&url=2949529
# $env.ANTHROPIC_BASE_URL = "https://dashscope.aliyuncs.com/apps/anthropic"
# $env.ANTHROPIC_AUTH_TOKEN = $env.DASHSCOPE_API_KEY
# $env.ANTHROPIC_MODEL = "qwen-plus" # qwen-max,
# $env.ANTHROPIC_DEFAULT_HAIKU_MODEL = "qwen-turbo"
# Directories in this constant are searched by the
# `use` and `source` commands.
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}']
# -*- completion -*-
use custom-completions/cargo/cargo-completions.nu *
use custom-completions/curl/curl-completions.nu *
use custom-completions/git/git-completions.nu *
use custom-completions/glow/glow-completions.nu *
use custom-completions/just/just-completions.nu *
use custom-completions/make/make-completions.nu *
use custom-completions/man/man-completions.nu *
use custom-completions/nix/nix-completions.nu *
use custom-completions/ssh/ssh-completions.nu *
use custom-completions/tar/tar-completions.nu *
use custom-completions/tcpdump/tcpdump-completions.nu *
use custom-completions/zellij/zellij-completions.nu *
use custom-completions/zoxide/zoxide-completions.nu *
# -*- alias -*-
use aliases/git/git-aliases.nu *
use aliases/eza/eza-aliases.nu *
use aliases/bat/bat-aliases.nu *
use ${./aliases/gcloud.nu} *
# -*- modules -*-
# argx & lg is required by the kubernetes module
use modules/argx *
use modules/lg *
# k8s/helm aliases, completions,
use modules/kubernetes *
# a wrapper around the jc cli tool, convert cli outputs to nushell tables
# use modules/jc
'';
};
}
+15 -2
View File
@@ -9,8 +9,21 @@
programs.ssh = { programs.ssh = {
enable = true; enable = true;
# "a private key that is used during authentication will be added to ssh-agent if it is running" # default config
addKeysToAgent = "yes"; enableDefaultConfig = false;
matchBlocks."*" = {
forwardAgent = false;
# "a private key that is used during authentication will be added to ssh-agent if it is running"
addKeysToAgent = "yes";
compression = true;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
matchBlocks = { matchBlocks = {
"github.com" = { "github.com" = {
+31 -4
View File
@@ -1,6 +1,33 @@
# Home Manager's Darwin Submodules # Home Manager's Darwin Submodules
1. `core.nix`: some basic configuration. This directory contains macOS-specific Home Manager configurations for Darwin systems.
2. `shell.nix`: shell related.
3. `rime-squirrel.nix`: [rime-squirrel](https://github.com/rime/squirrel)'s configuration. ## Configuration Modules
4. `default.nix`: the entrypoint of darwin's configuration, it import all the submodules above.
### Core Configurations
- **default.nix**: Entry point that imports all Darwin configurations
- **shell.nix**: Shell configurations and environment settings
- **rime-squirrel.nix**: [Rime Squirrel](https://github.com/rime/squirrel) input method
configuration
### Window Management
- **aerospace/**: [Aerospace](https://github.com/nikitabobko/AeroSpace) tiling window manager
configuration
- Custom keybindings and workspace management
- Application-specific window rules
### Network Configuration
- **proxy/**: Network proxy configurations
- `proxychains.conf`: Proxy chains configuration for network routing
- Proxy settings for development tools and applications
## Features
- macOS-specific package installations and configurations
- Native macOS applications and utilities
- Touch ID and system integration
- Homebrew integration for additional packages
- macOS-specific shell configurations and aliases
+21 -21
View File
@@ -130,8 +130,8 @@ alt-3 = 'workspace 3Work'
alt-4 = 'workspace 4Firefox' alt-4 = 'workspace 4Firefox'
alt-5 = 'workspace 5Chrome' alt-5 = 'workspace 5Chrome'
alt-6 = 'workspace 6Chat' alt-6 = 'workspace 6Chat'
alt-7 = 'workspace 7Music' alt-7 = 'workspace 7Work'
alt-8 = 'workspace 8Mail' alt-8 = 'workspace 8Music'
alt-9 = 'workspace 9File' alt-9 = 'workspace 9File'
alt-0 = 'workspace 0Other' alt-0 = 'workspace 0Other'
alt-a = 'workspace A' # In your config, you can drop workspace bindings that you don't need alt-a = 'workspace A' # In your config, you can drop workspace bindings that you don't need
@@ -146,8 +146,8 @@ alt-shift-3 = 'move-node-to-workspace 3Work'
alt-shift-4 = 'move-node-to-workspace 4Firefox' alt-shift-4 = 'move-node-to-workspace 4Firefox'
alt-shift-5 = 'move-node-to-workspace 5Chrome' alt-shift-5 = 'move-node-to-workspace 5Chrome'
alt-shift-6 = 'move-node-to-workspace 6Chat' alt-shift-6 = 'move-node-to-workspace 6Chat'
alt-shift-7 = 'move-node-to-workspace 7Music' alt-shift-7 = 'move-node-to-workspace 7Work'
alt-shift-8 = 'move-node-to-workspace 8Mail' alt-shift-8 = 'move-node-to-workspace 8Music'
alt-shift-9 = 'move-node-to-workspace 9File' alt-shift-9 = 'move-node-to-workspace 9File'
alt-shift-0 = 'move-node-to-workspace 0Other' alt-shift-0 = 'move-node-to-workspace 0Other'
alt-shift-a = 'move-node-to-workspace A' alt-shift-a = 'move-node-to-workspace A'
@@ -246,22 +246,22 @@ run = 'move-node-to-workspace 6Chat'
if.app-id = 'com.tencent.qq' if.app-id = 'com.tencent.qq'
run = 'move-node-to-workspace 6Chat' run = 'move-node-to-workspace 6Chat'
[[on-window-detected]]
if.app-id = 'com.tencent.QQMusicMac'
run = 'move-node-to-workspace 7Music'
[[on-window-detected]]
if.app-id = 'com.netease.163music'
run = 'move-node-to-workspace 7Music'
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.apple.mail' if.app-id = 'com.apple.mail'
run = 'move-node-to-workspace 8Mail' run = 'move-node-to-workspace 7Work'
# calendar # calendar
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.apple.iCal' if.app-id = 'com.apple.iCal'
run = 'move-node-to-workspace 8Mail' run = 'move-node-to-workspace 7Work'
[[on-window-detected]]
if.app-id = 'com.tencent.QQMusicMac'
run = 'move-node-to-workspace 8Music'
[[on-window-detected]]
if.app-id = 'com.netease.163music'
run = 'move-node-to-workspace 8Music'
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.apple.finder' if.app-id = 'com.apple.finder'
@@ -296,6 +296,11 @@ run = ['layout floating', 'move-node-to-workspace 0Other']
if.app-id = 'ai.elementlabs.lmstudio' if.app-id = 'ai.elementlabs.lmstudio'
run = ['layout floating', 'move-node-to-workspace 0Other'] run = ['layout floating', 'move-node-to-workspace 0Other']
# Clash Verge - has problem with floating
[[on-window-detected]]
if.app-id = 'io.github.clash-verge-rev.clash-verge-rev'
run = ['move-node-to-workspace 0Other']
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'us.zoom.xos' if.app-id = 'us.zoom.xos'
run = 'move-node-to-workspace 0Other' run = 'move-node-to-workspace 0Other'
@@ -310,11 +315,6 @@ run = ['layout floating']
if.app-id = 'com.apple.systempreferences' if.app-id = 'com.apple.systempreferences'
run = ['layout floating'] run = ['layout floating']
# Clash Verge - has problem with floating
[[on-window-detected]]
if.app-id = 'io.github.clash-verge-rev.clash-verge-rev'
run = ['move-node-to-workspace 0Other']
# Make all windows float by default # Make all windows float by default
[[on-window-detected]] [[on-window-detected]]
check-further-callbacks = true check-further-callbacks = true
@@ -331,7 +331,7 @@ run = ['layout floating']
4Firefox = ['main'] 4Firefox = ['main']
5Chrome = ['main'] 5Chrome = ['main']
6Chat = ['built-in'] 6Chat = ['built-in']
7Music = ['built-in'] 7Work = ['main']
8Mail = ['main'] 8Music = ['built-in']
9File = ['main'] 9File = ['main']
0Other = ['main'] 0Other = ['main']
+9
View File
@@ -0,0 +1,9 @@
{ lib, ... }:
let
fontSize = 15;
in
{
programs.alacritty.settings.font.size = lib.mkForce fontSize;
programs.ghostty.settings.font-size = lib.mkForce fontSize;
programs.kitty.font.size = lib.mkForce fontSize;
}
+30 -8
View File
@@ -1,10 +1,32 @@
# Home Manager's Linux Submodules # Home Manager's Linux Submodules
1. `base`: The base module that is suitable for any NixOS environment. This directory contains Linux-specific Home Manager configurations organized for different use
2. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc. cases.
3. `server.nix`: Configuration which is suitable for both servers and desktops. It import only
`base` as its submodule. ## Configuration Modules
1. used by all my nixos servers.
4. `desktop.nix`: the entrypoint of desktop's configuration, it import both `base` and `desktop` as ### Core Configurations
its submodules.
1. used by all my nixos desktops. - **core.nix**: Essential Linux-specific configurations and settings
- **base/**: Base Linux configurations including shell, tools, and utilities
- `shell.nix`: Shell configurations and aliases
- `tools.nix`: Essential command-line tools and utilities
### Desktop Configurations
- **gui/**: Desktop environment configurations
- **niri/**: Niri compositor configuration
- **base/**: Common desktop applications and services
- **editors/**: Text editor configurations for desktop environments
### Available Entry Points
- **core.nix**: Core Linux configuration, suitable for basic setups
- **tui.nix**: Terminal-based interface configuration for lightweight environments
- **gui.nix**: Graphical user interface configuration entry point, imports desktop environments
## Usage
- **Lightweight/Terminal**: Use `core.nix` or `tui.nix` for terminal-focused setups
- **Desktops**: Use `gui.nix` for full desktop environments with Noctalia Shell and Niri compositor
- **Custom**: Mix and match configurations as needed for your specific use case
+43 -14
View File
@@ -1,17 +1,46 @@
# Desktop Related # Desktop Environment Configurations
3. `base`: all common configurations for all desktops. This directory contains desktop environment and window manager configurations managed by Home
4. `hyprland`: Hyprland's configuration. Manager.
## Why install I3/Hyprland in Home Manager instead of a NixOS Module? ## Available Configurations
1. I3 & Hyprland's configuration file is located in `~/.config`, which can be easily managed by Home ### Window Managers
Manager.
2. I have many user-specific systemd services, such gammastep, wallpaper-switcher, etc. Which can be - **niri**: Niri compositor configuration with custom settings, keybindings, spawn-at-startup rules,
easily managed by Home Manager, but if we add i3/hyprland in a NixOS Module, those user-level and window rules
services may failed to start automatically. With i3/hyprland in a Home Manager Module, we can
control their systemd service's dependent order more easily, so we can avoid issues like this. ### Base Desktop Environment
3. By install packages as less as possible in NixOS Module, we can:
1. Make the NixOS system more secure and stable. - **base**: Common desktop configurations shared across all environments, including:
2. Make this flake more portable to other non-NixOS systems, as home-manager can be installed on - **Noctalia Shell**: All-in-one Wayland desktop shell (replaces gammastep, swaylock, anyrun,
any Linux system. mako, waybar, wallpaper-switcher, wlogout, and other desktop tools)
- Creative tools and media applications
- Development tools
- Fcitx5 input method framework
- Games and gaming utilities
- GTK theme configurations
- Immutable file handling
- Note-taking applications
- Wayland applications
- XDG desktop configurations
### Editor Configurations
- **editors**: Text editor configurations and integrations
## Why install Desktop Environments in Home Manager instead of NixOS Module?
1. **Configuration Location**: Desktop environment configuration files are located in `~/.config`,
which can be easily managed by Home Manager.
2. **User-specific Services**: User-specific systemd services (noctalia-shell, fcitx5, hypridle,
etc.) can be easily managed by Home Manager. If desktop environments were configured via NixOS
Module, these user-level services might fail to start automatically. With Home Manager modules,
we can control systemd service dependency order more effectively.
3. **System Benefits**: By minimizing package installation through NixOS Module:
- Makes the NixOS system more secure and stable
- Increases portability to non-NixOS systems, as Home Manager can be installed on any Linux
system
- Allows for easier switching between different window managers without system-level changes
+84
View File
@@ -0,0 +1,84 @@
# Base Desktop Environment Configuration
This directory contains base configurations for Linux desktop environments, providing essential
components for a complete Wayland desktop experience.
## Overview
The configuration is organized into modular components that can be selectively enabled:
- **Desktop Shell**: Noctalia Shell for unified desktop environment
- **Applications**: Desktop tools, browsers, editors, media players, etc.
- **Development Tools**: IDEs and development utilities
- **System Integration**: Input methods, theming, XDG specifications, GPU settings
## Noctalia Shell
**Noctalia Shell** is an all-in-one Wayland desktop shell that replaces multiple separate tools with
a single, unified solution. It provides:
- **Unified Configuration**: All components configured in a single `settings.json` file
- **Consistent Experience**: Cohesive visual design and interaction patterns
- **Reduced Complexity**: No need to maintain multiple separate config files
### Component Replacement
Noctalia Shell consolidates functionality that previously required multiple tools:
| Traditional Component | Purpose | Noctalia Replacement |
| ---------------------- | -------------------- | ------------------------------ |
| **gammastep** | Blue light filter | `nightLight` configuration |
| **swaylock** | Screen locker | Built-in lock screen |
| **anyrun** | Application launcher | `appLauncher` |
| **mako** | Notification daemon | `notifications` |
| **waybar** | Status bar | `bar` (with widgets) |
| **wallpaper-switcher** | Wallpaper management | `wallpaper` (with transitions) |
| **wlogout** | Session menu | `sessionMenu` |
| **wl-clipboard** | Clipboard management | Built-in clipboard manager |
## Configuration Modules
### Desktop Shell
- **[`noctalia/default.nix`](./noctalia/default.nix)**: Package installation and systemd service
- **[`noctalia/settings.json`](./noctalia/settings.json)**: Main configuration with all settings
Key features: bar, control center, night light, wallpaper, session menu, system monitor,
audio/volume, brightness, screen recorder, calendar, color schemes, dock, notifications, OSD, and
more.
- **[`hypridle/`](./hypridle/)**: Idle management
### Desktop Environment
- **[`gtk.nix`](./gtk.nix)**: GTK theme configuration
- **[`xdg.nix`](./xdg.nix)**: XDG specifications
- **[`nvidia.nix`](./nvidia.nix)**: NVIDIA GPU settings
### Input & Localization
- **[`fcitx5/`](./fcitx5/)**: Fcitx5 input method with Mozc (Japanese input)
### Applications
- **[`desktop-tools.nix`](./desktop-tools.nix)**: Daily GUI apps (foliate, remmina, messaging)
- **[`browsers.nix`](./browsers.nix)**: Web browsers
- **[`editors.nix`](./editors.nix)**: Desktop text editors
- **[`media.nix`](./media.nix)**: Media players
- **[`gaming.nix`](./gaming.nix)**: Gaming applications
- **[`creative.nix`](./creative.nix)**: Creative software
- **[`note-taking.nix`](./note-taking.nix)**: Note-taking apps
### Development
- **[`dev-tools.nix`](./dev-tools.nix)**: Development tools and IDEs
### System Utilities
- **[`misc.nix`](./misc.nix)**: Wayland tools (screenshots, screen recording, color picker, audio)
- **[`immutable-file.nix`](./immutable-file.nix)**: Immutable file handling
## Related Documentation
- Noctalia Shell: https://docs.noctalia.dev/docs
- Parent: [`../README.md`](../README.md)
+15
View File
@@ -0,0 +1,15 @@
{
pkgs,
...
}:
{
home.packages = with pkgs; [
nixpaks.firefox
];
# source code: https://github.com/nix-community/home-manager/blob/master/modules/programs/chromium.nix
programs.google-chrome = {
enable = true;
package = if pkgs.stdenv.isAarch64 then pkgs.chromium else pkgs.google-chrome;
};
}
+33 -40
View File
@@ -1,9 +1,6 @@
{ {
lib, lib,
pkgs, pkgs,
pkgs-unstable,
# pkgs-stable,
nur-ryan4yin,
blender-bin, blender-bin,
... ...
}: }:
@@ -23,56 +20,52 @@
# aseprite # Animated sprite editor & pixel art tool # aseprite # Animated sprite editor & pixel art tool
# this app consumes a lot of storage, so do not install it currently # this app consumes a lot of storage, so do not install it currently
# kicad # 3d printing, eletrical engineering # kicad # 3d printing, electrical engineering
] ]
++ (lib.optionals pkgs.stdenv.isx86_64 [ ++ (lib.optionals pkgs.stdenv.isx86_64 [
# https://github.com/edolstra/nix-warez/blob/master/blender/flake.nix # https://github.com/edolstra/nix-warez/blob/master/blender/flake.nix
blender-bin.packages.${pkgs.system}.blender_4_2 # 3d modeling blender-bin.packages.${pkgs.stdenv.hostPlatform.system}.blender_4_2 # 3d modeling
ldtk # A modern, versatile 2D level editor ldtk # A modern, versatile 2D level editor
# fpga # fpga
python313Packages.apycula # gowin fpga # python313Packages.apycula # gowin fpga
yosys # fpga synthesis # yosys # fpga synthesis
nextpnr # fpga place and route # nextpnr # fpga place and route
openfpgaloader # fpga programming # openfpgaloader # fpga programming
# nur-ryan4yin.packages.${pkgs.system}.gowin-eda-edu-ide # app: `gowin-env` => `gw_ide` / `gw_pack` / ... # nur-ryan4yin.packages.${pkgs.stdenv.hostPlatform.system}.gowin-eda-edu-ide # app: `gowin-env` => `gw_ide` / `gw_pack` / ...
]); ]);
programs = { programs = {
# live streaming # live streaming
obs-studio = { obs-studio = {
enable = pkgs.stdenv.isx86_64; enable = pkgs.stdenv.isx86_64;
plugins = plugins = with pkgs.obs-studio-plugins; [
with pkgs.obs-studio-plugins; # screen capture
[ wlrobs
# screen capture # obs-ndi
wlrobs # obs-nvfbc
# obs-ndi obs-teleport
# obs-nvfbc # obs-hyperion
obs-teleport droidcam-obs
# obs-hyperion obs-vkcapture
droidcam-obs obs-gstreamer
obs-vkcapture input-overlay
obs-gstreamer obs-multi-rtmp
input-overlay obs-source-clone
obs-multi-rtmp obs-shaderfilter
obs-source-clone obs-source-record
obs-shaderfilter obs-livesplit-one
obs-source-record looking-glass-obs
obs-livesplit-one obs-vintage-filter
looking-glass-obs obs-command-source
obs-vintage-filter obs-move-transition
obs-command-source obs-backgroundremoval
obs-move-transition # advanced-scene-switcher
obs-backgroundremoval obs-pipewire-audio-capture
# advanced-scene-switcher obs-vaapi
obs-pipewire-audio-capture obs-3d-effect
] ];
++ (lib.optionals pkgs.stdenv.isx86_64 [
obs-vaapi
obs-3d-effect
]);
}; };
}; };
} }
@@ -1,14 +1,5 @@
{ mylib, pkgs, ... }:
{ {
config,
pkgs,
...
}:
{
imports = [
./anyrun.nix
./nvidia.nix
];
# wayland related # wayland related
home.sessionVariables = { home.sessionVariables = {
"NIXOS_OZONE_WL" = "1"; # for any ozone-based browser & electron apps to run on wayland "NIXOS_OZONE_WL" = "1"; # for any ozone-based browser & electron apps to run on wayland
@@ -16,10 +7,14 @@
"MOZ_WEBRENDER" = "1"; "MOZ_WEBRENDER" = "1";
# enable native Wayland support for most Electron apps # enable native Wayland support for most Electron apps
"ELECTRON_OZONE_PLATFORM_HINT" = "auto"; "ELECTRON_OZONE_PLATFORM_HINT" = "auto";
# misc
"_JAVA_AWT_WM_NONREPARENTING" = "1"; # qt
"QT_WAYLAND_DISABLE_WINDOWDECORATION" = "1"; "QT_WAYLAND_DISABLE_WINDOWDECORATION" = "1";
"QT_QPA_PLATFORM" = "wayland"; "QT_QPA_PLATFORM" = "wayland";
"QT_QPA_PLATFORMTHEME" = "qt6ct"; # Qt6 applications look for icon themes based on this env.
# misc
"_JAVA_AWT_WM_NONREPARENTING" = "1";
"SDL_VIDEODRIVER" = "wayland"; "SDL_VIDEODRIVER" = "wayland";
"GDK_BACKEND" = "wayland"; "GDK_BACKEND" = "wayland";
"XDG_SESSION_TYPE" = "wayland"; "XDG_SESSION_TYPE" = "wayland";
@@ -30,44 +25,18 @@
wl-clipboard # copying and pasting wl-clipboard # copying and pasting
hyprpicker # color picker hyprpicker # color picker
brightnessctl brightnessctl
hyprshot # screen shot
wf-recorder # screen recording
# audio # audio
alsa-utils # provides amixer/alsamixer/... alsa-utils # provides amixer/alsamixer/...
networkmanagerapplet # provide GUI app: nm-connection-editor networkmanagerapplet # provide GUI app: nm-connection-editor
# screenshot/screencast
flameshot
hyprshot # screen shot
wf-recorder # screen recording
]; ];
xdg.configFile =
let
mkSymlink = config.lib.file.mkOutOfStoreSymlink;
confPath = "${config.home.homeDirectory}/nix-config/home/linux/gui/base/desktop/conf";
in
{
"mako".source = mkSymlink "${confPath}/mako";
"waybar".source = mkSymlink "${confPath}/waybar";
"wlogout".source = mkSymlink "${confPath}/wlogout";
"hypr/hypridle.conf".source = mkSymlink "${confPath}/hypridle.conf";
};
# status bar
programs.waybar = {
enable = true;
systemd.enable = true;
};
# Disable catppuccin to avoid conflict with my non-nix config.
catppuccin.waybar.enable = false;
# screen locker # screen locker
programs.swaylock.enable = true; programs.swaylock.enable = true;
# Logout Menu # Logout Menu
programs.wlogout.enable = true; programs.wlogout.enable = true;
catppuccin.wlogout.enable = false;
# Hyprland idle daemon
services.hypridle.enable = true;
# notification daemon, the same as dunst
services.mako.enable = true;
catppuccin.mako.enable = false;
} }
-85
View File
@@ -1,85 +0,0 @@
{
pkgs,
anyrun,
...
}:
{
programs.anyrun = {
enable = true;
config = {
plugins = with anyrun.packages.${pkgs.system}; [
applications
randr
rink
shell
symbols
translate
];
width.fraction = 0.3;
y.absolute = 15;
hidePluginInfo = true;
closeOnClick = true;
};
# custom css for anyrun, based on catppuccin-mocha
extraCss = ''
@define-color bg-col rgba(30, 30, 46, 0.7);
@define-color bg-col-light rgba(150, 220, 235, 0.7);
@define-color border-col rgba(30, 30, 46, 0.7);
@define-color selected-col rgba(150, 205, 251, 0.7);
@define-color fg-col #D9E0EE;
@define-color fg-col2 #F28FAD;
* {
transition: 200ms ease;
font-family: "Maple Mono NF CN";
font-size: 1.3rem;
}
#window {
background: transparent;
}
#plugin,
#main {
border: 3px solid @border-col;
color: @fg-col;
background-color: @bg-col;
}
/* anyrun's input window - Text */
#entry {
color: @fg-col;
background-color: @bg-col;
}
/* anyrun's output matches entries - Base */
#match {
color: @fg-col;
background: @bg-col;
}
/* anyrun's selected entry - Red */
#match:selected {
color: @fg-col2;
background: @selected-col;
}
#match {
padding: 3px;
border-radius: 16px;
}
#entry, #plugin:hover {
border-radius: 16px;
}
box#main {
background: rgba(30, 30, 46, 0.7);
border: 1px solid @border-col;
border-radius: 15px;
padding: 5px;
}
'';
};
}
@@ -1,51 +0,0 @@
## Mako configuration file
# GLOBAL CONFIGURATION OPTIONS
max-history=100
sort=-time
# BINDING OPTIONS
on-button-left=dismiss
on-button-middle=none
on-button-right=dismiss-all
on-touch=dismiss
on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga
# STYLE OPTIONS
font=Maple Mono NF CN
width=300
height=100
margin=10
padding=15
border-size=2
border-radius=0
icons=1
max-icon-size=48
icon-location=left
markup=1
actions=1
history=1
text-alignment=left
default-timeout=5000
ignore-timeout=0
max-visible=5
layer=overlay
anchor=top-right
background-color=#1e1e2e
text-color=#d9e0ee
border-color=#313244
progress-color=over #89b4fa
[urgency=low]
border-color=#313244
default-timeout=2000
[urgency=normal]
border-color=#313244
default-timeout=5000
[urgency=high]
border-color=#f38ba8
text-color=#f38ba8
default-timeout=0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

@@ -1,156 +0,0 @@
{
"position": "top",
"layer": "top",
"modules-left": ["custom/launcher", "temperature", "backlight", "hyprland/workspaces"],
"modules-center": ["custom/playerctl"],
"modules-right": [
"pulseaudio",
"memory",
"cpu",
"network",
"battery",
"clock",
"idle_inhibitor",
"custom/powermenu",
"tray",
],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "",
"focused": "",
"default": "",
},
},
"clock": {
"interval": 60,
"align": 0,
"rotate": 0,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M}",
"format-alt": " {:%a %b %d, %G}",
},
"cpu": {
"format": "CPU {usage}%",
"interval": 1,
"on-click-middle": "foot btop",
"on-click-right": "foot btop",
},
"memory": {
"format": "MEM {percentage}%",
"interval": 1,
"states": {
"warning": 85,
},
},
"custom/launcher": {
"format": "\uf313 ",
"on-click": "anyrun",
"on-click-middle": "exec default_wall",
"on-click-right": "exec wallpaper_random",
"tooltip": false,
},
"custom/powermenu": {
"format": "\uf011",
"on-click": "wlogout",
"tooltip": false,
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uf06e",
"deactivated": "\uf070",
},
"tooltip": false,
},
"custom/playerctl": {
"format": "{icon} <span>{}</span>",
"return-type": "json",
"max-length": 55,
"exec": "playerctl -a metadata --format '{\"text\": \" {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F",
"on-click-middle": "playerctl previous",
"on-click": "playerctl play-pause",
"on-click-right": "playerctl next",
"format-icons": {
"Paused": "<span foreground='#6dd9d9'></span>",
"Playing": "<span foreground='#82db97'></span>",
},
},
"network": {
"interval": 5,
"format": "{ifname}",
"format-wifi": " {signalStrength}% Down: {bandwidthDownBytes} Up: {bandwidthUpBytes} {essid}",
"format-ethernet": " {ifname} Down: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
"format-disconnected": "Disconnected ⚠",
"tooltip-format": " {ifname} via {gwaddri}",
"tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\nDown: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n Down: {bandwidthDownBytes} Up: {bandwidthUpBytes}",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50,
"on-click-middle": "nm-connection-editor",
"on-click-right": "foot nmtui",
},
"pulseaudio": {
//"format": "{volume}% {icon} {format_source}",
"format": "{icon} {volume}%",
"format-muted": " Mute",
"format-bluetooth": " {volume}% {format_source}",
"format-bluetooth-muted": " Mute",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""],
},
"scroll-step": 5.0,
// Commands to execute on events
"on-click": "amixer set Master toggle",
"on-click-right": "GSK_RENDERER=opengl pavucontrol",
"smooth-scrolling-threshold": 1,
},
"temperature": {
"format": "\uf2c9 {temperatureC}\u00b0C",
"tooltip": false,
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
},
"tray": {
"icon-size": 15,
"spacing": 5,
},
"battery": {
"interval": 60,
"states": {
"warning": 30,
"critical": 15,
},
"max-length": 20,
"format": "{icon} {capacity}%",
"format-warning": "{icon} {capacity}%",
"format-critical": "{icon} {capacity}%",
"format-charging": "<span font-family='Font Awesome 6 Free'></span> {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
"format-full": " {capacity}%",
"format-icons": [" ", " ", " ", " ", " "],
},
}
@@ -1,38 +0,0 @@
/*
* https://github.com/catppuccin/waybar/blob/main/themes/mocha.css
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
@@ -1,151 +0,0 @@
@import "mocha.css";
* {
/* https://docs.gtk.org/gtk3/css-overview.html#colors */
color: @text;
font-family: "Maple Mono NF CN";
font-size: 12pt;
font-weight: bold;
border-radius: 8px;
transition-property: background-color;
transition-duration: 0.5s;
}
@keyframes blink_red {
to {
background-color: rgb(242, 143, 173);
color: rgb(26, 24, 38);
}
}
.warning,
.critical,
.urgent {
animation-name: blink_red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
window#waybar {
background-color: transparent;
border: 2px solid alpha(@crust, 0.3);
}
window > box {
margin-left: 5px;
margin-right: 5px;
margin-top: 5px;
background-color: shade(@base, 0.9);
padding: 3px;
padding-left: 8px;
border: 2px none #33ccff;
}
#workspaces {
padding-left: 0px;
padding-right: 4px;
}
#workspaces button {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.active {
background-color: rgb(181, 232, 224);
color: rgb(26, 24, 38);
}
#workspaces button.urgent {
color: rgb(26, 24, 38);
}
#workspaces button:hover {
background-color: rgb(248, 189, 150);
color: rgb(26, 24, 38);
}
tooltip {
background: rgb(48, 45, 65);
}
tooltip label {
color: rgb(217, 224, 238);
}
#custom-launcher {
font-size: 20px;
padding-left: 8px;
padding-right: 6px;
color: #7ebae4;
}
#mode,
#clock,
#memory,
#temperature,
#cpu,
#custom-wall,
#temperature,
#backlight,
#pulseaudio,
#network,
#battery,
#custom-powermenu {
padding-left: 10px;
padding-right: 10px;
}
/* #mode { */
/* margin-left: 10px; */
/* background-color: rgb(248, 189, 150); */
/* color: rgb(26, 24, 38); */
/* } */
#memory {
color: rgb(181, 232, 224);
}
#cpu {
color: rgb(245, 194, 231);
}
#clock {
color: rgb(217, 224, 238);
}
#idle_inhibitor {
color: rgb(221, 182, 242);
padding-right: 8px;
}
#battery {
min-width: 55px;
color: rgb(126, 186, 244);
}
#battery.charging,
#battery.full,
#battery.plugged {
color: #26a65b;
}
#battery.critical:not(.charging) {
color: #f53c3c;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#custom-wall {
color: #33ccff;
}
#temperature {
color: rgb(150, 205, 251);
}
#backlight {
color: rgb(248, 189, 150);
}
#pulseaudio {
color: rgb(245, 224, 220);
}
#network {
color: #abe9b3;
}
#network.disconnected {
color: rgb(255, 255, 255);
}
#custom-powermenu {
color: rgb(242, 143, 173);
padding-right: 8px;
}
#tray {
padding-right: 8px;
padding-left: 10px;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

@@ -1,36 +0,0 @@
{
"label" : "lock",
"action" : "~/.config/hypr/scripts/lockscreen",
"text" : "Lock",
"keybind" : "l"
}
{
"label" : "hibernate",
"action" : "systemctl hibernate",
"text" : "Hibernate",
"keybind" : "h"
}
{
"label" : "logout",
"action" : "loginctl terminate-user $USER",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
}
@@ -1,57 +0,0 @@
/** ********** Fonts ********** **/
* {
font-family: "Maple Mono NF CN", sans-serif;
font-size: 14px;
font-weight: bold;
}
/** ********** Main Window ********** **/
window {
background-color: #1e1e2e;
}
/** ********** Buttons ********** **/
button {
background-color: #242434;
color: #ffffff;
border: 2px solid #282838;
border-radius: 20px;
background-repeat: no-repeat;
background-position: center;
background-size: 35%;
}
button:focus,
button:active,
button:hover {
background-color: #89b4fa;
outline-style: none;
}
/** ********** Icons ********** **/
#lock {
background-image: image(url("icons/lock.png"), url("/usr/share/wlogout/icons/lock.png"));
}
#logout {
background-image: image(url("icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
}
#suspend {
background-image: image(url("icons/suspend.png"), url("/usr/share/wlogout/icons/suspend.png"));
}
#hibernate {
background-image: image(
url("icons/hibernate.png"),
url("/usr/share/wlogout/icons/hibernate.png")
);
}
#shutdown {
background-image: image(url("icons/shutdown.png"), url("/usr/share/wlogout/icons/shutdown.png"));
}
#reboot {
background-image: image(url("icons/reboot.png"), url("/usr/share/wlogout/icons/reboot.png"));
}
+50
View File
@@ -0,0 +1,50 @@
{
config,
pkgs,
wallpapers,
dms,
...
}:
{
imports = [
dms.homeModules.dankMaterialShell.default
];
home.packages = [
pkgs.qt6Packages.qt6ct # for icon theme
];
home.file."Pictures/Wallpapers".source = wallpapers;
xdg.configFile =
let
mkSymlink = config.lib.file.mkOutOfStoreSymlink;
confPath = "${config.home.homeDirectory}/nix-config/home/linux/gui/base/dma-shell";
in
{
"DankMaterialShell/settings.json".source = mkSymlink "${confPath}/settings.json";
"qt6ct/qt6ct.conf".source = mkSymlink "${confPath}/qt6ct.conf";
};
systemd.user.services.dms.Service.Environment = [
"QT_QPA_PLATFORM=wayland"
"QT_QPA_PLATFORMTHEME=qt6ct"
];
programs.dankMaterialShell = {
enable = true;
systemd = {
enable = true; # Systemd service for auto-start
restartIfChanged = true; # Auto-restart dms.service when dankMaterialShell changes
};
# Core features
enableSystemMonitoring = true; # System monitoring widgets (dgop)
enableClipboard = true; # Clipboard history manager
enableVPN = true; # VPN management widget
enableDynamicTheming = true; # Wallpaper-based theming (matugen)
enableAudioWavelength = true; # Audio visualizer (cava)
enableCalendarEvents = true; # Calendar integration (khal)
};
}
+31
View File
@@ -0,0 +1,31 @@
[Appearance]
custom_palette=false
icon_theme=Papirus
standard_dialogs=default
style=Fusion
[Fonts]
fixed="Maple Mono NF CN,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
general="Maple Mono NF CN,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3H\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\x3H\0\0\x3\xf5\0\0\0\0\0\0\0\0\x6\xab\0\0\0\0\0\0\0\0\0\0\x3H\0\0\x3\xf5)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()
+348
View File
@@ -0,0 +1,348 @@
{
"currentThemeName": "dynamic",
"customThemeFile": "",
"matugenScheme": "scheme-tonal-spot",
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
"popupTransparency": 1,
"dockTransparency": 1,
"widgetBackgroundColor": "sch",
"widgetColorMode": "colorful",
"cornerRadius": 12,
"use24HourClock": true,
"showSeconds": true,
"useFahrenheit": false,
"nightModeEnabled": false,
"animationSpeed": 1,
"customAnimationDuration": 500,
"wallpaperFillMode": "Fill",
"blurredWallpaperLayer": false,
"blurWallpaperOnOverview": false,
"showLauncherButton": true,
"showWorkspaceSwitcher": true,
"showFocusedWindow": true,
"showWeather": true,
"showMusic": true,
"showClipboard": true,
"showCpuUsage": true,
"showMemUsage": true,
"showCpuTemp": true,
"showGpuTemp": true,
"selectedGpuIndex": 0,
"enabledGpuPciIds": [],
"showSystemTray": true,
"showClock": true,
"showNotificationButton": true,
"showBattery": true,
"showControlCenterButton": true,
"showCapsLockIndicator": true,
"controlCenterShowNetworkIcon": false,
"controlCenterShowBluetoothIcon": false,
"controlCenterShowAudioIcon": false,
"controlCenterShowVpnIcon": false,
"controlCenterShowBrightnessIcon": false,
"controlCenterShowMicIcon": false,
"controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false,
"showPrivacyButton": true,
"privacyShowMicIcon": false,
"privacyShowCameraIcon": false,
"privacyShowScreenShareIcon": false,
"controlCenterWidgets": [
{
"id": "volumeSlider",
"enabled": true,
"width": 50
},
{
"id": "brightnessSlider",
"enabled": true,
"width": 50
},
{
"id": "wifi",
"enabled": true,
"width": 50
},
{
"id": "bluetooth",
"enabled": true,
"width": 50
},
{
"id": "audioOutput",
"enabled": true,
"width": 50
},
{
"id": "audioInput",
"enabled": true,
"width": 50
},
{
"id": "nightMode",
"enabled": true,
"width": 50
},
{
"id": "darkMode",
"enabled": true,
"width": 50
}
],
"showWorkspaceIndex": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
"showWorkspaceApps": false,
"maxWorkspaceIcons": 3,
"workspacesPerMonitor": true,
"showOccupiedWorkspacesOnly": false,
"dwlShowAllTags": false,
"workspaceNameIcons": {
"1terminal": {
"type": "icon",
"value": "terminal"
},
"2browser": {
"type": "icon",
"value": "desktop_windows"
},
"3chat": {
"type": "icon",
"value": "forum"
},
"4music": {
"type": "icon",
"value": "music_note"
},
"5mail": {
"type": "icon",
"value": "mail"
},
"6file": {
"type": "icon",
"value": "folder"
},
"0other": {
"type": "icon",
"value": "update"
}
},
"waveProgressEnabled": true,
"scrollTitleEnabled": true,
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"runningAppsCompactMode": true,
"keyboardLayoutNameCompactMode": false,
"runningAppsCurrentWorkspace": false,
"runningAppsGroupByApp": false,
"centeringMode": "index",
"clockDateFormat": "",
"lockDateFormat": "",
"mediaSize": 1,
"appLauncherViewMode": "list",
"spotlightModalViewMode": "list",
"sortAppsAlphabetically": false,
"appLauncherGridColumns": 4,
"spotlightCloseNiriOverview": true,
"niriOverviewOverlayEnabled": true,
"weatherLocation": "New York, NY",
"weatherCoordinates": "40.7128,-74.0060",
"useAutoLocation": true,
"weatherEnabled": true,
"networkPreference": "auto",
"vpnLastConnected": "",
"iconTheme": "System Default",
"launcherLogoMode": "os",
"launcherLogoCustomPath": "",
"launcherLogoColorOverride": "primary",
"launcherLogoColorInvertOnMode": false,
"launcherLogoBrightness": 0.5,
"launcherLogoContrast": 1,
"launcherLogoSizeOffset": 0,
"fontFamily": "Inter Variable",
"monoFontFamily": "Maple Mono NF CN",
"fontWeight": 400,
"fontScale": 1,
"notepadUseMonospace": true,
"notepadFontFamily": "",
"notepadFontSize": 14,
"notepadShowLineNumbers": false,
"notepadTransparencyOverride": -1,
"notepadLastCustomTransparency": 0.7,
"soundsEnabled": true,
"useSystemSoundTheme": false,
"soundNewNotification": true,
"soundVolumeChanged": true,
"soundPluggedIn": true,
"acMonitorTimeout": 1800,
"acLockTimeout": 1200,
"acSuspendTimeout": 3600,
"acSuspendBehavior": 0,
"acProfileName": "",
"batteryMonitorTimeout": 900,
"batteryLockTimeout": 600,
"batterySuspendTimeout": 1200,
"batterySuspendBehavior": 0,
"batteryProfileName": "0",
"lockBeforeSuspend": true,
"loginctlLockIntegration": true,
"fadeToLockEnabled": true,
"fadeToLockGracePeriod": 5,
"launchPrefix": "",
"brightnessDevicePins": {},
"wifiNetworkPins": {},
"bluetoothDevicePins": {},
"audioInputDevicePins": {},
"audioOutputDevicePins": {},
"gtkThemingEnabled": false,
"qtThemingEnabled": false,
"syncModeWithPortal": true,
"terminalsAlwaysDark": true,
"showDock": false,
"dockAutoHide": false,
"dockGroupByApp": true,
"dockOpenOnOverview": false,
"dockPosition": 1,
"dockSpacing": 4,
"dockBottomGap": 0,
"dockMargin": 0,
"dockIconSize": 40,
"dockIndicatorStyle": "circle",
"dockBorderEnabled": false,
"dockBorderColor": "surfaceText",
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"notificationOverlayEnabled": false,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
"enableFprint": false,
"maxFprintTries": 15,
"lockScreenActiveMonitor": "all",
"lockScreenInactiveColor": "#000000",
"hideBrightnessSlider": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"notificationPopupPosition": 0,
"osdAlwaysShowValue": true,
"osdPosition": 5,
"osdVolumeEnabled": true,
"osdMediaVolumeEnabled": true,
"osdBrightnessEnabled": true,
"osdIdleInhibitorEnabled": true,
"osdMicMuteEnabled": true,
"osdCapsLockEnabled": true,
"osdPowerProfileEnabled": true,
"osdAudioOutputEnabled": true,
"powerActionConfirm": true,
"powerActionHoldDuration": 0.5,
"powerMenuActions": ["reboot", "logout", "poweroff", "lock", "suspend", "restart"],
"powerMenuDefaultAction": "logout",
"powerMenuGridLayout": false,
"customPowerActionLock": "",
"customPowerActionLogout": "",
"customPowerActionSuspend": "",
"customPowerActionHibernate": "",
"customPowerActionReboot": "",
"customPowerActionPowerOff": "",
"updaterUseCustomCommand": false,
"updaterCustomCommand": "",
"updaterTerminalAdditionalParams": "",
"displayNameMode": "system",
"screenPreferences": {},
"showOnLastDisplay": {},
"barConfigs": [
{
"id": "default",
"name": "Main Bar",
"enabled": true,
"position": 0,
"screenPreferences": ["all"],
"showOnLastDisplay": true,
"leftWidgets": [
{
"id": "launcherButton",
"enabled": true
},
{
"id": "clock",
"enabled": true
},
{
"id": "cpuUsage",
"enabled": true,
"minimumWidth": true
},
{
"id": "memUsage",
"enabled": true,
"minimumWidth": true
},
{
"id": "network_speed_monitor",
"enabled": true
}
],
"centerWidgets": [
{
"id": "music",
"enabled": true
},
{
"id": "runningApps",
"enabled": true
}
],
"rightWidgets": [
{
"id": "clipboard",
"enabled": true
},
{
"id": "notificationButton",
"enabled": true
},
{
"id": "battery",
"enabled": true
},
{
"id": "systemTray",
"enabled": true
},
{
"id": "controlCenterButton",
"enabled": true
}
],
"spacing": 4,
"innerPadding": 4,
"bottomGap": 0,
"transparency": 1,
"widgetTransparency": 1,
"squareCorners": false,
"noBackground": false,
"gothCornersEnabled": false,
"gothCornerRadiusOverride": false,
"gothCornerRadiusValue": 12,
"borderEnabled": false,
"borderColor": "surfaceText",
"borderOpacity": 1,
"borderThickness": 1,
"widgetOutlineEnabled": false,
"widgetOutlineColor": "primary",
"widgetOutlineOpacity": 1,
"widgetOutlineThickness": 1,
"fontScale": 1,
"autoHide": false,
"autoHideDelay": 250,
"openOnOverview": true,
"visible": true,
"popupGapsAuto": true,
"popupGapsManual": 4,
"maximizeDetection": true
}
],
"configVersion": 2
}
+60
View File
@@ -0,0 +1,60 @@
{
lib,
pkgs,
pkgs-master,
...
}:
let
vscodeCliArgs = [
# https://code.visualstudio.com/docs/configure/settings-sync#_recommended-configure-the-keyring-to-use-with-vs-code
# For use with any package that implements the Secret Service API
# (for example gnome-keyring, kwallet5, KeepassXC)
"--password-store=gnome-libsecret"
];
code-cursor = pkgs-master.code-cursor;
# (pkgs-master.code-cursor.override {
# commandLineArgs = lib.concatStringsSep " " vscodeCliArgs;
# }).overrideAttrs
# (oldAttrs: rec {
# pname = "cursor";
# version = "2.1.36";
# src =
# with pkgs-master;
# appimageTools.extract {
# inherit pname version;
# src =
# let
# sources = {
# x86_64-linux = fetchurl {
# # curl -s https://api2.cursor.sh/updates/api/download/stable/linux-x64/cursor | jq
# url = "https://downloads.cursor.com/production/9cd7c8b6cebcbccc1242df211dee45a4b6fe15e4/linux/x64/Cursor-2.1.36-x86_64.AppImage";
# hash = "sha256-aaprRB2BAaUCHj7m5aGacCBHisjN2pVZ+Ca3u1ifxBA=";
# };
# aarch64-linux = fetchurl {
# # curl -s https://api2.cursor.sh/updates/api/download/stable/linux-arm64/cursor | jq
# url = "https://downloads.cursor.com/production/9cd7c8b6cebcbccc1242df211dee45a4b6fe15e4/linux/arm64/Cursor-2.1.36-aarch64.AppImage";
# hash = "sha256-S2vFYBI6m0zjBJEDbk7gc6/zFiKWyhM73OUm1xsNx6Q=";
# };
# };
# in
# sources.${stdenv.hostPlatform.system};
# };
# sourceRoot = "${pname}-${version}-extracted/usr/share/cursor";
# });
in
{
home.packages = [
pkgs.zed-editor
pkgs-master.code-cursor
pkgs-master.antigravity-fhs
];
programs.vscode = {
enable = true;
package = pkgs-master.vscode.override {
commandLineArgs = vscodeCliArgs;
};
};
}
-49
View File
@@ -1,49 +0,0 @@
{
pkgs,
lib,
...
}:
{
# Adjust the color temperature(& brightness) of your screen according to
# your surroundings. This may help your eyes hurt less if you are
# working in front of the screen at night.
#
# works fine with both x11 & wayland(hyprland)
#
# https://gitlab.com/chinstrap/gammastep
services.gammastep = {
enable = true;
# add a gammastep icon in the system tray
# has problem with wayland, so disable it
tray = false;
temperature = {
day = 6000;
night = 4500;
};
# https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample?ref_type=heads
settings = {
general = {
fade = "1"; # gradually apply the new screen temperature/brightness over a couple of seconds.
# it is a fake brightness adjustment obtained by manipulating the gamma ramps,
# which means that it does not reduce the backlight of the screen.
# Preferably only use it if your normal backlight adjustment is too coarse-grained.
#
# brightness-day = "1.3";
# brightness-night = "1";
location-provider = "manual";
# by default, Redshift will use the current elevation of the sun
# to determine whether it is daytime, night or in transition (dawn/dusk).
# dawn-time = "6:00-8:45";
# dusk-time = "18:35-20:15";
};
manual = {
# China, Shenzhen
lat = "22.5"; # latitude
lon = "114.1"; # longitude
};
};
};
}
+8
View File
@@ -0,0 +1,8 @@
# fcitx5 - IME
## Available Configurations
- `profile` → Symlink will be created at: `~/.config/fcitx5/profile`
- `config1.db` (Mozc config) → Symlink will be created at: `~/.config/mozc/config1.db`
- Main changes from the defaults: use half-width for all alphabets, numbers, and punctuation.
- https://github.com/google/mozc/blob/2.30.5544.102/docs/configurations.md
+13 -7
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: { config, pkgs, ... }:
{ {
xdg.configFile = { xdg.configFile = {
"fcitx5/profile" = { "fcitx5/profile" = {
@@ -7,6 +7,8 @@
# so we need to force replace it in every rebuild to avoid file conflict. # so we need to force replace it in every rebuild to avoid file conflict.
force = true; force = true;
}; };
"mozc/config1.db".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nix-config/home/linux/gui/base/fcitx5/mozc-config1.db";
}; };
i18n.inputMethod = { i18n.inputMethod = {
@@ -14,13 +16,17 @@
type = "fcitx5"; type = "fcitx5";
fcitx5.waylandFrontend = true; fcitx5.waylandFrontend = true;
fcitx5.addons = with pkgs; [ fcitx5.addons = with pkgs; [
# for flypy chinese input method qt6Packages.fcitx5-configtool # GUI for fcitx5
fcitx5-rime
# needed enable rime using configtool after installed
fcitx5-configtool
fcitx5-chinese-addons
# fcitx5-mozc # japanese input method
fcitx5-gtk # gtk im module fcitx5-gtk # gtk im module
# Chinese
fcitx5-rime # for flypy chinese input method
# fcitx5-chinese-addons # we use rime instead
# Japanese
# ctrl-i / F7 - convert to takakana
# ctrl-u / F6 - convert to hiragana
fcitx5-mozc-ut # Moze with UT dictionary
]; ];
}; };
} }
Binary file not shown.
+35 -2
View File
@@ -1,10 +1,10 @@
[Groups/0] [Groups/0]
# Group Name # Group Name
Name=Default Name=Intl
# Layout # Layout
Default Layout=us Default Layout=us
# Default Input Method # Default Input Method
DefaultIM=rime DefaultIM=keyboard-us-altgr-intl
[Groups/0/Items/0] [Groups/0/Items/0]
# Name # Name
@@ -14,10 +14,43 @@ Layout=
[Groups/0/Items/1] [Groups/0/Items/1]
# Name # Name
Name=keyboard-us-intl
# Layout
Layout=
[Groups/0/Items/2]
# Name
Name=keyboard-us-altgr-intl
# Layout
Layout=
[Groups/1]
# Group Name
Name=Default
# Layout
Default Layout=us
# Default Input Method
DefaultIM=rime
[Groups/1/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/1/Items/1]
# Name
Name=rime Name=rime
# Layout # Layout
Layout= Layout=
[Groups/1/Items/2]
# Name
Name=mozc
# Layout
Layout=
[GroupOrder] [GroupOrder]
0=Default 0=Default
1=Intl
-13
View File
@@ -1,13 +0,0 @@
{
pkgs,
nix-gaming,
...
}:
{
home.packages = with pkgs; [
# nix-gaming.packages.${pkgs.system}.osu-laser-bin
gamescope # SteamOS session compositing window manager
prismlauncher # A free, open source launcher for Minecraft
winetricks # A script to install DLLs needed to work around problems in Wine
];
}

Some files were not shown because too many files have changed in this diff Show More