1212 Commits
v0.4.1 ... main

Author SHA1 Message Date
Sacabambaspis
e814f64228 feat: noctalia - use directory for configuration instead of single file (#243) 2026-01-16 14:44:50 +08:00
Ryan Yin
1092ed997a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/2fd271ae7a341a2b2f3728f9d22f6890822f4888?narHash=sha256-FWOxiKWAk8HpIb5SHg0XfLZ3DrtWuGnb2GBeJY02no0%3D' (2026-01-04)
  → 'github:nixos/nixpkgs/c60ea51bdca90fd46d39f5be1b0436652713b4d2?narHash=sha256-4mqh9WJFKuSbDOEcMc4FerCGVoBl6dPQ%2BPiRFxybync%3D' (2026-01-15)
2026-01-15 13:41:05 +08:00
Ryan Yin
a7ee0b3b5d feat: fcitx5 - add korean 2026-01-09 01:07:49 +08:00
Ryan Yin
bc967093ff feat: gh login via just 2026-01-07 01:21:56 +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
Ryan Yin
8a2c5ba577 docs: README - add niri 2025-08-20 13:08:43 +08:00
Ryan Yin
f904a672d4 Merge pull request #213 from ryan4yin/niri-spawn-at-startup
feat: niri - more settings
2025-08-20 13:02:23 +08:00
Ryan Yin
379fdd5b46 refactor: niri settings 2025-08-20 12:56:04 +08:00
Ryan Yin
21090c93e8 feat: environment variables for wayland & nvidia 2025-08-20 12:39:43 +08:00
Ryan Yin
2b914efbb1 feat: niri - waybar opacity 2025-08-20 12:23:50 +08:00
Ryan Yin
7b1bab3c9b feat: niri - spawn at startup 2025-08-20 12:12:19 +08:00
Ryan Yin
d517d74bf7 feat: shoukei - add Lid & PowerKey settings (#207) 2025-08-20 02:21:07 +08:00
Ryan Yin
d83cfcf681 docs: nixos-apple-silicon 2025-08-20 02:10:07 +08:00
Ryan Yin
a9d08f15a2 Merge pull request #212 from ryan4yin/niri
feat: add new wayland compositor - niri
2025-08-20 02:00:31 +08:00
Ryan Yin
ce4588d0c2 feat: niri - define configs via home-manager 2025-08-20 01:59:42 +08:00
Ryan Yin
69eee64e7e feat: add new wayland compositor - niri 2025-08-20 00:03:25 +08:00
Ryan Yin
09fbea3f77 chore: adjust keyboard backlight via hypridle 2025-08-20 00:00:18 +08:00
Ryan Yin
64a7b2c6cf chore: power management 2025-08-19 23:56:19 +08:00
Ryan Yin
c8bc396e89 chore: replace iotop with iotop-c 2025-08-19 23:54:14 +08:00
Ryan Yin
035c07d658 chore: update nixos-appli-silicon, update asahi options 2025-08-19 23:30:19 +08:00
Ryan Yin
30d73dabf1 refactor: justfile - nixos-swtich/darwin-switch (#211) 2025-08-18 21:22:23 +08:00
Ryan Yin
adc49e7f6e docs: grafana dashboards 2025-08-18 13:29:39 +08:00
Ryan Yin
74b19dd7dc feat: idols-aquamarine - use default kernel for stability 2025-08-17 17:39:47 +08:00
Ryan Yin
329f03c1e2 fix: remove duplicated values with catppuccin-nix 2025-08-17 17:23:17 +08:00
Ryan Yin
99cf8d6ac6 flake.lock: Update
Flake lock file updates:

• Updated input 'anyrun':
    'github:Kirottu/anyrun/25367153f225a59c5ce5746583e39a71ff052f09' (2025-05-27)
  → 'github:Kirottu/anyrun/0c3fa788227d29cf8b0184e553c83021bcebad7c' (2025-08-17)
• Updated input 'blender-bin':
    'github:edolstra/nix-warez/69acfebb3740542936f71775bcdf322dc328a655?dir=blender' (2025-07-16)
  → 'github:edolstra/nix-warez/e8b2b3214f07970e45ec3fc98d957b0507a3564a?dir=blender' (2025-08-01)
• Updated input 'catppuccin':
    'github:catppuccin/nix/b32de96c3c5384c83b0f4d741ec58a7f97c9ab11' (2025-07-28)
  → 'github:catppuccin/nix/a2ef20ed6fb921073c2d1b1929447c3bd88f595e' (2025-08-16)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/92c1f4b0b9c6fde6d8f79109de71bf4e30831e86' (2025-07-28)
  → 'github:ghostty-org/ghostty/11d56235f9e4a227b794a87a503785ef9f3349ed' (2025-08-15)
• Updated input 'home-manager':
    'github:nix-community/home-manager/25deca893974aae98c9be151fb47d6284c053470' (2025-07-29)
  → 'github:nix-community/home-manager/8b4ac149687e8520187a66f05e9d4eafebf96522' (2025-08-17)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/e04a388232d9a6ba56967ce5b53a8a6f713cdfcf' (2025-06-30)
  → 'github:lnl7/nix-darwin/7220b01d679e93ede8d7b25d6f392855b81dd475' (2025-08-15)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/ceb9d44f09b0db02332873247a50210a486959ff' (2025-07-27)
  → 'github:fufexan/nix-gaming/f2bf778502254d8852402a83ae346fd803095ccc' (2025-08-17)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e' (2025-07-21)
  → 'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/14a40a1d7fb9afa4739275ac642ed7301a9ba1ab' (2025-06-29)
  → 'github:nix-community/nixpkgs.lib/0f36c44e01a6129be94e3ade315a5883f0228a6e' (2025-07-27)
• Updated input 'nixpak':
    'github:nixpak/nixpak/fedd4b59b7c8f18be508dee9d89985a8501982d0' (2025-07-24)
  → 'github:nixpak/nixpak/ae70d05017be7e0aa6c1cf5f267fe6953eb027e6' (2025-08-14)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e' (2025-07-21)
  → 'github:hercules-ci/flake-parts/af66ad14b28a127c5c0f3bbb298218fc63528a18' (2025-08-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
  → 'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/648f70160c03151bc2121d179291337ad6bc564b' (2025-07-28)
  → 'github:nixos/nixpkgs/32f313e49e42f715491e1ea7b306a87c16fe0388' (2025-08-15)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
  → 'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/13e8d35b7d6028b7198f8186bc0347c6abaa2701' (2025-07-26)
  → 'github:nixos/nixpkgs/ad7196ae55c295f53a7d1ec39e4a06d922f3b899' (2025-08-15)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
  → 'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
• Updated input 'pre-commit-hooks':
    'github:cachix/git-hooks.nix/16ec914f6fb6f599ce988427d9d94efddf25fe6d' (2025-06-24)
  → 'github:cachix/git-hooks.nix/9c52372878df6911f9afc1e2a1391f55e4dfc864' (2025-08-05)
• Updated input 'pre-commit-hooks/flake-compat':
    'github:edolstra/flake-compat/0f9255e01c2351cc7d116c072cb317785dd33b33' (2023-10-04)
  → 'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885' (2025-05-12)
2025-08-17 17:19:50 +08:00
Ryan Yin
d222dc05a9 feat: add kubectl-cnpg 2025-08-17 16:42:07 +08:00
Ryan Yin
84b30c0233 fix: cloudnative-pg dashboard - conflicted label - cluster 2025-08-17 16:25:38 +08:00
Ryan Yin
ebf1b6b4d0 feat: add grafana dashboard for cnpg 2025-08-17 03:20:16 +08:00
Ryan Yin
6e246c38b6 fix: loki-logs dashboard 2025-08-16 23:34:16 +08:00
Ryan Yin
f5e2f1832a chore: systemd-journal - reduce disk usage 2025-08-16 22:12:08 +08:00
Ryan Yin
d53ab3b4e3 fix: grafana loki-logs dashboard 2025-08-16 21:42:30 +08:00
Ryan Yin
f9368749b5 feat: start clash-verge on login 2025-08-11 00:42:10 +08:00
Ryan Yin
3c409bd83a feat: use mainGateway for idols-ai, rename defaultGateway to proxyGateway 2025-08-11 00:32:08 +08:00
Ryan Yin
01448b6e0e feat: install clash verge on all nixos desktop hosts 2025-08-11 00:18:29 +08:00
Ryan Yin
e54af73cb2 feat: shoukei - scale monitor to 1.33 times 2025-08-10 13:27:20 +08:00
Ryan Yin
7da0b208e6 feat: waybar network - use bytes instead of bits 2025-08-10 13:23:56 +08:00
Ryan Yin
0fe704c32a chore: shoukei - disable sunshine for security 2025-08-09 13:47:04 +08:00
Ryan Yin
273bfd2ac8 feat: shoukei - add clash verge rev 2025-08-06 15:54:02 +08:00
Ryan Yin
09a01ff947 fix: hyprlock is broken on asahi kernel, replace it with swaylock 2025-08-06 14:11:48 +08:00
Ryan Yin
1ef015cb16 fix: comment out git-aliases.nu 2025-08-02 13:10:21 +08:00
Ryan Yin
52dfcea713 fix: hyprland - disable tap related features to avoid palm rejection. 2025-07-30 12:24:24 +08:00
Ryan Yin
863f124b08 Merge pull request #209 from ryan4yin/nixfmt
nixfmt
2025-07-30 12:20:52 +08:00
Ryan Yin
7a78b1831c feat: justfile - format nix files 2025-07-30 12:19:15 +08:00
Ryan Yin
13bb77108c feat: format via 'ls **/*.nix | each { |it| nixfmt $it.name }' 2025-07-30 12:17:24 +08:00
Ryan Yin
d10b30b06b chore: remove platformio - not used currently 2025-07-30 10:57:05 +08:00
Ryan Yin
4d218e314c chore: install ai stuff(ollama) & games(steam) only on idols-ai 2025-07-30 10:57:05 +08:00
Ryan Yin
87229f9a31 chore: rename pre-commit-hooks.nix to git-hooks.nix 2025-07-30 10:57:05 +08:00
Ryan Yin
bc163b8157 feat: replace alejandra with nixfmt(rfc-style) 1.0.0 2025-07-30 10:57:05 +08:00
Ryan Yin
30fefb0f5f flake.lock: Update
Flake lock file updates:

• Updated input 'blender-bin':
    'github:edolstra/nix-warez/85d76721132cc6631bbaa8c950d4d0f3aa4003fd?dir=blender' (2025-05-04)
  → 'github:edolstra/nix-warez/69acfebb3740542936f71775bcdf322dc328a655?dir=blender' (2025-07-16)
• Updated input 'catppuccin':
    'github:catppuccin/nix/5f431aac1a4038c385e6de2d2384d943e4802d61' (2025-07-11)
  → 'github:catppuccin/nix/b32de96c3c5384c83b0f4d741ec58a7f97c9ab11' (2025-07-28)
• Updated input 'ghostty':
    'github:ghostty-org/ghostty/4aa28988a6ddd9aa8b3402e4bab05ad02a0c12c6' (2025-07-11)
  → 'github:ghostty-org/ghostty/92c1f4b0b9c6fde6d8f79109de71bf4e30831e86' (2025-07-28)
• Updated input 'ghostty/zig/flake-compat':
    follows 'ghostty'
  → follows 'ghostty/flake-compat'
• Updated input 'home-manager':
    'github:nix-community/home-manager/fab659b346c0d4252208434c3c4b3983a4b38fec' (2025-07-11)
  → 'github:nix-community/home-manager/25deca893974aae98c9be151fb47d6284c053470' (2025-07-29)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/62f976ed47de88323770646a9a92e4912d33585f' (2025-07-11)
  → 'github:fufexan/nix-gaming/ceb9d44f09b0db02332873247a50210a486959ff' (2025-07-27)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5' (2025-07-01)
  → 'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e' (2025-07-21)
• Updated input 'nixpak':
    'github:nixpak/nixpak/19942ded45bd73c74dbb44642406da0569f639a8' (2025-07-10)
  → 'github:nixpak/nixpak/fedd4b59b7c8f18be508dee9d89985a8501982d0' (2025-07-24)
• Updated input 'nixpak/flake-parts':
    'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5' (2025-07-01)
  → 'github:hercules-ci/flake-parts/644e0fc48951a860279da645ba77fe4a6e814c5e' (2025-07-21)
• Updated input 'nixpak/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/231726642197817d20310b9d39dd4afb9e899489' (2025-05-23)
  → 'github:hercules-ci/hercules-ci-effects/5f2e09654b2e70ba643e41609d9f9b6640f22113' (2025-07-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0' (2025-07-08)
  → 'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/9b008d60392981ad674e04016d25619281550a9d' (2025-07-08)
  → 'github:nixos/nixpkgs/648f70160c03151bc2121d179291337ad6bc564b' (2025-07-28)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0' (2025-07-08)
  → 'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/88983d4b665fb491861005137ce2b11a9f89f203' (2025-07-08)
  → 'github:nixos/nixpkgs/13e8d35b7d6028b7198f8186bc0347c6abaa2701' (2025-07-26)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/fc02ee70efb805d3b2865908a13ddd4474557ecf' (2025-07-23)
  → 'github:nixos/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727' (2025-07-28)
• Updated input 'polybar-themes':
    'github:adi1090x/polybar-themes/ccf23ef328f1e988650487c40678c6953038e2b2' (2025-06-26)
  → 'github:adi1090x/polybar-themes/e6326ff356b296256b7fac9c5bcc42a1ef4a4d5b' (2025-07-26)
2025-07-30 10:57:05 +08:00
Ryan Yin
8124b9ffa9 feat: neovim - use nixd as nix lsp 2025-07-30 10:57:05 +08:00
Ryan Yin
77c9514b88 feat: gnome-keyring - add gui app 2025-07-29 13:47:14 +08:00
Ryan Yin
bc2523302d fix: waybar - network & battery 2025-07-28 19:59:58 +08:00
Ryan Yin
31c1139dbd feat: replace cppnix with lix 2025-07-28 14:26:09 +08:00
Ryan Yin
32fa706f9f feat: apple touchbar - add keys 2025-07-26 17:03:29 +08:00
Ryan Yin
18cabc994c feat: shoukei - add x64 support via binfmt 2025-07-26 17:03:29 +08:00
Ryan Yin
4bb92855e7 fix: aarch64-linux - start chromium & telegram on startup 2025-07-26 17:03:29 +08:00
Ryan Yin
fa7bfabf48 doc: apple touchbar 2025-07-25 22:49:53 +08:00
Ryan Yin
9bd5c5b727 fix: apple silicon (#205)
* fix: pavucontrol on apple-silicon

* fix: apple-silicon - touchbar
2025-07-25 22:37:50 +08:00
Ryan Yin
88f85bb5d7 feat: hyprland - use chromium on aarch64-linux 2025-07-25 13:55:31 +08:00
Ryan Yin
70154b0652 feat: use chromium on aarch64-linux 2025-07-25 13:53:19 +08:00
Ryan Yin
e226d4b28f chore: add static ip for shoukei 2025-07-25 13:48:04 +08:00
Ryan Yin
58dc1d49f6 docs: README - minor changes 2025-07-25 12:32:00 +08:00
Ryan Yin
90f36202a9 docs: mkpasswd - add link to man page 2025-07-17 23:09:16 +08:00
Ryan Yin
9548fef641 docs: mkpasswd 2025-07-17 23:07:33 +08:00
Ryan Yin
e0fe69b887 feat: add security tools 2025-07-17 22:42:21 +08:00
Ryan Yin
d3c4fd6aa3 feat: preservation - add nix cache to reduce ram usage 2025-07-17 20:21:38 +08:00
Ryan Yin
d51025fc6b feat: using claude-code with kimi k2 2025-07-17 15:29:04 +08:00
Ryan Yin
737b892bad flake.lock: Update
Flake lock file updates:

• Updated input 'mysecrets':
    'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=a914c8281a8ad1df332cfcaf9a1024ecb7ccd9d3&shallow=1' (2025-07-12)
  → 'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=a231913597362c15c71fd9212cef5092ae85a64c&shallow=1' (2025-07-16)
2025-07-17 15:29:04 +08:00
Ryan Yin
2e8ec1406e fix(home/darwin): aerospace - clash-verge 2025-07-17 13:09:14 +08:00
Ryan Yin
c231ba66f8 chore: nushell do not use history.txt now 2025-07-16 23:00:23 +08:00
Ryan Yin
2af4b221a7 chore: persistent cache & uv's env 2025-07-16 22:53:59 +08:00
Ryan Yin
29372222e4 feat: add pipx & uv for python 2025-07-16 22:44:17 +08:00
Ryan Yin
653f1586c3 fix: persistent claude-code & gemini-cli's state 2025-07-16 22:34:47 +08:00
Ryan Yin
99cd3f8936 chore: remove gemini, install it via npm instead 2025-07-16 22:25:15 +08:00
Ryan Yin
f51f364cfa feat(home/linux/base): make npm install -g <pkg> happey 2025-07-16 22:25:15 +08:00
Ryan Yin
ec6211ff5c chore: minor refactor 2025-07-16 22:25:15 +08:00
Ryan Yin
7b5c7064e0 feat: hyprland - touchpad for macbook 2025-07-15 16:22:24 +08:00
Ryan Yin
a30535af6a feat: apple-silicon - try to use m2's gpu 2025-07-15 14:47:42 +08:00
Ryan Yin
28dee2775c fix: wechat - input method 2025-07-15 10:12:52 +08:00
Ryan Yin
173aa199e1 chore: hyprland - add wechat into windowrules 2025-07-15 10:02:04 +08:00
Ryan Yin
f9456a3861 chore: hyprland - adjust window rules 2025-07-15 09:53:10 +08:00
Ryan Yin
c715b34439 chore: aerospace - adjust window rules 2025-07-15 09:42:00 +08:00
Ryan Yin
20685f8927 Merge pull request #195 from ryan4yin/apple-silicon
feat: remove x86_64-darwin, add new nixos host on macbook pro m2
2025-07-13 10:53:43 +08:00
Ryan Yin
bccf7db486 fix: foot - disable dpi-aware 2025-07-13 04:08:10 +08:00
Ryan Yin
c612aa73de fix: shoukei - monitor scale 2025-07-13 04:03:56 +08:00
Ryan Yin
cdb8eb26be chore: update flake.lock 2025-07-13 03:56:24 +08:00
Ryan Yin
50451d9da9 fix: shoukei - filter packages that do not support aarch64 2025-07-13 02:49:36 +08:00
Ryan Yin
ae0158b226 fix: shoukei - allowUnsupportedSstem 2025-07-13 02:42:32 +08:00
Ryan Yin
fde384a626 fix: shoukei - asahi-fwextract 2025-07-13 02:37:56 +08:00
Ryan Yin
710ddc3263 fix: shoukei - filter packages that do not support aarch64 2025-07-13 02:33:52 +08:00
Ryan Yin
264611e334 fix: shoukei - hardening 2025-07-13 02:12:24 +08:00
Ryan Yin
cc82892eb7 fix: enable steam only on x86_64 platform 2025-07-13 02:02:30 +08:00
Ryan Yin
e6f0569fd3 flake.lock: Update
Flake lock file updates:

• Updated input 'mysecrets':
    'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=6339faf0195d803c9ff4a2df6f6810be8101bf96&shallow=1' (2025-06-07)
  → 'git+ssh://git@github.com/ryan4yin/nix-secrets.git?ref=refs/heads/main&rev=a914c8281a8ad1df332cfcaf9a1024ecb7ccd9d3&shallow=1' (2025-07-12)
2025-07-13 01:51:06 +08:00
Ryan Yin
8528c6e573 fix: shoukei - hardcode nameservers 2025-07-13 01:28:10 +08:00
Ryan Yin
a6d54395d3 fix: nixos-installer - enable sshd 2025-07-13 01:25:37 +08:00
Ryan Yin
323aaf0ac0 fix: preserve iwd's data 2025-07-13 00:56:09 +08:00
Ryan Yin
3561426a11 fix: docs & /boot 2025-07-13 00:52:53 +08:00
Ryan Yin
9dcafa8cc9 fix: nixos-installer - peripheralFirmwareDirectory 2025-07-13 00:22:11 +08:00
Ryan Yin
c55b1c6712 fix: nixos-installer - disable canTouchEfiVariables, add iwd 2025-07-12 23:59:38 +08:00
Ryan Yin
635e38c275 fix: nixos-installer - missing nixos-apple-silicon 2025-07-12 23:52:12 +08:00
Ryan Yin
a1014361a3 fix: nixos-installer - attribute 'age' missing 2025-07-12 23:47:48 +08:00
Ryan Yin
db82d2d8c5 feat: remove x86_64-darwin, add new nixos host on macbook pro m2 2025-07-12 23:30:52 +08:00
Ryan Yin
77a792710a docs: outputs 2025-07-12 16:55:41 +08:00
Ryan Yin
ba8b99105b docs: macOS 2025-07-12 16:54:43 +08:00
Ryan Yin
0c7e43a21b feat: add sandboxed wechat (#196) 2025-07-12 16:49:45 +08:00
Ryan Yin
9d0a3df9f9 docs: nushell config.nu 2025-07-12 15:44:00 +08:00
Ryan Yin
f6a5d75f4f Merge pull request #203 from ryan4yin/catppuccin
refactor: theme - catppuccin-mocha
2025-07-12 15:31:17 +08:00
Ryan Yin
649e10525e fix: zellij - theme 2025-07-12 15:28:42 +08:00
Ryan Yin
5f68f9281f fix: zellij 2025-07-12 15:28:05 +08:00
Ryan Yin
5e311c6e42 fix: Error installing file '.config/mako/config' outside $HOME 2025-07-12 15:17:59 +08:00
Ryan Yin
c8a790f2cf fix: Error installing file '.config/mako/config' outside $HOME 2025-07-12 15:08:36 +08:00
Ryan Yin
fcbbfefedc feat: justfile - commit-lock-file 2025-07-11 14:40:33 +08:00
Ryan Yin
716c8baf65 flake.lock: Update
Flake lock file updates:

• Updated input 'ghostty':
    'github:ghostty-org/ghostty/8e14d262752ef02fdf5838eea5157cf46b668615?narHash=sha256-v9OPz%2BSCTSDCgdxrRQqukWsEWkJ4pNuZN20t766rt2E%3D' (2025-07-03)
  → 'github:ghostty-org/ghostty/4aa28988a6ddd9aa8b3402e4bab05ad02a0c12c6?narHash=sha256-6Fiy%2Bicid2rKXL9oKcRd3zuITSwtdnShqCPp0Evt3fM%3D' (2025-07-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/83f978812c37511ef2ffaf75ffa72160483f738a?narHash=sha256-3q35cq6BPuwIRL3IoVKYPc72r3OleeuRyf4YAPjEqzA%3D' (2025-07-04)
  → 'github:nix-community/home-manager/fab659b346c0d4252208434c3c4b3983a4b38fec?narHash=sha256-knafgng4gCjZIUMyAEWjxxdols6n/swkYnbWr%2BoF%2B1w%3D' (2025-07-11)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/d00203f8630983aadb57cfde60b481cd97d06659?narHash=sha256-IXBLUCMTKaMzbbs5SOqH7FEI9fRwOi3ZP6LKjttnO5o%3D' (2025-07-03)
  → 'github:fufexan/nix-gaming/62f976ed47de88323770646a9a92e4912d33585f?narHash=sha256-p2zkn8fdLvZ19MgAA5CdiuQWQ/gE3YNg1Nhbm4EAflI%3D' (2025-07-11)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569?narHash=sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98%3D' (2025-06-08)
  → 'github:hercules-ci/flake-parts/77826244401ea9de6e3bac47c2db46005e1f30b5?narHash=sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ%3D' (2025-07-01)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/656a64127e9d791a334452c6b6606d17539476e2?narHash=sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc%3D' (2025-06-01)
  → 'github:nix-community/nixpkgs.lib/14a40a1d7fb9afa4739275ac642ed7301a9ba1ab?narHash=sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo%3D' (2025-06-29)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/80d50fc87924c2a0d346372d242c27973cf8cdbf?narHash=sha256-3u6rEbIX9CN/5A5/mc3u0wIO1geZ0EhjvPBXmRDHqWM%3D' (2025-06-27)
  → 'github:NixOS/nixpkgs/c860cf0b3a0829f0f6cf344ca8de83a2bbfab428?narHash=sha256-4E7wWftF1ExK5ZEDzj41%2B9mVgxtuRV3wWCId7QAYMAU%3D' (2025-07-04)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/ee07ba0d36c38e9915c55d2ac5a8fb0f05f2afcc?narHash=sha256-Obh50J%2BO9jhUM/FgXtI3he/QRNiV9%2BJ53%2Bl%2BRlKSaAk%3D' (2025-05-19)
  → 'github:nix-community/nixos-generators/032decf9db65efed428afd2fa39d80f7089085eb?narHash=sha256-PeSkNMvkpEvts%2B9DjFiop1iT2JuBpyknmBUs0Un0a4I%3D' (2025-07-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/497ae1357f1ac97f1aea31a4cb74ad0d534ef41f?narHash=sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE%2BJ9w%3D' (2025-07-02)
  → 'github:NixOS/nixos-hardware/7ced9122cff2163c6a0212b8d1ec8c33a1660806?narHash=sha256-gATnkOe37eeVwKKYCsL%2BOnS2gU4MmLuZFzzWCtaKLI8%3D' (2025-07-09)
• Updated input 'nixpak':
    'github:nixpak/nixpak/9361c8e7d5d43c64d60d2d858d2ed754f549b969?narHash=sha256-ejnxldFzqwnY791ycFOxqtPswYZ6dVtj2G4GfhSL4Fo%3D' (2025-07-03)
  → 'github:nixpak/nixpak/19942ded45bd73c74dbb44642406da0569f639a8?narHash=sha256-mbAHO0rZDBdSosV4LIk9s/3IH1ZhQY9ELixieo%2BiEns%3D' (2025-07-10)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0?narHash=sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X%2BxgOL0%3D' (2025-07-08)
• Updated input 'nixpkgs-darwin':
    'github:nixos/nixpkgs/d55716bb59b91ae9d1ced4b1ccdea7a442ecbfdb?narHash=sha256-QWJ%2BNQbMU%2BNcU2xiyo7SNox1fAuwksGlQhpzBl76g1I%3D' (2025-07-02)
  → 'github:nixos/nixpkgs/9b008d60392981ad674e04016d25619281550a9d?narHash=sha256-mgFxAPLWw0Kq%2BC8P3dRrZrOYEQXOtKuYVlo9xvPntt8%3D' (2025-07-08)
• Updated input 'nixpkgs-ollama':
    'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0?narHash=sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X%2BxgOL0%3D' (2025-07-08)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/b43c397f6c213918d6cfe6e3550abfe79b5d1c51?narHash=sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y%3D' (2025-06-29)
  → 'github:nixos/nixpkgs/88983d4b665fb491861005137ce2b11a9f89f203?narHash=sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4%2Bf9C1mZQ%3D' (2025-07-08)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:nixos/nixpkgs/9807714d6944a957c2e036f84b0ff8caf9930bc0?narHash=sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X%2BxgOL0%3D' (2025-07-08)
2025-07-11 14:40:25 +08:00
Ryan Yin
90d411b943 fix(darwin): homebrew renamed some casks 2025-07-04 17:48:52 +08:00
Ryan Yin
468e9483cf fix(darwin): revert nixpkgs-darwin, add clash-verge-rev 2025-07-04 17:42:53 +08:00
Ryan Yin
c4a33c55aa feat: open ports for testing 2025-07-04 17:09:48 +08:00
Ryan Yin
1e937dc832 chore: udpate flake.lock 2025-07-04 10:06:47 +08:00
Ryan Yin
8af80214f5 feat: neo-tree.nvim - do not hide dotfiles 2025-07-02 21:18:09 +08:00
Ryan Yin
a144093227 feat: allow to modify /etc/hosts for testing 2025-07-01 16:20:52 +08:00
Ryan Yin
0a05224ffe chore: neovim - update plugins 2025-07-01 16:19:38 +08:00
Ryan Yin
f766a3b196 fix: neovim - neo-tree 2025-06-30 14:10:17 +08:00
Ryan Yin
58225d7978 feat: justfile - clean 2025-06-29 15:16:29 +08:00
Ryan Yin
ffee47a2de chore: replace impermanence with preservation (#201) 2025-06-29 15:08:12 +08:00
Ryan Yin
0004bccc9d feat: hosts/k8s - fix k3s cidr (#200) 2025-06-29 15:00:53 +08:00
Ryan Yin
aaabb5ed76 feat: hosts/k8s - replace impermanence with preservation (#199) 2025-06-29 14:56:08 +08:00
Ryan Yin
dd008c3363 chore: hyprland - no_update_news=true 2025-06-29 14:01:33 +08:00
Ryan Yin
8690978d7e feat: replace impermanence with preservation (#198)
* feat: replace impermanence with preservation

* fix: This module cannot be used with scripted initrd.

* fix: permission for /var/lib/private

* chore: boot.initrd.systemd.enable

* docs: boot.initrd.luks.devices.<name>.fallbackToPassword is implied by systemd stage 1

* fix: typo
2025-06-29 13:02:36 +08:00
Ryan Yin
763167ce0d feat: replace docker with podman, fix justfile for nixpkgs-review (#197) 2025-06-29 10:32:32 +08:00
Ryan Yin
85039dd975 feat: justfile - commands for nixpkgs review 2025-06-28 15:18:34 +08:00
Ryan Yin
908d52365b chore: gemini-cli - update 2025-06-28 13:03:07 +08:00
Ryan Yin
0694dcad94 chore: update flake inputs 2025-06-28 12:23:17 +08:00
Ryan Yin
7d0da19a63 feat: idols-ai - persist aliyun's config 2025-06-28 11:47:59 +08:00
Ryan Yin
194b1db1d2 refactor: hosts/idols-ai/impermanence.nix 2025-06-28 11:46:09 +08:00
Ryan Yin
cc0b099d63 feat: add gemini-cli 2025-06-27 00:39:20 +08:00
Ryan Yin
623e697343 fix: github cli 2025-06-23 15:54:06 +08:00
Ryan Yin
9aa0ff80ae feat: update flake.lock
fix: issues introduced by the update
chore: --use-remote-sudo is deprecated, use --sudo instead
2025-06-23 15:27:18 +08:00
Ryan Yin
4ec26c5e5f refactor: fonts (#194) 2025-06-22 20:13:50 +08:00
Ryan Yin
5716831d6c chore: fonts - remove unused fonts, add mono fonts for cjk
feat: more fontconfig parameters
2025-06-22 19:30:28 +08:00
Ryan Yin
df06a1d7e4 fix: kmscon - show neo-tree icons
fix: darwin fonts

chore: fonts - add Sarasa Gothic
2025-06-22 17:40:59 +08:00
Ryan Yin
923fd7ae7d fix: firefox/chrome - render English's sigle quota correctly 2025-06-22 16:21:26 +08:00
Ryan Yin
970d3f9343 chore: kubectl-ai 2025-06-22 11:48:04 +08:00
Ryan Yin
5ec74c3ff5 fix: hyprland - float zoom workspace 2025-06-20 13:43:24 +08:00
Ryan Yin
17301d503c docs: hardening - more references 2025-06-19 20:45:11 +08:00
Ryan Yin
84a123b917 docs: hardening 2025-06-19 20:43:46 +08:00
Ryan Yin
c8a714a05e chore: remove firejail 2025-06-19 20:01:33 +08:00
Ryan Yin
8584c3c98b fix: nixpaks - access gtk/hyprland portals 2025-06-19 00:14:19 +08:00
Ryan Yin
9849923180 refactor: nixpak apps 2025-06-19 00:13:49 +08:00
Ryan Yin
20194262f2 feat: nixpaks - add music/video dirs for firefox & qq 2025-06-19 00:04:58 +08:00
Ryan Yin
8ba75c5128 fix: nixpaks.firefox - browserpass extension 2025-06-19 00:03:39 +08:00
Ryan Yin
915af0c868 fix: hyprland - windowrule for zoom meeting 2025-06-18 13:08:31 +08:00
Ryan Yin
37813ce6f1 chore: neovim - Lazy Update 2025-06-16 21:39:43 +08:00
Ryan Yin
8e67a6d825 fix: neovim - neo-tree.nvim - hidden files 2025-06-16 21:39:22 +08:00
Ryan Yin
4c8b973e2c chore: nix flake update 2025-06-16 21:25:57 +08:00
Ryan Yin
fb0f89d975 feat: fcitx5 - wayland support 2025-06-14 20:32:15 +08:00
Ryan Yin
710f547074 docs: fcitx5 rime-data 2025-06-14 20:28:13 +08:00
Ryan Yin
50feead9e8 feat: darwin - add a menu bar manager 2025-06-10 00:14:16 +08:00
Ryan Yin
de1513587a feat: alacritty - do not show title bar & window title 2025-06-09 23:52:59 +08:00
Ryan Yin
a86789c5b8 feat: kitty - do not show title bar & window title 2025-06-09 23:46:56 +08:00
Ryan Yin
e46d101c9f feat: darwin - add cursor ai editor 2025-06-09 23:27:13 +08:00
Ryan Yin
217a624bc7 feat: darwin - use tailscale app instead of cli version 2025-06-09 22:05:21 +08:00
Ryan Yin
7087ef3024 docs: tailscale 2025-06-09 10:16:24 +08:00
Ryan Yin
e84d88fdc9 fix: loki-operational - trail comma 2025-06-09 03:12:22 +08:00
Ryan Yin
d450dc1704 chore: grafana-loki - add route=otlp_v1_logs 2025-06-09 03:10:03 +08:00
Ryan Yin
8a2ff48bbc chore: grafana-loki - remove promtail related charts 2025-06-09 03:06:36 +08:00
Ryan Yin
d8d7010dc0 fix: loki-operational 2025-06-09 03:02:18 +08:00
Ryan Yin
f03183e2d9 fix: loki-mixin - remove label - job (#193) 2025-06-09 02:57:00 +08:00
Ryan Yin
c1959ee0b9 feat: grafana datasource - add loki 2025-06-08 20:05:25 +08:00
Ryan Yin
a6ea7f5d77 chore: vmagent remote write via https, disable http access 2025-06-08 19:13:15 +08:00
Ryan Yin
a37d99f069 chore: remove the unused loki buckets 2025-06-08 19:13:15 +08:00
Ryan Yin
7c2de23806 chore: minio bucket loki - add lifecycle rules 2025-06-08 19:13:15 +08:00
Ryan Yin
e12afe7cea feat: infra - remove openobserve, add loki 2025-06-08 19:13:15 +08:00
Ryan Yin
77ed0378d1 feat: IPv6 (#192)
* feat: custom ipv6 routes for all hosts
* fix: ipv6 - k3s+cilium
2025-06-08 19:12:55 +08:00
Ryan Yin
10924e67e1 feat: avante.nvim - update providers 2025-06-07 16:09:32 +08:00
Ryan Yin
285662df1e feat: persistent joplin & cursor's config 2025-06-07 11:40:54 +08:00
Ryan Yin
a2101bd74f chore: update nvim plugins 2025-06-07 11:05:17 +08:00
Ryan Yin
4fb61ddc59 fix: hyprland with nvidia 2025-06-07 11:04:55 +08:00
Ryan Yin
a3e99c913f chore: idols-ai - disable hdr for all monitors 2025-06-07 09:50:50 +08:00
Ryan Yin
d2a6f28043 feat: git - use iso format for date 2025-06-06 09:07:16 +08:00
Ryan Yin
04c3c88152 feat(modules/nixos/remote-desktop): enable tailscale & sunshine 2025-06-05 10:59:17 +08:00
Ryan Yin
c4e268682a fix: google-chrome CVE 2025-06-05 10:59:17 +08:00
Ryan Yin
c070abe60e feat: update all nixpkgs inputs 2025-06-05 10:59:17 +08:00
Ryan Yin
f6b2e42776 chore(nixos): brew - use bfsu mirror 2025-06-05 10:49:44 +08:00
Ryan Yin
0c9ad09cf2 fix: idols-ai - persist work code 2025-06-03 17:21:18 +08:00
Ryan Yin
c7e6ef3293 fix: idols-ai - disable dhcp 2025-06-03 17:06:58 +08:00
Ryan Yin
0eca8029f1 chore: persist gcloud's data 2025-06-03 16:42:23 +08:00
Ryan Yin
67609dfd9f fix: persist zoom's config 2025-06-03 15:38:29 +08:00
Ryan Yin
72403971ed feat: nixos desktop - add flatpak 2025-06-03 14:33:50 +08:00
Ryan Yin
72572a87d6 chore: persist zoom's data 2025-06-03 11:42:38 +08:00
Ryan Yin
39c98598d5 chore: use chrome by default 2025-06-03 11:38:41 +08:00
Ryan Yin
88cee1016d chore: adjust hypridle's timeout 2025-06-02 21:49:26 +08:00
Ryan Yin
7b5b23ce29 docs: IPv6AcceptRA 2025-06-02 17:41:18 +08:00
Ryan Yin
fa2e7ae0a4 feat: idols-ai - set ipv6 routes & link-local address 2025-06-02 17:34:54 +08:00
Ryan Yin
34297e2cd6 fix: hyprdile - do not suspend the system due to issues with HDR+hyprland 2025-06-02 14:43:38 +08:00
Ryan Yin
db711d5ff8 fix: nvim - update depends, remove img-clip.nvim due to performance issues 2025-06-02 14:17:12 +08:00
Ryan Yin
756ccca234 chore: hyprland - remove some unused keybindings 2025-06-02 11:26:10 +08:00
Ryan Yin
ca627a1b28 feat: hyprland - launch my daily-used apps at startup 2025-06-02 10:59:04 +08:00
Ryan Yin
bc36220606 fix: flameshot have issues on wayland with dual monitors, remove it 2025-06-01 22:23:30 +08:00
Ryan Yin
c6113d6f28 feat: waybar - start via systemd, update config 2025-06-01 20:42:45 +08:00
Ryan Yin
d8ba9671fc fix: hyprland - windowrules 2025-06-01 20:04:22 +08:00
Ryan Yin
b065d3381f feat: hyprland - bind workspaces to monitors 2025-06-01 19:47:19 +08:00
Ryan Yin
3818f9dabf feat: gammastep - adjust temperature 2025-06-01 19:33:11 +08:00
Ryan Yin
a97baf175c feat: gammastep - do not adjust brightness via gamma 2025-06-01 19:19:58 +08:00
Ryan Yin
49796cdc50 feat: idols-ai - dual monitor with hdr enabled 2025-06-01 19:10:52 +08:00
Ryan Yin
fa9aaa6d27 feat(home/linux/gui/hyprland): hypridle & windowrules & keybindings 2025-06-01 14:42:20 +08:00
Ryan Yin
41be352b2c chore(home/linux/gui/hyprland): keybindings for audio/backlight 2025-06-01 10:56:07 +08:00
Ryan Yin
4c38a38848 chore: remove lisp 2025-06-01 10:22:47 +08:00
Ryan Yin
127a4362b5 chore: remove idea ide 2025-06-01 10:15:37 +08:00
Ryan Yin
fcb1f200ed chore: remove duplicated config for foot terminal 2025-06-01 01:39:34 +08:00
Ryan Yin
a17afea08c chore: remove cursor ai editor 2025-06-01 01:32:56 +08:00
Ryan Yin
4080bad9df chore(home/linux/gui/hyprland): remove scripts & unused packages, use hyprlock & hypridle 2025-06-01 01:10:07 +08:00
Ryan Yin
0342d55c4f chore(home/linux/gui/hyprland): remove script for brightness adjustment 2025-05-31 23:47:00 +08:00
Ryan Yin
b612932b17 chore(home/linux/gui/hyprland): remove music player - mpd 2025-05-31 23:39:15 +08:00
Ryan Yin
e53e7d80e4 refactor(home/linux/gui/hyprland): refactor hyprland config 2025-05-31 23:20:45 +08:00
Ryan Yin
8b2842026a chore: remove xorg server 2025-05-31 21:35:04 +08:00
Ryan Yin
b1eede94f6 fix(home): Please remove all nixpkgs options when using home-manager.useGlobalPkgs 2025-05-31 20:33:17 +08:00
Ryan Yin
cc1004bf29 chore: remove insecure packages 2025-05-31 12:40:18 +08:00
Ryan Yin
fa21a9b7ec chore: update flake inputs, fix error: substituteAll has been removed. 2025-05-31 12:11:47 +08:00
Ryan Yin
927d97deed chore: comment out inputs for waydroid 2025-05-31 12:07:04 +08:00
Ryan Yin
c88a7a6723 feat(home/linux/gui): zoom-us - support xdg-desktop-portal-hyprland 2025-05-31 12:03:03 +08:00
Ryan Yin
149f06c645 refactor(modules/nixos/desktop): xdg.nix 2025-05-31 11:41:49 +08:00
Ryan Yin
fff0dc22c2 feat(home/linux/gui/base/xdg): adjust mimeApps 2025-05-31 11:31:53 +08:00
Ryan Yin
a250432a59 feat: add zoom-us for meeting 2025-05-31 11:15:19 +08:00
Ryan Yin
3a41b2b2cf fix: wayland - xdgOpenUsePortal 2025-05-31 11:13:22 +08:00
Ryan Yin
2645d9e279 feat(home/linux/gui/base/fcitx5): default to en-us instead of rime 2025-05-31 11:07:49 +08:00
Ryan Yin
c539962c96 fix: flameshot on hyprland 2025-05-30 21:52:25 +08:00
Ryan Yin
4a4427cf2d chore: update mysecrets 2025-05-29 17:51:31 +08:00
Ryan Yin
6090b28a98 fix: programs.home-manager.enable is useless when use hm as a nixos module 2025-05-29 17:48:10 +08:00
Ryan Yin
8dee9864fc feat: neovim - update avante.nvim & ollama 2025-05-29 17:42:59 +08:00
Ryan Yin
413cc67a4a chore: remove alias-for-work.bash 2025-05-29 17:41:44 +08:00
Ryan Yin
f5f8b1ecc3 feat(hardening/nixpaks): adjust app's direcotry permission 2025-05-29 12:06:18 +08:00
Ryan Yin
e370856b94 feat(home/base/tui/cloud): add terraform cli config file 2025-05-29 11:10:23 +08:00
Ryan Yin
60f57b6ea2 fix: zoxide not a directory - https://github.com/nix-community/home-manager/issues/6856 2025-05-22 10:20:45 +08:00
Ryan Yin
e95476d7b4 fix: kubectl-ai version, remove broken app - gowin-eda-edu-ide 2025-05-22 10:20:09 +08:00
Ryan Yin
50c911ea2d Merge pull request #188 from ryan4yin/xdg-terminal-exec
feat(nixos): desktop - Add xdg-terminal-exec #185
2025-05-21 13:20:07 +08:00
Ryan Yin
978ebab16f Merge pull request #189 from ryan4yin/nixos-25.05
feat: bump to nixos 25.05
2025-05-21 13:12:59 +08:00
Ryan Yin
e4d2eb35dc fix: revert stateVersion to 24.11 for some servers 2025-05-21 12:54:45 +08:00
Ryan Yin
dc4a7d8827 fix(darwin): darwin-rebuild - unknown option 2025-05-21 12:54:29 +08:00
Ryan Yin
c99e1378c5 fix(darwin): run darwin-rebuild using sudo 2025-05-21 12:49:25 +08:00
Ryan Yin
19faab32f7 fix(darwin): nix-darwin - activation option & zsh option 2025-05-21 12:49:25 +08:00
Ryan Yin
69e0572df1 fix(nixos): remove ventoy(insecure) & aseprite, fix warnings 2025-05-21 12:41:53 +08:00
Ryan Yin
a2007fd88c feat: bump to nixos 25.05 2025-05-21 12:16:00 +08:00
Ryan Yin
d66ca3680c feat(home/base): replace tldr with tealdeer, add more nu_scripts 2025-05-21 11:58:30 +08:00
Ryan Yin
4c474f399c feat(home/base/core/container): more kubectl plugins 2025-05-21 11:10:31 +08:00
Ryan Yin
bee1ef06a4 fix(hosts/idols-ai): ssh key name 2025-05-20 11:14:56 +08:00
Ryan Yin
9649a79e75 feat(home/base/tui/zellij): update config 2025-05-20 11:14:56 +08:00
Ryan Yin
e2a0d429de feat(darwin): aerospace - update config 2025-05-20 09:02:19 +08:00
Ryan Yin
822a17861a feat(nixos): desktop - Add xdg-terminal-exec #185 2025-05-17 08:54:45 +08:00
Ryan Yin
9919ac8811 chore(darwin): aerospace - adjust fallback behavior 2025-05-16 23:30:16 +08:00
Ryan Yin
26384a73ed refactor(ssh): system-level ssh known_hosts & ssh config 2025-05-16 00:28:40 +08:00
Ryan Yin
b44d277072 feat(ssh): Using SSH over the HTTPS port for GitHub, refactor ssh config (#187) 2025-05-16 00:24:46 +08:00
Ryan Yin
43721fba8a chore(darwin): add lm-studio 2025-05-15 17:30:22 +08:00
Ryan Yin
9a2883f5de chore(darwin): aerospace - system settings 2025-05-14 21:50:35 +08:00
Ryan Yin
377b37ef0f chore(darwin): aerospace - joplin 2025-05-13 16:43:38 +08:00
Ryan Yin
0fe00c237b fix(darwin): aerospace - do not move security agent to other workspace 2025-05-13 16:12:19 +08:00
Ryan Yin
277ef1d04b fix: google gcloud sdk 2025-05-13 16:03:02 +08:00
Ryan Yin
b0e3794734 chore(darwin): add gcloud 2025-05-13 15:57:13 +08:00
Ryan Yin
e151d3b488 Merge pull request #186 from ryan4yin/darwin-frieren
feat(darwin): new host - frieren
2025-05-13 15:31:21 +08:00
Ryan Yin
2ba35fd07f feat(darwin): adjust aerospace 2025-05-13 14:20:33 +08:00
Ryan Yin
7e5e1a99df feat(neovim): update lock file 2025-05-13 14:00:42 +08:00
Ryan Yin
db4811ed88 fix(darwin): rekey secrets 2025-05-13 13:44:06 +08:00
Ryan Yin
92a6a7ebc8 fix(darwin): homebrew/services was deprecated 2025-05-13 13:09:16 +08:00
Ryan Yin
e13079f7a8 feat(darwin): new host - frieren 2025-05-13 13:07:47 +08:00
Ryan Yin
65e1ea4fc5 chore: darwin - add zoom 2025-05-01 18:19:15 +08:00
Ryan Yin
8c40436e41 feat(idols-ai): add ollama 2025-04-30 14:03:21 +08:00
Ryan Yin
25e1604cda feat: avante.nvim - add qwen3 2025-04-30 09:36:10 +08:00
Ryan Yin
cbc5b55ec2 chore: update alias-for-work 2025-04-30 09:29:45 +08:00
Ryan Yin
eeba466cda fix(kubevirt lab): secrets 2025-04-27 21:39:55 +08:00
Ryan Yin
15ec912368 feat: avante.nvim - more custom models 2025-04-27 18:17:37 +08:00
Ryan Yin
1c02730d1d fix(lib): k3s+multus-cni - k3s changes its path for cni plugin binaries 2025-04-27 09:23:15 +08:00
Ryan Yin
dc7bac0025 feat: darwin - add joplin 2025-04-24 16:55:31 +08:00
Ryan Yin
8fff2bd556 chore: update secrets 2025-04-23 21:37:49 +08:00
Ryan Yin
5dc287dde7 chore: avante.nvim - add openrouter 2025-04-23 21:29:09 +08:00
Ryan Yin
a60671a983 feat: avante.nvim - auto_suggestion 2025-04-20 12:29:37 +08:00
Ryan Yin
75081d1d5a fix: avante.nvim 2025-04-20 12:29:37 +08:00
Ryan Yin
15628b667a chore(home): upgrade python to python3.13 2025-04-19 22:30:39 +08:00
Ryan Yin
4465b0388e chore: zellij - do not show startup tips 2025-04-19 22:26:41 +08:00
Ryan Yin
c872728eea fix: empty-directory does not have the meta.mainProgram attribute 2025-04-19 22:24:59 +08:00
Ryan Yin
f1a3aa0e9c chore(darwin): remove ibkr 2025-04-19 22:12:24 +08:00
Ryan Yin
49ed072d25 feat: remove emacs 2025-04-19 21:56:26 +08:00
Ryan Yin
aaf499a52c fix: can't use nixpkgs.config and nixpkgs.pkgs at the same time, and other renames 2025-04-19 21:21:27 +08:00
Ryan Yin
9ade06b235 feat: add avante.nvim via astrocommunity plugin 2025-04-15 23:35:20 +08:00
Ryan Yin
dfb26c3b59 feat: nushell - update extraConfig 2025-04-13 19:42:55 +08:00
Ryan Yin
28b642bff1 fix: hyprland v0.48.0 - breaking changes - windowrulev2 2025-04-13 16:40:32 +08:00
Ryan Yin
49de321e32 fix: update nushell config 2025-04-13 16:37:44 +08:00
Ryan Yin
2315c7c1df fix: hyprland v0.48.0 - breaking changes 2025-04-13 16:11:56 +08:00
Ryan Yin
f585ba721a chore: update neovim & nix cache mirror 2025-04-13 16:03:15 +08:00
Ryan Yin
47179e46ba fix: use blender-bin, update cache mirror, disable rustdesk & others. 2025-04-13 15:48:21 +08:00
Ryan Yin
6b2f5542da fix: obs-nvfbc is marked as broken 2025-04-13 14:28:11 +08:00
Ryan Yin
17184d7835 fix: Emacs 29 is removed due to CVEs which are fixed in Emacs 30 2025-04-13 14:26:32 +08:00
Ryan Yin
6e2b2e8dbb fix: anyrun home manager module 2025-04-13 14:24:15 +08:00
Ryan Yin
dc24978eaf chore: udpate flake inputs 2025-04-13 14:17:34 +08:00
Ryan Yin
908656e5d4 feat: add cursor ai editor 2025-04-13 13:42:52 +08:00
Ryan Yin
a69b60bf6e feat: add avante.nvim, remove copilot.lua 2025-04-13 11:21:40 +08:00
Ryan Yin
9d26022139 feat: enable remote desktop - sunshine 2025-03-01 08:47:47 +08:00
Ryan Yin
cfdf12b356 fix: attribute 'nix-access-tokens' missing for homelab 2025-03-01 06:26:23 +08:00
Ryan Yin
417d7ad2d7 feat(modules/darwin): add proxy tool 2025-02-23 14:45:42 +08:00
Ryan Yin
891c70e045 Merge pull request #182 from DataEraserC/patch-3
fix(typo): fix typo in the comment of home/base/tui/editors/neovim/nvim/lua/lazy_setup.lua
2025-02-15 15:24:44 +08:00
Sacabambaspis
18485a5530 fix(typo): fix typo in the comment of home/base/tui/editors/neovim/nvim/lua/lazy_setup.lua 2025-02-15 15:09:13 +08:00
Ryan Yin
8ff415a55f feat: darwin - add app - ibkr 2025-01-31 01:04:46 +08:00
Ryan Yin
7e4c6de8cc Merge pull request #179 from ryan4yin/ghostty
feat: add ghostty
2025-01-29 14:40:48 +08:00
Ryan Yin
0cac8e1763 feat: ghostty - use nushell 2025-01-29 14:40:00 +08:00
Ryan Yin
ec2d41742c fix: ghostty - darwin 2025-01-29 14:33:41 +08:00
Ryan Yin
b30199c437 feat: add ghostty 2025-01-29 13:58:07 +08:00
Ryan Yin
a3aa2db0f1 Reinit fern (#181)
* chore: update flake.lock, reinit macbook-fern

* fix: darwin - use XDG base directories, fix secrets

* fix(NixOS): update lanzaboote
2025-01-29 13:54:35 +08:00
Ryan Yin
3ad2a334c9 fix(NixOS): update lanzaboote 2025-01-29 13:51:43 +08:00
Ryan Yin
935c80ef5a fix: darwin - use XDG base directories, fix secrets 2025-01-27 13:15:14 +08:00
Ryan Yin
7c493445a2 polish: gpg's docs 2025-01-27 12:56:28 +08:00
Ryan Yin
922a59a68b chore: update flake.lock, reinit macbook-fern 2025-01-26 19:54:43 +08:00
Ryan Yin
7deed26cc5 chore: update flake.lock & fix issues (#180) 2025-01-22 11:42:23 +08:00
Ryan Yin
2a21d77f33 feat(home/base/gui): add zed-editor 2024-12-09 20:39:32 +08:00
Ryan Yin
113b764052 Merge pull request #178 from OpusNano/main
Correct typos in README.md
2024-12-07 21:56:57 +08:00
OpusNano
df13f1b0c3 Correct typos in README.md
- Changed "checkout" to "check out."
- Corrected "hardwares" to "hardware."
- Fixed the typo "deplyment" to "deployment."
- Added a space in "ISO image(purest installation method)."
2024-12-07 14:43:07 +01:00
Ryan Yin
0a9697352b fix: darwin - nix-access-token 2024-11-29 23:48:42 +08:00
Ryan Yin
6fc0c5bcc2 fix: upgrade zellij to 0.41.2 to fix keybinding 2024-11-29 23:34:05 +08:00
Ryan Yin
f0576ecc88 fix: nix-access-token - permission 2024-11-29 23:26:54 +08:00
Ryan Yin
d5e6432efa fix: comment cava out 2024-11-29 22:08:46 +08:00
Ryan Yin
921df30ef0 fix: nerdfonts has been refactored 2024-11-28 21:47:20 +08:00
Ryan Yin
ab5a154de8 chore: switch to nixos-unstable, update flake.lock 2024-11-28 21:14:57 +08:00
Ryan Yin
28b20d279e chore(home/darwin): proxy - mkOutOfStoreSymlink 2024-11-28 10:06:22 +08:00
Ryan Yin
071b91758e feat(darwin/aerospace): move-node-to-workspace & float 2024-11-28 10:01:56 +08:00
Ryan Yin
870ca80869 fix: typo 2024-11-27 16:24:24 +08:00
Ryan Yin
366aef4d2c fix: EDITOR, replace neofetch with fastfetch 2024-11-26 09:51:42 +08:00
Ryan Yin
1955875498 docs(EDITOR): by default, do not load neovim's user config 2024-11-25 20:18:32 +08:00
Ryan Yin
102ec54f82 security(EDITOR): by default, do not load neovim's user config 2024-11-25 20:17:45 +08:00
Ryan Yin
cc44f41584 chore: nvim - lazy-lock.json 2024-11-25 16:21:36 +08:00
Ryan Yin
d82119183c feat(justfile): list services by pattern systemd-* 2024-11-25 09:31:40 +08:00
Ryan Yin
1cd6c0b124 fix(tmpfiles rule): do not remove the contents of the directory 2024-11-25 09:22:25 +08:00
Ryan Yin
595f76e120 feat(home/base/tui/editors): replace rsync by config.lib.file.mkOutOfStoreSymlink 2024-11-22 18:55:25 +08:00
Ryan Yin
961d24c80a fix: neovim lsp for python 2024-11-22 15:11:39 +08:00
Ryan Yin
4ed9432280 fix: pip mirror url 2024-11-22 15:01:03 +08:00
Ryan Yin
3daf799be2 fix(darwin): errors after bump version 2024-11-22 14:03:29 +08:00
Ryan Yin
0683ef0a13 chore: bump nixpkgs to 24.11 2024-11-22 13:58:51 +08:00
Ryan Yin
97f1a6a950 chore: update some mirrors for both nix & homebrew 2024-11-22 13:55:47 +08:00
Ryan Yin
4503964146 fix(secrets/nixos): assertion 2024-11-17 21:31:53 +08:00
Ryan Yin
2eb37b34ea chore(neovim): ruff_lsp & bufls is deprecated 2024-11-16 00:36:38 +08:00
Ryan Yin
c768073783 feat: persist qq's data 2024-11-14 00:08:16 +08:00
Ryan Yin
ab8fd424d8 feat: add WeChat(UOS) sandboxed
fix: mkdir - persist qq's config
feat: update kernel params for nvidia
2024-11-14 00:00:22 +08:00
Ryan Yin
fd776a0c0a chore(terminals/foot.nix): adjust font size 2024-11-14 00:00:22 +08:00
Ryan Yin
0a957dab79 fix(nvim): copilot.lua - encoding 2024-11-14 00:00:22 +08:00
Ryan Yin
7c35aca631 fix: aerospace - replace wezterm by alacritty 2024-11-14 00:00:21 +08:00
Ryan Yin
a2bc3c4292 feat: update justfile 2024-11-14 00:00:21 +08:00
Ryan Yin
86d6f88484 fix(darwin): update alacritty & zellij 2024-11-14 00:00:21 +08:00
Ryan Yin
4cbc4a2724 feat(hyprland): use foot as the default terminal emulator 2024-11-14 00:00:10 +08:00
Ryan Yin
39fc4a118f feat: add alacritty 2024-11-13 23:59:44 +08:00
Ryan Yin
ab3c88b071 feat: add foot terminal 2024-11-13 23:59:44 +08:00
Ryan Yin
5efb1f69df chore: remove wezterm, it's broken currently https://github.com/NixOS/nixpkgs/issues/336069 2024-11-13 23:59:44 +08:00
Ryan Yin
4417c0dde4 docs: hyprland 2024-11-13 23:59:44 +08:00
Ryan Yin
fdfbe202cd chore(kitty): update deprecated option 2024-11-13 23:59:44 +08:00
Ryan Yin
dd8259ed85 feat: troubleshooting agenix 2024-11-13 23:59:44 +08:00
Ryan Yin
7429aab2aa chore: use upstream's victoriametrics module 2024-11-13 23:59:44 +08:00
Ryan Yin
73ebd9ecb4 feat: update hugo 2024-11-13 23:59:44 +08:00
Ryan Yin
e5cb040f29 chore: comment nix-gaming 2024-11-13 23:59:43 +08:00
Ryan Yin
90c55009e0 fix: zellij+kitty: https://github.com/zellij-org/zellij/issues/3592 2024-11-12 21:15:29 +08:00
Ryan Yin
290e813677 fix: hyprland - https://github.com/hyprwm/Hyprland/issues/7971 2024-11-12 20:38:04 +08:00
Ryan Yin
6bbd73c245 chore: update depcrated options 2024-11-12 01:17:52 +08:00
Ryan Yin
bdf4d46be8 fix: nushell config 2024-11-11 18:31:45 +08:00
Ryan Yin
b8d03dedb6 chore: comment out my cache server 2024-11-11 17:25:20 +08:00
Ryan Yin
dffb641f04 chore: cuda is cached at nix-community.cachix.org now
https://github.com/nix-community/infra/pull/1335
2024-11-11 17:24:12 +08:00
Ryan Yin
f8a8ae8d13 feat: update flake inputs, fix issues 2024-11-11 17:20:26 +08:00
Ryan Yin
c56676eec3 fix: typo 2024-11-10 11:55:32 +08:00
Ryan Yin
140d0c7c3d chore: update flake.lock 2024-11-09 21:11:44 +08:00
Ryan Yin
72b25cee70 fix(home/base/gui/terminal/wezterm): failed to compile on x86_64-darwin 2024-11-07 22:13:51 +08:00
Ryan Yin
199aca18d1 docs(templates/bevy): update nixpkgs to use the latest darwin_sdk 2024-11-07 15:30:12 +08:00
Ryan Yin
28d66fef04 feat(templates/bevy): update nixpkgs to use the latest darwin_sdk 2024-11-07 15:28:42 +08:00
Ryan Yin
984fac8469 docs: hardening 2024-11-06 11:49:44 +08:00
Ryan Yin
b940146aec docs: hardening 2024-11-06 11:40:36 +08:00
Ryan Yin
7ff4338475 feat: add rustc 2024-11-02 22:44:10 +08:00
Ryan Yin
30947c3ded chore: update sftpgo & victoriametrics
fix: home-manager
2024-11-01 00:08:41 +08:00
Ryan Yin
e4c256145b fix: victoriametrics (#172)
* chore: update aqua's host key

* fix: victoriametrics

* feat: adjust order of nix cache mirrors

* feat: update mysecrets

* fix: use bind mount - Failed at step STATE_DIRECTORY
2024-10-31 23:29:27 +08:00
Ryan Yin
7c18b85f30 chore: darwin - remove some unused apps 2024-10-31 14:16:33 +08:00
Ryan Yin
f2825513c0 feat: adjust btrbk - decrease snapshots count 2024-10-31 00:08:54 +08:00
Ryan Yin
1e33fd1e17 feat: update victoriametrics 2024-10-31 00:08:54 +08:00
Ryan Yin
0d7b4ac928 chore: remove discord app, use the web version instead 2024-10-30 17:17:22 +08:00
Ryan Yin
34072df760 feat: migrate from prometheus to victoriametrics (#171)
* feat: migrate from prometheus to victoriametrics

* fix: duplicated declaration

* fix: victoriametrics - isSystemUser

* fix: import promTypes

* fix: vmalert

* fix(victoriametrics): cli args
2024-10-23 23:22:08 +08:00
Ryan Yin
0fb0601a24 fix(darwin): wezterm - terminfo 2024-10-23 15:17:58 +08:00
Ryan Yin
051c37ad29 docs: remove tor browser 2024-10-22 09:58:06 +08:00
Ryan Yin
c6f81aa2b8 feat: persiste ldtk's config folder 2024-10-20 23:11:03 +08:00
Ryan Yin
aa35fce12a feat: game dev 2024-10-20 23:01:43 +08:00
Ryan Yin
47e1ca61c3 chore: upgrade sops 2024-10-10 11:32:24 +08:00
Ryan Yin
76a18e6ed6 feat: add tor-browser 2024-10-09 11:46:16 +08:00
Sacabambaspis
ae229e568f fix(typo): fix typo in the comment of modules/nixos/desktop/virtualisation.nix (#169) 2024-10-07 20:29:52 +08:00
Sacabambaspis
0ed219db34 fix: ignore typo daed (#168) 2024-09-27 09:06:05 +08:00
Ryan Yin
698bd14c47 docs: README 2024-09-26 23:11:08 +08:00
Ryan Yin
b9cb86c8e3 docs: hardening 2024-09-26 16:19:49 +08:00
Sacabambaspis
acc4f4eda7 fix(comment): fix a typo (#167) 2024-09-26 10:53:44 +08:00
Ryan Yin
fed81fad1c Merge pull request #166 from ryan4yin/nixpaks
feat: nixpakd-firefox
2024-09-25 19:54:43 +08:00
Ryan Yin
4236df4281 fix: nixpaks - font 2024-09-25 19:49:53 +08:00
Ryan Yin
ae289ab869 fix: libEGL warning: egl: failed to create dri2 screen 2024-09-25 19:47:14 +08:00
Ryan Yin
9197bc7f0d docs(templates/bevy): use rust-analyzer-nightly for better type inference 2024-09-22 23:57:34 +08:00
Ryan Yin
f85982c8ea feat(templates/bevy): add support for darwin, and use rust-analyzer-nightly for better type inference 2024-09-22 23:56:20 +08:00
Ryan Yin
b82395d603 docs: fix style 2024-09-22 22:55:10 +08:00
Ryan Yin
37be74746f fix: steam - games failed to start 2024-09-22 02:47:16 +08:00
Ryan Yin
00a9c844d3 fix: hyprland - remove non-exist variables 2024-09-20 19:45:26 +08:00
Ryan Yin
5a8ef54c3b feat(darwin): brew install --cask blender@lts 2024-09-20 09:52:01 +08:00
Ryan Yin
19a917f1d9 fix: blender runtime crash - https://github.com/NixOS/nixpkgs/pull/340100
fix:  advanced-scene-switcher failed to compile, persist blender user directory
2024-09-20 00:07:09 +08:00
Ryan Yin
9b9ad93a88 feat(hosts/idols-ai): enable cudaSupport globally 2024-09-19 21:50:11 +08:00
Ryan Yin
e03a86b461 chore: ‘gnome.gnome-settings-daemon’ was moved to top-level 2024-09-19 21:47:06 +08:00
Ryan Yin
4e8e7ecef2 chore(neovim): lsp - tsserver => ts_ls 2024-09-19 08:36:41 +08:00
Ryan Yin
5f42a1442e feat(neovim): enable inlay_hints - neovim v0.10+ 2024-09-19 08:33:00 +08:00
Ryan Yin
3c4de12ebf feat(neovim): rustlsp 2024-09-19 08:21:56 +08:00
Ryan Yin
94e04bfbcc fix(home/darwin): shell.nix 2024-09-18 21:53:15 +08:00
Ryan Yin
aa9c1a4829 feat: add templates for bevy 2024-09-18 20:25:35 +08:00
Ryan Yin
7438aa04ea feat: update rust toolchain 2024-09-16 13:13:21 +08:00
Ryan Yin
b364181dd6 fix: eval tests 2024-09-16 12:53:58 +08:00
Ryan Yin
2abea4e387 refactor: add localBin, goBin & rustBin into PATH env 2024-09-16 12:42:41 +08:00
Ryan Yin
5895d7c97d fix: gitignore - do not ignore 'core/' dir & 'core.nix' 2024-09-16 12:41:22 +08:00
Ryan Yin
498d76d803 feat: impermenance - add cargo/m2/gradle's home dir 2024-09-16 11:44:47 +08:00
Ryan Yin
6aef21ec8f fix: revert nix to 2.22 to avoid CVE-2024-45593 2024-09-11 23:40:22 +08:00
Ryan Yin
d20d46606d fix: idols-ai - nvidia 2024-09-11 22:50:26 +08:00
Ryan Yin
46ed22565d fix: kubevirt-shoryu - disable home-manager 2024-09-09 17:27:54 +08:00
Ryan Yin
e1cbaf6a1a fix: gitea - root url 2024-09-09 16:28:02 +08:00
Ryan Yin
6bded49335 feat: gitea - use scrypt instead of pbkdf_v2 2024-09-09 16:22:49 +08:00
Ryan Yin
cb79cd4d5a feat: update homepage dashboard 2024-09-09 15:57:25 +08:00
Ryan Yin
4f93202864 fix: p8s oom - increase zramSwap percentage 50 => 100 2024-09-09 03:44:02 +08:00
Ryan Yin
00b9c7e805 fix: postgres - permission 2024-09-09 01:29:53 +08:00
Ryan Yin
0f5568f4ff feat: flake update 2024-09-09 01:02:50 +08:00
Ryan Yin
f097312145 docs: infra-as-code 2024-09-06 20:02:15 +08:00
Ryan Yin
68fa7360ff feat: add infra's terraform configs (#164)
* feat: add infra's terraform configs

* feat: add databases for openobserve - multi clusters

* fix: openobserve's db name
2024-09-06 20:01:00 +08:00
Ryan Yin
2b47447f0b docs: nixos-hardening - current status 2024-09-06 00:03:46 +08:00
Ryan Yin
6942e54b28 fix: error: attribute 'packages' missing 2024-09-06 00:01:09 +08:00
Ryan Yin
df9ca7aefa feat: hardening nixos desktops (#160)
* feat: hardening nixos desktops

* refactor: move hardening to the root folder

* feat: add nixpaks into nixpkgs via overlays

* feat: nixpak - add netease music

* docs: hardening

* fix: nvidia

* fix: disable apparmor & hardening profile to avoid neovim being killed

* fix: firefox cursor & fonts
2024-09-05 23:59:39 +08:00
Ryan Yin
773688a9e5 docs: ebpf tools 2024-09-03 23:08:58 +08:00
Ryan Yin
5e66e8cf2a feat: add bcc 2024-09-03 23:08:10 +08:00
Ryan Yin
fde21e5039 chore: adjust bpf tools 2024-09-03 23:04:29 +08:00
Ryan Yin
bc0781e97a feat: add ebpf related tools 2024-09-03 22:46:37 +08:00
Ryan Yin
7ba567b0bd fix: virtualisation.docker.enableNvidia is deprecated 2024-09-03 22:46:08 +08:00
Ryan Yin
a0372eb24c fix: virtualisation.docker.enableNvidia is deprecated 2024-09-03 22:38:38 +08:00
Ryan Yin
cf34ea047c Add postgresql (#163)
* feat: add postgresql

* feat: add grafana dashbaord, fix exporter
2024-09-03 14:32:20 +08:00
Ryan Yin
a1789eebff refactor: remove i3 (#162) 2024-09-03 00:06:34 +08:00
Ryan Yin
07b74cd2e5 feat: add minio (#161)
* feat: add minio

* fix: minio's reverse proxy

* fix: minio secrets & reverse proxy
2024-09-02 18:28:56 +08:00
Ryan Yin
2ff2c56fae feat: add scheme langserver 2024-08-29 15:36:21 +08:00
Ryan Yin
cca62222ef feat(home/base/tui/edistors/neovim): adjust mason.nvim 2024-08-29 11:11:04 +08:00
Ryan Yin
a422cfadc0 fix(home/base/tui/editors/neovim): use append for mason in PATH 2024-08-28 17:00:12 +08:00
Ryan Yin
8ff5b91a0a docs: jsutfile 2024-08-28 11:55:56 +08:00
Ryan Yin
8b6d3e6034 feat(darwin): update aerospace's config 2024-08-28 11:42:33 +08:00
Ryan Yin
08895478a4 feat(darwin): auto upgrade homebrew 2024-08-27 23:46:25 +08:00
Ryan Yin
9f7a56bc37 feat(darwin): migrate to aerospace 2024-08-27 18:45:59 +08:00
Ryan Yin
49f002ca5b feat: disable waydroid - it's somehow buggy 2024-08-26 22:36:26 +08:00
Ryan Yin
30a288bdb3 fix: waydroid 2024-08-26 22:36:02 +08:00
Ryan Yin
11af465bd1 chore(modules/nixos/desktop): disable libvirtd & lxd, I'm not using them 2024-08-26 21:19:14 +08:00
Ryan Yin
a02097f7d7 chore(modules/nixos): adjsut boot.loader.timeout 2024-08-26 20:56:45 +08:00
Ryan Yin
00b6f97ddd feat: upgrade k3s to 1.30 2024-08-26 19:01:23 +08:00
Ryan Yin
482e88613d feat: grafana - add kubevirt dashbaords 2024-08-26 17:07:17 +08:00
Ryan Yin
831fb2dd82 fix: istio grafana dashboard - waypoint 2024-08-20 16:01:45 +08:00
Ryan Yin
e61ed83bf1 feat: add istio 1.23's grafana dashboards (#159) 2024-08-20 12:21:05 +08:00
Ryan Yin
3c6d78537b feat: change promehteus's state dir 2024-08-19 17:32:31 +08:00
Ryan Yin
7e402ed9c8 feat: victorica-metrics & prometheus - remote write 2024-08-19 15:47:46 +08:00
Ryan Yin
b3a7da8301 feat: add just & nushell in nixos module 2024-08-19 15:04:42 +08:00
Ryan Yin
e28c7565d7 polish: README for secrets 2024-08-18 15:01:13 +08:00
Ryan Yin
0693713e94 feat: list systemd services 2024-08-17 20:40:27 +08:00
Ryan Yin
1bf67acde9 fix: hdd storage - auto unlock after booted (#158) 2024-08-17 04:05:22 +08:00
Ryan Yin
f1a5d419fb fix: hdd storage - do not unlock on boot, increase boot.loader.timeout 2024-08-17 03:06:37 +08:00
Ryan Yin
e8be41f8e1 Merge pull request #156 from ryan4yin/data-crypted
feat: data-crypted
2024-08-17 02:28:12 +08:00
Ryan Yin
d853036fb1 feat: data-crypted 2024-08-17 02:26:39 +08:00
Ryan Yin
df1f9b0070 chore: remove sbc's just commands 2024-08-16 15:13:21 +08:00
Ryan Yin
4def213b08 Merge pull request #155 from ryan4yin/remove-sbcs
refactor: migrate sbcs to https://github.com/ryan4yin/nixos-config-sbc
2024-08-16 15:08:12 +08:00
Ryan Yin
35eb6ed5c9 refactor: migrate sbcs to https://github.com/ryan4yin/nixos-config-sbc 2024-08-16 15:06:24 +08:00
Ryan Yin
07178984b1 Merge pull request #154 from ryan4yin/refactor-vars
refactor: migrate ssh auth keys & hashed password into vars
2024-08-16 14:40:54 +08:00
Ryan Yin
eb83e88267 refactor: migrate ssh auth keys & hashed password into vars 2024-08-16 14:40:06 +08:00
Ryan Yin
6c8e8111c6 docs: dae - comment 2024-08-16 11:46:37 +08:00
Ryan Yin
62e96cde7e feat: dae - avoid rate limit of GitHub API & Docker Hub API 2024-08-16 11:44:30 +08:00
Ryan Yin
4bb53d0190 feat: justfile - gc 2024-08-15 22:50:20 +08:00
Ryan Yin
41af2c1444 Merge pull request #152 from ryan4yin/kubevirt-hugepages
feat: kubevirt - use 75% of the memory for hugepages
2024-08-15 22:50:05 +08:00
Ryan Yin
43db6bcf63 feat: kubevirt - use 75% of the memory for hugepages 2024-08-15 17:19:26 +08:00
Ryan Yin
e17bc1ec23 feat: neovim - tree-sitter - just 2024-08-12 18:30:26 +08:00
Ryan Yin
c9954c009a chore: justfile - gc - delete old than 7 days 2024-08-12 17:56:46 +08:00
Ryan Yin
e68a43edce docs: justfile - nix gc 2024-08-12 17:51:02 +08:00
Ryan Yin
08a6885873 feat: justfile - nix gc 2024-08-12 17:44:37 +08:00
Ryan Yin
930d8322d1 feat: use the latest version of neovim 2024-08-12 17:18:59 +08:00
Ryan Yin
2363ab59c4 chore: add default to just 2024-08-12 17:18:18 +08:00
Ryan Yin
1394e26a59 chore: update flake.lock 2024-08-12 17:18:02 +08:00
Ryan Yin
940367c790 chore: update scripts 2024-08-12 15:17:38 +08:00
Ryan Yin
cae48ede1b fix: update ntp time servers 2024-08-11 20:18:20 +08:00
Ryan Yin
9535c09a33 feat: add kubectx 2024-08-06 15:13:54 +08:00
Ryan Yin
194c3d9895 chore: remove some unused just commands 2024-08-01 10:14:54 +08:00
Ryan Yin
a8f613ead1 docs: justfile 2024-08-01 10:11:56 +08:00
Ryan Yin
5d69019f60 docs: virtual machine 2024-08-01 10:03:12 +08:00
Ryan Yin
648021b0ca docs: virtual machine 2024-08-01 10:02:49 +08:00
Ryan Yin
c30730bedd docs: virtual machine 2024-08-01 09:58:42 +08:00
Ryan Yin
e9b502fa5f feat: yazi & neovim - show shidden files 2024-08-01 09:44:02 +08:00
Ryan Yin
3e2340aee7 feat: adjust configs for gitea 2024-07-31 23:18:52 +08:00
Ryan Yin
94c8eef2cb Merge pull request #151 from ryan4yin/homepage
feat: adjust homepage config
2024-07-31 23:04:01 +08:00
Ryan Yin
2581c9d562 feat: adjust homepage config 2024-07-31 23:03:07 +08:00
Ryan Yin
3aaa4c0372 Merge pull request #150 from ryan4yin/p8s-scrape-configs
refactor: p8s scrape configs
2024-07-31 21:41:19 +08:00
Ryan Yin
c446a693ea refactor: p8s scrape configs 2024-07-31 19:22:01 +08:00
Ryan Yin
9b0c5d7d50 Merge pull request #149 from ryan4yin/fix-nodejs-based-apps
fix: fix nodejs-based apps
2024-07-31 17:19:49 +08:00
Ryan Yin
86ee8132b7 fix: homelab - use https 2024-07-31 17:19:35 +08:00
Ryan Yin
2f3d644234 fix: fix nodejs-based apps 2024-07-31 17:09:20 +08:00
Ryan Yin
87dfa7669f Merge pull request #145 from ryan4yin/migrate-services-to-aqua
feat: migrate grafana & prometheus to aqua
2024-07-31 16:22:27 +08:00
Ryan Yin
64dd1fc2f3 fix: typo 2024-07-31 16:20:32 +08:00
Ryan Yin
fc81143c10 chore: update mysecrets 2024-07-31 16:01:02 +08:00
Ryan Yin
5178a3e638 fix: sftpgo - directory 2024-07-31 15:52:41 +08:00
Ryan Yin
b3127a18c9 fix: uptime kuma 2024-07-31 15:42:40 +08:00
Ryan Yin
15e0b150e9 fix: home page 2024-07-31 15:38:48 +08:00
Ryan Yin
41dc24e350 feat: aqua - no fail if usb storage is not available 2024-07-31 15:07:53 +08:00
Ryan Yin
8c795c7d0d feat: change data directories, add disko for usb storage 2024-07-31 14:29:21 +08:00
Ryan Yin
b671c05db9 feat: migrate services to aqua 2024-07-31 14:29:21 +08:00
Ryan Yin
80e0bcf031 fix: nix path 2024-07-31 14:28:40 +08:00
Ryan Yin
64ab375d1f feat: update shell sessin 2024-07-31 14:09:53 +08:00
Ryan Yin
325f82b9cc fix: nix path (#147) 2024-07-31 13:39:49 +08:00
Ryan Yin
59a46844a7 fix: justfile & nushell - should use absolute path 2024-07-31 11:22:17 +08:00
Ryan Yin
5e21effb15 refactor: just - emacs reload for linux & macos 2024-07-31 11:08:07 +08:00
Ryan Yin
1e7b9697e1 feat: check process environment variables 2024-07-31 10:56:29 +08:00
Ryan Yin
422ec75ec0 refactor: justfile 2024-07-31 10:56:29 +08:00
Ryan Yin
c059d90b17 feat: aqua - mount usb storage 2024-07-31 09:43:30 +08:00
Ryan Yin
880e0ac65e chore: update public keys 2024-07-30 14:21:07 +08:00
Ryan Yin
ed4a2f00fe chore: nix flake update mysecrets 2024-07-30 14:01:26 +08:00
Ryan Yin
7a1788520b fix: typo 2024-07-30 13:50:32 +08:00
Ryan Yin
e86d7a1020 fix: aqua - networking 2024-07-30 13:48:44 +08:00
Ryan Yin
6670c5bd7d fix: btrbk - kubevirt 2024-07-30 12:41:08 +08:00
Ryan Yin
0620f199b2 feat: update btrbk configs 2024-07-30 11:41:38 +08:00
Ryan Yin
e2457e80aa docs: kubevirt-youko - pci passthrough 2024-07-30 10:22:42 +08:00
Ryan Yin
8ffaf4e3ae feat: decrease pre-allocated hugepages 2024-07-30 01:21:04 +08:00
Ryan Yin
f9d07d92de fix: virt guest - use default gateway for better network 2024-07-30 00:31:37 +08:00
Ryan Yin
2b91c6f99d chore: nix flake update mysecrets 2024-07-30 00:02:55 +08:00
Ryan Yin
fed3bc981b fix: k3s test cluster - token path 2024-07-29 23:42:14 +08:00
Ryan Yin
d02331c1e0 Merge pull request #143 from ryan4yin/kubevirt-hugepages
feat: pre-allocate hugepages for kubevirt
2024-07-29 22:43:28 +08:00
Ryan Yin
5ec72c848f fix: allocate only hugepages with size 1Gi 2024-07-29 22:31:17 +08:00
Ryan Yin
5a6ccd8794 chore: update caddy's vm image path, checksum when uploading 2024-07-29 17:41:51 +08:00
Ryan Yin
3dc7ec1fe8 Merge pull request #141 from DataEraserC/fix-gtk-theme
fix(home/linux/gui/base/gtk.nix): gtk theme name mismatch after upgrade
2024-07-26 16:35:14 +08:00
DataEraserC
414a222d19 fix(home/linux/gui/base/gtk.nix): gtk theme name mismatch after upgrade 2024-07-26 04:28:16 +08:00
Ryan Yin
783d61999c docs: neovim - mason issue about nixos 2024-07-26 00:06:19 +08:00
Ryan Yin
86ec08aecb Merge pull request #140 from ryan4yin/nix-ld
feat: add nix-ld and LIBRARY_PATH for mason.nvim and other downloaded…
2024-07-25 23:27:46 +08:00
Ryan Yin
b7b913b444 feat: add nix-ld and LIBRARY_PATH for mason.nvim and other downloaded binaries 2024-07-25 23:25:33 +08:00
Ryan Yin
aa0e1d84e0 Merge pull request #139 from DataEraserC/patch-11
fix(docs typo):`Morden` -> `Modern`
2024-07-24 08:51:56 +08:00
DataEraserC
94e2e17c60 fix(typo):morden -> modern 2024-07-24 01:45:32 +08:00
Ryan Yin
41f4dc6237 docs: typo 2024-07-23 18:29:01 +08:00
Ryan Yin
d7c0e7caa6 feat(modules/base.nix): add more cache mirrors 2024-07-23 10:00:11 +08:00
Ryan Yin
d8759cc845 feat: darwin - font.packages 2024-07-23 09:49:04 +08:00
Ryan Yin
6c6ada4243 fix: nixos installer 2024-07-23 09:43:46 +08:00
Ryan Yin
95cdd40c77 feat: adjust btrbk's backups preserve policy, and disable backups... 2024-07-21 04:50:09 +08:00
Ryan Yin
a04d6dfdf6 feat: adjust btrbk's snapshot timer 2024-07-21 02:13:24 +08:00
Ryan Yin
adf1415868 docs: minior update 2024-07-20 17:54:25 +08:00
Ryan Yin
b1c6f1b90f Merge pull request #137 from ryan4yin/update
Update dependencies
2024-07-20 12:14:05 +08:00
Ryan Yin
5e9f98e56d fix: anyrun - https://github.com/anyrun-org/anyrun/issues/153 2024-07-20 12:12:57 +08:00
Ryan Yin
885205d9e3 fix: remove non-existent tree sitter 2024-07-20 11:52:56 +08:00
Ryan Yin
385bcd2d87 chore: update graphics config 2024-07-20 11:49:14 +08:00
Ryan Yin
b3b55c36d8 fix: hyprland - crash 2024-07-20 11:43:16 +08:00
Ryan Yin
7d6fa4028d chore: debug hyprland 2024-07-20 11:42:01 +08:00
Ryan Yin
0ea8548f37 fix: remove hyprlnad's flake 2024-07-20 11:42:01 +08:00
Ryan Yin
c29148fc77 fix: update flake again to fix lanzaboote's error 2024-07-20 11:42:01 +08:00
Ryan Yin
1eecf89793 feat: update dependencies 2024-07-20 11:42:01 +08:00
Ryan Yin
5fcf0d0995 refactor(home/base/tui/edistors): neovim - adjust the classification of lsp/treesitter 2024-07-19 18:28:06 +08:00
Ryan Yin
66949f6b8f feat: neovim - add support for nickel 2024-07-19 15:43:50 +08:00
Ryan Yin
36ba5a4efc feat: remove afdian 2024-07-16 14:44:21 +08:00
Ryan Yin
68285a70d0 feat: add idea for java development 2024-07-12 12:20:54 +08:00
Ryan Yin
f97ad2fd1e feat: java language server 2024-07-12 12:09:07 +08:00
Ryan Yin
1d66cf655d feat: add k8s related tools 2024-07-10 15:22:49 +08:00
Ryan Yin
04fa05151a Merge pull request #136 from DataEraserC/patch-11
fix: ignore typo `crypted-nixos`
2024-07-08 09:36:09 +08:00
Sacabambaspis
62d986d1c8 fix: ignore typo crypted-nixos 2024-07-06 18:50:55 +08:00
Ryan Yin
730906ebf2 feat: neovim - add syntax highlight for justfiles 2024-06-28 17:36:40 +08:00
Ryan Yin
bcf5b8b1cb feat: add gitleaks 2024-06-24 09:11:43 +08:00
Ryan Yin
1f14f5899c Merge pull request #135 from DataEraserC/patch-9
fix(docs): update url in docs
2024-06-19 09:29:30 +08:00
Sacabambaspis
9732c87d1f fix(docs): update url in docs 2024-06-18 23:02:27 +08:00
Ryan Yin
032f478d2a docs: neovim 2024-06-18 11:08:23 +08:00
Ryan Yin
71cb1cf295 Merge pull request #134 from ryan4yin/rename-luks-device
chore: rename luks device to crypted-nixos
2024-06-18 09:41:09 +08:00
Ryan Yin
09a9e086d8 chore: rename luks device to crypted-nixos 2024-06-18 09:40:00 +08:00
Ryan Yin
e903f95a46 Merge pull request #133 from yocoldle/patch-1
docs: fix description about the helix plugin system
2024-06-18 09:37:41 +08:00
Coldle
1239f4549a docs: fix description about the helix plugin system 2024-06-17 22:23:47 +08:00
Ryan Yin
4433e018d9 feat: disable treesitter-wing 2024-06-16 21:38:14 +08:00
Ryan Yin
e9ac7d8ddc feat: darwin - timezone 2024-06-16 20:13:53 +08:00
Ryan Yin
cf51e77d75 Merge pull request #132 from ryan4yin/update-flake-lock
Update flake lock, adjust nushell
2024-06-15 11:54:09 +08:00
Ryan Yin
095b092e08 feat: adjust nushell 2024-06-15 11:39:20 +08:00
Ryan Yin
4e4eb9a003 feat: update flake.lock 2024-06-14 17:15:42 +08:00
Ryan Yin
1efe489846 feat: add gcloud & doctl 2024-06-14 15:29:58 +08:00
Ryan Yin
ea13da3031 feat: add ko for go project 2024-06-14 15:26:30 +08:00
Ryan Yin
47a735d235 feat: add dae rules for steam 2024-06-10 20:53:05 +08:00
Ryan Yin
84c4708b98 feat: add kubebuilder 2024-06-04 11:09:37 +08:00
Ryan Yin
12494d66af Merge pull request #130 from DataEraserC/main
fix(docs): fix partition unmatched
2024-06-03 18:40:51 +08:00
Sacabambaspis
97ff571431 fix(docs): fix docs typo 2024-06-03 18:27:41 +08:00
Ryan Yin
c0e3af3fad docs: README 2024-06-03 15:20:19 +08:00
Ryan Yin
bbe2e80650 docs: README 2024-06-03 15:07:17 +08:00
Ryan Yin
5bc941d9e2 docs: README 2024-06-03 15:00:37 +08:00
Ryan Yin
7f6c061041 docs: README 2024-06-03 14:59:56 +08:00
Ryan Yin
b8e45b28e1 docs: README 2024-06-03 14:58:49 +08:00
Ryan Yin
21555a4148 feat(neovim): update plugins - orgmode 2024-06-03 14:33:39 +08:00
Ryan Yin
0f4387800f fix: #122 - cgo-builtin-prolog:1:10: fatal error: 'stddef.h' file not found 2024-06-03 10:11:17 +08:00
Ryan Yin
1095d8fa53 fix: missing pkgs-stable 2024-06-02 14:22:44 +08:00
Ryan Yin
98e2e7196d Merge pull request #129 from ryan4yin/upgrade-to-24.05
feat: upgrade to 24.05
2024-06-02 13:58:13 +08:00
Ryan Yin
0a764cfdf3 fix: python3.11-k5test-0.10.4 is marked as broken 2024-06-02 13:56:51 +08:00
Ryan Yin
54e4dfcec0 chore: update yabai 2024-06-02 13:35:40 +08:00
Ryan Yin
f37588df64 fix: nixpkgs for darwin 2024-06-02 12:59:13 +08:00
Ryan Yin
9adf87aaf5 feat: upgrade to 24.05
fix: remove or update some packages
2024-06-02 11:17:32 +08:00
Ryan Yin
82dccbdeca fix: add exfat support for idols-ai 2024-05-15 20:49:51 +08:00
Ryan Yin
af88851772 feat(modules/base.nix): add cuda-maintainer's cache server 2024-05-14 15:21:01 +08:00
Ryan Yin
b3d7d0d2a3 Merge pull request #128 from shelken/main
chore(Justfile): Use recipe attributes to scope commands on specific platform
2024-05-13 10:49:23 +08:00
shelken
b0fcf9d9e7 chore(Justfile): Use recipe attributes to scope commands on specific platforms
使用
[配方属性](https://github.com/casey/just/tree/master?tab=readme-ov-file#recipe-attributes)
以限定命令使用的平台
2024-05-13 10:01:25 +08:00
Ryan Yin
7bd264fee9 chore: update darwin's home configs 2024-05-11 17:05:28 +08:00
Ryan Yin
2a841a5a32 feat: yazi intergration - nushell 2024-05-11 11:26:09 +08:00
Ryan Yin
e97e61c8d2 feat(home/base/core/git.nix): trim.bases 2024-05-10 15:01:47 +08:00
Ryan Yin
c65018f450 Update FUNDING.yml 2024-05-10 12:14:26 +08:00
Ryan Yin
218ff4c1da Merge pull request #127 from DataEraserC/patch-8
fix(Justfile): fix `'--update-input' is a deprecated alias for 'flake update'`
2024-05-10 09:41:10 +08:00
Sacabambaspis
e26c20a29b fix(Justfile): fix '--update-input' is a deprecated alias for 'flake update' 2024-05-09 22:49:16 +08:00
Ryan Yin
13751a4b66 fix: mason-nvim-dap - debugger not found 2024-05-06 15:06:32 +08:00
Ryan Yin
f4d91b6827 feat: enableNushellIntegration for atuin 2024-05-06 11:59:45 +08:00
Ryan Yin
4f780f3f61 refactor: scripts 2024-05-06 11:59:45 +08:00
Ryan Yin
a626458b8e Merge pull request #126 from DataEraserC/patch-7
fix(secrets/README.md): fix nixpkgs does not contain agenix
2024-05-06 09:33:47 +08:00
Sacabambaspis
87c041f8b4 fix(secrets/README.md): fix nixpkgs does not contain agenix
Closes #125
2024-05-05 18:05:43 +08:00
Ryan Yin
ace653e9d6 Merge pull request #124 from DataEraserC/patch-6
feat: Replace unzip with unzipNLS for proper extraction of non-English content
2024-04-30 13:59:21 +08:00
Sacabambaspis
bb913b181d feat: replace unzip with unzipNLS for proper extraction of non-English content 2024-04-30 00:53:18 +08:00
Ryan Yin
bec52f9d60 feat: update flake.lock, disable all configs related to remote desktop 2024-04-25 21:14:56 +08:00
Ryan Yin
de891782cb fix(home/base/tui/editors/packages.nix): python debugger 2024-04-24 18:34:21 +08:00
Ryan Yin
5abbd63284 docs: fix the maxium keyfile size of luks 2024-04-24 11:22:15 +08:00
Ryan Yin
14dabdcee5 Merge pull request #123 from ryan4yin/fix-nixpkgs-flakes
fix: option `nix.registry.nixpkgs.to.path' has conflicting definition
2024-04-20 14:59:41 +08:00
Ryan Yin
5583f1ffe9 fix: option `nix.registry.nixpkgs.to.path' has conflicting definition 2024-04-20 14:58:49 +08:00
Ryan Yin
6b016a2432 refactor: macos's nixpkgs registry 2024-04-20 14:02:56 +08:00
Ryan Yin
cad8cf325d fix: suzu - deployment - networking 2024-04-20 13:51:11 +08:00
Ryan Yin
9a0e41429a docs: nixos-install + persistent 2024-04-20 13:29:03 +08:00
Ryan Yin
44ce90bf68 docs: nvidia 2024-04-20 13:20:49 +08:00
Ryan Yin
9fe6ef9165 fix: enable networkmanager for idols-ai 2024-04-20 12:51:58 +08:00
Ryan Yin
4b2035a0dc chore: update all flake inputs 2024-04-20 12:48:07 +08:00
Ryan Yin
21d85d41ef feat: use the latest version of the nix package manager 2024-04-18 11:03:49 +08:00
Ryan Yin
7fd3baca0f docs: copy closure 2024-04-17 23:28:59 +08:00
Ryan Yin
ce645e7935 fix: homepage - backgroud image 2024-04-17 23:22:13 +08:00
Ryan Yin
9631334088 Merge pull request #121 from kluen/patch-1
docs(README): Fix links to neovim and emacs
2024-04-16 09:42:41 +08:00
Kristof Lünenschloß
a9bb04c37d docs(README): Fix links to neovim and emacs 2024-04-15 21:48:02 +02:00
Ryan Yin
ddad742023 Merge pull request #120 from DataEraserC/patch-5
fix several typos
2024-04-15 09:47:24 +08:00
Sacabambaspis
21c9e572af fix(home/linux/gui/base/xdg.nix): fix code typo (dekstop -> desktop) 2024-04-14 02:09:28 +08:00
Sacabambaspis
6b2168b925 fix(utils.nu): fix comment typo (Virutal -> Virtual) 2024-04-14 02:09:05 +08:00
Ryan Yin
309469fa85 Merge pull request #118 from ryan4yin/astronvim-v4
feat: upgrade astronvim to v4
2024-04-13 23:12:10 +08:00
Ryan Yin
0e31ec94ce fix: astronvim v4 - none-ls formatting
- https://github.com/nvimtools/none-ls.nvim/issues/58
2024-04-13 23:10:26 +08:00
Ryan Yin
fb6ca6b12d fix: telescope extensions, astrocore & astrolsp 2024-04-13 23:10:26 +08:00
Ryan Yin
a1d827a34e fix: astronvim colorscheme - catppuccin 2024-04-13 23:10:26 +08:00
Ryan Yin
efc524466c chore: remove astronvim from flake inputs 2024-04-13 23:10:26 +08:00
Ryan Yin
fd62548dc0 feat(home/base/tui/editors/neovim): astronvim v4 - comment some demo 2024-04-13 23:10:26 +08:00
Ryan Yin
9a45cc6448 feat(home/base/tui/editors/neovim): astronvim v4 - gT => gy 2024-04-13 23:10:26 +08:00
Ryan Yin
ac844a6a3d feat(home/base/tui/editors/neovim): astronvim v4 - leader => Leader 2024-04-13 23:10:26 +08:00
Ryan Yin
c5dcc7e24d feat(home/base/tui/editors/neovim): upgrade astronvim to v4 2024-04-13 23:10:26 +08:00
Ryan Yin
a593435947 fix: atunin with nushell
https://github.com/ryan4yin/nix-config/issues/119
2024-04-13 23:09:35 +08:00
Ryan Yin
2d5a0c6783 fix: gnupg pinentry, nvtop 2024-04-12 23:15:06 +08:00
Ryan Yin
0b9574d693 fix: 'rnix-lsp' has been removed as it is unmaintained 2024-04-12 23:15:06 +08:00
Ryan Yin
93c423a75b feat: update flake.nix 2024-04-12 23:15:06 +08:00
Ryan Yin
2b75504a22 fix: use hyprland from flake instead of pkgs 2024-04-12 23:15:06 +08:00
Ryan Yin
c0c9ed21ea feat: bump hyprland to v0.38.1 2024-04-12 23:15:06 +08:00
Ryan Yin
33b3f33781 Merge pull request #117 from DataEraserC/patch-4
fix(typo): fix typo in the comment of hosts/idols-ai/home.nix
2024-04-12 22:49:44 +08:00
Sacabambaspis
24248b3536 fix(typo): fix typo in the comment of hosts/idols-ai/home.nix 2024-04-12 22:40:53 +08:00
Ryan Yin
5b2d09d0e7 feat(hosts): cifs mount 2024-04-12 21:29:17 +08:00
Ryan Yin
869aafd25b docs: add todo 2024-04-11 10:50:39 +08:00
Ryan Yin
b8797d5394 Merge pull request #114 from DataEraserC/patch-3
fix(neovim typo): fix typo in the comment of astronvim_user/init.lua
2024-04-11 09:23:25 +08:00
DataEraserC
0bf035ba1a fix(typo): fix typo in the comment of hyprland/conf/scripts/startup 2024-04-11 03:51:46 +08:00
DataEraserC
0b7d6428e0 fix(neovim typo): fix typo in the comment of astronvim_user/init.lua 2024-04-11 01:32:19 +08:00
Ryan Yin
e6f6042c3c fix: remove some broken packages from darwin 2024-04-09 22:35:23 +08:00
Ryan Yin
b8ce5573f5 feat: remove attic, it works not well 2024-04-09 22:35:23 +08:00
Ryan Yin
8c464a9aee Merge pull request #113 from DataEraserC/patch-2
fix(README.md typo): `just hypr-debug`->`just hypr debug`
2024-04-09 10:18:15 +08:00
Sacabambaspis
c78184a6bf fix(README.md typo): just hypr-debug->just hypr debug 2024-04-09 02:16:56 +00:00
Ryan Yin
487d410e70 doc: certs 2024-04-04 10:47:17 +08:00
Ryan Yin
bbb678af00 feat(Justfile): commands for uploading kubevirt images 2024-04-03 21:41:43 +08:00
Ryan Yin
11a4e368d5 Merge pull request #112 from ryan4yin/private-ca
feat: private ca
2024-04-03 17:04:07 +08:00
Ryan Yin
f831061889 feat: add private ca for all internal web services 2024-04-03 16:51:51 +08:00
Ryan Yin
468480b4e7 docs: attic 2024-04-02 14:08:04 +08:00
Ryan Yin
0e31885540 refactor(Justfile): adjust & add some commands 2024-04-02 00:35:17 +08:00
Ryan Yin
e789e5aff3 docs: kubevirt cluster - screentshots 2024-04-02 00:19:36 +08:00
Ryan Yin
a9e3dd0c53 docs: kubevirt installation 2024-04-02 00:12:07 +08:00
Ryan Yin
75202fb46c docs: kubevirt installation 2024-04-02 00:04:09 +08:00
Ryan Yin
ed5328c8de docs: kubevirt installation 2024-04-01 23:39:21 +08:00
Ryan Yin
80c0ab327f docs: kubevirt installation 2024-04-01 23:17:57 +08:00
Ryan Yin
4dc50e7e8c feat(hosts/k8s): kubevirt - set cpu-manager's policy to static for all nodes 2024-04-01 23:12:16 +08:00
Ryan Yin
3bf5ff65de docs: kubevirt - system-reserved 2024-04-01 22:54:34 +08:00
Ryan Yin
4775cc2742 feat(hosts/k8s): kubevirt - set cpu-manager's policy to static 2024-04-01 22:49:07 +08:00
Ryan Yin
34e7e9b2cd feat(modules/nixos/server): add btrbk for aarch64 hosts 2024-04-01 18:37:24 +08:00
Ryan Yin
7396ee0201 docs: attic 2024-04-01 17:47:39 +08:00
Ryan Yin
0082e1ae54 docs: attic 2024-04-01 17:32:13 +08:00
Ryan Yin
f5f27bff96 feat: add home-manager for kubevirt-shoryu 2024-04-01 15:16:35 +08:00
Ryan Yin
347ae9d4b1 feat: add home-manager for rakushun 2024-04-01 15:14:54 +08:00
Ryan Yin
74b948a722 feat: add virt-viewer 2024-04-01 14:38:40 +08:00
Ryan Yin
81b3cd30cc docs: vm 2024-04-01 01:05:44 +08:00
Ryan Yin
5c69d6c22a fix: networkd in kubevirt guest use enp2s0 as ovs interface name 2024-04-01 01:04:59 +08:00
Ryan Yin
33f690388d fix: The option `services.cloud-init.enable' has conflicting definition values 2024-04-01 00:46:36 +08:00
Ryan Yin
2047104704 fix: use networkd for all kubevirt guest 2024-04-01 00:45:40 +08:00
Ryan Yin
c628eaa6c8 fix: run other k3s clusters as kubevirt quests, use the interface provided by kubevirt 2024-04-01 00:39:52 +08:00
Ryan Yin
7486e75016 fix:(modules/nixos/server): The option `boot.loader.timeout' has conflicting definition values 2024-03-31 23:38:42 +08:00
Ryan Yin
8bc96ba0e8 docs: usage of btrbk 2024-03-31 23:06:53 +08:00
Ryan Yin
68629e929c fix: kubevirt - failed to configure vmi network: setup failed, err: pod link (pod6b4853bd4f2) is missing 2024-03-31 22:42:48 +08:00
Ryan Yin
87797d1252 docs: virtual machines running on kubevirt 2024-03-31 17:08:24 +08:00
Ryan Yin
7ef943a7b5 docs: hosts 2024-03-31 17:01:47 +08:00
Ryan Yin
4061d65d60 Merge pull request #110 from ryan4yin/migrate-services-to-aarch
feat: migrate all nixos services from idols to 12kingdoms
2024-03-31 16:53:11 +08:00
Ryan Yin
bf6bc4bee2 feat: migrate all nixos services from idols to 12kingdoms 2024-03-31 16:50:17 +08:00
Ryan Yin
4da995fa88 feat(modules/nixos/base,hosts): add btrbk for filesystem backup 2024-03-31 15:35:08 +08:00
Ryan Yin
56015780e0 chore(modules/nixos): remove useless files 2024-03-31 14:43:54 +08:00
Ryan Yin
ce8b029108 fix(lib): disable ipv6 for all kubevirt nodes 2024-03-30 23:39:18 +08:00
Ryan Yin
95c64ff276 fix(lib): disable dhcpcd for all kubevirt nodes 2024-03-30 23:30:00 +08:00
Ryan Yin
d9c804acca feat(host/k8s,lib): nodeLabels & nodeTaints for k8s 2024-03-30 22:42:21 +08:00
Ryan Yin
e85712ca53 feat(hosts,lib): adjust kernel sysctl for k8s/dae 2024-03-29 23:58:50 +08:00
Ryan Yin
6ae98566ed feat(hosts,lib): use kube-vip for k3s's HA 2024-03-29 22:45:06 +08:00
Ryan Yin
27959277d3 Merge pull request #109 from ryan4yin/kubevirt
feat: add configs for kubevirt-lab-1
2024-03-29 01:38:51 +08:00
Ryan Yin
69fafe0c7c feat: add configs for kubevirt-lab-1 2024-03-29 01:22:47 +08:00
Ryan Yin
8d845f6fd0 Merge pull request #108 from ryan4yin/migrate-services
feat: use suzi as the default gateway
2024-03-27 23:36:48 +08:00
Ryan Yin
ae07e142d7 chore: remove unused dae configs from aqua 2024-03-27 22:04:30 +08:00
Ryan Yin
bdfd583b65 chore: stateversion for microvm 2024-03-27 22:02:14 +08:00
Ryan Yin
565f5c260a fix: dae won't restart after SIGABRT: abort 2024-03-27 21:59:38 +08:00
Ryan Yin
35c6e1cd5d suzu should not rely on itself, change its default gateway 2024-03-27 21:49:04 +08:00
Ryan Yin
304d9ec92a feat: use suzi as the default gateway 2024-03-27 21:39:56 +08:00
Ryan Yin
e37e478a3a Merge pull request #107 from DataEraserC/patch-1
fix(comment typo): souce->source
2024-03-26 19:57:11 +08:00
Sacabambaspis
b8c5210998 fix(comment typo): souce->source 2024-03-26 18:30:38 +08:00
Ryan Yin
20224f0e0a Merge pull request #106 from ryan4yin/migrate-tailscale
feat(hosts/12kingdoms-suzu): migrate tailscale into microvm - mitsuha
2024-03-26 01:10:14 +08:00
Ryan Yin
1ea6062ead feat(hosts/12kingdoms-suzu): migrate tailscale into microvm - mitsuha 2024-03-26 01:04:03 +08:00
Ryan Yin
63ec4d7d65 Merge pull request #104 from ryan4yin/migrate-services
feat: migrate some hosts to microvm
2024-03-26 00:43:59 +08:00
Ryan Yin
50783093c5 fix: rekey secrets for microvm - suzi 2024-03-26 00:39:48 +08:00
Ryan Yin
53d3901e9a feat: dae - arm64 microvm 2024-03-26 00:35:18 +08:00
Ryan Yin
9a01f34197 fix(github action): disable eval checks to avoid stackoverflow 2024-03-25 00:34:18 +08:00
Ryan Yin
f3ef22c58f fix(github action): disable all evalTests to avoid stackoverflow 2024-03-25 00:30:34 +08:00
Ryan Yin
cfc71fc279 Merge pull request #105 from ryan4yin/add-tests-kernel
feat(tests): add simple kernel test
2024-03-25 00:29:30 +08:00
Ryan Yin
d70eaa0b33 fix(tests): error: The option `fileSystems."/run/media/nixos_k3s".mountOptions' does not exist 2024-03-25 00:27:35 +08:00
Ryan Yin
e5606b6619 fix(tests): error: attribute 'rk3588' missing 2024-03-25 00:21:53 +08:00
Ryan Yin
55d0c4f87c fix(outputs/x86-64_linux/tests): conflict filesystem definitions 2024-03-24 23:55:29 +08:00
Ryan Yin
7d577713bb feat(outputs/*/tests): add kernel tests 2024-03-24 23:53:53 +08:00
Ryan Yin
9dbee2c787 Merge pull request #102 from ryan4yin/k3s-test-cluter-running-on-kubevirt
feat: add a test k3s cluster running on kubevirt
2024-03-24 23:38:30 +08:00
Ryan Yin
6f8f8894e5 fix: dae - kernel parameters 2024-03-24 22:03:44 +08:00
Ryan Yin
5524422e6c chore: update comments 2024-03-24 21:27:46 +08:00
Ryan Yin
f150f05af1 feat: bump rk3588's kernel to 6.1 2024-03-24 14:31:00 +08:00
Ryan Yin
2319300f48 feat: add a test k3s cluster running on kubevirt 2024-03-23 02:09:21 +08:00
Ryan Yin
c258b3b1c8 Merge pull request #103 from ryan4yin/refactor-networking-k8s
refactor(vars,hosts): networking & k3s clusters
2024-03-23 01:59:11 +08:00
Ryan Yin
84c21ccd34 refactor(vars,hosts): networking & k3s clusters 2024-03-23 01:52:32 +08:00
Ryan Yin
a3c6532376 fix: k3s - longhorn need nfs client installed 2024-03-22 00:30:51 +08:00
Ryan Yin
2d3818a998 fix(hosts/k8s): kubevirt - multus-cni 2024-03-20 23:04:00 +08:00
Ryan Yin
8e8bcb64a5 revert: revert the last commit 2024-03-19 00:52:19 +08:00
Ryan Yin
c5aa8cd0be docs: nixos + kubernetes, iscsi & multus-cni 2024-03-19 00:50:39 +08:00
Ryan Yin
4b918e51d2 Merge pull request #101 from ryan4yin/k3s-kubevirt
feat: longhorn & iscsi
2024-03-19 00:46:01 +08:00
Ryan Yin
a697ebec17 feat: longhorn & iscsi 2024-03-19 00:42:24 +08:00
Ryan Yin
d94f482c23 refactor(home/linux/desktop): home/linux/desktop => home/linux/gui 2024-03-19 00:14:04 +08:00
Ryan Yin
7d5a04fd38 Merge pull request #99 from ryan4yin/k8s
fix: k3s cluster
2024-03-18 00:55:59 +08:00
Ryan Yin
fbd13d6f00 fix(k3s cluster): fix typo, remove traefik 2024-03-18 00:54:54 +08:00
Ryan Yin
bd555d7e76 Merge pull request #100 from DataEraserC/main
fix(comment typo): creen->screen
2024-03-17 20:04:30 +08:00
DataEraserC
ea70cd9aea fix(comment typo): creen->screen 2024-03-17 14:25:10 +08:00
Ryan Yin
26ee648569 fix(lib/colmenaSystem.nix): value is null while a list was expected 2024-03-17 11:27:46 +08:00
Ryan Yin
9f04e1b382 fix: pre-commit-hooks - broken path 2024-03-17 11:26:00 +08:00
Ryan Yin
0eb83b22f0 chore(All Markdown Files): auto wrap text, fix typos 2024-03-16 19:49:46 +08:00
Ryan Yin
1e38f7bb09 feat(outputs): add pre-commit-hooks for spell checking, markdown linting, etc. 2024-03-16 18:31:47 +08:00
Ryan Yin
9d4b8ef027 docs: update comments 2024-03-15 14:34:42 +08:00
Ryan Yin
d5ea3f0edf Merge pull request #98 from DataEraserC/main
feat(xdg): use imv-dir instead to auto select the directory where the image is located.
2024-03-15 09:35:30 +08:00
Sacabambaspis
d3efa55237 feat(xdg): use imv-dir instead to auto selects the directory where the image is located. 2024-03-15 01:26:44 +08:00
Ryan Yin
88e2c240a6 feat(outputs): pre-commit-check 2024-03-14 22:53:02 +08:00
Ryan Yin
dab163bf23 feat(Justfile): eval tests 2024-03-14 22:46:47 +08:00
Ryan Yin
48f2cfa99c Merge pull request #96 from ryan4yin/darwin-eval-tests
feat(tests): add eval tests for darwin systems
2024-03-14 01:14:42 +08:00
Ryan Yin
a4d3867a73 feat(tests): add eval tests for darwin systems 2024-03-14 01:11:54 +08:00
Ryan Yin
532121ecd4 Merge pull request #95 from ryan4yin/fix-home-manager
fix: macosSystem & colmenaSystem
2024-03-14 01:01:21 +08:00
Ryan Yin
31d83e8afe fix: macosSystem & colmenaSystem 2024-03-14 00:58:33 +08:00
Ryan Yin
1c65d1654a Merge pull request #94 from ryan4yin/add-develop-env-for-ruby
feat: add develop environment for ruby
2024-03-14 00:36:09 +08:00
Ryan Yin
4d3a3750c1 feat: add develop environment for ruby 2024-03-14 00:33:38 +08:00
Ryan Yin
bcc8d2302c docs: tests 2024-03-14 00:01:16 +08:00
Ryan Yin
8a26ec8cfa docs: flake outputs 2024-03-13 23:22:38 +08:00
Ryan Yin
5674b63024 docs: tests 2024-03-13 23:18:14 +08:00
Ryan Yin
0e4b5895b6 docs: fix file tree 2024-03-13 23:08:22 +08:00
Ryan Yin
01fbdf5218 Merge pull request #93 from ryan4yin/nixos-tests
feat(WIP): add nixos tests - integration tests
2024-03-13 23:03:41 +08:00
Ryan Yin
2b91d706b0 feat(WIP): add nixos tests - integration tests 2024-03-13 23:02:28 +08:00
Ryan Yin
55eb63a6bd Merge pull request #92 from ryan4yin/rename-haumea-tests
fix: rename haumea tests
2024-03-13 21:51:09 +08:00
Ryan Yin
6a9afbb9a2 fix: rename unitTests to evalTests 2024-03-13 21:48:09 +08:00
Ryan Yin
5200f001c2 feat: add android-tools 2024-03-13 21:43:08 +08:00
Ryan Yin
a79a64beaf refactor: rename colmena-meta to colmenaMeta 2024-03-13 18:17:48 +08:00
Ryan Yin
bfdf86bf8d Merge pull request #85 from ryan4yin/gitea
feat: gitea
2024-03-13 18:07:28 +08:00
Ryan Yin
05798bb36f feat: gitea 2024-03-13 18:06:35 +08:00
Ryan Yin
44de28ebbc feat: ruby - deploy locally 2024-03-13 17:38:19 +08:00
Ryan Yin
a8678cc217 feat: ruby - add emulated system 2024-03-13 17:33:26 +08:00
Ryan Yin
41a9fe1e4b Merge pull request #90 from ryan4yin/action-triggers
feat: update workflows triggers
2024-03-13 17:29:21 +08:00
Ryan Yin
8eae5e8f09 feat: update workflows triggers 2024-03-13 17:28:45 +08:00
Ryan Yin
adcfb1ccb3 Merge pull request #88 from ryan4yin/unit-tests
Unit tests
2024-03-13 16:45:56 +08:00
Ryan Yin
fff6ad6bff feat: unit tests 2024-03-13 16:44:41 +08:00
Ryan Yin
be963c0642 Merge pull request #87 from ryan4yin/refactor-home-module
refactor: home modules
2024-03-13 16:31:44 +08:00
Ryan Yin
093866a2aa refactor: home modules 2024-03-13 16:31:26 +08:00
Ryan Yin
5234fd7279 fix: typo 2024-03-13 16:04:19 +08:00
Ryan Yin
714293a133 fix: typo 2024-03-13 14:21:18 +08:00
Ryan Yin
0fe886e996 Merge pull request #86 from he0119/patch-1
fix: home-module typo
2024-03-13 13:24:53 +08:00
uy_sun
752c9070f4 fix: home-module typo 2024-03-13 13:22:39 +08:00
Ryan Yin
fa57812c91 Merge pull request #84 from ryan4yin/refactor-darwin-packages
Refactor: Remove darwin packages
2024-03-11 14:17:15 +08:00
Ryan Yin
1437170127 refactor: remove broken packages via overlays 2024-03-11 14:16:19 +08:00
Ryan Yin
66efe2547c docs: flake outputs 2024-03-11 11:57:25 +08:00
Ryan Yin
5af7c7a427 fix: aarch64-darwin - fern 2024-03-11 11:56:33 +08:00
Ryan Yin
655d733a37 docs: how to add new host 2024-03-11 11:42:12 +08:00
Ryan Yin
b29b7e8624 fix: x86_64-darwin - harmonica 2024-03-11 00:28:57 +08:00
Ryan Yin
bd2c3d5902 docs: how to add a new machine 2024-03-10 20:56:54 +08:00
Ryan Yin
06f45bb7b9 docs: update docs 2024-03-10 20:46:36 +08:00
Ryan Yin
864d42397e docs: update docs, remove unused host - chiaya 2024-03-10 20:45:57 +08:00
Ryan Yin
f43f5b14d5 refactor: replace all unserscore(_) with hyphen(-) 2024-03-10 20:18:02 +08:00
Ryan Yin
ebf9a48677 Merge pull request #79 from ryan4yin/filesystem-based-modules
refactor: flake outputs & hosts
2024-03-10 20:13:57 +08:00
Ryan Yin
b382999a70 refactor: Use haumea for filesystem-based module system for flake outputs
refactor: Use hyphen(`-`) for variable names & folder names(except Python), replace all unserscore(`_`) with hyphen(`-`).
2024-03-10 20:12:02 +08:00
Ryan Yin
d7738efed2 Merge pull request #78 from yqlbu/main
fix(secrets/nixos.nix): correct a typo
2024-03-08 23:26:42 +08:00
kev
88358607f2 fix: correct a typo 2024-03-08 23:25:26 +08:00
Ryan Yin
bf3f364f89 Merge pull request #77 from ryan4yin/use-optionals
refactor: use lib.optionals instead of if...then...else
2024-03-08 23:18:41 +08:00
Ryan Yin
3247e4a8e6 refactor: use lib.optionals instead of if...then...else... 2024-03-08 23:16:45 +08:00
Ryan Yin
54c2240be6 feat: update dae & its config 2024-03-08 17:44:25 +08:00
Ryan Yin
2b8d059ecc feat: add gitops tools 2024-03-08 17:06:40 +08:00
Ryan Yin
52d04c1cb1 Merge pull request #75 from ryan4yin/aarch-tmpfs-on-root
feat: aarch64 - tmpfs on root + impermanence
2024-03-07 23:11:23 +08:00
Ryan Yin
5ed77b764f feat: aarch64 - tmpfs on root + impermanence 2024-03-07 23:01:20 +08:00
Ryan Yin
7c91ffb251 Merge pull request #74 from ryan4yin/update-aarch-riscv
feat: UEFI NixOS on aarch64(rk3588)
2024-03-07 22:12:48 +08:00
Ryan Yin
f12e5a4293 fix: broken image link 2024-03-07 22:11:56 +08:00
Ryan Yin
fb9f757519 docs: add other info for orangepi5 & orangepi5 plus 2024-03-07 22:10:44 +08:00
Ryan Yin
606b1d3412 docs: add screenshot for orangepi5 & orangepi5 plus 2024-03-07 22:07:28 +08:00
Ryan Yin
4d0741c841 feat: install nixos on orange pi 5 plus with edk2-rk3588(uefi) 2024-03-07 21:59:23 +08:00
Ryan Yin
efcee11839 docs: README 2024-03-07 17:26:40 +08:00
Ryan Yin
310ac5c3e7 docs: README 2024-03-07 17:12:57 +08:00
Ryan Yin
5a56d4808c fix: enable sudo password - proxmox 2024-03-07 13:00:47 +08:00
Ryan Yin
9385c5dba5 feat: update nixos-licheepi4a 2024-03-07 00:39:28 +08:00
Ryan Yin
ab414236ce fix: steam - cjk fonts 2024-03-06 11:49:53 +08:00
Ryan Yin
b997697aed docs: flake description 2024-03-05 15:16:32 +08:00
Ryan Yin
d59061e526 feat: nix related tools 2024-03-05 14:37:59 +08:00
Ryan Yin
2c8d0f629c fix(security): enable sudo password for ryan, use root for remote deployment 2024-03-04 18:36:59 +08:00
Ryan Yin
2072da67a5 fix(security): enable sudo password for ryan, use root for remote deployment 2024-03-04 18:28:49 +08:00
Ryan Yin
77bd038f32 Merge pull request #73 from ryan4yin/attic
feat: add attic - a self-hosted nix cache server
2024-03-04 02:36:50 +08:00
Ryan Yin
b4015c2189 feat: add attic - a self-hosted nix cache server 2024-03-04 02:35:00 +08:00
Ryan Yin
69a64b209a refactor: packages & fhs 2024-03-04 01:06:13 +08:00
Ryan Yin
c7c771804a refactor: packages & fhs 2024-03-04 01:05:55 +08:00
Ryan Yin
f933146a42 fix: suzu 2024-03-04 00:48:01 +08:00
Ryan Yin
d20760cd61 feat: migrate k8s related configs to another repo 2024-03-03 20:48:32 +08:00
Ryan Yin
5811a41aca fix: dae - cache.nixos.org & analytics.google.com 2024-03-03 20:38:42 +08:00
Ryan Yin
b7845ef85e Merge pull request #71 from ryan4yin/kubevirt
feat: kubevirt on k3s
2024-03-03 20:03:43 +08:00
Ryan Yin
996a27965f feat: kubevirt - add cdi & ovs 2024-03-03 20:01:09 +08:00
Ryan Yin
d3ddf34267 feat: add flake.nix for pulumi 2024-03-03 12:06:29 +08:00
Ryan Yin
f141b49dc3 feat: kubevirt on k3s 2024-03-03 12:06:25 +08:00
Ryan Yin
9914644189 feat: kubevirt on k3s 2024-03-03 12:06:04 +08:00
Ryan Yin
7d56db3e47 fix: pip mirror - sjtu -> ustc 2024-03-03 12:04:10 +08:00
Ryan Yin
dbc5fcbd01 feat: dae - use pr 466 2024-03-03 00:49:06 +08:00
Ryan Yin
b8e580ee5a Merge pull request #72 from DataEraserC/main
Fix boolean expectation error and update conditional checks.
2024-03-03 00:26:50 +08:00
Sacabambaspis
fa5b1b2752 Fix boolean expectation error and update conditional checks. 2024-03-03 00:25:04 +08:00
Ryan Yin
eb75f1fa49 fix: typo 2024-03-02 20:02:44 +08:00
Ryan Yin
8542fef152 docs: README 2024-03-01 10:20:14 +08:00
Ryan Yin
4cf92e7199 fix: dae 2024-03-01 09:43:24 +08:00
Ryan Yin
4d24c74c16 feat: aqua - use dae - pr458 2024-02-29 22:23:55 +08:00
Ryan Yin
1a7e4d52aa feat: add home-manager for host - ruby 2024-02-29 22:04:23 +08:00
Ryan Yin
fcde4b8e83 feat: update ssh.nix 2024-02-28 09:02:24 +08:00
Ryan Yin
3c5f0751f5 docs: speedFactor 2024-02-27 22:24:48 +08:00
Ryan Yin
f4ee1a0685 fix: 'xterm-kitty': unknown terminal type 2024-02-27 22:18:38 +08:00
Ryan Yin
a6499f3cb9 feat: update dae & it's secrets 2024-02-27 22:12:51 +08:00
Ryan Yin
8deb3f809b feat: install colmena & ventoy at user-level 2024-02-27 21:36:23 +08:00
Ryan Yin
bff316ab7e fix: nixpkgs's joplin not work on macOS intel 2024-02-27 21:24:09 +08:00
Ryan Yin
985beb8bd4 feat: increase cache ttl of gnupg-agent 2024-02-23 21:33:39 +08:00
Ryan Yin
629ef6e451 feat: darwin - Disable password authentication for SSH 2024-02-23 20:12:53 +08:00
Ryan Yin
fa492e0b26 feat: add notes for nixos-installer 2024-02-23 19:16:41 +08:00
Ryan Yin
9f0570d367 fix: typo 2024-02-23 12:09:57 +08:00
Ryan Yin
bbe0f29435 feat: adjust wayland related settings for chromium & vscode 2024-02-22 16:14:07 +08:00
Ryan Yin
b047c064d6 chore: polish 2024-02-20 17:54:14 +08:00
Ryan Yin
3b346c4dd9 fix: some packages has been removed from macOS
introduced by ae238d401d
2024-02-20 16:15:21 +08:00
Ryan Yin
ed1b4775eb docs: README 2024-02-20 09:54:18 +08:00
Ryan Yin
0286a84f23 fix: homepage 2024-02-20 01:13:27 +08:00
Ryan Yin
c31525e667 feat: dashy is too slow to start/reload, replace it with homepage-dashboard 2024-02-20 00:46:08 +08:00
Ryan Yin
b50c59d60e Merge pull request #68 from ryan4yin/webdav
feat: webdav server - sftpgo
2024-02-19 22:59:26 +08:00
Ryan Yin
7a229f6e79 feat: webdav provided by sftpgo 2024-02-19 22:57:57 +08:00
Ryan Yin
2cbf8df0fa fix: just homelab 2024-02-19 22:07:31 +08:00
Ryan Yin
533fcb6144 docs: comment 2024-02-19 18:19:52 +08:00
Ryan Yin
f0217c68f5 feat: note-taking - joplin 2024-02-19 15:05:24 +08:00
Ryan Yin
e2f9c59cb6 fix: pulumi - fix go's import paths 2024-02-19 02:30:20 +08:00
Ryan Yin
5a57d97d36 fix: pulumi stack for k3s-prod-1 2024-02-19 01:52:19 +08:00
Ryan Yin
3a470f1b1f chore: pulumi - upgrade go dependencies 2024-02-19 01:35:45 +08:00
Ryan Yin
37fff317ef Merge pull request #67 from ryan4yin/dependabot/go_modules/pulumi/k3s-prod-1/github.com/cloudflare/circl-1.3.7
chore(deps): bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 in /pulumi/k3s-prod-1
2024-02-19 01:31:31 +08:00
dependabot[bot]
1ead059695 chore(deps): bump github.com/cloudflare/circl in /pulumi/k3s-prod-1
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.3 to 1.3.7.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.3...v1.3.7)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-18 17:30:44 +00:00
Ryan Yin
9a61f3c889 docs: pulumi 2024-02-19 01:30:34 +08:00
Ryan Yin
f800d96673 feat: add pulumi stack for k3s-prod-1 2024-02-19 01:28:57 +08:00
Ryan Yin
64205a79fd feat: add pulumi related tools 2024-02-18 23:05:31 +08:00
Ryan Yin
2ec9eed885 feat: add home-manager - k8s-master 2024-02-18 22:38:02 +08:00
Ryan Yin
9a71920fd4 fix: k9s skin 2024-02-18 22:30:56 +08:00
Ryan Yin
0a9dee2aee docs: pulumi 2024-02-18 22:24:26 +08:00
Ryan Yin
f6b34b042f feat: impermanence 2024-02-18 22:02:39 +08:00
Ryan Yin
6d1bdd2b40 feat: k3s disable-helm-controller 2024-02-18 21:13:21 +08:00
Ryan Yin
010f3ece90 feat: prometheus targets 2024-02-18 20:44:24 +08:00
Ryan Yin
5f8f5c79d5 docs: k8s nodes overview - screenshots 2024-02-18 20:24:41 +08:00
Ryan Yin
2390ece70b fix: colmena tags for my k3s clusters 2024-02-18 20:17:54 +08:00
Ryan Yin
36f5367a5d feat: k3s - kubeconfig 2024-02-18 20:13:34 +08:00
Ryan Yin
a73ebc7726 Merge pull request #64 from ryan4yin/k8s
feat: new k3s cluster
2024-02-18 18:57:36 +08:00
Ryan Yin
c19184a6be feat: new k3s cluster 2024-02-18 18:55:23 +08:00
Ryan Yin
1a3b02a062 feat: remove emulatedSystem from kana & ruby 2024-02-18 13:41:39 +08:00
Ryan Yin
996b1dd077 docs: README 2024-02-18 13:21:36 +08:00
Ryan Yin
0c60bc495f docs: k8s 2024-02-18 12:21:10 +08:00
Ryan Yin
96ee6f2c01 docs: monitoring gpu 2024-02-18 12:13:44 +08:00
Ryan Yin
517949b78f docs: hosts - k8s 2024-02-18 11:52:15 +08:00
Ryan Yin
cb43947e32 docs: hosts 2024-02-18 11:51:38 +08:00
Ryan Yin
f1c79bbb70 Merge pull request #63 from ryan4yin/caddy
feat: add caddy as a reverse proxy for applications
2024-02-18 11:33:15 +08:00
Ryan Yin
5fe647c0d3 feat: add caddy as a reverse proxy for applications 2024-02-18 11:27:26 +08:00
Ryan Yin
a321d2c803 fix: ssh hosts aliases not working on darwin 2024-02-18 10:49:09 +08:00
Ryan Yin
e5fa57c660 docs: priority of dae routing rules 2024-02-18 02:05:42 +08:00
Ryan Yin
e5b0545dfd feat: monitoring - grafana dashboards for kubernetes 2024-02-18 00:45:06 +08:00
Ryan Yin
ef1fb417ad feat: monitoring - grafana dashboards, alertmanager alerting rules 2024-02-18 00:35:25 +08:00
Ryan Yin
b75e9d6abe feat: adjust colmena tags 2024-02-17 23:47:06 +08:00
Ryan Yin
05028b84d4 Merge pull request #62 from ryan4yin/monitoring
feat: monitoring + containers
2024-02-17 23:36:25 +08:00
Ryan Yin
b6e51e1950 feat: monitoring + containers - grafana + prometheus + node_exporter + other exporters 2024-02-17 23:33:48 +08:00
Ryan Yin
9626986524 fix: typo 2024-02-17 16:46:07 +08:00
Ryan Yin
279b1b69eb fix: dae - github's ssh access 2024-02-17 15:51:49 +08:00
Ryan Yin
88092aba5b fix: dae - github 2024-02-17 15:06:34 +08:00
Ryan Yin
4c00a430d6 feat: justfile 2024-02-17 14:53:20 +08:00
Ryan Yin
4d23a5eb19 fix: typo 2024-02-17 14:51:43 +08:00
Ryan Yin
9c07aa1113 feat: monitor dnsmasq + v2ray 2024-02-17 14:51:04 +08:00
Ryan Yin
34ca7615b4 fix: dnsmasq dhcp 2024-02-17 14:22:54 +08:00
Ryan Yin
fd4f1f9086 feat: dnsmasq 2024-02-17 05:46:02 +08:00
Ryan Yin
fe6caebe2e docs: dae & v2ray 2024-02-17 04:42:41 +08:00
Ryan Yin
0da119a5e8 docs: dae & v2ray 2024-02-17 04:41:02 +08:00
Ryan Yin
a2af4728f3 Merge pull request #60 from ryan4yin/bypass-router
feat: bypass router
2024-02-17 04:38:00 +08:00
Ryan Yin
ae238d401d fix: bypass router 2024-02-17 04:36:41 +08:00
Ryan Yin
7cbff9ef3b feat: dae 2024-02-16 11:15:16 +08:00
Ryan Yin
fa5aaf4f97 feat: set https proxy for nix daemon 2024-02-16 10:27:06 +08:00
Ryan Yin
45c6d0f604 feat: update flake.lock, fix some api/package changes 2024-02-16 10:09:31 +08:00
Ryan Yin
47225fffbc feat: pick the highest resolution for systemd-boot's console 2024-02-15 03:07:58 +08:00
Ryan Yin
d022fc3fa9 Merge pull request #57 from we-do-it-lu/patch-3
quote markdown on 'main' not correct
2024-02-11 23:31:52 +08:00
Ryan Yin
f034011f96 Merge pull request #58 from we-do-it-lu/patch-4
Tiny typo
2024-02-11 23:31:28 +08:00
Ryan Yin
a5bb4a471a Merge pull request #59 from we-do-it-lu/patch-5
Tiny typo
2024-02-11 23:31:04 +08:00
JayDeLux
2b781b030c Tiny typo 2024-02-11 15:44:08 +01:00
JayDeLux
32e0131620 Tiny typo 2024-02-11 15:36:57 +01:00
JayDeLux
339e1ddb76 quote markdown on 'main' not correct 2024-02-11 15:15:02 +01:00
Ryan Yin
2db93b7b01 feat: sjtu's mirror for pypi 2024-02-09 19:09:46 +08:00
Ryan Yin
7fcafe3d04 feat: dae subsciption 2024-02-09 00:01:37 +08:00
Ryan Yin
28ea82df03 feat: transmission & uptime-kuma 2024-02-08 23:47:01 +08:00
Ryan Yin
18a40b49e3 feat: restic drafts 2024-02-08 21:46:05 +08:00
Ryan Yin
140b84df2b fix: typo 2024-02-08 19:56:32 +08:00
Ryan Yin
9b3a431942 fix: style 2024-02-08 19:56:19 +08:00
Ryan Yin
e7d5ad707f Merge pull request #56 from we-do-it-lu/patch-2
Little error in comment
2024-02-07 18:58:33 +08:00
JayDeLux
fb55262f39 Little error in comment 2024-02-07 10:09:56 +01:00
Ryan Yin
6c80d9907b feat: luks - disable workqueue for increased SSD performance 2024-02-06 23:44:30 +08:00
Ryan Yin
a541754381 docs: proxy 2024-02-05 22:45:39 +08:00
Ryan Yin
e88f42182f feat: update secrets 2024-02-05 01:43:08 +08:00
Ryan Yin
6dacc92ba3 feat: update secrets 2024-02-05 01:02:09 +08:00
Ryan Yin
36ac1b51da feat: darwin - proxy & README, update brew apps 2024-02-05 00:52:11 +08:00
Ryan Yin
f4c39598ec feat: persistent - ~/.conda 2024-02-04 21:58:03 +08:00
Ryan Yin
f765fcd633 fix: conda init failed because ~/.zshrc not modifiable 2024-02-04 14:23:47 +08:00
Ryan Yin
54c797396c feat: darwin - add miniforge - a miniconda replacement 2024-02-04 11:06:00 +08:00
Ryan Yin
036d5c7fba feat: update nix-darwin & yabai 2024-02-01 15:37:33 +08:00
Ryan Yin
af225f2271 docs: darwin & linux 2024-02-01 00:52:36 +08:00
Ryan Yin
1126e8c6a7 docs: deploy on a new machine 2024-02-01 00:40:45 +08:00
Ryan Yin
3f505194b5 docs: systems 2024-01-31 12:07:46 +08:00
Ryan Yin
819463aa20 docs: luks2 2024-01-31 11:53:08 +08:00
Ryan Yin
7e674669d3 docs: secrets 2024-01-31 11:48:53 +08:00
Ryan Yin
fa6dd68818 docs: secrets 2024-01-31 11:48:34 +08:00
Ryan Yin
6367c91f7a docs: secrets 2024-01-31 11:45:47 +08:00
Ryan Yin
3f9d23dbad fix: gpg: [stdin]: encryption failed: Unusable public key 2024-01-31 11:45:47 +08:00
Ryan Yin
aa95ad60b7 chore: remove some useless config 2024-01-30 23:16:42 +08:00
Ryan Yin
f91d4a26fc feat: persistent vscode's data 2024-01-30 23:07:19 +08:00
Ryan Yin
5c92c0e0ac feat: add vscode again, to get the best experience of copilot chat 2024-01-30 22:59:48 +08:00
Ryan Yin
0695229e9d feat: use flameshot for region screenshot 2024-01-30 21:33:13 +08:00
Ryan Yin
d8901e3169 fix: waybar & hyprland 2024-01-30 21:16:41 +08:00
Ryan Yin
544ec79aff feat: add hyprshot for screenshot 2024-01-30 21:07:12 +08:00
Ryan Yin
c70f9de97c docs: TODO - homelab & k8s 2024-01-29 15:15:03 +08:00
Ryan Yin
45a149f05a feat: darwin - add tencent-lemon, a macOS cleaner 2024-01-29 11:06:42 +08:00
Ryan Yin
f3b233330b feat: update mysecrets 2024-01-29 09:45:58 +08:00
Ryan Yin
9a09854c59 refactor: var_networking.ssh 2024-01-29 01:31:44 +08:00
Ryan Yin
b8f61f2946 fix: nix-darwin do not have a programs.ssh.extraConfig 2024-01-29 01:30:17 +08:00
Ryan Yin
b0f259253b Merge pull request #53 from ryan4yin/router
feat: nixos as a passby router
2024-01-29 01:25:01 +08:00
Ryan Yin
22066db41b feat: passby router - aqua 2024-01-29 01:23:18 +08:00
Ryan Yin
a2814f326c Merge pull request #52 from ryan4yin/refactor-networking
refactor: centrally manage the network configuration of all hosts in …
2024-01-28 23:21:47 +08:00
Ryan Yin
ad861dcc59 refactor: centrally manage the network configuration of all hosts in homelab
feat: new host - tailscalw-gw
2024-01-28 23:09:11 +08:00
Ryan Yin
3eec2a1837 fix: yabai - https://github.com/ryan4yin/nix-config/issues/51 2024-01-28 11:53:05 +08:00
Ryan Yin
40ff86d6d7 fix: yabai - https://github.com/koekeishiya/yabai/issues/1887 2024-01-28 11:02:46 +08:00
Ryan Yin
e6aa017562 Merge pull request #50 from ryan4yin/feat-remote_desktop
feat: remote desktop
2024-01-28 10:12:41 +08:00
Ryan Yin
266a190b19 fix: problem disappeared after replacing the determinated nix-installer by the official one 2024-01-28 10:04:24 +08:00
Ryan Yin
0504d0503b fix: failed to boot - replace device name by uuid 2024-01-28 09:56:40 +08:00
Ryan Yin
63d686ad3a fix: enable kvm-intel/kvm-amd per host 2024-01-28 09:53:09 +08:00
Ryan Yin
3302f44178 feat: remote desktop 2024-01-28 02:20:35 +08:00
Ryan Yin
b231111d93 chore: use ustc's cache mirror for speed 2024-01-28 02:20:04 +08:00
Ryan Yin
dce701146c fix: _netdev - mount after the network is available 2024-01-28 00:57:45 +08:00
Ryan Yin
62ce9eb8cb fix: mount SMB-Downloads failed 2024-01-27 18:09:21 +08:00
Ryan Yin
6b183a0220 docs: change LUKS Key 2024-01-27 18:09:04 +08:00
Ryan Yin
90cd503219 feat: use gpg only for pass & ssh, make public keys & trust immutable 2024-01-27 17:14:14 +08:00
Ryan Yin
a0e00c5453 feat: do not import gpg public keys automatically 2024-01-27 17:09:10 +08:00
Ryan Yin
27f1d54a79 fix: typo 2024-01-27 17:00:49 +08:00
Ryan Yin
05682dbac9 feat: security - password-store, gpg, age, etc... 2024-01-27 16:56:57 +08:00
Ryan Yin
b9b9a55ede fix: revert password-store cloning 2024-01-27 10:33:42 +08:00
Ryan Yin
b75195d339 feat: clone password-store if it not exists yet 2024-01-26 22:37:05 +08:00
Ryan Yin
7f72a0612b feat: agenix - use the system's host ssh key for cryption 2024-01-26 22:25:42 +08:00
Ryan Yin
d1cdddc9ca feat: update user's initialHashedPassword 2024-01-26 20:18:33 +08:00
Ryan Yin
c02590c07a docs: gpg 2024-01-26 18:38:31 +08:00
Ryan Yin
8646c1a4ff feat: update mysecrets 2024-01-26 18:25:48 +08:00
Ryan Yin
0b8a50b6d9 feat: update mysecrets 2024-01-26 18:15:01 +08:00
Ryan Yin
66276562b9 feat: gitgc 2024-01-26 18:12:39 +08:00
Ryan Yin
b9a206054a feat: update mysecrets 2024-01-26 15:05:41 +08:00
Ryan Yin
7cc94146b8 feat: remove eudict, enable homebrew 2024-01-26 14:54:21 +08:00
Ryan Yin
0645a593e6 feat: update openssh keys 2024-01-26 14:46:19 +08:00
Ryan Yin
ecc335b07e feat: security - gnupg & openssh's KDF 2024-01-26 13:47:01 +08:00
Ryan Yin
ec5ef05983 feat: darwin - zed editor 2024-01-25 17:55:53 +08:00
Ryan Yin
fd438f74c6 fix: keybinding conflict - skhd & emacs
fix: reload yabai & skhd
2024-01-25 15:28:47 +08:00
Ryan Yin
7e36360550 feat: set mirror for pip 2024-01-25 15:05:01 +08:00
Ryan Yin
86bdd6539c fix: nix first in PATH 2024-01-25 14:42:35 +08:00
Ryan Yin
9a2fa01711 feat: darwin rebuild 2024-01-25 10:56:05 +08:00
Ryan Yin
3992de319c fix: failed to mount cifs volume on boot 2024-01-24 23:38:58 +08:00
Ryan Yin
be6e0a9882 Update README.md 2024-01-24 09:20:22 +08:00
Ryan Yin
15eb7f5a0f feat: yabai - zoom-fullscreen 2024-01-24 00:44:55 +08:00
Ryan Yin
501b2397d8 feat: yabai - fix x86_64 build, upgrade version 2024-01-24 00:24:56 +08:00
Ryan Yin
2c08b2f1fa docs: darwin 2024-01-23 19:54:11 +08:00
Ryan Yin
d8aeb36b27 fix: darwin - gpg: public key decryption failed: No pinentry 2024-01-23 19:49:11 +08:00
Ryan Yin
aa3c26d907 Merge pull request #46 from ryan4yin/darwin-wm
feat: window manager for darwin - yabai
2024-01-23 19:24:40 +08:00
Ryan Yin
f0e0b18c5f feat: window manager for darwin - yabai 2024-01-23 19:19:21 +08:00
Ryan Yin
55139cd4fe Merge pull request #49 from DataEraserC/main
Fix: gtk.theme not match
2024-01-23 18:59:46 +08:00
DataEraserC
533758d5da Fix: gtk.theme not match 2024-01-23 18:56:35 +08:00
Ryan Yin
62505e4488 feat: add croc for file transfering, and age/sops for file encryption 2024-01-23 13:36:25 +08:00
Ryan Yin
1d8452f232 chore: remove duplicate code 2024-01-23 12:58:59 +08:00
Ryan Yin
e4eb232d8f feat: don't ask for password for wheel group 2024-01-23 12:13:58 +08:00
Ryan Yin
360c218344 docs: gamemode 2024-01-23 12:04:28 +08:00
Ryan Yin
e3b0eca505 docs: steam 2024-01-23 11:53:23 +08:00
Ryan Yin
8d69b2907f docs: helix 2024-01-23 11:41:44 +08:00
Ryan Yin
d869e7d5ce feat: update mysecrets, disable prettier 2024-01-23 11:09:48 +08:00
Ryan Yin
4345509218 feat: persistent ~/.steam 2024-01-22 23:31:10 +08:00
Ryan Yin
a6587cfd79 feat: obs - add plugins 2024-01-22 23:24:02 +08:00
Ryan Yin
b1fac0dce5 fix: firefox - fonts for Chinese 2024-01-22 23:14:08 +08:00
Ryan Yin
f47f24cf34 fix: steam's font - remove all noto-fonts 2024-01-22 22:52:18 +08:00
Ryan Yin
05caa0c33a feat: remove all noto-fonts 2024-01-22 22:51:19 +08:00
Ryan Yin
40921d4199 feat: gaming - gamemode + stream 2024-01-22 22:42:51 +08:00
Ryan Yin
9843ea9db5 feat: morden cli tools 2024-01-22 15:36:08 +08:00
Ryan Yin
f51242ae08 feat: morden cli tools 2024-01-22 15:27:09 +08:00
Ryan Yin
4f1c138a01 refactor: container & kubernetes 2024-01-22 14:32:05 +08:00
Ryan Yin
f7dd9cd6e2 feat: disable statix 2024-01-22 10:42:14 +08:00
Ryan Yin
c90317a84b feat: add lazygit & lazydocker 2024-01-22 10:41:33 +08:00
Ryan Yin
7f1d365f0b Merge pull request #45 from DataEraserC/main
fix: typo
2024-01-22 02:06:22 +08:00
Sacabambaspis
9d67e03f97 fix: typo 2024-01-21 23:17:19 +08:00
Ryan Yin
d559655e26 docs: emacs - magit 2024-01-21 22:24:20 +08:00
Ryan Yin
03d822da3f fix: typo 2024-01-21 21:48:42 +08:00
Ryan Yin
02e040d294 refactor: hosts - darwin 2024-01-21 17:17:48 +08:00
Ryan Yin
cba3212896 fix: statix fix 2024-01-21 17:07:44 +08:00
Ryan Yin
68e5d860d8 fix: failed to deploy nixos-unstable 2024-01-21 17:06:25 +08:00
Ryan Yin
a76daab3ce refactor: hosts 2024-01-21 15:21:05 +08:00
Ryan Yin
489f82f24b feat: add exercism 2024-01-18 18:33:32 +08:00
Ryan Yin
94aec4440e docs: emacs - emacs keybinding full list 2024-01-18 16:53:58 +08:00
Ryan Yin
9cbffaf841 docs: emacs - magit 2024-01-18 16:28:07 +08:00
Ryan Yin
3f2049ab02 docs: emacs - magit 2024-01-18 15:55:36 +08:00
Ryan Yin
95bdf1d091 docs: emacs - magit 2024-01-18 15:45:23 +08:00
Ryan Yin
fe73f73adb docs: vim 2024-01-18 15:02:23 +08:00
Ryan Yin
0148834e15 feat: udpate flake.lock 2024-01-18 13:04:17 +08:00
Ryan Yin
4ca27063e2 fix: https://github.com/ryan4yin/nix-config/issues/43 - /dev/xxx is not a valid luks device 2024-01-16 20:51:24 +08:00
Ryan Yin
f3f74cfd70 docs: editors 2024-01-15 15:34:35 +08:00
Ryan Yin
4d53f559b1 docs: editors(vim) 2024-01-15 14:43:22 +08:00
Ryan Yin
cf2c1a4437 docs: editors(vim) 2024-01-15 14:13:36 +08:00
Ryan Yin
29afd7f670 docs: emacs - limits 2024-01-13 22:18:02 +08:00
Ryan Yin
16b75e90b6 docs: emacs - limits 2024-01-13 17:19:08 +08:00
Ryan Yin
11bbedcde7 fix: emacs - code highlighting is buggy, remove lsp-bridge, add lsp-mode & copilot
fix: emacs - unicode symbols rendering is buggy, remove +pretty from org-mode
feat: emacs - add pandoc & jupyter for orgmode
2024-01-13 15:49:11 +08:00
Ryan Yin
1ec9c22fd0 Merge pull request #42 from ryan4yin/guix
feat: add Guix
2024-01-13 12:52:41 +08:00
Ryan Yin
c4a28eb062 feat: add guix as a daemon service 2024-01-13 12:52:01 +08:00
Ryan Yin
8c8a9105e4 feat: use nixos-unstable 2024-01-13 00:19:03 +08:00
Ryan Yin
04a689c5d1 feat: emacs - orgmode 2024-01-11 22:09:17 +08:00
Ryan Yin
36b44128a0 Merge pull request #41 from DataEraserC/main
Fix typo
2024-01-11 21:29:59 +08:00
Sacabambaspis
6fe2d2f002 Fix typo 2024-01-11 21:15:05 +08:00
Ryan Yin
9b96ff35d6 fix: typo 2024-01-11 20:12:23 +08:00
Ryan Yin
471661239f Merge pull request #40 from DataEraserC/main
Fix typo
2024-01-11 20:10:41 +08:00
Sacabambaspis
00b4997a74 Fix typo 2024-01-11 20:04:09 +08:00
Ryan Yin
1d2bdc1beb fix: typo 2024-01-11 17:48:10 +08:00
Ryan Yin
ca5388740f feat: docs for nixos-installer 2024-01-11 15:51:08 +08:00
Ryan Yin
1812510e0d feat: docs for systems 2024-01-11 15:48:16 +08:00
Ryan Yin
161fd0db6a feat: emacs - save buffers when they lose focus 2024-01-10 18:30:49 +08:00
Ryan Yin
f166761af7 fix: programs.gpg-agent do not support darwin, running gnupg agent at system level 2024-01-10 13:45:20 +08:00
Ryan Yin
228a7099d0 fix: style 2024-01-10 10:05:17 +08:00
Ryan Yin
8c9a212e64 feat: add chrome/chromium/firefox extension for password-store 2024-01-10 00:28:10 +08:00
Ryan Yin
343ebacdcf feat: init password-store 2024-01-09 23:59:06 +08:00
Ryan Yin
b6f46da403 fix: gpg 2024-01-09 23:18:59 +08:00
Ryan Yin
2f58484b4c docs: misc 2024-01-09 20:51:04 +08:00
Ryan Yin
7da2c3dd93 feat: add gpg & password-store 2024-01-09 19:27:08 +08:00
Ryan Yin
95fc029194 Update README.md 2024-01-09 08:51:27 +08:00
Ryan Yin
40be9f8a55 fix: do not start zellij inside emacs(vterm) 2024-01-08 14:14:12 +08:00
Ryan Yin
e42fda1d43 refactor: misc 2024-01-08 12:17:17 +08:00
Ryan Yin
70f5b26fd2 docs: emacs 2024-01-08 11:40:28 +08:00
Ryan Yin
3b796515d4 fix: emacs on darwin - vterm's color 2024-01-08 11:37:01 +08:00
Ryan Yin
e809caa9fd feat: show PATH env 2024-01-08 10:06:29 +08:00
Ryan Yin
919527d6fc fix: nvim-treesitter 2024-01-08 10:05:02 +08:00
Ryan Yin
31ac4f1439 feat: update flake.lock 2024-01-08 01:41:25 +08:00
985 changed files with 120334 additions and 68301 deletions

3
.github/FUNDING.yml vendored
View File

@@ -1,2 +1,3 @@
github: ryan4yin
patreon: ryan4yin
custom: ['https://buymeacoffee.com/ryan4yin', 'https://afdian.net/a/ryan4yin']
custom: ["https://buymeacoffee.com/ryan4yin"]

View File

@@ -1,24 +0,0 @@
name: Nix Flake Check
on: [push, pull_request, workflow_dispatch]
jobs:
checks:
name: Check expressions
runs-on: ubuntu-latest
steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Install nix
# uses: cachix/install-nix-action@v24
# with:
# install_url: https://nixos.org/nix/install
# extra_nix_config: |
# access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
# experimental-features = nix-command flakes
- name: Run Nix Flake Check
run: |
echo 'TODO: nix flake check'
# nix flake check

42
.github/workflows/flake_evaltests.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Nix Flake Eval Tests
on:
push:
branches:
- main
paths-ignore:
- "scripts/**"
- "**.md"
- "**.nu"
- "Justfile"
pull_request:
branches:
- main
paths-ignore:
- "scripts/**"
- "**.md"
- "**.nu"
- "Justfile"
jobs:
checks:
name: Check expressions
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install nix
uses: cachix/install-nix-action@v31
with:
install_url: https://nixos.org/nix/install
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
experimental-features = nix-command flakes
- name: Run Nix Flake Eval Tests
run: |
echo 'Flake Eval Tests'
# stack overflow...
# nix eval .#checks --show-trace --print-build-logs --verbose
nix eval .#evalTests --show-trace --print-build-logs --verbose

View File

@@ -1,7 +1,11 @@
name: Mirror this repo to Gitee
on:
workflow_dispatch: {}
push: {}
push:
branches:
- main
tags:
- "*"
jobs:
mirror:
runs-on: ubuntu-latest
@@ -26,4 +30,3 @@ jobs:
export GIT_SSH_COMMAND="ssh -v -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no"
git remote add mirror "$INPUT_TARGET_REPO_URL"
git push --tags --force --prune mirror "refs/remotes/origin/*:refs/heads/*"

6
.gitignore vendored
View File

@@ -1,5 +1,11 @@
.Trash-1000/
result
result/
.direnv/
.DS_Store
.pre-commit-config.yaml
logs/
core*
!core/
!core.nix
!coredns*

8
.prettierignore Normal file
View File

@@ -0,0 +1,8 @@
LICENSE.md
dist
pnpm-lock.yaml
flake.lock
vercel.json
cache
temp
.temp

6
.prettierrc.yaml Normal file
View File

@@ -0,0 +1,6 @@
# https://prettier.io/docs/en/options
semi: false
singleQuote: false
printWidth: 100
proseWrap: always # always change wrapping in markdown text
trailingComma: es5

45
.typos.toml Normal file
View File

@@ -0,0 +1,45 @@
[files]
# Respect .ignore files.
ignore-dot = true
# Respect ignore files.
ignore-files = true
# 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]
# Check binary files as text.
binary = false
# Verify spelling in file names.
check-filename = true
# ignore some special identifiers(sha256, mac address, crypto keys, etc)
extend-ignore-re = [
"iterm2",
"iHgEIBYKACAWIQSizQe9ljFEyyclWmtVhZllwnQrSwUCZZ1T9wIdAAAKCRBVhZll", # crypto keys
"noice", # noice.nvim
"crypted-nixos",
"daed",
# catppuccin theme colors
"11111b",
"1e1e2e",
"313244",
"414356",
"45475a",
"585b70",
"89b4fa",
"94e2d5",
"a6adc8",
"a6e3a1",
"bac2de",
"cdd6f4",
"f38ba8",
"f5c2e7",
"f5e0dc",
"f9e2af",
"fab387",
]

412
Justfile
View File

@@ -1,199 +1,357 @@
# just is a command runner, Justfile is very similar to Makefile, but simpler.
# use nushell for shell commands
# Use nushell for shell commands
# To use this justfile, you need to enter a shell with just & nushell installed:
#
# nix shell nixpkgs#just nixpkgs#nushell
set shell := ["nu", "-c"]
utils_nu := absolute_path("utils.nu")
############################################################################
#
# Nix commands related to the local machine
# Common commands(suitable for all machines)
#
############################################################################
i3 mode="default":
use utils.nu *; \
nixos-switch ai_i3 {{mode}}
hypr mode="default":
use utils.nu *; \
nixos-switch ai_hyprland {{mode}}
s-i3 mode="default":
use utils.nu *; \
nixos-switch shoukei_i3 {{mode}}
s-hypr mode="default":
use utils.nu *; \
nixos-switch shoukei_hyprland {{mode}}
# List all the just commands
default:
@just --list
# Run eval tests
[group('nix')]
test:
nix eval .#evalTests --show-trace --print-build-logs --verbose
# Update all the flake inputs
[group('nix')]
up:
nix flake update
nix flake update --commit-lock-file
# Update specific input
# Usage: just upp nixpkgs
[group('nix')]
upp input:
nix flake lock --update-input {{input}}
nix flake update {{input}} --commit-lock-file
# List all generations of the system profile
[group('nix')]
history:
nix profile history --profile /nix/var/nix/profiles/system
# Open a nix shell with the flake
[group('nix')]
repl:
nix repl -f flake:nixpkgs
# remove all generations older than 7 days
# on darwin, you may need to switch to root user to run this command
[group('nix')]
clean:
# remove all generations older than 7 days
# Wipe out NixOS's history
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 7d
# Wipe out home-manager's history
nix profile wipe-history --profile $"($env.XDG_STATE_HOME)/nix/profiles/home-manager" --older-than 7d
# Garbage collect all unused nix store entries
[group('nix')]
gc:
# garbage collect all unused nix store entries
sudo nix store gc --debug
sudo nix-collect-garbage --delete-old
# garbage collect all unused nix store entries(system-wide)
sudo nix-collect-garbage --delete-older-than 7d
# garbage collect all unused nix store entries(for the user - home-manager)
# https://github.com/NixOS/nix/issues/8508
nix-collect-garbage --delete-older-than 7d
# Enter a shell session which has all the necessary tools for this flake
[linux]
[group('nix')]
shell:
nix shell nixpkgs#git nixpkgs#neovim nixpkgs#colmena
# Enter a shell session which has all the necessary tools for this flake
[macos]
[group('nix')]
shell:
nix shell nixpkgs#git nixpkgs#neovim
[group('nix')]
fmt:
# format the nix files in this repo
ls **/*.nix | each { |it| nixfmt $it.name }
# Show all the auto gc roots in the nix store
[group('nix')]
gcroot:
ls -al /nix/var/nix/gcroots/auto/
# Verify all the store entries
# Nix Store can contains corrupted entries if the nix store object has been modified unexpectedly.
# This command will verify all the store entries,
# and we need to fix the corrupted entries manually via `sudo nix store delete <store-path-1> <store-path-2> ...`
[group('nix')]
verify-store:
nix store verify --all
# Repair Nix Store Objects
[group('nix')]
repair-store *paths:
nix store repair {{paths}}
# Update all Nixpkgs inputs
[group('nix')]
up-nix:
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}}
############################################################################
#
# Darwin related commands, harmonica is my macbook pro's hostname
# NixOS Desktop related commands
#
############################################################################
# Deploy the nixosConfiguration by hostname match
[linux]
[group('homelab')]
local mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
nixos-switch (hostname) {{mode}}
# Deploy the niri nixosConfiguration by hostname match
[linux]
[group('desktop')]
niri mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
nixos-switch $"(hostname)-niri" {{mode}}
############################################################################
#
# Darwin related commands
#
############################################################################
[macos]
[group('desktop')]
darwin-set-proxy:
sudo python3 scripts/darwin_set_proxy.py
sleep 1sec
[macos]
[group('desktop')]
darwin-rollback:
use utils.nu *; \
#!/usr/bin/env nu
use {{utils_nu}} *;
darwin-rollback
ha mode="default":
use utils.nu *; \
darwin-build "harmonica" {{mode}}; \
darwin-switch "harmonica" {{mode}}
# Deploy the darwinConfiguration by hostname match
[macos]
[group('desktop')]
local mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
darwin-build (hostname) {{mode}};
darwin-switch (hostname) {{mode}}
fe mode="default": darwin-set-proxy
use utils.nu *; \
darwin-build "fern" {{mode}}; \
darwin-switch "fern" {{mode}}
# Reset launchpad to force it to reindex Applications
[macos]
[group('desktop')]
reset-launchpad:
defaults write com.apple.dock ResetLaunchPad -bool true
killall Dock
############################################################################
#
# Idols, Commands related to my remote distributed building cluster
# Homelab - Kubevirt Cluster related commands
#
############################################################################
idols-ssh-key:
ssh-add ~/.ssh/ai-idols
# Remote deployment via colmena
[linux]
[group('homelab')]
col tag:
colmena apply --on '@{{tag}}' --verbose --show-trace
idols: idols-ssh-key
colmena apply --on '@dist-build'
# Build and upload a vm image
[linux]
[group('homelab')]
upload-vm name mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
upload-vm {{name}} {{mode}}
# Deploy all the KubeVirt nodes(Physical machines running KubeVirt)
[linux]
[group('homelab')]
lab:
colmena apply --on '@virt-*' --verbose --show-trace
[linux]
[group('homelab')]
shoryu:
colmena apply --on '@kubevirt-shoryu' --verbose --show-trace
[linux]
[group('homelab')]
shushou:
colmena apply --on '@kubevirt-shushou' --verbose --show-trace
[linux]
[group('homelab')]
youko:
colmena apply --on '@kubevirt-youko' --verbose --show-trace
############################################################################
#
# Commands for other Virtual Machines
#
############################################################################
# Build and upload a vm image
[linux]
[group('homelab')]
upload-idols mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
upload-vm aquamarine {{mode}}
upload-vm ruby {{mode}}
upload-vm kana {{mode}}
[linux]
[group('homelab')]
aqua:
colmena apply --on '@aqua'
colmena apply --on '@aqua' --verbose --show-trace
[linux]
[group('homelab')]
ruby:
colmena apply --on '@ruby'
colmena apply --on '@ruby' --verbose --show-trace
[linux]
[group('homelab')]
kana:
colmena apply --on '@kana'
idols-debug: idols-ssh-key
colmena apply --on '@dist-build' --verbose --show-trace
# only used once to setup the virtual machines
idols-image:
# take image for idols, and upload the image to proxmox nodes.
nom build .#aquamarine
scp result root@gtr5:/var/lib/vz/dump/vzdump-qemu-aquamarine.vma.zst
nom build .#ruby
scp result root@s500plus:/var/lib/vz/dump/vzdump-qemu-ruby.vma.zst
nom build .#kana
scp result root@um560:/var/lib/vz/dump/vzdump-qemu-kana.vma.zst
colmena apply --on '@kana' --verbose --show-trace
############################################################################
#
# RISC-V related commands
# Kubernetes related commands
#
############################################################################
roll: idols-ssh-key
colmena apply --on '@riscv'
# Build and upload a vm image
[linux]
[group('homelab')]
upload-k3s-prod mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
upload-vm k3s-prod-1-master-1 {{mode}};
upload-vm k3s-prod-1-master-2 {{mode}};
upload-vm k3s-prod-1-master-3 {{mode}};
upload-vm k3s-prod-1-worker-1 {{mode}};
upload-vm k3s-prod-1-worker-2 {{mode}};
upload-vm k3s-prod-1-worker-3 {{mode}};
roll-debug: idols-ssh-key
colmena apply --on '@dist-build' --verbose --show-trace
[linux]
[group('homelab')]
upload-k3s-test mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
upload-vm k3s-test-1-master-1 {{mode}};
upload-vm k3s-test-1-master-2 {{mode}};
upload-vm k3s-test-1-master-3 {{mode}};
nozomi:
colmena apply --on '@nozomi'
[linux]
[group('homelab')]
k3s-prod:
colmena apply --on '@k3s-prod-*' --verbose --show-trace
yukina:
colmena apply --on '@yukina'
############################################################################
#
# Aarch64 related commands
#
############################################################################
aarch:
colmena apply --on '@aarch'
suzu:
colmena apply --on '@suzu'
suzu-debug:
colmena apply --on '@suzu' --verbose --show-trace
############################################################################
#
# Misc, other useful commands
#
############################################################################
fmt:
# format the nix files in this repo
nix fmt
nvim-test:
rm -rf $"($env.HOME)/.config/astronvim/lua/user"
rsync -avz --copy-links --chmod=D2755,F744 home/base/desktop/editors/neovim/astronvim_user/ $"($env.HOME)/.config/astronvim/lua/user"
nvim-clean:
rm -rf $"($env.HOME)/.config/astronvim/lua/user"
[linux]
[group('homelab')]
k3s-test:
colmena apply --on '@k3s-test-*' --verbose --show-trace
# =================================================
# Emacs related commands
#
# Other useful commands
#
# =================================================
emacs-plist-path := "~/Library/LaunchAgents/org.nix-community.home.emacs.plist"
[group('common')]
path:
$env.PATH | split row ":"
reload-emacs-cmd := if os() == "macos" {
"launchctl unload " + emacs-plist-path
+ "\n"
+ "launchctl load " + emacs-plist-path
+ "\n"
+ "tail -f ~/Library/Logs/emacs-daemon.stderr.log"
} else {
"systemctl --user restart emacs.service"
+ "\n"
+ "systemctl --user status emacs.service"
}
[group('common')]
trace-access app *args:
strace -f -t -e trace=file {{app}} {{args}} | complete | $in.stderr | lines | find -v -r "(/nix/store|/newroot|/proc)" | parse --regex '"(/.+)"' | sort | uniq
emacs-test:
rm -rf $"($env.HOME)/.config/doom"
rsync -avz --copy-links --chmod=D2755,F744 home/base/desktop/editors/emacs/doom/ $"($env.HOME)/.config/doom"
doom clean
doom sync
[linux]
[group('common')]
penvof pid:
sudo cat $"/proc/($pid)/environ" | tr '\0' '\n'
emacs-clean:
rm -rf $"($env.HOME)/.config/doom/"
# Remove all reflog entries and prune unreachable objects
[group('git')]
ggc:
git reflog expire --expire-unreachable=now --all
git gc --prune=now
emacs-purge:
doom purge
doom clean
doom sync
# Amend the last commit without changing the commit message
[group('git')]
game:
git commit --amend -a --no-edit
emacs-reload:
doom sync
{{reload-emacs-cmd}}
# Delete all failed pods
[group('k8s')]
del-failed:
kubectl delete pod --all-namespaces --field-selector="status.phase==Failed"
[linux]
[group('services')]
list-inactive:
systemctl list-units -all --state=inactive
[linux]
[group('services')]
list-failed:
systemctl list-units -all --state=failed
[linux]
[group('services')]
list-systemd:
systemctl list-units systemd-*
# =================================================
#
# Nixpkgs Review via Github Action
# https://github.com/ryan4yin/nixpkgs-review-gha
#
# =================================================
[linux]
[group('nixpkgs')]
gh-login:
gh auth login -h github.com --skip-ssh-key --git-protocol ssh --web
# Run nixpkgs-review for PR
[linux]
[group('nixpkgs')]
pkg-review pr:
gh workflow run review.yml --repo ryan4yin/nixpkgs-review-gha -f x86_64-darwin=no -f post-result=true -f pr={{pr}}
# Run package tests for PR
[linux]
[group('nixpkgs')]
pkg-test pr pname:
gh workflow run review.yml --repo ryan4yin/nixpkgs-review-gha -f x86_64-darwin=no -f post-result=true -f pr={{pr}} -f extra-args="-p {{pname}}.passthru.tests"
# View the summary of a workflow
[linux]
[group('nixpkgs')]
pkg-summary:
gh workflow view review.yml --repo ryan4yin/nixpkgs-review-gha

214
README.md
View File

@@ -8,76 +8,86 @@
<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>
<a href="https://nixos.org/">
<img src="https://img.shields.io/badge/NixOS-23.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">
<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>
</p>
This repository is home to the nix code that builds my systems.
> My configuration is becoming more and more complex, and **it will be difficult for beginners to
> read**. If you are new to NixOS and want to know how I use NixOS, I would recommend you to take a
> look at the [ryan4yin/nix-config/releases](https://github.com/ryan4yin/nix-config/releases) first,
> **check out to some simpler older versions, such as
> [i3-kickstarter](https://github.com/ryan4yin/nix-config/tree/i3-kickstarter), which will be much
> easier to understand**.
This repository is home to the nix code that builds my systems:
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
NixOS Desktops.
3. NixOS Servers: virtual machines running on Proxmox/KubeVirt, with various services, such as
kubernetes, homepage, prometheus, grafana, etc.
See [./hosts](./hosts) for details of each host.
See [./Virtual-Machine.md](./Virtual-Machine.md) for details of how to create & manage KubeVirt's
Virtual Machine from this flake.
## Why NixOS & Flakes?
Nix allows for easy-to-manage, collaborative, reproducible deployments. This means that once something is setup and configured once, it works (almost) forever. If someone else shares their configuration, anyone else can just use it (if you really understand what you're copying/refering now).
Nix allows for easy-to-manage, collaborative, reproducible deployments. This means that once
something is setup and configured once, it works (almost) forever. If someone else shares their
configuration, anyone else can just use it (if you really understand what you're copying/referring
now).
As for Flakes, refer to [Introduction to Flakes - NixOS & Nix Flakes Book](https://nixos-and-flakes.thiscute.world/nixos-with-flakes/introduction-to-flakes)
As for Flakes, refer to
[Introduction to Flakes - NixOS & Nix Flakes Book](https://nixos-and-flakes.thiscute.world/nixos-with-flakes/introduction-to-flakes)
**Want to know NixOS & Flaks in detail? Looking for a beginner-friendly tutorial or best practices? You don't have to go through the pain I've experienced again! Check out my [NixOS & Nix Flakes Book - 🛠️ ❤️ An unofficial & opinionated :book: for beginners](https://github.com/ryan4yin/nixos-and-flakes-book)!**
**Want to know NixOS & Flakes in detail? Looking for a beginner-friendly tutorial or best practices?
You don't have to go through the pain I've experienced again! Check out my
[NixOS & Nix Flakes Book - 🛠️ ❤️ An unofficial & opinionated :book: for beginners](https://github.com/ryan4yin/nixos-and-flakes-book)!**
> If you're using macOS, check out [ryan4yin/nix-darwin-kickstarter](https://github.com/ryan4yin/nix-darwin-kickstarter) for a quick start.
> If you're using macOS, check out
> [ryan4yin/nix-darwin-kickstarter](https://github.com/ryan4yin/nix-darwin-kickstarter) for a quick
> start.
## Components
| | NixOS(Wayland) | NixOS(Xorg) |
| --------------------------- | :---------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |
| **Window Manager** | [Hyprland][Hyprland] | [i3][i3] |
| **Terminal Emulator** | [Zellij][Zellij] + [Kitty][Kitty] | [Zellij][Zellij] + [Kitty][Kitty] |
| **Bar** | [Waybar][Waybar] | [polybar][polybar] |
| **Application Launcher** | [anyrun][anyrun] | [rofi][rofi] |
| **Notification Daemon** | [Mako][Mako] | [Dunst][Dunst] |
| **Display Manager** | [GDM][GDM] | [GDM][GDM] |
| **Color Scheme** | [Catppuccin][Catppuccin] | [Catppuccin][Catppuccin] |
| **network management tool** | [NetworkManager][NetworkManager] | [NetworkManager][NetworkManager] |
| **Input method framework** | [Fcitx5][Fcitx5] | [Fcitx5][Fcitx5] |
| **System resource monitor** | [Btop][Btop] | [Btop][Btop] |
| **File Manager** | [Yazi][Yazi] + [thunar][thunar] | [Yazi][Yazi] + [thunar][thunar] |
| **Shell** | [Nushell][Nushell] + [Starship][Starship] | [Nushell][Nushell] + [Starship][Starship] |
| **Music Player** | [mpd][mpd], [ncmpcpp][ncmpcpp], [mpc][mpc], [Netease-cloud-music-gtk][netease-cloud-music-gtk] | [Netease-cloud-music-gtk][netease-cloud-music-gtk] |
| **Media Player** | [mpv][mpv] | [mpv][mpv] |
| **Text Editor** | [Neovim][Neovim] + [DoomEmacs][DoomEmacs] | [Neovim][Neovim] + [DoomEmacs][DoomEmacs] |
| **Fonts** | [Nerd fonts][Nerd fonts] | [Nerd fonts][Nerd fonts] |
| **Image Viewer** | [imv][imv] | [imv][imv] |
| **Screenshot Software** | [grim][grim] | [flameshot](https://github.com/flameshot-org/flameshot) |
| **Screen Recording** | [OBS][OBS] | [OBS][OBS] |
| **Filesystem & Encryption** | tmpfs on `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] crypted partition for persistent, unlock via passphrase | tmpfs on `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] crypted partition for persistent, unlock via passphrase |
| **Secure Boot** | [lanzaboote][lanzaboote] | [lanzaboote][lanzaboote] |
| | NixOS(Wayland) |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Window Manager** | [Niri][Niri] |
| **Terminal Emulator** | [Zellij][Zellij] + [foot][foot]/[Kitty][Kitty]/[Alacritty][Alacritty]/[Ghostty][Ghostty] |
| **Status Bar** / **Notifier** / **Launcher** / **lockscreens** | [noctalia-shell][noctalia-shell] |
| **Display Manager** | [tuigreet][tuigreet] |
| **Color Scheme** | [catppuccin-nix][catppuccin-nix] |
| **network management tool** | [NetworkManager][NetworkManager] |
| **Input method framework** | [Fcitx5][Fcitx5] + [rime][rime] + [小鹤音形 flypy][flypy] |
| **System resource monitor** | [Btop][Btop] |
| **File Manager** | [Yazi][Yazi] + [thunar][thunar] |
| **Shell** | [Nushell][Nushell] + [Starship][Starship] |
| **Media Player** | [mpv][mpv] |
| **Text Editor** | [Neovim][Neovim] |
| **Fonts** | [Nerd fonts][Nerd fonts] |
| **Image Viewer** | [imv][imv] |
| **Screenshot Software** | Niri's builtin function |
| **Screen Recording** | [OBS][OBS] |
| **Filesystem & Encryption** | tmpfs as `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] encrypted partition for persistent, unlock via passphrase |
| **Secure Boot** | [lanzaboote][lanzaboote] |
Wallpapers: https://github.com/ryan4yin/wallpapers
## Hyprland + AstroNvim + DoomEmacs
## 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)
![](./_img/emacs-2024-01-07.webp)
## I3 + AstroNvim
![](./_img/i3_2023-07-29_1.webp)
![](./_img/i3_2023-07-29_2.webp)
![nvim](./_img/2026-01-04_niri-noctalia_nvim.webp)
## Neovim
See [./home/base/desktop/editors/neovim/](./home/base/desktop/editors/neovim/) for details.
## Emacs
See [./home/base/desktop/editors/emacs/](./home/base/desktop/editors/emacs/) for details.
## Hosts
See [./hosts](./hosts) for details.
See [./home/base/tui/editors/neovim/](./home/base/tui/editors/neovim/) for details.
## Secrets Management
@@ -85,71 +95,50 @@ See [./secrets](./secrets) for details.
## How to Deploy this Flake?
> :red_circle: **IMPORTANT**: **You should NOT deploy this flake directly on your machine:exclamation: It will not succeed.** this flake contains my hardware configuration(such as [hardware-configuration.nix](hosts/idols/ai/hardware-configuration.nix), [cifs-mount.nix](https://github.com/ryan4yin/nix-config/blob/v0.1.1/hosts/idols/ai/cifs-mount.nix), [Nvidia Support](https://github.com/ryan4yin/nix-config/blob/v0.1.1/hosts/idols/ai/default.nix#L77-L91), etc.) which is not suitable for your hardware, and my private secrets repository [ryan4yin/nix-secrets](https://github.com/ryan4yin/nix-config/tree/main/secrets) that only I have access to. You may use this repo as a reference to build your own configuration.
<!-- prettier-ignore -->
> :red_circle: **IMPORTANT**: **You should NOT deploy this flake directly on your machine :exclamation:
> It will not succeed.** This flake contains my hardware configuration(such as
> [hardware-configuration.nix](hosts/idols-ai/hardware-configuration.nix),
> [Nvidia Support](https://github.com/ryan4yin/nix-config/blob/v0.1.1/hosts/idols-ai/default.nix#L77-L91),
> etc.) which is not suitable for your hardware, and requires my private secrets repository
> [ryan4yin/nix-secrets](https://github.com/ryan4yin/nix-config/tree/main/secrets) to deploy. You
> may use this repo as a reference to build your own configuration.
For NixOS:
> To deploy this flake from NixOS's official ISO image(purest installation method), please refer to [./nixos-installer/](./nixos-installer/)
> Need to restart the machine when switching between `wayland` and `xorg`.
> To deploy this flake from NixOS's official ISO image (purest installation method), please refer to
> [./nixos-installer/](./nixos-installer/)
```bash
# deploy one of the configuration based on the hostname
sudo nixos-rebuild switch --flake .#ai_i3
# 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
just i3 # deploy my pc with i3 window manager
# just hypr # deploy my pc with hyprland compositor
# Deploy the niri nixosConfiguration by hostname match
just niri
# or we can deploy with details
just i3 debug
# just hypr-debug
just niri debug
```
For macOS:
```bash
# deploy harmonicia's configuration(macOS Intel)
just ha
# If you are deploying for the first time,
# 1. install nix & homebrew manually.
# 2. prepare the deployment environment with essential packages available
nix-shell -p just nushell
# 3. comment home-manager's code in lib/macosSystem.nix to speed up the first deployment.
# 4. comment out the proxy settings in scripts/darwin_set_proxy.py if the proxy is not ready yet.
# deploy fern's configuration(Apple Silicon)
just fe
# Deploy the darwinConfiguration by hostname match
just local
# deploy with details
just ha debug
# just fe debug
just local debug
```
> [What y'all will need when Nix drives you to drink.](https://www.youtube.com/watch?v=Eni9PPPPBpg) (copy from hlissner's dotfiles, it really matches my feelings when I first started using NixOS...)
## How to create & managage VM from this flake?
use `aquamarine` as an example, we can create a virtual machine with the following command:
```shell
# 1. generate a proxmox vma image file
nom build .#aquamarine # `nom`(nix-output-monitor) can be replaced by the standard command `nix`
# 2. upload the genereated image to proxmox server's backup directory `/var/lib/vz/dump`
# please replace the vma file name with the one you generated in step 1.
scp result/vzdump-qemu-aquamarine-nixos-23.11.20230603.dd49825.vma.zst root@192.168.5.174:/var/lib/vz/dump
# 3. the image we uploaded will be listed in proxmox web ui's this page: [storage 'local'] -> [backups], we can restore a vm from it via the web ui now.
```
Once the virtual machine `aquamarine` is created, we can deploy updates to it with the following commands:
```shell
# 1. add the ssh key to ssh-agent
ssh-add ~/.ssh/ai-idols
# 2. deploy the configuration to all the remote host with tag `@dist-build`
# using the ssh key we added in step 1
colmena apply --on '@dist-build' --show-trace
```
If you're not familiar with remote deployment, please read this tutorial first: [Remote Deployment - NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world/best-practices/remote-deployment)
> [What y'all will need when Nix drives you to drink.](https://www.youtube.com/watch?v=Eni9PPPPBpg)
> (copy from hlissner's dotfiles, it really matches my feelings when I first started using NixOS...)
## References
@@ -164,56 +153,43 @@ Other dotfiles that inspired me:
- [davidtwco/veritas](https://github.com/davidtwco/veritas)
- [gvolpe/nix-config](https://github.com/gvolpe/nix-config)
- [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes)
- [fufexan/dotfiles](https://github.com/fufexan/dotfiles): gtk theme, xdg, git, media, anyrun, etc.
- [fufexan/dotfiles](https://github.com/fufexan/dotfiles): gtk theme, xdg, git, media, etc.
- [nix-community/srvos](https://github.com/nix-community/srvos): a collection of opinionated and
sharable NixOS configurations for servers
- Modularized NixOS Configuration
- [hlissner/dotfiles](https://github.com/hlissner/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.
- [linuxmobile/kaku](https://github.com/linuxmobile/kaku)
- I3 Window Manager
- [endeavouros-i3wm-setup](https://github.com/endeavouros-team/endeavouros-i3wm-setup): I started using i3 here, and my i3 configuration is also based on it, but made a lot of changes.
- [denisse-dev/dotfiles](https://github.com/denisse-dev/dotfiles)
- Neovim/AstroNvim
- [maxbrunet/dotfiles](https://github.com/maxbrunet/dotfiles): astronvim with nix flakes.
- Misc
- [1amSimp1e/dots](https://github.com/1amSimp1e/dots)
[Hyprland]: https://github.com/hyprwm/Hyprland
[i3]: https://github.com/i3/i3
[Niri]: https://github.com/YaLTeR/niri
[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
[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
[rime]: https://wiki.archlinux.org/title/Rime
[flypy]: https://flypy.cc/
[Btop]: https://github.com/aristocratos/btop
[mpv]: https://github.com/mpv-player/mpv
[Zellij]: https://github.com/zellij-org/zellij
[Neovim]: https://github.com/neovim/neovim
[AstroNvim]: https://github.com/AstroNvim/AstroNvim
[DoomEmacs]: https://github.com/doomemacs/doomemacs
[flameshot]: https://github.com/flameshot-org/flameshot
[grim]: https://github.com/emersion/grim
[imv]: https://sr.ht/~exec64/imv/
[OBS]: https://obsproject.com
[Mako]: https://github.com/emersion/mako
[Nerd fonts]: https://github.com/ryanoasis/nerd-fonts
[catppuccin]: https://github.com/catppuccin/catppuccin
[mpd]: https://github.com/MusicPlayerDaemon/MPD
[ncmpcpp]: https://github.com/ncmpcpp/ncmpcpp
[mpc]: https://github.com/MusicPlayerDaemon/mpc
[Netease-cloud-music-gtk]: https://github.com/gmg137/netease-cloud-music-gtk
[catppuccin-nix]: https://github.com/catppuccin/nix
[NetworkManager]: https://wiki.gnome.org/Projects/NetworkManager
[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
[Yazi]: https://github.com/sxyazi/yazi
[Catppuccin]: https://github.com/catppuccin/catppuccin
[Btrfs]: https://btrfs.readthedocs.io
[LUKS]: https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system
[lanzaboote]: https://github.com/nix-community/lanzaboote
[noctalia-shell]: https://github.com/noctalia-dev/noctalia-shell

26
Virtual-Machine.md Normal file
View File

@@ -0,0 +1,26 @@
## How to create & managage KubeVirt's Virtual Machine from this flake?
Use `aquamarine` as an example, first build and upload the virtual machine's qcow2 image to the file
server:
```shell
just upload-vm aquamarine
```
Then create the virtual machine by creating a yaml file at
[ryan4yin/k8s-gitops](https://github.com/ryan4yin/k8s-gitops/tree/main/vms), set the
`spec.dataVolumeTemplates[0].source.http.url` to the uploaded file's URL, and fluxcd will
automatically apply the changes, then a virtual machine named `aquamarine` will be created in the
KubeVirt cluster.
Once the virtual machine `aquamarine` is created, we can deploy updates to it with the following
commands:
```shell
just col aquamarine
just col kubevirt-shoryu
just col k3s-test-1-master-1
```
If you're not familiar with remote deployment, please read this tutorial first:
[Remote Deployment - NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world/best-practices/remote-deployment)

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 KiB

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
_img/myself.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

2
certs/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.key
*.csr

23
certs/README.md Normal file
View File

@@ -0,0 +1,23 @@
# My Private PKI / CA
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.
## Current Structure
- **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.

10
certs/ecc-ca.crt Normal file
View File

@@ -0,0 +1,10 @@
-----BEGIN CERTIFICATE-----
MIIBajCB8QIJAIwL98is2nQPMAoGCCqGSM49BAMEMB8xHTAbBgNVBAMMFFJ5YW40
WWluJ3MgUm9vdCBDQSAxMB4XDTI0MDQwMzA4NDgzM1oXDTM0MDQwMTA4NDgzM1ow
HzEdMBsGA1UEAwwUUnlhbjRZaW4ncyBSb290IENBIDEwdjAQBgcqhkjOPQIBBgUr
gQQAIgNiAAQ6ixMbsGZ/u/ZnwzOZ49naVL7rQxm9C74SboGytKcYBH03JjC7tgZ3
DylirxSLcTYHHtCz9ajdamP6+sgiGVpUODtfGSO+WmS+gAbLjCS37T41bkUhkx88
JU4NsGhjPXcwCgYIKoZIzj0EAwQDaAAwZQIwDrGLSdO+p/1uywkzqzdM/OnZs8bp
n60uBhUI7EZzDmrouOFeGx+dXYI5yy5AD/qDAjEA7fTQx+jccyOj4dimq1iU9+71
e/gWYg0rexfy/+9dQY6kvwMzv8Lnm6URaRMbE1Q/
-----END CERTIFICATE-----

1
certs/ecc-ca.srl Normal file
View File

@@ -0,0 +1 @@
C050420A8E5A3C1E

22
certs/ecc-csr.conf Normal file
View File

@@ -0,0 +1,22 @@
[ req ]
prompt = no
req_extensions = v3_ext
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
countryName = US
stateOrProvinceName = NYK
localityName = NYK
organizationName = Ryan4Yin
organizationalUnitName = Ryan4Yin
commonName = writefor.fun # deprecated, use subjectAltName(SAN) instead
emailAddress = rayn4yin@linux.com
[ alt_names ]
DNS.1 = writefor.fun
DNS.2 = *.writefor.fun
[ v3_ext ]
subjectAltName=@alt_names
basicConstraints = CA:false
extendedKeyUsage = serverAuth

14
certs/ecc-server.crt Normal file
View File

@@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKTCCAa6gAwIBAgIJAMBQQgqOWjweMAoGCCqGSM49BAMEMB8xHTAbBgNVBAMM
FFJ5YW40WWluJ3MgUm9vdCBDQSAxMB4XDTI0MDQwMzA4NDgzM1oXDTM0MDQwMTA4
NDgzM1owgYkxCzAJBgNVBAYTAlVTMQwwCgYDVQQIDANOWUsxDDAKBgNVBAcMA05Z
SzERMA8GA1UECgwIUnlhbjRZaW4xETAPBgNVBAsMCFJ5YW40WWluMRUwEwYDVQQD
DAx3cml0ZWZvci5mdW4xITAfBgkqhkiG9w0BCQEWEnJheW40eWluQGxpbnV4LmNv
bTB2MBAGByqGSM49AgEGBSuBBAAiA2IABCNTYKDq/I99NltQR5eKrrovQXp9BbLV
iuUdYmzFrAh+NC9ikiIqTfDwP+c+7QvDyI3KXu3KI2qPSPdxktZKDUPHK4p2Y2kZ
xKOI2IFTgTqV3uBciyx7ayWPTwBYxsTDmqNLMEkwJwYDVR0RBCAwHoIMd3JpdGVm
b3IuZnVugg4qLndyaXRlZm9yLmZ1bjAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsG
AQUFBwMBMAoGCCqGSM49BAMEA2kAMGYCMQCHw9YkDo15P9mqEObvxSUak8tQmhBB
9wB81Qg4c+JsMCZA1rMUB7GkNJj1Dr9rWLoCMQDSituLzmo/yPLEOrbNV83bj3/I
ikKgobSie3pMXm5ZG7krOXaunyFRR/bIkih2V2Q=
-----END CERTIFICATE-----

22
certs/gen-certs.sh Normal file
View File

@@ -0,0 +1,22 @@
# 1. Generate the private key for Root CA
openssl ecparam -genkey -name secp384r1 -out ecc-ca.key
# 2. Generate the certificate for Root CA with the validity period of 10 years
# using the private key and some basic information
# NOTE: we specify sha512 as the signature algorithm, which is the key point
openssl req -x509 -new -SHA512 -key ecc-ca.key -subj "/CN=Ryan4Yin's Root CA 1" -days 3650 -out ecc-ca.crt
# 3. Generate the private key for web server
openssl ecparam -genkey -name secp384r1 -out ecc-server.key
# 4. Generate the certificate signing request (CSR) for the server certificate
# using the private key and the configuration file ecc-csr.conf
openssl req -new -SHA512 -key ecc-server.key -out ecc-server.csr -config ecc-csr.conf
# 5. Sign the server certificate with the Root CA's certificate and private key
# NOTE: we specify sha512 as the signature algorithm, which is the key point
openssl x509 -req -SHA512 -in ecc-server.csr -CA ecc-ca.crt -CAkey ecc-ca.key \
-CAcreateserial -out ecc-server.crt -days 3650 \
-extensions v3_ext -extfile ecc-csr.conf
# 6. Display the information of the certificates
openssl x509 -noout -text -in ecc-ca.crt
openssl x509 -noout -text -in ecc-server.crt

View File

@@ -1,17 +0,0 @@
rec {
# user information
username = "ryan";
userfullname = "Ryan Yin";
useremail = "xiaoyin_c@qq.com";
allSystemAttrs = {
# linux systems
x64_system = "x86_64-linux";
riscv64_system = "riscv64-linux";
aarch64_system = "aarch64-linux";
#darwin systems
x64_darwin = "x86_64-darwin";
aarch64_darwin = "aarch64-darwin";
};
allSystems = builtins.attrValues allSystemAttrs;
}

1191
flake.lock generated

File diff suppressed because it is too large Load Diff

211
flake.nix
View File

@@ -1,5 +1,5 @@
{
description = "NixOS & macOS configuration of Ryan Yin";
description = "Ryan Yin's nix configuration for both NixOS & macOS";
##################################################################################################################
#
@@ -8,79 +8,22 @@
#
##################################################################################################################
# The `outputs` function will return all the build results of the flake.
# A flake can have many use cases and different types of outputs,
# parameters in `outputs` are defined in `inputs` and can be referenced by their names.
# However, `self` is an exception, this special parameter points to the `outputs` itself (self-reference)
# The `@` syntax here is used to alias the attribute set of the inputs's parameter, making it convenient to use inside the function.
outputs = inputs @ {
self,
nixpkgs,
pre-commit-hooks,
...
}: let
constants = import ./constants.nix;
# `lib.genAttrs [ "foo" "bar" ] (name: "x_" + name)` => `{ foo = "x_foo"; bar = "x_bar"; }`
forEachSystem = func: (nixpkgs.lib.genAttrs constants.allSystems func);
allSystemConfigurations = import ./systems {inherit self inputs constants;};
in
allSystemConfigurations
// {
# format the nix code in this flake
# alejandra is a nix formatter with a beautiful output
formatter = forEachSystem (
system: nixpkgs.legacyPackages.${system}.alejandra
);
# pre-commit hooks for nix code
checks = forEachSystem (
system: {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
alejandra.enable = true; # formatter
# deadnix.enable = true; # detect unused variable bindings in `*.nix`
statix.enable = true; # lints and suggestions for Nix code(auto suggestions)
prettier = {
enable = true;
excludes = [".js" ".md" ".ts"];
};
};
};
}
);
devShells = forEachSystem (
system: {
default = nixpkgs.legacyPackages.${system}.mkShell {
packages = [
# fix https://discourse.nixos.org/t/non-interactive-bash-errors-from-flake-nix-mkshell/33310
nixpkgs.legacyPackages.${system}.bashInteractive
];
name = "dots";
shellHook = ''
${self.checks.${system}.pre-commit-check.shellHook}
'';
};
}
);
};
outputs = inputs: import ./outputs inputs;
# the nixConfig here only affects the flake itself, not the system configuration!
# for more information, see:
# https://nixos-and-flakes.thiscute.world/nixos-with-flakes/add-custom-cache-servers
# https://nixos-and-flakes.thiscute.world/nix-store/add-binary-cache-servers
nixConfig = {
# substituers will be appended to the default substituters when fetching packages
extra-substituters = [
"https://anyrun.cachix.org"
"https://hyprland.cachix.org"
# "https://nix-gaming.cachix.org"
# "https://nixpkgs-wayland.cachix.org"
# "https://install.determinate.systems"
];
extra-trusted-public-keys = [
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
# "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
# "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
# "cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM="
];
};
@@ -90,23 +33,31 @@
# There are many ways to reference flake inputs. The most widely used is github:owner/name/reference,
# which represents the GitHub repository URL + branch/commit-id/tag.
# Official NixOS package source, using nixos's stable branch by default
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
# nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# 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-stable.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-2505.url = "github:nixos/nixpkgs/nixos-25.05";
# 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
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-23.11-darwin";
# nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.11-darwin";
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nix-darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs-darwin";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# home-manager, used for managing user configuration
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
# url = "github:nix-community/home-manager/master";
url = "github:nix-community/home-manager/master";
# url = "github:nix-community/home-manager/release-25.11";
# 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,
@@ -114,24 +65,19 @@
inputs.nixpkgs.follows = "nixpkgs";
};
# https://github.com/catppuccin/nix
catppuccin = {
url = "github:catppuccin/nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.3.0";
url = "github:nix-community/lanzaboote/v0.4.3";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence.url = "github:nix-community/impermanence";
hyprland = {
url = "github:hyprwm/Hyprland/v0.33.1";
inputs.nixpkgs.follows = "nixpkgs";
};
# community wayland nixpkgs
# nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
# anyrun - a wayland launcher
anyrun = {
url = "github:Kirottu/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
preservation = {
url = "github:nix-community/preservation";
};
# generate iso/qcow2/docker/... image from nixos configuration
@@ -141,36 +87,76 @@
};
# secrets management
agenix = {
# lock with git commit at 0.14.0
url = "github:ryantm/agenix/54693c91d923fecb4cf04c4535e3d84f8dec7919";
# lock with git commit at May 18, 2025
url = "github:ryantm/agenix/4835b1dc898959d8547a871ef484930675cb47f1";
# replaced with a type-safe reimplementation to get a better error message and less bugs.
# url = "github:ryan4yin/ragenix";
inputs.nixpkgs.follows = "nixpkgs";
};
# add git hooks to format nix code before commit
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
disko = {
url = "github:nix-community/disko/v1.11.0";
inputs.nixpkgs.follows = "nixpkgs";
};
nuenv.url = "github:DeterminateSystems/nuenv";
# add git hooks to format nix code before commit
pre-commit-hooks = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nuenv = {
url = "github:DeterminateSystems/nuenv";
inputs.nixpkgs.follows = "nixpkgs";
};
haumea = {
url = "github:nix-community/haumea/v0.2.2";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpak = {
url = "github:nixpak/nixpak";
inputs.nixpkgs.follows = "nixpkgs";
};
ghostty = {
url = "github:ghostty-org/ghostty/tip"; # Latest Continuous Release
};
blender-bin = {
url = "github:edolstra/nix-warez?dir=blender";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-apple-silicon = {
# asahi-6.17.7-2
url = "github:nix-community/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
};
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";
};
# -------------- 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 #########################################
# AstroNvim is an aesthetic and feature-rich neovim config.
astronvim = {
url = "github:AstroNvim/AstroNvim/v3.40.3";
flake = false;
};
# doom-emacs is a configuration framework for GNU Emacs.
doomemacs = {
url = "github:doomemacs/doomemacs";
flake = false;
};
polybar-themes = {
url = "github:adi1090x/polybar-themes";
nu_scripts = {
url = "github:ryan4yin/nu_scripts";
flake = false;
};
@@ -183,6 +169,11 @@
flake = false;
};
my-asahi-firmware = {
url = "git+ssh://git@github.com/ryan4yin/asahi-firmware.git?shallow=1";
flake = false;
};
# my wallpapers
wallpapers = {
url = "github:ryan4yin/wallpapers";
@@ -191,14 +182,10 @@
nur-ryan4yin = {
url = "github:ryan4yin/nur-packages";
# inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
# riscv64 SBCs
nixos-licheepi4a.url = "github:ryan4yin/nixos-licheepi4a";
# nixos-jh7110.url = "github:ryan4yin/nixos-jh7110";
# aarch64 SBCs
nixos-rk3588.url = "github:ryan4yin/nixos-rk3588";
# for waydroid
# nur-ataraxiasjel.url = "github:AtaraxiaSjel/nur";
};
}

115
hardening/README.md Normal file
View File

@@ -0,0 +1,115 @@
# Linux Hardening
> Work in progress.
## Goal
- **System Level**: Protect critical files from being accessed by untrusted applications.
1. Such as browser cookies, SSH keys, etc.
- **Per-App Level**: Prevent untrusted applications(such as closed-source apps) from:
1. Accessing files they shouldn't.
- Such as a malicious application accessing your browser's cookies, SSH Keys, etc.
1. Accessing the network when they don't need to.
1. Accessing hardware devices they don't need.
## Current Structure
### 1. **System Level**
- **AppArmor** (`apparmor/`): AppArmor profiles and configuration
- **Kernel & System Hardening** (`profiles/`): System-wide hardening profiles
### 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
- NixOS Kernel Config:
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/os-specific/linux/kernel/hardened/config.nix
## System Hardening
- NixOS Profile:
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/profiles/hardened.nix
- Apparmor: [roddhjav/apparmor.d](https://github.com/roddhjav/apparmor.d)
- https://gitlab.com/apparmor/apparmor/-/wikis/Documentation
- AppArmor.d is a set of over 1500 AppArmor profiles whose aim is to confine most Linux based
applications and processes.
- But all the profiles of AppArmor assume a FHS filesystem, which caused all apparmor policies
takes no effect on NixOS.
- Apparmor on NixOS Roadmap:
- https://discourse.nixos.org/t/apparmor-on-nixos-roadmap/57217
- https://github.com/LordGrimmauld/aa-alias-manager
- SELinux: too complex, not recommended for personal use.
## Application Sandboxing
- [Bubblewrap](https://github.com/containers/bubblewrap):
[nixpak](https://github.com/nixpak/nixpak), more secure than firejail, but no batteries included.
- NixOS's FHSEnv is implemented using bubblewrap by default.
- [Firejail](https://github.com/netblue30/firejail/tree/master/etc): A SUID security sandbox with
hundreds of security profiles for many common applications in the default installation.
- https://wiki.nixos.org/wiki/Firejail
- Firejail needs SUID to work, which is considered a security risk -
[Does firejail improve the security of my system?](https://github.com/netblue30/firejail/discussions/4601)
- [Systemd/Hardening](https://wiki.nixos.org/wiki/Systemd/Hardening): Systemd also provides some
sandboxing features.
## NOTE
**Running untrusted code is never safe, kernel hardening & sandboxing cannot change this**.
If you want to run untrusted code, please use a VM & an isolated network environment, which will
provide a much higher level of security.
## References
- [Harden your NixOS workstation - dataswamp](https://dataswamp.org/~solene/2022-01-13-nixos-hardened.html)
- [Linux Insecurities - Madaidans](https://madaidans-insecurities.github.io/linux.html)
- [Sandboxing all programs by default - NixOS Discourse](https://discourse.nixos.org/t/sandboxing-all-programs-by-default/7792)
- [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
hardening.
- apparmor configs:
- 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
- Others:
- Directly via `buildFHSUserEnvBubblewrap`:

View File

@@ -0,0 +1,59 @@
{
config,
pkgs,
...
}:
{
services.dbus.apparmor = "enabled";
security.apparmor = {
enable = true;
# kill process that are not confined but have apparmor profiles enabled
killUnconfinedConfinables = true;
packages = with pkgs; [
apparmor-utils
apparmor-profiles
];
# apparmor policies
policies = {
"default_deny" = {
enforce = false;
enable = false;
profile = ''
profile default_deny /** { }
'';
};
"sudo" = {
enforce = false;
enable = false;
profile = ''
${pkgs.sudo}/bin/sudo {
file /** rwlkUx,
}
'';
};
"nix" = {
enforce = false;
enable = false;
profile = ''
${config.nix.package}/bin/nix {
unconfined,
}
'';
};
};
};
environment.systemPackages = with pkgs; [
apparmor-bin-utils
apparmor-profiles
apparmor-parser
libapparmor
apparmor-kernel-patches
apparmor-pam
apparmor-utils
];
}

View File

@@ -0,0 +1,9 @@
{
nixpkgs.overlays = [
(_: super: {
bwraps = {
wechat = super.callPackage ./wechat.nix { };
};
})
];
}

101
hardening/bwraps/wechat.nix Normal file
View File

@@ -0,0 +1,101 @@
# - wechat's flatpak manifest: https://github.com/flathub/com.tencent.WeChat/blob/master/com.tencent.WeChat.yaml
# Refer:
# - Flatpak manifest's docs:
# - https://docs.flatpak.org/en/latest/manifests.html
# - https://docs.flatpak.org/en/latest/sandbox-permissions.html
#
# TODO Since appimageTools.wrapAppImage do not support overriding, I have to pack this package myself.
# https://github.com/NixOS/nixpkgs/pull/358977
{
appimageTools,
fetchurl,
stdenvNoCC,
}:
let
pname = "wechat";
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/we/wechat/package.nix
sources = {
aarch64-linux = {
version = "4.1.0.13";
src = fetchurl {
# url = "https://web.archive.org/web/20251209092116if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
url = "https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
hash = "sha256-/d5crM6IGd0k0fSlBSQx4TpIVX/8iib+an0VMkWMNdw=";
};
};
x86_64-linux = {
version = "4.1.0.13";
src = fetchurl {
# url = "https://web.archive.org/web/20251219062558if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
url = "https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
hash = "sha256-+r5Ebu40GVGG2m2lmCFQ/JkiDsN/u7XEtnLrB98602w=";
};
};
};
inherit (stdenvNoCC.hostPlatform) system;
inherit (sources.${system} or (throw "Unsupported system: ${system}")) version src;
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/we/wechat/linux.nix
appimageContents = appimageTools.extract {
inherit pname version src;
postExtract = ''
patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/wechat/wechat
'';
};
in
appimageTools.wrapAppImage {
inherit pname version;
src = appimageContents;
extraInstallCommands = ''
mkdir -p $out/share/applications
cp ${appimageContents}/wechat.desktop $out/share/applications/
mkdir -p $out/share/pixmaps
cp ${appimageContents}/wechat.png $out/share/pixmaps/
substituteInPlace $out/share/applications/wechat.desktop --replace-fail AppRun wechat
'';
# Add these root paths to FHS sandbox to prevent WeChat from accessing them by default
# Adapted from https://aur.archlinux.org/cgit/aur.git/tree/wechat-universal.sh?h=wechat-universal-bwrap
extraPreBwrapCmds = ''
XDG_DOCUMENTS_DIR="''${XDG_DOCUMENTS_DIR:-$(xdg-user-dir DOCUMENTS)}"
if [[ -z "''${XDG_DOCUMENTS_DIR}" ]]; then
echo 'Error: Failed to get XDG_DOCUMENTS_DIR, refuse to continue'
exit 1
fi
WECHAT_DATA_DIR="''${XDG_DOCUMENTS_DIR}/WeChat_Data"
# Using ''${WECHAT_DATA_DIR} as Wechat Data folder
WECHAT_HOME_DIR="''${WECHAT_DATA_DIR}/home"
WECHAT_FILES_DIR="''${WECHAT_DATA_DIR}/xwechat_files"
mkdir -p "''${WECHAT_FILES_DIR}"
mkdir -p "''${WECHAT_HOME_DIR}"
ln -snf "''${WECHAT_FILES_DIR}" "''${WECHAT_HOME_DIR}/xwechat_files"
'';
extraBwrapArgs = [
"--tmpfs /home"
"--tmpfs /root"
# format: --bind <host-path> <sandbox-path>
"--bind \${WECHAT_HOME_DIR} \${HOME}"
"--bind \${WECHAT_FILES_DIR} \${WECHAT_FILES_DIR}"
"--chdir \${HOME}"
# wechat-universal only supports xcb
"--setenv QT_QPA_PLATFORM xcb"
"--setenv QT_AUTO_SCREEN_SCALE_FACTOR 1"
# use fcitx as IME
"--setenv QT_IM_MODULE fcitx"
"--setenv GTK_IM_MODULE fcitx"
];
chdirToPwd = false;
unshareNet = false;
unshareIpc = true;
unsharePid = true;
unshareUts = true;
unshareCgroup = true;
privateTmp = true;
}

View File

@@ -0,0 +1,31 @@
{
pkgs,
pkgs-master,
nixpak,
...
}:
let
callArgs = {
mkNixPak = nixpak.lib.nixpak {
inherit (pkgs) lib;
inherit pkgs;
};
safeBind = sloth: realdir: mapdir: [
(sloth.mkdir (sloth.concat' sloth.appDataDir realdir))
(sloth.concat' sloth.homeDir mapdir)
];
};
wrapper = _pkgs: path: (_pkgs.callPackage path callArgs);
in
{
# Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules
nixpkgs.overlays = [
(_: super: {
nixpaks = {
qq = wrapper pkgs-master ./qq.nix;
telegram-desktop = wrapper super ./telegram-desktop.nix;
firefox = wrapper super ./firefox.nix;
};
})
];
}

View File

@@ -0,0 +1,127 @@
# Refer:
# - Flatpak manifest's docs:
# - https://docs.flatpak.org/en/latest/manifests.html
# - https://docs.flatpak.org/en/latest/sandbox-permissions.html
# - Firefox's flatpak manifest: https://hg.mozilla.org/mozilla-central/file/tip/taskcluster/docker/firefox-flatpak/runme.sh#l151
{
lib,
firefox,
mkNixPak,
buildEnv,
makeDesktopItem,
...
}:
let
appId = "org.mozilla.firefox";
wrapped = mkNixPak {
config =
{
config,
sloth,
...
}:
{
app = {
package = firefox;
binPath = "bin/firefox";
};
flatpak.appId = appId;
imports = [
./modules/gui-base.nix
./modules/network.nix
./modules/common.nix
];
bubblewrap = {
# To trace all the home files Firefox 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
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;
};
})
];
}

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));
};
};
}

View File

@@ -0,0 +1,102 @@
# https://github.com/nixpak/pkgs/blob/master/pkgs/modules/gui-base.nix
{
config,
lib,
pkgs,
sloth,
...
}:
let
envSuffix = envKey: suffix: sloth.concat' (sloth.env envKey) suffix;
# cursor & icon's theme should be the same as the host's one.
cursorTheme = pkgs.bibata-cursors;
iconTheme = pkgs.papirus-icon-theme;
in
{
config = {
dbus.policies = {
"${config.flatpak.appId}" = "own";
# we add other policies in ./common.nix
};
# https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix
# 1. bind readonly - /run/opengl-driver
# 2. bind device - /dev/dri
gpu = {
enable = lib.mkDefault true;
provider = "nixos";
bundlePackage = pkgs.mesa.drivers; # for amd & intel
};
# https://github.com/nixpak/nixpak/blob/master/modules/gui/fonts.nix
# it works not well, bind system's /etc/fonts directly instead
fonts.enable = false;
# https://github.com/nixpak/nixpak/blob/master/modules/locale.nix
locale.enable = true;
bubblewrap = {
network = lib.mkDefault false;
bind.rw = [
[
(envSuffix "HOME" "/.var/app/${config.flatpak.appId}/cache")
sloth.xdgCacheHome
]
(sloth.concat' sloth.xdgCacheHome "/fontconfig")
(sloth.concat' sloth.xdgCacheHome "/mesa_shader_cache")
(sloth.concat [
(sloth.env "XDG_RUNTIME_DIR")
"/"
(sloth.envOr "WAYLAND_DISPLAY" "no")
])
(envSuffix "XDG_RUNTIME_DIR" "/at-spi/bus")
(envSuffix "XDG_RUNTIME_DIR" "/gvfsd")
(envSuffix "XDG_RUNTIME_DIR" "/pulse")
"/run/dbus"
];
bind.ro = [
(envSuffix "XDG_RUNTIME_DIR" "/doc")
(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")
"/etc/fonts" # for fontconfig
"/etc/localtime" # this is a symlink to /etc/zoneinfo/xxx
"/etc/zoneinfo"
# Fix: libEGL warning: egl: failed to create dri2 screen
"/etc/egl"
"/etc/static/egl"
];
bind.dev = [
"/dev/shm" # Shared Memory
# seems required when using nvidia as primary gpu
"/dev/nvidia0"
"/dev/nvidiactl"
"/dev/nvidia-modeset"
"/dev/nvidia-uvm"
];
tmpfs = [
"/tmp"
];
env = {
XDG_DATA_DIRS = lib.mkForce (
lib.makeSearchPath "share" [
iconTheme
cursorTheme
pkgs.shared-mime-info
]
);
XCURSOR_PATH = lib.mkForce (
lib.concatStringsSep ":" [
"${cursorTheme}/share/icons"
"${cursorTheme}/share/pixmaps"
]
);
};
};
};
}

View File

@@ -0,0 +1,8 @@
# https://github.com/nixpak/pkgs/blob/master/pkgs/modules/network.nix
{
etc.sslCertificates.enable = true;
bubblewrap = {
bind.ro = [ "/etc/resolv.conf" ];
network = true;
};
}

79
hardening/nixpaks/qq.nix Normal file
View File

@@ -0,0 +1,79 @@
# Refer:
# - Flatpak manifest's docs:
# - https://docs.flatpak.org/en/latest/manifests.html
# - https://docs.flatpak.org/en/latest/sandbox-permissions.html
# - QQ's flatpak manifest: https://github.com/flathub/com.qq.QQ/blob/master/com.qq.QQ.yaml
{
lib,
qq,
mkNixPak,
buildEnv,
makeDesktopItem,
...
}:
let
appId = "com.qq.QQ";
wrapped = mkNixPak {
config =
{ sloth, ... }:
{
app = {
package = qq;
binPath = "bin/qq";
};
flatpak.appId = appId;
imports = [
./modules/gui-base.nix
./modules/network.nix
./modules/common.nix
];
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 = [
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;
};
})
];
}

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";
};
})
];
}

View File

@@ -0,0 +1,10 @@
{ modulesPath, ... }:
{
imports = [
(modulesPath + "/profiles/hardened.nix")
];
# disable coredump that could be exploited later
# and also slow down the system when something crash
systemd.coredump.enable = false;
}

View File

@@ -1,6 +1,48 @@
# Home Manager's Submodules
1. `base`: The base module that is suitable for both Linux and macOS.
2. `linux`: Linux-specific configuration.
3. `darwin`: macOS-specific configuration.
This directory contains all Home Manager configurations organized by platform and functionality.
## 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.)

View File

@@ -1,6 +1,66 @@
# Home Manager's Base Submodules
1. `server`: Configuration which is suitable for both servers and desktops.
1. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc.
1. `core.nix`: Minimal home-manager's config
This directory contains cross-platform base configurations that are shared between Linux and Darwin
systems.
## 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.

9
home/base/core/btop.nix Normal file
View File

@@ -0,0 +1,9 @@
{
# replacement of htop/nmon
programs.btop = {
enable = true;
settings = {
theme_background = false; # make btop transparent
};
};
}

99
home/base/core/core.nix Normal file
View File

@@ -0,0 +1,99 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
# nix related
#
# it provides the command `nom` works just like `nix
# with more details log output
nix-output-monitor
hydra-check # check hydra(nix's build farm) for the build status of a package
nix-index # A small utility to index nix store paths
nix-init # generate nix derivation from url
# https://github.com/nix-community/nix-melt
nix-melt # A TUI flake.lock viewer
# https://github.com/utdemir/nix-tree
nix-tree # A TUI to visualize the dependency graph of a nix derivation
# misc
cowsay
gnupg
caddy # A webserver with automatic HTTPS via Let's Encrypt(replacement of nginx)
# 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
# other core cli tools are installed at system-level
];
# A modern replacement for ls
# useful in bash/zsh prompt, not in nushell.
programs.eza = {
enable = true;
# do not enable aliases in nushell!
enableNushellIntegration = false;
git = true;
icons = "auto";
};
# a cat(1) clone with syntax highlighting and Git integration.
programs.bat = {
enable = true;
config = {
pager = "less -FR";
};
};
# A command-line fuzzy finder
programs.fzf.enable = true;
# very fast version of tldr in Rust
programs.tealdeer = {
enable = true;
enableAutoUpdates = true;
settings = {
display = {
compact = false;
use_pager = true;
};
updates = {
auto_update = false;
auto_update_interval_hours = 720;
};
};
};
# zoxide is a smarter cd command, inspired by z and autojump.
# It remembers which directories you use most frequently,
# so you can "jump" to them in just a few keystrokes.
# zoxide works on all major shells.
#
# z foo # cd into highest ranked directory matching foo
# z foo bar # cd into highest ranked directory matching foo and bar
# z foo / # cd into a subdirectory starting with foo
#
# z ~/foo # z also works like a regular cd command
# z foo/ # cd into relative path
# z .. # cd one level up
# z - # cd into previous directory
#
# zi foo # cd with interactive selection (using fzf)
#
# z foo<SPACE><TAB> # show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only)
programs.zoxide = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableNushellIntegration = true;
};
# Atuin replaces your existing shell history with a SQLite database,
# and records additional context for your commands.
# Additionally, it provides optional and fully encrypted
# synchronisation of your history between machines, via an Atuin server.
programs.atuin = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableNushellIntegration = true;
};
}

View File

@@ -1,3 +1,4 @@
{mylib, ...}: {
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,10 @@
# Editors
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.

View File

@@ -1,3 +1,4 @@
{mylib, ...}: {
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,4 @@
{ pkgs, ... }:
{
programs.helix.enable = true;
}

View File

@@ -1,9 +1,9 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs = {
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
};

128
home/base/core/git.nix Normal file
View File

@@ -0,0 +1,128 @@
{
config,
lib,
pkgs,
myvars,
...
}:
{
# `programs.git` will generate the config file: ~/.config/git/config
# to make git use this config file, `~/.gitconfig` should not exist!
#
# https://git-scm.com/docs/git-config#Documentation/git-config.txt---global
home.activation.removeExistingGitconfig = lib.hm.dag.entryBefore [ "checkLinkTargets" ] ''
rm -f ${config.home.homeDirectory}/.gitconfig
'';
# GitHub CLI tool
# https://cli.github.com/manual/
programs.gh = {
enable = true;
settings = {
git_protocol = "ssh";
prompt = "enabled";
aliases = {
co = "pr checkout";
pv = "pr view";
};
};
hosts = {
"github.com" = {
"users" = {
"ryan4yin" = null;
};
"user" = "ryan4yin";
};
};
};
programs.git = {
enable = true;
lfs.enable = true;
# signing = {
# key = "xxx";
# signByDefault = true;
# };
includes = [
{
# use different email & name for work:
#
# [user]
# email = "xxx@xxx.com"
# name = "Ryan Yin"
path = "~/work/.gitconfig";
condition = "gitdir:~/work/";
}
];
settings = {
user.email = myvars.useremail;
user.name = myvars.userfullname;
init.defaultBranch = "main";
trim.bases = "develop,master,main"; # for git-trim
push.autoSetupRemote = true;
pull.rebase = true;
log.date = "iso"; # use iso format for date
# replace https with ssh
url = {
"ssh://git@github.com/ryan4yin" = {
insteadOf = "https://github.com/ryan4yin";
};
# "ssh://git@bitbucket.com/ryan4yin" = {
# insteadOf = "https://bitbucket.com/ryan4yin";
# };
};
alias = {
# common aliases
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";
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";
};
};
};
# A syntax-highlighting pager for git, diff, grep, and blame output
programs.delta = {
enable = true;
enableGitIntegration = true;
options = {
diff-so-fancy = true;
line-numbers = true;
true-color = "always";
# features => named groups of settings, used to keep related settings organized
# features = "";
};
};
# Git terminal UI (written in go).
programs.lazygit.enable = true;
# Yet another Git TUI (written in rust).
programs.gitui.enable = false;
}

10
home/base/core/npm.nix Normal file
View File

@@ -0,0 +1,10 @@
{ config, ... }:
{
# make `npm install -g <pkg>` happey
#
# mainly used to install npm packages that updates frequently
# such as gemini-cli, claude-code, etc.
home.file.".npmrc".text = ''
prefix=${config.home.homeDirectory}/.npm
'';
}

19
home/base/core/pip.nix Normal file
View File

@@ -0,0 +1,19 @@
_: {
# use mirror for pip install
xdg.configFile."pip/pip.conf".text = ''
[global]
index-url = https://mirror.nju.edu.cn/pypi/web/simple
format = columns
'';
# xdg.configFile."pip/pip.conf".text = ''
# [global]
# index-url = https://mirror.nju.edu.cn/pypi/web/simple
# format = columns
# '';
# xdg.configFile."pip/pip.conf".text = ''
# [global]
# index-url = https://mirrors.bfsu.edu.cn/pypi/web/simple
# '';
}

View File

@@ -0,0 +1,175 @@
# Based on the default config generated by:
# ```
# config nu --default
# ```
#
# Nushell Config File Documentation
#
# Warning: This file is intended for documentation purposes only and
# is not intended to be used as an actual configuration file as-is.
#
# version = "0.103.0"
#
# A `config.nu` file is used to override default Nushell settings,
# define (or import) custom commands, or run any other startup tasks.
# See https://www.nushell.sh/book/configuration.html
#
# Nushell sets "sensible defaults" for most configuration settings, so
# the user's `config.nu` only needs to override these defaults if
# desired.
#
# This file serves as simple "in-shell" documentation for these
# settings, or you can view a more complete discussion online at:
# https://nushell.sh/book/configuration
#
# You can pretty-print and page this file using:
# config nu --doc | nu-highlight | less -R
# $env.config
# -----------
# The $env.config environment variable is a record containing most Nushell
# configuration settings. Keep in mind that, as a record, setting it to a
# new record will remove any keys which aren't in the new record. Nushell
# will then automatically merge in the internal defaults for missing keys.
#
# The same holds true for keys in the $env.config which are also records
# or lists.
#
# For this reason, settings are typically changed by updating the value of
# a particular key. Merging a new config record is also possible. See the
# Configuration chapter of the book for more information.
$env.config.history.file_format = "sqlite"
$env.config.history.max_size = 5_000_000
# isolation (bool):
# `true`: New history from other currently-open Nushell sessions is not
# seen when scrolling through the history using PrevHistory (typically
# the Up key) or NextHistory (Down key)
# `false`: All commands entered in other Nushell sessions will be mixed with
# those from the current shell.
# Note: Older history items (from before the current shell was started) are
# always shown.
# This setting only applies to SQLite-backed history
$env.config.history.isolation = true
# ----------------------
# Miscellaneous Settings
# ----------------------
# show_banner (bool): Enable or disable the welcome banner at startup
$env.config.show_banner = false
# rm.always_trash (bool):
# true: rm behaves as if the --trash/-t option is specified
# false: rm behaves as if the --permanent/-p option is specified (default)
$env.config.rm.always_trash = true
# recursion_limit (int): how many times a command can call itself recursively
# before an error will be generated.
$env.config.recursion_limit = 50
# ---------------------------
# Commandline Editor Settings
# ---------------------------
# edit_mode (string) "vi" or "emacs" sets the editing behavior of Reedline
$env.config.edit_mode = "vi"
# Command that will be used to edit the current line buffer with Ctrl+O.
# If unset, uses $env.VISUAL and then $env.EDITOR
#
$env.config.buffer_editor = ["nvim", "--clean"]
# cursor_shape_* (string)
# -----------------------
# The following variables accept a string from the following selections:
# "block", "underscore", "line", "blink_block", "blink_underscore", "blink_line", or "inherit"
# "inherit" skips setting cursor shape and uses the current terminal setting.
$env.config.cursor_shape.emacs = "inherit" # Cursor shape in emacs mode
$env.config.cursor_shape.vi_insert = "block" # Cursor shape in vi-insert mode
$env.config.cursor_shape.vi_normal = "underscore" # Cursor shape in normal vi mode
# --------------------
# Terminal Integration
# --------------------
# Nushell can output a number of escape codes to enable advanced features in Terminal Emulators
# that support them. Settings in this section enable or disable these features in Nushell.
# Features aren't supported by your Terminal can be disabled. Features can also be disabled,
# of course, if there is a conflict between the Nushell and Terminal's implementation.
# use_kitty_protocol (bool):
# A keyboard enhancement protocol supported by the Kitty Terminal. Additional keybindings are
# available when using this protocol in a supported terminal. For example, without this protocol,
# Ctrl+I is interpreted as the Tab Key. With this protocol, Ctrl+I and Tab can be mapped separately.
$env.config.use_kitty_protocol = false
# osc2 (bool):
# When true, the current directory and running command are shown in the terminal tab/window title.
# Also abbreviates the directory name by prepending ~ to the home directory and its subdirectories.
$env.config.shell_integration.osc2 = true
# osc7 (bool):
# Nushell will report the current directory to the terminal using OSC 7. This is useful when
# spawning new tabs in the same directory.
$env.config.shell_integration.osc7 = true
# osc9_9 (bool):
# Enables/Disables OSC 9;9 support, originally a ConEmu terminal feature. This is an
# alternative to OSC 7 which also communicates the current path to the terminal.
$env.config.shell_integration.osc9_9 = false
# osc8 (bool):
# When true, the `ls` command will generate clickable links that can be launched in another
# application by the terminal.
# Note: This setting replaces the now deprecated `ls.clickable_links`
$env.config.shell_integration.osc8 = true
# osc133 (bool):
# true/false to enable/disable OSC 133 support, a set of several escape sequences which
# report the (1) starting location of the prompt, (2) ending location of the prompt,
# (3) starting location of the command output, and (4) the exit code of the command.
# originating with Final Term. These sequences report information regarding the prompt
# location as well as command status to the terminal. This enables advanced features in
# some terminals, including the ability to provide separate background colors for the
# command vs. the output, collapsible output, or keybindings to scroll between prompts.
$env.config.shell_integration.osc133 = true
# osc633 (bool):
# true/false to enable/disable OSC 633, an extension to OSC 133 for Visual Studio Code
$env.config.shell_integration.osc633 = true
# NU_LIB_DIRS
# -----------
# Directories in this constant are searched by the
# `use` and `source` commands.
#
# By default, the `scripts` subdirectory of the default configuration
# directory is included:
const NU_LIB_DIRS = [
($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
($nu.data-dir | path join 'completions') # default home for nushell completions
]
# NU_PLUGIN_DIRS
# --------------
# Directories to search for plugin binaries when calling add.
# By default, the `plugins` subdirectory of the default configuration
# directory is included:
const NU_PLUGIN_DIRS = [
($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
]
# As with NU_LIB_DIRS, an $env.NU_PLUGIN_DIRS is searched after the constant version
# The `path add` function from the Standard Library also provides
# a convenience method for prepending to the path:
use std/util "path add"
path add "~/.local/bin"
# You can remove duplicate directories from the path using:
$env.PATH = ($env.PATH | uniq)

View File

@@ -1,3 +1,4 @@
{ config, ... }:
let
shellAliases = {
k = "kubectl";
@@ -5,21 +6,28 @@ let
urldecode = "python3 -c 'import sys, urllib.parse as ul; print(ul.unquote_plus(sys.stdin.read()))'";
urlencode = "python3 -c 'import sys, urllib.parse as ul; print(ul.quote_plus(sys.stdin.read()))'";
};
in {
# only works in bash/zsh, not nushell
home.shellAliases = shellAliases;
programs.nushell = {
enable = true;
configFile.source = ./config.nu;
shellAliases = shellAliases;
};
localBin = "${config.home.homeDirectory}/.local/bin";
goBin = "${config.home.homeDirectory}/go/bin";
rustBin = "${config.home.homeDirectory}/.cargo/bin";
npmBin = "${config.home.homeDirectory}/.npm/bin";
in
{
programs.bash = {
enable = true;
enableCompletion = true;
bashrcExtra = ''
export PATH="$HOME/.local/bin:$HOME/go/bin:$PATH"
export PATH="$PATH:${localBin}:${goBin}:${rustBin}:${npmBin}"
'';
};
# NOTE: only works in bash/zsh, not nushell
home.shellAliases = shellAliases;
# NOTE: nushell will be launched in bash, so it can inherit all the eenvironment variables.
programs.nushell = {
enable = true;
configFile.source = ./config.nu;
inherit shellAliases;
};
}

View File

@@ -0,0 +1,29 @@
{
programs.starship = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableNushellIntegration = true;
# https://starship.rs/config/
settings = {
# Get editor completions based on the config schema
"$schema" = "https://starship.rs/config-schema.json";
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
# I never rely on the defaults, so this module is useless to me—disabled.
# I prefer adding --project, --region to very gcloud/aws command.
aws.disabled = true;
gcloud.disabled = true;
kubernetes = {
symbol = "";
disabled = false;
};
os.disabled = false;
};
};
}

16
home/base/core/theme.nix Normal file
View File

@@ -0,0 +1,16 @@
{ catppuccin, ... }:
{
# https://github.com/catppuccin/nix
imports = [
catppuccin.homeModules.catppuccin
];
catppuccin = {
# The default `enable` value for all available programs.
enable = true;
# one of "latte", "frappe", "macchiato", "mocha"
flavor = "mocha";
# one of "blue", "flamingo", "green", "lavender", "maroon", "mauve", "peach", "pink", "red", "rosewater", "sapphire", "sky", "teal", "yellow"
accent = "pink";
};
}

17
home/base/core/yazi.nix Normal file
View File

@@ -0,0 +1,17 @@
{ pkgs, ... }:
{
# terminal file manager
programs.yazi = {
enable = true;
package = pkgs.yazi;
# Changing working directory when exiting Yazi
enableBashIntegration = true;
enableNushellIntegration = true;
settings = {
mgr = {
show_hidden = true;
sort_dir_first = true;
};
};
};
}

View File

@@ -2,7 +2,8 @@ let
shellAliases = {
"zj" = "zellij";
};
in {
in
{
programs.zellij = {
enable = true;
};

View File

@@ -1,28 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs;
[
# general tools
pulumi
pulumictl
packer # machine image builder
# aws
awscli2
ssm-session-manager-plugin # Amazon SSM Session Manager Plugin
aws-iam-authenticator
eksctl
istioctl
# aliyun
aliyun-cli
]
++ (
if pkgs.stdenv.isLinux
then [
# cloud tools that nix do not have cache for.
terraform
terraformer # generate terraform configs from existing cloud resources
]
else []
);
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
pkgs-unstable,
...
}: {
home.packages = with pkgs; [
skopeo
docker-compose
dive # explore docker layers
];
programs = {
};
}

View File

@@ -1,30 +0,0 @@
{
pkgs,
nur-ryan4yin,
...
}: {
home.packages = with pkgs; [
kubectl
kubernetes-helm
];
programs = {
k9s = {
enable = true;
skin = let
skin_file = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-k9s}/dist/mocha.yml"; # theme - catppuccin mocha
skin_attr = builtins.fromJSON (
builtins.readFile
# replace 'base: &base "#1e1e2e"' with 'base: &base "default"'
# to make fg/bg color transparent. "default" means transparent in k9s skin.
(pkgs.runCommandNoCC "get-skin-json" {} ''
cat ${skin_file} \
| sed -E 's@(base: &base ).+@\1 "default"@g' \
| ${pkgs.yj}/bin/yj > $out
'')
);
in
skin_attr;
};
};
}

View File

@@ -1,71 +0,0 @@
{
pkgs,
pkgs-unstable,
...
}: {
#############################################################
#
# Basic settings for development environment
#
# Please avoid to install language specific packages here(globally),
# instead, install them:
# 1. per IDE, such as `programs.neovim.extraPackages`
# 2. per-project, using https://github.com/the-nix-way/dev-templates
#
#############################################################
home.packages = with pkgs;
[
# db related
dbeaver
mycli
pgcli
mongosh
sqlite
# embedded development
minicom
# ai related
python311Packages.huggingface-hub # huggingface-cli
# misc
pkgs-unstable.devbox
glow # markdown previewer
fzf
gdu # disk usage analyzer, required by AstroNvim
bfg-repo-cleaner # remove large files from git history
k6 # load testing tool
protobuf # protocol buffer compiler
nix-init # generate nix package from url
]
++ (
if pkgs.stdenv.isLinux
then [
# Automatically trims your branches whose tracking remote refs are merged or gone
# It's really useful when you work on a project for a long time.
git-trim
# need to run `conda-install` before using it
# need to run `conda-shell` before using command `conda`
# conda is not available for MacOS
conda
mitmproxy # http/https proxy tool
insomnia # REST client
wireshark # network analyzer
]
else []
);
programs = {
direnv = {
enable = true;
nix-direnv.enable = true;
enableZshIntegration = true;
enableBashIntegration = true;
enableNushellIntegration = true;
};
};
}

View File

@@ -1,150 +0,0 @@
# Editors
My editors:
1. Neovim
2. Emacs
3. Helix
And `Zellij` for a smooth and stable terminal experience.
## Tutorial
Type `:tutor`(`:Tutor` in Neovim) to learn the basics usage of vim/neovim.
## VIM's Cheetsheet
> Here only record my commonly used keyboard keys, to see **a more comprehensive cheetsheet**: <https://github.com/rtorr/vim-cheat-sheet>
Both Emacs-Evil & Neovim are compatible with vim, sothe key-bindings described here are common in both Emacs-Evil, Neovim & vim.
### Terminal Related
I mainly use Zellij for terminal related operations, here is its terminal shortcuts I use frequently now:
| Action | Zellij's Shortcut |
| ------------------------- | ----------------- |
| Floating Terminal | `Ctrl + p + w` |
| Horizontal Split Terminal | `Ctrl + p + d` |
| Vertical Split Terminal | `Ctrl + p + n` |
### File Management
| Action | |
| --------------------------------- | -------------------------------------------- |
| Save selected text to a file | `:w filename` (Will show `:'<,'>w filename`) |
| Save and close the current buffer | `:wq` |
| Save all buffers | `:wa` |
| Save and close all buffers | `:wqa` |
### Text Manipulation
Basics:
| Action | |
| --------------------------------------------------- | ------------------------------ |
| Move to the start/end of the buffer | `gg`/`G` |
| Move the line number 5 | `5gg` / `5G` |
| Move left/down/up/right | h/j/k/l or `5h`/`5j`/`5k`/`5l` |
| Move to the matchpairs, default to `()`, `{}`, `[]` | `%` |
| Delete the current character | `x` |
| Delete the selection | `d` |
| Undo the last change | `u` |
| Redo the last change | `Ctrl + r` |
Convert Text Cases:
| Toggle text's case | `~` |
| Convert to uppercase | `U` |
| Convert to lowercase | `u` |
Misc:
| Action | Shortcut |
| ----------------------------- | ---------------------------------------- |
| Toggle visual mode | `v` (lower case v) |
| Select the current line | `V` (upper case v) |
| Toggle visual block mode | `<Ctrl> + v` (select a block vertically) |
| Fold the current code block | `zc` |
| Unfold the current code block | `zo` |
| Jump to Definition | `gd` |
| Jump to References | `gD` |
| (Un)Comment the current line | `gcc` |
| Action | |
| ------------------------------------------------------------------------- | -------------- |
| Join Selection of Lines With Space | `:join` or `J` |
| Join without spaces | `:join!` |
| Move to the start/end of the line | `0` / `$` |
| Enter Insert mode at the start/end of the line | `I` / `A` |
| Delete from the cursor to the end of the line | `D` |
| Delete from the cursor to the end of the line, and then enter insert mode | `C` |
Advance Techs:
- Add at the end of multiple lines: `:normal A<text>`
- Execublock: `:A<text>`
- visual block mode(ctrl + v)
- Append text at the end of each line in the selected block
- If position exceeds line end, neovim adds spaces automatically
- Delete the last char of multivle lines: `:normal $x`
- Execute `$x` on each line
- visual mode(v)
- `$` moves cursor to the end of line
- `x` deletes the character under the cursor
- Delete the last word of multiple lines: `:normal $bD`
- Execute `$bD` on each line
- visual mode(v)
- `$` moves cursor to the end of line
- `b` moves cursor to the beginning of the last word
### Search
| Action | Command |
| ----------------------------------------------------- | --------- |
| Search forward/backword for a pattern | `/` / `?` |
| Repeat the last search in the same/opposite direction | `n` / `N` |
### Find and Replace
| Action | Command |
| ------------------------ | ----------------------------------- |
| Replace in selected area | `:s/old/new/g` |
| Replace in current line | Same as above |
| Replace in whole file | `:% s/old/new/g` |
| Replace with regex | `:% s@\vhttp://(\w+)@https://\1@gc` |
1. `\v` means means that in the regex pattern after it can be used without backslash escaping(similar to python's raw string).
2. `\1` means the first matched group in the pattern.
### Replace in the specific lines
| Action | Command |
| ----------------------------------------- | -------------------------------------- |
| From the 10th line to the end of the file | `:10,$ s/old/new/g` or `:10,$ s@^@#@g` |
| From the 10th line to the 20th line | `:10,20 s/old/new/g` |
The postfix(flags) in the above commands:
1. `g` means replace all the matched strings in the current line/file.
2. `c` means ask for confirmation before replacing.
3. `i` means ignore case.
### Buffers, Windows and Tabs
- A buffer is the in-memory text of a file.
- A window is a viewport on a buffer.
- A tab page is a collection of windows.
| Action | Command |
| ----------------------------------- | ----------------------------------- |
| Show all buffers | `:ls` |
| show next/previous buffer | `]b`/`[b` or `:bn[ext]` / `bp[rev]` |
| Split the window horizontally | `:sp[lit]` |
| Split the window horizontally | `:vs[plit]` |
| New Tab(New Workspace in DoomEmacs) | `:tabnew` |
| Next/Previews Tab | `gt`/`gT` |

View File

@@ -1,24 +0,0 @@
# Structured Editing
## S-expression data(Lisp)
- paredit/[lispy](https://github.com/doomemacs/doomemacs/tree/master/modules/editor/lispy): too complex.
- [evil-cleverparens](https://github.com/emacs-evil/evil-cleverparens): simple and useful.
- [parinfer(par-in-fer)](https://shaunlebron.github.io/parinfer/): morden, simple, elegant and useful, but works not well with some other completion plugins...
- to make parinfer works, you should disable sexp & smartparens in any lisp mode.
Some plugins:
- Emacs
- [parinfer-rust-mode](https://github.com/justinbarclay/parinfer-rust-mode)
- Neovim
- [parinfer-rust](https://github.com/eraserhd/parinfer-rust)
- <https://github.com/Olical/conjure>
- Helix
- [parinfer #4090 - Helix](https://github.com/helix-editor/helix/discussions/4090)
## Other Languages
1. treesitter
1. ...

View File

@@ -1,172 +0,0 @@
# Emacs Editor
## Why emacs?
1. Explore the unknown, just for fun!
2. Org Mode
3. Lisp Coding
4. A top-level tutorial for Emacs(Chinese): <https://nyk.ma/tags/emacs/>
5. A Beginner's Guide to Emacs(Chinese): <https://github.com/emacs-tw/emacs-101-beginner-survival-guide>
## Screenshot
![](/_img/emacs-2024-01-07.webp)
## Usefull Links
- Framework: <https://github.com/doomemacs/doomemacs>
- key bindings:
- source code: <https://github.com/doomemacs/doomemacs/blob/master/modules/config/default/%2Bevil-bindings.el>
- docs: <https://github.com/doomemacs/doomemacs/blob/master/modules/editor/evil/README.org>
- module index: <https://github.com/doomemacs/doomemacs/blob/master/docs/modules.org>
- LSP Client: <https://github.com/manateelazycat/lsp-bridge>
- Emacs Wiki: <https://www.emacswiki.org/emacs/SiteMap>
- Awesome Emacs: <https://github.com/emacs-tw/awesome-emacs#lsp-client>
- Chinese(rime) support: <https://github.com/DogLooksGood/emacs-rime>
- modal editing:
- <https://github.com/emacs-evil/evil>: evil mode, enabled by default in doom-emacs.
- <https://github.com/meow-edit/meow>
## Install or Update
After deploying this nix flake, run the following command to install or update emacs:
```bash
doom sync
```
when in doubt, run `doom sync`!
## Testing
> via `Justfile` located at the root of this repo.
```bash
# testing
just emacs-test
jsut emacs-purge
just emacs-reload
# clear test data
just emacs-clear
```
## Cheetsheet
Here is the cheetsheet related to my DoomEmacs configs. Please read vim's common cheetsheet at [../README.md](../README.md) before reading the following.
### Basics
> Terminal(vterm) is useful in GUI mode, I use Zellij instead in terminal mode.
| Action | Shortcut |
| ---------------------- | ------------------------------------------------- |
| Popup Terminal(vterm) | `SPC + o + t` |
| Open Terminal | `SPC + o + T` |
| Open file tree sidebar | `SPC + o + p` |
| Exit | `M-x C-c` |
| Execute Command | `M-x`(hold on `Alt`/`option`, and then press `x`) |
| Eval Lisp Code | `M-:`(hold on `Alt`/`option`, and then press `:`) |
### Window Navigation
| Action | Shortcut |
| ------------------------------------------ | --------------------------------------------------------------------- |
| Split a window vertically and horizontally | `SPC w v/s` |
| Move to a window in a specific direction | `Ctrl-w + h/j/k/l` |
| Move a window to a specific direction | `Ctrl-w + H/J/K/L` |
| Move to the next window | `SPC w w` |
| Close the current window | `SPC w q` |
| Rebalance all windows | `SPC w =` |
| Set window's width(columns) | `80 SPC w \|` (the Vertical line is escaped due to markdown's limits) |
| Set window's height | `30 SPC w _ ` |
### File Tree
- treemacs: <https://github.com/Alexander-Miller/treemacs/blob/master/src/elisp/treemacs-mode.el>
- treemacs-evil: <https://github.com/Alexander-Miller/treemacs/blob/master/src/extra/treemacs-evil.el>
| Action | Shortcut |
| ------------------------------------- | --------- |
| Resize Treemacs's window | `>` & `<` |
| Extra Wide Window | `W` |
| Rename | `R` |
| Delete File/Direcoty | `d` |
| New File | `cf` |
| New Directory | `cd` |
| Go to parent | `u` |
| Run shell command in for current node | `!` |
| Refresh file tree | `gr` |
| Copy project-path into pasteboard | `yp` |
| Copy absolute-path into pasteboard | `ya` |
| Copy relative-path into pasteboard | `yr` |
| Copy file to another location | `yf` |
| Move file to another location | `m` |
| quit | `q` |
And bookmarks:
- Add bookmarks in treemacs: `b`
- Show Bookmark List: `SPC s m`
### Splitting and Buffers
| Action | Shortcut |
| ----------------------- | ----------------- |
| Buffer List | `<Space> + ,` |
| Save all buffers(Tab) | `<Space> + b + S` |
| Kill the current buffer | `<Space> + b + k` |
| Kill all buffers | `<Space> + b + K` |
### Editing and Formatting
| Action | Shortcut |
| ------------------------------------------ | ------------------- |
| Format Document | `<Space> + cf` |
| Code Actions | `<Space> + ca` |
| Rename | `<Space> + cr` |
| Opening LSP symbols | `<Space> + cS` |
| Show all LSP Errors | `<Space> + c + x/X` |
| Show infinite undo history(really useful!) | `<Space> + s + u` |
| Open filepath/URL at cursor | `gf` |
| Find files by keyword in path | `<Space> + <Space>` |
| Grep string in files (vertico + ripgrep) | `<Space> + sd` |
### Image Preview(GUI mode only)
Use `-`, `+` to resize the image, `r` to rotate the image.
### Search & replace
```bash
SPC s p foo C-; E C-c C-p :%s/foo/bar/g RET Z Z
```
1. `SPC s p`: search in project
1. `foo`: the keyword to search
1. `C-; E`: exports what youre looking at into a new buffer in grep-mode
1. `C-c C-p` to run wgrep-change-to-wgrep-mode to make the search results writable.
1. `:%s/foo/bar/g RET`: replace in the current buffer(just like neovim/vim)
1. `Z Z`: to write all the changes to their respective files
### Projects
> easily switch between projects without exit emacs!
| Action | |
| -------------------------- | ------------- |
| Switch between projects | `SPC + p + p` |
| Browse the current project | `SPC + p + .` |
| Add new project | `SPC + p + a` |
### Workspaces
> Very useful when run emacs in daemon/client modes
| Action | |
| --------------------------- | --------------------------- |
| Switch between workspaces | `M-1/2/3/...`(Alt-1/2/3/..) |
| New Workspace | `SPC + TAB + n` |
| New Named Workspace | `SPC + TAB + N` |
| Delete Workspace | `SPC + TAB + d` |
| Display Workspaces bar blow | `SPC + TAB + TAB` |

View File

@@ -1,139 +0,0 @@
# ==============================================
# Based on doomemacs's auther's config:
# https://github.com/hlissner/dotfiles/blob/master/modules/editors/emacs.nix
#
# Emacs Tutorials:
# 1. Official: <https://www.gnu.org/software/emacs/tour/index.html>
# 2. Doom Emacs: <https://github.com/doomemacs/doomemacs/blob/master/docs/index.org>
#
{
config,
lib,
pkgs,
doomemacs,
...
}:
with lib; let
cfg = config.modules.editors.emacs;
envExtra = ''
export PATH="${config.xdg.configHome}/emacs/bin:$PATH"
'';
shellAliases = {
e = "emacsclient --create-frame"; # gui
et = "emacsclient --create-frame --tty"; # termimal
};
librime-dir = "${config.xdg.dataHome}/emacs/librime";
parinfer-rust-lib-dir = "${config.xdg.dataHome}/emacs/parinfer-rust";
myEmacsPackagesFor = emacs: ((pkgs.emacsPackagesFor emacs).emacsWithPackages (epkgs: [
epkgs.vterm
]));
in {
options.modules.editors.emacs = {
enable = mkEnableOption "Emacs Editor";
};
config = mkIf cfg.enable (mkMerge [
{
home.packages = with pkgs; [
## Doom dependencies
git
(ripgrep.override {withPCRE2 = true;})
gnutls # for TLS connectivity
## Optional dependencies
fd # faster projectile indexing
imagemagick # for image-dired
zstd # for undo-fu-session/undo-tree compression
# go-mode
gocode
## Module dependencies
# :checkers spell
(aspellWithDicts (ds: with ds; [en en-computers en-science]))
# :tools editorconfig
editorconfig-core-c # per-project style config
# :tools lookup & :lang org +roam
sqlite
# :lang latex & :lang org (latex previews)
texlive.combined.scheme-medium
];
programs.bash.bashrcExtra = envExtra;
programs.zsh.envExtra = envExtra;
home.shellAliases = shellAliases;
programs.nushell.shellAliases = shellAliases;
# allow fontconfig to discover fonts and configurations installed through `home.packages`
fonts.fontconfig.enable = true;
xdg.configFile."doom" = {
source = ./doom;
force = true;
};
xdg.configFile."emacs/lsp-bridge-user-langserver" = {
source = ./lsp-bridge-user-langserver;
force = true;
};
home.activation.installDoomEmacs = lib.hm.dag.entryAfter ["writeBoundary"] ''
${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F744 ${doomemacs}/ ${config.xdg.configHome}/emacs/
# librime for emacs-rime
mkdir -p ${librime-dir}
${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F744 ${pkgs.librime}/ ${librime-dir}/
# libparinfer_rust for emacs' parinfer-rust-mode
mkdir -p ${parinfer-rust-lib-dir}
${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F744 ${pkgs.vimPlugins.parinfer-rust}/lib/libparinfer_rust.* ${parinfer-rust-lib-dir}/parinfer-rust.so
'';
}
(mkIf pkgs.stdenv.isLinux (
let
# Do not use emacs-nox here, which makes the mouse wheel work abnormally in terminal mode.
# pgtk (pure gtk) build add native support for wayland.
# https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html#Releases
emacsPkg = myEmacsPackagesFor pkgs.emacs29-pgtk;
in {
home.packages = [emacsPkg];
services.emacs = {
enable = true;
package = emacsPkg;
client = {
enable = true;
arguments = [" --create-frame"];
};
startWithUserSession = true;
};
}
))
(mkIf pkgs.stdenv.isDarwin (
let
# macport adds some native features based on GNU Emacs 29
# https://bitbucket.org/mituharu/emacs-mac/src/master/README-mac
emacsPkg = myEmacsPackagesFor pkgs.emacs29;
in {
home.packages = [emacsPkg];
launchd.enable = true;
launchd.agents.emacs = {
enable = true;
config = {
ProgramArguments = [
"${pkgs.bash}/bin/bash"
"-l"
"-c"
"${emacsPkg}/bin/emacs --fg-daemon"
];
StandardErrorPath = "${config.home.homeDirectory}/Library/Logs/emacs-daemon.stderr.log";
StandardOutPath = "${config.home.homeDirectory}/Library/Logs/emacs-daemon.stdout.log";
RunAtLoad = true;
KeepAlive = true;
};
};
}
))
]);
}

View File

@@ -1,179 +0,0 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. It is optional.
;; (setq user-full-name "John Doe"
;; user-mail-address "john@doe.com")
;; Doom exposes five (optional) variables for controlling fonts in Doom:
;;
;; - `doom-font' -- the primary font to use
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;; - `doom-symbol-font' -- for symbols
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
;;
;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
(setq doom-font (font-spec :family "JetBrainsMono Nerd Font" :size 18)
doom-variable-pitch-font (font-spec :family "DejaVu Sans")
doom-symbol-font (font-spec :family "Symbols Nerd Font Mono")
doom-big-font (font-spec :family "JetBrainsMono Nerd Font" :size 28))
;; Users should inject their own font logic in `after-setting-font-hook'
;; Add font for CJK charset
(defun init-cjk-fonts()
(dolist (charset '(kana han cjk-misc bopomofo))
(set-fontset-font (frame-parameter nil 'font)
charset (font-spec :family "Source Han Sans SC"))))
(add-hook 'after-setting-font-hook 'init-cjk-fonts)
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
;; wasn't installed correctly. Font issues are rarely Doom issues!
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
;; other doom's official themes:
;; https://github.com/doomemacs/themes
(setq doom-theme 'doom-dracula) ;; doom-one doom-dracula doom-nord
(if (eq system-type 'darwin)
;; Transparent Backgroud - for macOS
;;(set-frame-parameter (selected-frame) 'alpha '(<active> . <inactive>))
;;(set-frame-parameter (selected-frame) 'alpha <both>)
(progn
(set-frame-parameter (selected-frame) 'alpha '(85 . 70))
(add-to-list 'default-frame-alist '(alpha . (85 . 70))))
;; Transparent Background - for Linux Xorg/Wayland
(set-frame-parameter nil 'alpha-background 93) ; For current frame
(add-to-list 'default-frame-alist '(alpha-background . 93))); For all new frames henceforth
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t)
(setq warning-minimum-level :error)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/org/")
;; Whenever you reconfigure a package, make sure to wrap your config in an
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
;;
;; (after! PACKAGE
;; (setq x y))
;;
;; The exceptions to this rule:
;;
;; - Setting file/directory variables (like `org-directory')
;; - Setting variables which explicitly tell you to set them before their
;; package is loaded (see 'C-h v VARIABLE' to look up their documentation).
;; - Setting doom variables (which start with 'doom-' or '+').
;;
;; Here are some additional functions/macros that will help you configure Doom.
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; fix vterm's color
(set-face-attribute 'vterm-color-default nil :foreground fg)
(set-face-attribute 'vterm-color-black nil :background base0 :foreground base0)
(set-face-attribute 'vterm-color-red nil :background red :foreground red)
(set-face-attribute 'vterm-color-green nil :background green :foreground green)
(set-face-attribute 'vterm-color-yellow nil :background yellow :foreground yellow)
(set-face-attribute 'vterm-color-blue nil :background blue :foreground blue)
(set-face-attribute 'vterm-color-magenta nil :background magenta :foreground magenta)
(set-face-attribute 'vterm-color-cyan nil :background cyan :foreground cyan)
(set-face-attribute 'vterm-color-white nil :background base8 :foreground base8)
(after! vterm
(setq vterm-shell "nu")) ; use nushell by defualt
(use-package! lsp-bridge
:config
(setq lsp-bridge-enable-log nil) ;; disabled for performance
;; for user's custom langserver file
(setq lsp-bridge-user-langserver-dir "~/.config/emacs/lsp-bridge-user-langserver")
(setq lsp-bridge-enable-auto-format-code 1)
(global-lsp-bridge-mode))
(use-package! wakatime-mode :ensure t)
;; fully enable tree-sitter highlighting
(after! tree-sitter
(setq +tree-sitter-hl-enabled-modes t))
;; fix: https://github.com/jrblevin/markdown-mode/issues/380
;; even add this one, editing a large markdown table is still very slow.
;; so avoid editing large markdown file in emacs, use neovim instead...
(after! markdown-mode
(global-font-lock-mode 0))
;; use alejandra to format nix files
;; (use-package! lsp-nix
;; :ensure lsp-mode
;; :after
;; (lsp-mode)
;; :demand t
;; :custom
;; (lsp-nix-nil-formatter
;; ["alejandra"]))
(use-package! nushell-mode
:config
(setq nushell-enable-auto-indent 1))
;; emacs-rime
(use-package! rime
:custom
(default-input-method "rime")
(rime-librime-root "~/.local/share/emacs/librime"))
;; use parinfer for lisp editing
(use-package! parinfer-rust-mode
:hook ((emacs-lisp-mode
clojure-mode
scheme-mode
lisp-mode
racket-mode
fennel-mode
hy-mode) . parinfer-rust-mode)
:init
;; parinfer-rust library do not provide a apple silicon binary.
;; fix: https://github.com/doomemacs/doomemacs/issues/6163
(setq parinfer-rust-auto-download 0)
;; we need to download it manually and put it in this path
(setq parinfer-rust-library "~/.local/share/emacs/parinfer-rust/parinfer-rust.so")
:config
(map! :map parinfer-rust-mode-map
:localleader
"p" #'parinfer-rust-switch-mode
"P" #'parinfer-rust-toggle-disable))
;; disable smatparens-mode here to void conflict with parinfer
;; https://discourse.doomemacs.org/t/disable-smartparens-or-parenthesis-completion/134
(add-hook 'clojure-mode-hook #'turn-off-smartparens-mode)
(add-hook 'scheme-mode-hook #'turn-off-smartparens-mode)
(add-hook 'lisp-mode-hook #'turn-off-smartparens-mode)
(add-hook 'racket-mode-hook #'turn-off-smartparens-mode)
(add-hook 'fennel-mode-hook #'turn-off-smartparens-mode)
(add-hook 'hy-mode-hook #'turn-off-smartparens-mode)

View File

@@ -1,211 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a link to Doom's Module Index where all
;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
;; (company +childframe) ; conflict with lsp-bridge
; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life
vertico ; the search engine of the future
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
;; (emoji +unicode) ; Emacs 29 provides native support for inserting Unicode emojis.
; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
indent-guides ; highlighted indent columns
ligatures ; ligatures and symbols to make your code pretty again
modeline ; snazzy, Atom-inspired modeline, plus API
ophints ; highlight the region an operation acts on
(popup +defaults)
; tame sudden yet inevitable temporary windows
tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages
(vc-gutter +pretty)
; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere)
; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
(format +onsave)
; automated prettiness
;; multiple-cursors ; editing in many places at once
;; objed ; text object editing for the innocent
parinfer ; turn lisp into python, sort of, conflict with copilot/objed/smartparens
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell)
; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;biblio ; Writes a PhD for you (citation needed)
;;collab ; buffers with friends
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
(docker)
editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay)
; run code, run (also, repls)
lookup ; navigate your code and its documentation
;; lsp ; lsp-mode, conflict with lsp-bridge
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
(terraform)
; infrastructure as code
tree-sitter ; syntax and parsing, sitting in a tree...
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos)
; improve compatibility with macOS
tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +tree-sitter)
; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
(go +tree-sitter) ;; disable go-mode, use lsp-bridge instead
; the hipster dialect
;;(graphql) ; Give queries a REST
;;(haskell) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
(json +tree-sitter)
; At least it ain't XML
(java +tree-sitter)
; the poster child for carpal tunnel syndrome
(javascript +tree-sitter)
; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
(latex)
; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
(lua +tree-sitter)
; one-based indices? one-based indices
(markdown +grip)
; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
(nix +tree-sitter)
; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
org ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +tree-sitter +pyright)
; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +tree-sitter)
; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
(scheme +guile)
; a fully conniving family of lisps
(sh +tree-sitter)
; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web +tree-sitter)
; support for various web languages, including HTML5, CSS, SASS/SCSS, Pug/Jade/Slim, and more
(yaml +tree-sitter)
; JSON, but readable
;;zig ; C, but simpler
:email
;;(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))

View File

@@ -1,69 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
(package! nerd-icons)
(package! rime)
(package! wakatime-mode
:recipe
(:host github :repo "wakatime/wakatime-mode" :files
("*.el" "dist")))
(package! nushell-mode :recipe
(:host github :repo "mrkkrp/nushell-mode"))
(when (package! lsp-bridge
:recipe (:host github
:repo "manateelazycat/lsp-bridge"
:branch "master"
:files ("*.el" "*.py" "acm" "core" "langserver" "multiserver" "resources")
;; do not perform byte compilation or native compilation for lsp-bridge
:build (:not compile)))
(package! markdown-mode)
(package! yasnippet))
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;; (package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format
;; (package! another-package
;; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;; (package! this-package
;; :recipe (:host github :repo "username/repo"
;; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;; (package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;; (package! builtin-package :recipe (:nonrecursive t))
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see radian-software/straight.el#279)
;; (package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;; (package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;; (unpin! pinned-package)
;; ...or multiple packages
;; (unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;; (unpin! t)

View File

@@ -1,10 +0,0 @@
{
"name": "nil",
"languageId": "nix",
"command": ["nil"],
"settings": {
"nil": {
"formatting": { "command": ["alejandra"] }
}
}
}

View File

@@ -1,29 +0,0 @@
# Helix Editor
Neovim is really powerful, and have a very active community. I use it as my main editor, and I'm very happy with it. I use it for everything, from writing code to writing this document.
But its configuration is a bit complex, and finding the right plugins, writing configurations, and keeping everything up to date is not easy.
That's why I'm interested in Helix, Helix is similar to Neovim, but it's more opinionated, and it's batteries included.
Whether I'll switch my main editor to Helix or not, it gives me a lot of ideas on how to improve my Neovim workflow.
## Differences between Neovim and Helixer
1. Neovim have a very activate plugin ecosystem, and it's easy to find plugins for almost everything.
1. Helix is still new, and it even do have a stable plugin system yet. A PR to add a plugin system is still envolving: <https://github.com/helix-editor/helix/pull/8675>
2. Neovim has intergrated terminal, and it's very powerful. It's quite similar to VSCode's intergrated terminal. I use it a lot.
1. Helix doesn't have a intergrated terminal yet, as it's complicated to implement. Users are recommended to use tmux/Zellij or Wezterm/Kitty to implement this feature instead.
1. <https://github.com/helix-editor/helix/issues/1976#issuecomment-1091074719>
1. <https://github.com/helix-editor/helix/pull/4649>
1. **My Neovim often gets stuck when I switch to [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim), this Helix issue made me consider to switch from this Neovim plugin to Zellij**.
1. Helix do not have a tree-view panel, it's recommended to use Yazi/ranger/Broot instead, and open Helix in them.
1. a tree-view plugin may be added after the plugin system is stable, but no one knows when it will be.
2. and some Helix users stated that they don't need a tree-view plugin, Helix's file picker is useful and good enough.
1. It seems Helix lacks a substitution command, you should run it in another window(via wm or Zellij).
1. Neovim's substitution command allow you to preview the changes before you apply it, and it's very useful. if I switch to Helix, I'll need to find some other tools with similar feature(such as https://github.com/ms-jpq/sad).
2. The downside of Neovim's substitution command is that it's unable to save the command we just typed. If I made some things wrong, I have to type the whole substitution command again.
I think Use Helix/Neovim within a terminal file manager(Yazi/ranger/Broot) and Zellij is a good idea.
It's quite different from the workflow I migrated from VSCode/JetBrains before, I'm very interested in it.
In Neovim I can make the workflow similar to VSCode/JetBrains by using some plugins, but Helix forces me to get out of my comfort zone, and try something new.

View File

@@ -1,36 +0,0 @@
{
pkgs,
nur-ryan4yin,
...
}: {
# https://github.com/catppuccin/helix
xdg.configFile."helix/themes".source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-helix}/themes/default";
programs.helix = {
enable = true;
package = pkgs.helix;
settings = {
theme = "catppuccin_mocha";
editor = {
line-number = "relative";
cursorline = true;
color-modes = true;
lsp.display-messages = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides.render = true;
};
keys.normal = {
space = {
space = "file_picker";
w = ":w";
q = ":q";
};
esc = ["collapse_selection" "keep_primary_selection"];
};
};
};
}

View File

@@ -1,2 +0,0 @@
.clj-kondo/
.nrepl-port

View File

@@ -1 +0,0 @@
{:source-file-patterns ["*.fnl" "**/*.fnl"]}

View File

@@ -1,579 +0,0 @@
return {
colorscheme = "catppuccin",
options = {
opt = {
relativenumber = true, -- Show relative numberline
signcolumn = "auto", -- Show sign column when used only
spell = false, -- Spell checking
swapfile = false, -- Swapfile
smartindent = false, -- fix https://github.com/ryan4yin/nix-config/issues/4
title = true, -- Set the title of window to `filename [+=-] (path) - NVIM`
-- The percentage of 'columns' to use for the title
-- When the title is longer, only the end of the path name is shown.
titlelen = 20,
},
},
plugins = {
"AstroNvim/astrocommunity",
-- Motion
{ import = "astrocommunity.motion.mini-surround" },
-- https://github.com/echasnovski/mini.ai
{ import = "astrocommunity.motion.mini-ai" },
{ import = "astrocommunity.motion.flash-nvim" },
-- diable toggleterm.nvim, zellij's terminal is far better than neovim's one
{ "akinsho/toggleterm.nvim", enabled = false },
{ "folke/flash.nvim", vscode = false },
-- Highly experimental plugin that completely replaces
-- the UI for messages, cmdline and the popupmenu.
-- { import = "astrocommunity.utility.noice-nvim" },
-- Fully featured & enhanced replacement for copilot.vim
-- <Tab> work with both auto completion in cmp and copilot
{ import = "astrocommunity.media.vim-wakatime" },
{ import = "astrocommunity.motion.leap-nvim" },
{ import = "astrocommunity.motion.flit-nvim" },
{ import = "astrocommunity.scrolling.nvim-scrollbar" },
{ import = "astrocommunity.editing-support.todo-comments-nvim" },
-- Language Support
---- Frontend & NodeJS
{ import = "astrocommunity.pack.typescript-all-in-one" },
{ import = "astrocommunity.pack.tailwindcss" },
{ import = "astrocommunity.pack.html-css" },
{ import = "astrocommunity.pack.prisma" },
{ import = "astrocommunity.pack.vue" },
---- Configuration Language
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.pack.toml" },
---- Backend / System
{ import = "astrocommunity.pack.lua" },
{ import = "astrocommunity.pack.go" },
{ import = "astrocommunity.pack.rust" },
{ import = "astrocommunity.pack.python" },
{ import = "astrocommunity.pack.java" },
{ import = "astrocommunity.pack.cmake" },
{ import = "astrocommunity.pack.cpp" },
-- { import = "astrocommunity.pack.nix" }, -- manually add config for nix, comment this one.
{ import = "astrocommunity.pack.proto" },
---- Operation & Cloud Native
{ import = "astrocommunity.pack.terraform" },
{ import = "astrocommunity.pack.bash" },
{ import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.pack.helm" },
-- colorscheme
{ import = "astrocommunity.colorscheme.catppuccin" },
{
"catppuccin/nvim",
name = "catppuccin",
opts = function(_, opts)
opts.flavour = "mocha" -- latte, frappe, macchiato, mocha
opts.transparent_background = true -- setting the background color.
end,
},
-- Language Parser for syntax highlighting / indentation / folding / Incremental selection
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
local utils = require("astronvim.utils")
opts.incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>", -- Ctrl + Space
node_incremental = "<C-space>",
scope_incremental = "<A-space>", -- Alt + Space
node_decremental = "<bs>", -- Backspace
},
}
opts.ignore_install = { "gotmpl" }
opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, {
-- neovim
"vim",
"lua",
-- operation & cloud native
"dockerfile",
"hcl",
"jsonnet",
"regex",
"terraform",
"nix",
"csv",
-- other programming language
"diff",
"gitignore",
"gitcommit",
"latex",
"sql",
-- Lisp like
"fennel",
"clojure",
"commonlisp",
-- customized languages:
"scheme",
})
-- add support for scheme
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.scheme = {
install_info = {
url = "https://github.com/6cdh/tree-sitter-scheme", -- local path or git repo
files = { "src/parser.c" },
-- optional entries:
branch = "main", -- default branch in case of git repo if different from master
generate_requires_npm = false, -- if stand-alone parser without npm dependencies
requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c
},
}
-- use scheme parser for filetypes: scm
vim.treesitter.language.register("scheme", "scm")
end,
},
{
"eraserhd/parinfer-rust",
build = "cargo build --release",
ft = { "scm", "scheme" },
},
{ "Olical/nfnl", ft = "fennel" },
{
"Olical/conjure",
ft = { "clojure", "fennel", "python", "scheme" }, -- etc
-- [Optional] cmp-conjure for cmp
dependencies = {
{
"PaterJason/cmp-conjure",
config = function()
local cmp = require("cmp")
local config = cmp.get_config()
table.insert(config.sources, {
name = "buffer",
option = {
sources = {
{ name = "conjure" },
},
},
})
cmp.setup(config)
end,
},
},
config = function(_, opts)
require("conjure.main").main()
require("conjure.mapping")["on-filetype"]()
end,
init = function()
-- Set configuration options here
vim.g["conjure#debug"] = true
end,
},
{
"nvim-orgmode/orgmode",
dependencies = {
{ "nvim-treesitter/nvim-treesitter", lazy = true },
},
event = "VeryLazy",
config = function()
-- Load treesitter grammar for org
require("orgmode").setup_ts_grammar()
-- Setup treesitter
require("nvim-treesitter.configs").setup({
highlight = {
enable = true,
additional_vim_regex_highlighting = { "org" },
},
ensure_installed = { "org" },
})
-- Setup orgmode
require("orgmode").setup({
org_agenda_files = "~/org/**/*",
org_default_notes_file = "~/org/refile.org",
})
end,
},
-- Lua implementation of CamelCaseMotion, with extra consideration of punctuation.
{ import = "astrocommunity.motion.nvim-spider" },
-- AI Assistant
{ import = "astrocommunity.completion.copilot-lua-cmp" },
-- Custom copilot-lua to enable filtypes: markdown
{
"zbirenbaum/copilot.lua",
opts = function(_, opts)
opts.filetypes = {
yaml = true,
markdown = true,
}
end,
},
{
"0x00-ketsu/autosave.nvim",
-- lazy-loading on events
event = { "InsertLeave", "TextChanged" },
opts = function(_, opts)
opts.prompt_style = "stdout" -- notify or stdout
end,
},
-- markdown preview
{
"0x00-ketsu/markdown-preview.nvim",
ft = { "md", "markdown", "mkd", "mkdn", "mdwn", "mdown", "mdtxt", "mdtext", "rmd", "wiki" },
config = function()
require("markdown-preview").setup({
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the setup section below
})
end,
},
-- clipboard manager
{
"gbprod/yanky.nvim",
opts = function()
local mapping = require("yanky.telescope.mapping")
local mappings = mapping.get_defaults()
mappings.i["<c-p>"] = nil
return {
highlight = { timer = 200 },
picker = {
telescope = {
use_default_mappings = false,
mappings = mappings,
},
},
}
end,
keys = {
{
"y",
"<Plug>(YankyYank)",
mode = { "n", "x" },
desc = "Yank text",
},
{
"p",
"<Plug>(YankyPutAfter)",
mode = { "n", "x" },
desc = "Put yanked text after cursor",
},
{
"P",
"<Plug>(YankyPutBefore)",
mode = { "n", "x" },
desc = "Put yanked text before cursor",
},
{
"gp",
"<Plug>(YankyGPutAfter)",
mode = { "n", "x" },
desc = "Put yanked text after selection",
},
{
"gP",
"<Plug>(YankyGPutBefore)",
mode = { "n", "x" },
desc = "Put yanked text before selection",
},
{ "[y", "<Plug>(YankyCycleForward)", desc = "Cycle forward through yank history" },
{ "]y", "<Plug>(YankyCycleBackward)", desc = "Cycle backward through yank history" },
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put indented after cursor (linewise)" },
{ "[p", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put indented before cursor (linewise)" },
{ "]P", "<Plug>(YankyPutIndentAfterLinewise)", desc = "Put indented after cursor (linewise)" },
{ "[P", "<Plug>(YankyPutIndentBeforeLinewise)", desc = "Put indented before cursor (linewise)" },
{ ">p", "<Plug>(YankyPutIndentAfterShiftRight)", desc = "Put and indent right" },
{ "<p", "<Plug>(YankyPutIndentAfterShiftLeft)", desc = "Put and indent left" },
{ ">P", "<Plug>(YankyPutIndentBeforeShiftRight)", desc = "Put before and indent right" },
{ "<P", "<Plug>(YankyPutIndentBeforeShiftLeft)", desc = "Put before and indent left" },
{ "=p", "<Plug>(YankyPutAfterFilter)", desc = "Put after applying a filter" },
{ "=P", "<Plug>(YankyPutBeforeFilter)", desc = "Put before applying a filter" },
},
},
-- Enhanced matchparen.vim plugin for Neovim to highlight the outer pair.
{
"utilyre/sentiment.nvim",
version = "*",
event = "VeryLazy", -- keep for lazy loading
opts = {
-- config
},
init = function()
-- `matchparen.vim` needs to be disabled manually in case of lazy loading
vim.g.loaded_matchparen = 1
end,
},
-- joining blocks of code into oneline, or splitting one line into multiple lines.
{
"Wansmer/treesj",
keys = { "<space>m", "<space>j", "<space>s" },
dependencies = { "nvim-treesitter/nvim-treesitter" },
config = function()
require("treesj").setup({ --[[ your config ]]
})
end,
},
-- File explorer(Custom configs)
{
"nvim-neo-tree/neo-tree.nvim",
opts = {
filesystem = {
filtered_items = {
visible = true, -- visible by default
hide_dotfiles = false,
hide_gitignored = false,
},
},
},
},
-- The plugin offers the alibity to refactor code.
{
"ThePrimeagen/refactoring.nvim",
dependencies = {
{ "nvim-lua/plenary.nvim" },
{ "nvim-treesitter/nvim-treesitter" },
},
},
-- The plugin offers the abilibty to search and replace.
{
"nvim-pack/nvim-spectre",
dependencies = {
{ "nvim-lua/plenary.nvim" },
},
},
-- full signature help, docs and completion for the nvim lua API.
{ "folke/neodev.nvim", opts = {} },
-- automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.
{ "RRethy/vim-illuminate", config = function() end },
-- implementation/definition preview
{
"rmagatti/goto-preview",
config = function()
require("goto-preview").setup({})
end,
},
-- Undo tree
{ "debugloop/telescope-undo.nvim" },
-- Install lsp, formmatter and others via home manager instead of Mason.nvim
-- LSP installations
{
"williamboman/mason-lspconfig.nvim",
-- mason is unusable on NixOS, disable it.
-- ensure_installed nothing
opts = function(_, opts)
opts.ensure_installed = nil
opts.automatic_installation = false
end,
},
-- Formatters/Linter installation
{
"jay-babu/mason-null-ls.nvim",
-- mason is unusable on NixOS, disable it.
-- ensure_installed nothing
opts = function(_, opts)
opts.ensure_installed = nil
opts.automatic_installation = false
end,
},
-- Debugger installation
{
"jay-babu/mason-nvim-dap.nvim",
-- mason is unusable on NixOS, disable it.
-- ensure_installed nothing
opts = function(_, opts)
opts.ensure_installed = nil
opts.automatic_installation = false
end,
},
{
"jose-elias-alvarez/null-ls.nvim",
opts = function(_, opts)
local null_ls = require("null-ls")
local code_actions = null_ls.builtins.code_actions
local diagnostics = null_ls.builtins.diagnostics
local formatting = null_ls.builtins.formatting
local hover = null_ls.builtins.hover
local completion = null_ls.builtins.completion
-- https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md
if type(opts.sources) == "table" then
vim.list_extend(opts.sources, {
-- Common Code Actions
code_actions.gitsigns,
-- common refactoring actions based off the Refactoring book by Martin Fowler
code_actions.refactoring,
code_actions.gomodifytags, -- Go - modify struct field tags
code_actions.impl, -- Go - generate interface method stubs
code_actions.shellcheck,
code_actions.proselint, -- English prose linter
code_actions.statix, -- Lints and suggestions for Nix.
-- Diagnostic
diagnostics.actionlint, -- GitHub Actions workflow syntax checking
diagnostics.buf, -- check text in current buffer
diagnostics.checkmake, -- check Makefiles
diagnostics.deadnix, -- Scan Nix files for dead code.
-- Formatting
formatting.prettier, -- js/ts/vue/css/html/json/... formatter
diagnostics.hadolint, -- Dockerfile linter
formatting.black, -- Python formatter
formatting.ruff, -- extremely fast Python linter
formatting.goimports, -- Go formatter
formatting.shfmt, -- Shell formatter
formatting.rustfmt, -- Rust formatter
formatting.taplo, -- TOML formatteautoindentr
formatting.terraform_fmt, -- Terraform formatter
formatting.stylua, -- Lua formatter
formatting.alejandra, -- Nix formatter
formatting.sqlfluff.with({ -- SQL formatter
extra_args = { "--dialect", "postgres" }, -- change to your dialect
}),
formatting.nginx_beautifier, -- Nginx formatter
formatting.verible_verilog_format, -- Verilog formatter
formatting.emacs_scheme_mode, -- using emacs in batch mode to format scheme files.
formatting.fnlfmt, -- Format Fennel code
})
end
end,
},
{
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
dependencies = { "nvim-lua/plenary.nvim" },
init = function()
-- 1. Disable highlighting for certain filetypes
-- 2. Ignore files larger than a certain filesize
local previewers = require("telescope.previewers")
local _bad = { ".*%.csv", ".*%.min.js" } -- Put all filetypes that slow you down in this array
local filesize_threshold = 300 * 1024 -- 300KB
local bad_files = function(filepath)
for _, v in ipairs(_bad) do
if filepath:match(v) then
return false
end
end
return true
end
local new_maker = function(filepath, bufnr, opts)
opts = opts or {}
if opts.use_ft_detect == nil then
opts.use_ft_detect = true
end
-- 1. Check if the file is in the bad_files array, and if so, don't highlight it
opts.use_ft_detect = opts.use_ft_detect == false and false or bad_files(filepath)
-- 2. Check the file size, and ignore it if it's too big(preview nothing).
filepath = vim.fn.expand(filepath)
vim.loop.fs_stat(filepath, function(_, stat)
if not stat then
return
end
if stat.size > filesize_threshold then
return
else
previewers.buffer_previewer_maker(filepath, bufnr, opts)
end
end)
end
require("telescope").setup({
defaults = {
buffer_previewer_maker = new_maker,
},
})
end,
},
},
-- Configure require("lazy").setup() options
lazy = {
defaults = { lazy = true },
performance = {
rtp = {
-- customize default disabled vim plugins
disabled_plugins = {},
},
},
},
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
lsp = {
config = {
-- the offset_enconding of clangd will confilicts whit null-ls
-- so we need to manually set it to utf-8
clangd = {
capabilities = {
offsetEncoding = "utf-8",
},
},
scheme_langserver = {
filetypes = { "scheme", "scm" },
single_file_support = true,
},
},
-- enable servers that installed by home-manager instead of mason
servers = {
---- Frontend & NodeJS
"tsserver", -- typescript/javascript language server
"tailwindcss", -- tailwindcss language server
"html", -- html language server
"cssls", -- css language server
"prismals", -- prisma language server
"volar", -- vue language server
---- Configuration Language
"marksman", -- markdown ls
"jsonls", -- json language server
"yamlls", -- yaml language server
"taplo", -- toml language server
---- Backend
"lua_ls", -- lua
"gopls", -- go
"rust_analyzer", -- rust
"pyright", -- python
"ruff_lsp", -- extremely fast Python linter and code transformation
"jdtls", -- java
"nil_ls", -- nix language server
"bufls", -- protocol buffer language server
"zls", -- zig language server
---- HDL
"verible", -- verilog language server
---- Operation & Cloud Nativautoindente
"bashls", -- bash
"cmake", -- cmake language server
"clangd", -- c/c++
"dockerls", -- dockerfile
"jsonnet_ls", -- jsonnet language server
"terraformls", -- terraform hcl
"nushell", -- nushell language server
"scheme_langserver", -- scheme language server
},
formatting = {
disabled = {},
format_on_save = {
enabled = true,
allow_filetypes = {
"go",
"jsonnet",
"rust",
"terraform",
"nu",
},
},
},
},
}

View File

@@ -1,66 +0,0 @@
-- Mapping data with "desc" stored directly by vim.keymap.set().
--
-- Please use this mappings table to set keyboard mapping since this is the
-- lower level configuration and more robust one. (which-key will
-- automatically pick-up stored data by this setting.)
local utils = require "astronvim.utils"
require("telescope").load_extension("refactoring")
require("telescope").load_extension("yank_history")
require("telescope").load_extension("undo")
return {
-- normal mode
n = {
-- second key is the lefthand side of the map
-- mappings seen under group name "Buffer"
["<leader>bn"] = { "<cmd>tabnew<cr>", desc = "New tab" },
-- quick save
["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
-- Terminal
-- NOTE: https://neovim.io/doc/user/builtin.html#jobstart()
-- 1. If {cmd} is a List it runs directly (no 'shell')
-- 2. If {cmd} is a String it runs in the 'shell'
-- search and replace globally
['<leader>ss'] = {'<cmd>lua require("spectre").toggle()<CR>', desc = "Toggle Spectre" },
['<leader>sw'] = {'<cmd>lua require("spectre").open_visual({select_word=true})<CR>', desc = "Search current word" },
['<leader>sp'] ={'<cmd>lua require("spectre").open_file_search({select_word=true})<CR>', desc = "Search on current file" },
-- refactoring
["<leader>ri"] = { function() require('refactoring').refactor('Inline Variable') end, desc = "Inverse of extract variable" },
["<leader>rb"] = { function() require('refactoring').refactor('Extract Block') end, desc = "Extract Block" },
["<leader>rbf"] = { function() require('refactoring').refactor('Extract Block To File') end, desc = "Extract Block To File" },
["<leader>rr"] = { function() require('telescope').extensions.refactoring.refactors() end, desc = "Prompt for a refactor to apply" },
["<leader>rp"] = { function() require('refactoring').debug.printf({below = false}) end, desc = "Insert print statement to mark the calling of a function" },
["<leader>rv"] = { function() require('refactoring').debug.print_var() end, desc = "Insert print statement to print a variable" },
["<leader>rc"] = { function() require('refactoring').debug.cleanup({}) end, desc = "Cleanup of all generated print statements" },
-- yank_history
["<leader>yh"] = { function() require("telescope").extensions.yank_history.yank_history() end, desc = "Preview Yank History" },
-- undo history
["<leader>uh"] = {"<cmd>Telescope undo<cr>", desc="Telescope undo" },
-- implementation/definition preview
["gpd"] = { "<cmd>lua require('goto-preview').goto_preview_definition()<CR>", desc="goto_preview_definition" },
["gpt"] = { "<cmd>lua require('goto-preview').goto_preview_type_definition()<CR>", desc="goto_preview_type_definition" },
["gpi"] = { "<cmd>lua require('goto-preview').goto_preview_implementation()<CR>", desc="goto_preview_implementation" },
["gP" ] = { "<cmd>lua require('goto-preview').close_all_win()<CR>", desc="close_all_win" },
["gpr"] = { "<cmd>lua require('goto-preview').goto_preview_references()<CR>", desc="goto_preview_references" },
},
-- Visual mode
v = {
-- search and replace globally
['<leader>sw'] = {'<esc><cmd>lua require("spectre").open_visual()<CR>', desc = "Search current word" },
},
-- visual mode(what's the difference between v and x???)
x = {
-- refactoring
["<leader>ri"] = { function() require('refactoring').refactor('Inline Variable') end, desc = "Inverse of extract variable" },
["<leader>re"] = { function() require('refactoring').refactor('Extract Function') end, desc = "Extracts the selected code to a separate function" },
["<leader>rf"] = { function() require('refactoring').refactor('Extract Function To File') end, desc = "Extract Function To File" },
["<leader>rv"] = { function() require('refactoring').refactor('Extract Variable') end, desc = "Extracts occurrences of a selected expression to its own variable" },
["<leader>rr"] = { function() require('telescope').extensions.refactoring.refactors() end, desc = "Prompt for a refactor to apply" },
},
}

View File

@@ -1,62 +0,0 @@
{
pkgs,
astronvim,
...
}:
###############################################################################
#
# AstroNvim's configuration and all its dependencies(lsp, formatter, etc.)
#
#e#############################################################################
let
shellAliases = {
v = "nvim";
vdiff = "nvim -d";
};
in {
xdg.configFile = {
# astronvim's config
"nvim" = {
source = astronvim;
force = true;
};
# my custom astronvim config, astronvim will load it after base config
# https://github.com/AstroNvim/AstroNvim/blob/v3.32.0/lua/astronvim/bootstrap.lua#L15-L16
"astronvim/lua/user" = {
source = ./astronvim_user;
force = true;
};
};
home.shellAliases = shellAliases;
programs.nushell.shellAliases = shellAliases;
nixpkgs.config = {
programs.npm.npmrc = ''
prefix = ''${HOME}/.npm-global
'';
};
programs = {
neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
# currently we use lazy.nvim as neovim's package manager, so comment this one.
# Install packages that will compile locally or download FHS binaries via Nix!
# and use lazy.nvim's `dir` option to specify the package directory in nix store.
# so that these plugins can work on NixOS.
#
# related project:
# https://github.com/b-src/lazy-nix-helper.nvim
plugins = with pkgs.vimPlugins; [
# search all the plugins using https://search.nixos.org/packages
telescope-fzf-native-nvim
];
};
};
}

View File

@@ -1,130 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs;
[
#-- c/c++
cmake
cmake-language-server
gnumake
checkmake
llvmPackages.clang-unwrapped # c/c++ tools with clang-tools such as clanvimPlugins.nvim-treesitter-parsers.vuegd
lldb
# c/c++ compiler, required by nvim-treesitter!
# to avoid conflicts, you can comment clang-unwrapped first to compile all nvim-treesitter-parsers.
gcc
#-- python
nodePackages.pyright # python language server
(python310.withPackages (
ps:
with ps; [
ruff-lsp
black # python formatter
ipython
pandas
requests
pyquery
pyyaml
## emacs's lsp-bridge dependenciesge
epc
orjson
sexpdata
six
setuptools
paramiko
rapidfuzz
]
))
#-- rust
rust-analyzer
cargo # rust package manager
rustfmt
#-- zig
zls
#-- nix
nil
rnix-lsp
# nixd
statix # Lints and suggestions for the nix programming language
deadnix # Find and remove unused code in .nix source files
alejandra # Nix Code Formatter
#-- golang
go
gomodifytags
iferr # generate error handling code for go
impl # generate function implementation for go
gotools # contains tools like: godoc, goimports, etc.
gopls # go language server
delve # go debugger
# -- java
jdk17
gradle
maven
spring-boot-cli
#-- lua
stylua
lua-language-server
#-- bash
nodePackages.bash-language-server
shellcheck
shfmt
#-- javascript/typescript --#
nodePackages.nodejs
nodePackages.typescript
nodePackages.typescript-language-server
# HTML/CSS/JSON/ESLint language servers extracted from vscode
nodePackages.vscode-langservers-extracted
nodePackages."@tailwindcss/language-server"
emmet-ls
#-- CloudNative
nodePackages.dockerfile-language-server-nodejs
# terraform # install via brew on macOS
terraform-ls
jsonnet
jsonnet-language-server
hadolint # Dockerfile linter
# -- Lisp like Languages
guile
racket-minimal
fnlfmt # fennel
#-- Others
taplo # TOML language server / formatter / validator
nodePackages.yaml-language-server
sqlfluff # SQL linter
actionlint # GitHub Actions linter
buf # protoc plugin for linting and formatting
proselint # English prose linter
#-- Misc
tree-sitter # common language parser/highlighter
nodePackages.prettier # common code formatter
marksman # language server for markdown
glow # markdown previewer
fzf
#-- Optional Requirements:
gdu # disk usage analyzer, required by AstroNvim
(ripgrep.override {withPCRE2 = true;}) # recursively searches directories for a regex pattern
]
++ (
if pkgs.stdenv.isDarwin
then []
else [
#-- verilog / systemverilog
verible
gdb
]
);
}

View File

@@ -1,39 +0,0 @@
{pkgs-unstable, ...}: let
nu_scripts = pkgs-unstable.nu_scripts;
in {
programs.bash = {
# load the alias file for work
bashrcExtra = ''
alias_for_work=/etc/agenix/alias-for-work.bash
if [ -f $alias_for_work ]; then
. $alias_for_work
else
echo "No alias file found for work"
fi
'';
};
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
# completion
use ${nu_scripts}/share/nu_scripts/custom-completions/git/git-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/glow/glow-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/just/just-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/make/make-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/man/man-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/nix/nix-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/cargo/cargo-completions.nu *
use ${nu_scripts}/share/nu_scripts/custom-completions/zellij/zellij-completions.nu *
# alias
use ${nu_scripts}/share/nu_scripts/aliases/git/git-aliases.nu *
use ${nu_scripts}/share/nu_scripts/aliases/eza/eza-aliases.nu *
# use ${nu_scripts}/share/nu_scripts/aliases/bat/bat-aliases.nu *
'';
};
}

View File

@@ -1,53 +0,0 @@
{mysecrets, ...}: {
home.file.".ssh/romantic.pub".source = "${mysecrets}/public/romantic.pub";
programs.ssh = {
enable = true;
# all my ssh private key are generated by `ssh-keygen -t ed25519 -C "ryan@nickname"`
# the config's format:
# Host — given the pattern used to match against the host name given on the command line.
# HostName — specify nickname or abbreviation for host
# IdentityFile — the location of your SSH key authentication file for the account.
# format in details:
# https://www.ssh.com/academy/ssh/config
extraConfig = ''
# a private key that is used during authentication will be added to ssh-agent if it is running
AddKeysToAgent yes
Host 192.168.*
# allow to securely use local SSH agent to authenticate on the remote machine.
# It has the same effect as adding cli option `ssh -A user@host`
ForwardAgent yes
# romantic holds my homelab~
IdentityFile /etc/agenix/ssh-key-romantic
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
Host gtr5
HostName 192.168.5.172
Port 22
Host um560
HostName 192.168.5.173
Port 22
Host s500plus
HostName 192.168.5.174
Port 22
Host k8s-main
HostName 192.168.5.181
ForwardAgent yes
Host k8s-data1
HostName 192.168.5.182
ForwardAgent yes
Host k8s-data2
HostName 192.168.5.183
ForwardAgent yes
'';
};
}

View File

@@ -1,73 +0,0 @@
# Termianl Emulators
I used to spend a lot of time on terminal emulators, to make them match my taste,
but now I found that it's not worth it, **Zellij can provide a user-friendly and unified user experience for all terminal emulators! without any pain**!
Currently, I only use the most basic features of terminal emulators, such as true color, graphics protocol, etc.
Other features such as tabs, scrollback buffer, select/search/copy, etc, are all provided by zellij!
My current terminal emulators are:
1. kitty: My main terminal emulator.
1. to select/copy a large mount of text, We should do some tricks via kitty's `scrollback_pager` with neovim, it's really painful: <https://github.com/kovidgoyal/kitty/issues/719>
2. wezterm: My secondary terminal emulator.
1. its search ability is very basic, and it's not easy to use.
1. its scrollback buffer's copy mode is very like vim, which is nice, but zellij's even better, it can use neovim as its default scrollback buffer's editor without any pain!
3. foot: a fast, lightweight and minimalistic Wayland terminal emulator.
1. foot only do the things a terminal emulator should do, no more, no less.
1. It's really suitable for tiling window manager or zellij users!
## 'xterm-kitty': unknown terminal type when `ssh` into a remote host or `sudo xxx`
> https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-or-functional-keys-like-arrow-keys-don-t-work
> https://wezfurlong.org/wezterm/config/lua/config/term.html
kitty set `TERM` to `xterm-kitty` by default, and TUI apps like `viu`, `yazi`, `curses` will try to search in the host's [terminfo(terminal capability data base)](https://linux.die.net/man/5/terminfo) for value of `TERM` to determine the capabilities of the terminal.
But when you `ssh` into a remote host, the remote host is very likely to not have `xterm-kitty` in its terminfo, so you will get this error:
```
'xterm-kitty': unknown terminal type
```
Or when you `sudo xxx`, `sudo` won't preserve the `TERM` variable, it will be reset to root's default `TERM` value, which is `xterm` or `xterm-256color` in most linux distributions, so you will get this error:
```
'xterm-256color': unknown terminal type
```
or
```
Error opening terminal: xterm-kitty.
```
NixOS preserve the `TERMINFO` and `TERMINFO_DIRS` environment variables, for `root` and the `wheel` group: [nixpkgs/nixos/modules/config/terminfo.nix](https://github.com/NixOS/nixpkgs/blob/nixos-23.11/nixos/modules/config/terminfo.nix#L18)
For nix-darwin, take a look at <https://github.com/LnL7/nix-darwin/wiki/Terminfo-issues>
### Solutions
Simplest solution, it will automatically copy over the terminfo files and also magically enable shell integration on the remote machine:
```
kitten ssh user@host
```
Or if you do not care about kitty's features(such as true color & graphics protocol), you can simply set `TERM` to `xterm-256color`, which is built-in in most linux distributions:
```
export TERM=xterm-256color
```
If you need kitty's features, but do not like the magic of `kitten`, you can manually install kitty's terminfo on the remote host:
```bash
# install on ubuntu / debian
sudo apt-get install kitty-terminfo
# or copy from local machine
infocmp -a xterm-kitty | ssh myserver tic -x -o \~/.terminfo /dev/stdin
```

View File

@@ -1,110 +0,0 @@
{pkgs, ...}:
###########################################################
#
# Wezterm Configuration
#
# Useful Hot Keys for Linux(replace `ctrl + shift` with `cmd` on macOS)):
# 1. Increase Font Size: `ctrl + shift + =` | `ctrl + shift + +`
# 2. Decrease Font Size: `ctrl + shift + -` | `ctrl + shift + _`
# 3. And Other common shortcuts such as Copy, Paste, Cursor Move, etc.
#
# Default Keybindings: https://wezfurlong.org/wezterm/config/default-keys.html
#
###########################################################
{
# wezterm has catppuccin theme built-in,
# it's not necessary to install it separately.
# we can add wezterm as a flake input once this PR is merged:
# https://github.com/wez/wezterm/pull/3547
programs.wezterm =
{
enable = false; # disable
# TODO: Fix: https://github.com/wez/wezterm/issues/4483
# package = pkgs.wezterm.override { };
extraConfig = let
fontsize =
if pkgs.stdenv.isDarwin
then "14.0"
else "13.0";
in ''
-- Pull in the wezterm API
local wezterm = require 'wezterm'
-- This table will hold the configuration.
local config = {}
-- In newer versions of wezterm, use the config_builder which will
-- help provide clearer error messages
if wezterm.config_builder then
config = wezterm.config_builder()
end
wezterm.on('toggle-opacity', function(window, pane)
local overrides = window:get_config_overrides() or {}
if not overrides.window_background_opacity then
overrides.window_background_opacity = 0.93
else
overrides.window_background_opacity = nil
end
window:set_config_overrides(overrides)
end)
wezterm.on('toggle-maximize', function(window, pane)
window:maximize()
end)
-- This is where you actually apply your config choices
config.color_scheme = "Catppuccin Mocha"
config.font = wezterm.font_with_fallback {
"JetBrainsMono Nerd Font",
"FiraCode Nerd Font",
-- To avoid 'Chinese characters displayed as variant (Japanese) glyphs'
"Source Han Sans SC",
"Source Han Sans TC"
}
config.hide_tab_bar_if_only_one_tab = true
config.scrollback_lines = 10000
config.enable_scroll_bar = true
config.term = 'wezterm'
config.keys = {
-- toggle opacity(CTRL + SHIFT + B)
{
key = 'B',
mods = 'CTRL',
action = wezterm.action.EmitEvent 'toggle-opacity',
},
{
key = 'M',
mods = 'CTRL',
action = wezterm.action.EmitEvent 'toggle-maximize',
},
}
config.font_size = ${fontsize}
-- To resolve issues:
-- 1. https://github.com/ryan4yin/nix-config/issues/26
-- 2. https://github.com/ryan4yin/nix-config/issues/8
-- Spawn a nushell in login mode via `bash`
config.default_prog = { '${pkgs.bash}/bin/bash', '--login', '-c', 'nu --login --interactive' }
return config
'';
}
// (
if pkgs.stdenv.isDarwin
then {
# install wezterm via homebrew on macOS to avoid compilation, dummy package here.
# package = pkgs.hello;
enableBashIntegration = false;
enableZshIntegration = false;
}
else {}
);
}

View File

@@ -1,39 +0,0 @@
# Zellij - A workspace lives in your terminal
Zellij is a terminal workspace with batteries included.
At its core, it is a terminal multiplexer (similar to tmux and screen), but this is merely its infrastructure layer.
Zellij is very user-friendly and easy to use, with a step-by-step hint system that will help you get to know the keybindings, which is very like the Neovim or helix.
> By contrast, tmux's key design is counterintuitive, there is no prompt system, and the plug-in performance is rubbish. It's really a pain to use.
> tmux's inital release was in 2007, it's too old, I would recommend any users that do not have a experience with multiplexer to use zellij instead of tmux.
## Why use zellij as the detault terminal environment?
By auto start zellij on shell login, and exit the shell session on zellij exit, we can use zellij as the default terminal environment.
By this way, We will only use the most basic features of the terminal emulator(kitty/alacritty/wezterm/...),
while most of the functions of terminal are provided by zellij.
Thus we can easily switch to any terminal emulator without losing any key functions,
and do not need to take care of the differences between different terminal emulators.
And Zellij can be used not only locally, but also on any remote server, which is very convenient. Learn once and use everywhere!
> Yeah, you didn't misread it, zellij is very suitable for not only remotely, but also locally!
Some features such as search/copy/scrollback in different terminal emulators are implemented in different ways, and has different user experience.
For example, Wezterm's default search function is very basic, and it's not easy to use. Kitty's scrollback search/copy is really tricky to use.
As for some Editor such as Neovim, its intergrated terminal is really useful, but zellij is more powerful and useful than it, and more stable!
Zellij overcomes these problems, and provides a unified user experience for all terminal emulators!
Teminal emulators should only be responsible for displaying characters.
## Passthrough mode(Lock Mode)
`Ctrl + g` lock the outer zellij interface, and all keys will be sent to the focused pane.
It's extremely useful when you want to:
1. Use zellij locally for daily work, and use a remote zellij via ssh to do some work on the remote server.
1. To avoid the key conflicts between zellij and the program running in the terminal, such as vim, tmux, etc.

View File

@@ -1,3 +1,4 @@
{mylib, ...}: {
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,19 @@
{ pkgs, ... }:
{
home.packages =
with pkgs;
[
mitmproxy # http/https proxy tool
wireshark # network analyzer
# IDEs
# jetbrains.idea-community
# AI cli tools
k8sgpt
kubectl-ai # an ai helper opensourced by google
]
++ (lib.optionals pkgs.stdenv.isx86_64 [
insomnia # REST client
]);
}

View File

@@ -0,0 +1,84 @@
# Terminal Emulators
I used to spend a lot of time on terminal emulators, to make them match my taste, but now I found
that it's not worth it, **Zellij can provide a user-friendly and unified user experience for all
terminal emulators! without any pain**!
Currently, I only use the most basic features of terminal emulators, such as true color, graphics
protocol, etc. Other features such as tabs, scrollback buffer, select/search/copy, etc, are all
provided by zellij!
My current terminal emulators are:
1. kitty: My main terminal emulator.
1. to select/copy a large mount of text, We should do some tricks via kitty's `scrollback_pager`
with neovim, it's really painful: <https://github.com/kovidgoyal/kitty/issues/719>
2. foot: A fast, lightweight and minimalistic Wayland terminal emulator.
1. foot only do the things a terminal emulator should do, no more, no less.
1. It's really suitable for tiling window manager or zellij users!
3. alacritty: A cross-platform, GPU-accelerated terminal emulator.
1. alacritty is really fast, I use it as a backup terminal emulator on all my desktops.
## 'xterm-kitty': unknown terminal type when `ssh` into a remote host or `sudo xxx`
> https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-or-functional-keys-like-arrow-keys-don-t-work
> https://wezfurlong.org/wezterm/config/lua/config/term.html
kitty set `TERM` to `xterm-kitty` by default, and TUI apps like `viu`, `yazi`, `curses` will try to
search in the host's [terminfo(terminal capability data base)](https://linux.die.net/man/5/terminfo)
for value of `TERM` to determine the capabilities of the terminal.
But when you `ssh` into a remote host, the remote host is very likely to not have `xterm-kitty` in
its terminfo, so you will get this error:
```
'xterm-kitty': unknown terminal type
```
Or when you `sudo xxx`, `sudo` won't preserve the `TERM` variable, it will be reset to root's
default `TERM` value, which is `xterm` or `xterm-256color` in most linux distributions, so you will
get this error:
```
'xterm-256color': unknown terminal type
```
or
```
Error opening terminal: xterm-kitty.
```
NixOS preserve the `TERMINFO` and `TERMINFO_DIRS` environment variables, for `root` and the `wheel`
group:
[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>
### Solutions
Simplest solution, it will automatically copy over the terminfo files and also magically enable
shell integration on the remote machine:
```
kitten ssh user@host
```
Or if you do not care about kitty's features(such as true color & graphics protocol), you can simply
set `TERM` to `xterm-256color`, which is built-in in most linux distributions:
```
export TERM=xterm-256color
```
If you need kitty's features, but do not like the magic of `kitten`, you can manually install
kitty's terminfo on the remote host:
```bash
# install on ubuntu / debian
sudo apt-get install kitty-terminfo
# or copy from local machine
infocmp -a xterm-kitty | ssh myserver tic -x -o \~/.terminfo /dev/stdin
```

View File

@@ -0,0 +1,71 @@
{
pkgs,
...
}:
###########################################################
#
# Alacritty Configuration
#
# Useful Hot Keys for macOS:
# 1. Multi-Window: `command + N`
# 2. Increase Font Size: `command + =` | `command + +`
# 3. Decrease Font Size: `command + -` | `command + _`
# 4. Search Text: `command + F`
# 5. And Other common shortcuts such as Copy, Paste, Cursor Move, etc.
#
# Useful Hot Keys for Linux:
# 1. Increase Font Size: `ctrl + shift + =` | `ctrl + shift + +`
# 2. Decrease Font Size: `ctrl + shift + -` | `ctrl + shift + _`
# 3. Search Text: `ctrl + shift + N`
# 4. And Other common shortcuts such as Copy, Paste, Cursor Move, etc.
#
# Note: Alacritty do not have support for Tabs, and any graphic protocol.
#
###########################################################
{
programs.alacritty = {
enable = true;
# https://alacritty.org/config-alacritty.html
settings = {
window = {
opacity = 0.93;
startup_mode = "Maximized"; # Maximized window
dynamic_title = true;
option_as_alt = "Both"; # Option key acts as Alt on macOS
decorations = "None"; # Show neither borders nor title bar
};
scrolling = {
history = 10000;
};
font = {
bold = {
family = "Maple Mono NF CN";
};
italic = {
family = "Maple Mono NF CN";
};
normal = {
family = "Maple Mono NF CN";
};
bold_italic = {
family = "Maple Mono NF CN";
};
size = 13;
};
terminal = {
# Spawn a nushell in login mode via `bash`
shell = {
program = "${pkgs.bash}/bin/bash";
args = [
"--login"
"-c"
"nu --login --interactive"
];
};
# Controls the ability to write to the system clipboard with the OSC 52 escape sequence.
# It's used by zellij to copy text to the system clipboard.
osc52 = "CopyPaste";
};
};
};
}

View File

@@ -1,3 +1,4 @@
{mylib, ...}: {
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,33 @@
{ pkgs, ... }:
{
programs.foot = {
# foot is designed only for Linux
enable = pkgs.stdenv.isLinux;
# foot can also be run in a server mode. In this mode, one process hosts multiple windows.
# All Wayland communication, VT parsing and rendering is done in the server process.
# New windows are opened by running footclient, which remains running until the terminal window is closed.
#
# Advantages to run foot in server mode including reduced memory footprint and startup time.
# The downside is a performance penalty. If one window is very busy with, for example, producing output,
# then other windows will suffer. Also, should the server process crash, all windows will be gone.
server.enable = true;
# https://man.archlinux.org/man/foot.ini.5
settings = {
main = {
term = "foot"; # or "xterm-256color" for maximum compatibility
font = "Maple Mono NF CN:size=13";
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`
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
};
mouse = {
hide-when-typing = "yes";
};
};
};
}

View File

@@ -0,0 +1,40 @@
{
pkgs,
ghostty,
...
}:
###########################################################
#
# Ghostty Configuration
#
###########################################################
{
programs.ghostty = {
enable = true;
package =
if pkgs.stdenv.isDarwin then
pkgs.hello # pkgs.ghostty is currently broken on darwin
else
pkgs.ghostty; # the stable version
# package = ghostty.packages.${pkgs.stdenv.hostPlatform.system}.default; # the latest version
enableBashIntegration = false;
installBatSyntax = false;
# installVimSyntax = true;
settings = {
font-family = "Maple Mono NF CN";
font-size = 13;
background-opacity = 0.93;
# only supported on macOS;
background-blur-radius = 10;
scrollback-limit = 20000;
# https://ghostty.org/docs/config/reference#command
# To resolve issues:
# 1. https://github.com/ryan4yin/nix-config/issues/26
# 2. https://github.com/ryan4yin/nix-config/issues/8
# Spawn a nushell in login mode via `bash`
command = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
};
};
}

View File

@@ -16,26 +16,23 @@
{
programs.kitty = {
enable = true;
# kitty has catppuccin theme built-in,
# all the built-in themes are packaged into an extra package named `kitty-themes`
# and it's installed by home-manager if `theme` is specified.
theme = "Catppuccin-Mocha";
font = {
name = "JetBrainsMono Nerd Font";
name = "Maple Mono NF CN";
# use different font size on macOS
size =
if pkgs.stdenv.isDarwin
then 14
else 13;
size = 13;
};
# consistent with wezterm
# consistent with other terminal emulators
keybindings = {
"ctrl+shift+m" = "toggle_maximized";
"ctrl+shift+f" = "show_scrollback"; # search in the current window
};
settings = {
# do not show title bar & window title
hide_window_decorations = "titlebar-and-corners";
macos_show_window_title_in = "none";
background_opacity = "0.93";
macos_option_as_alt = true; # Option key acts as Alt on macOS
enable_audio_bell = false;
@@ -48,6 +45,6 @@
};
# macOS specific settings
darwinLaunchOptions = ["--start-as=maximized"];
darwinLaunchOptions = [ "--start-as=maximized" ];
};
}

View File

@@ -1,8 +1,9 @@
{username, ...}: {
{ myvars, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
inherit username;
inherit (myvars) username;
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
@@ -12,9 +13,6 @@
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
stateVersion = "23.11";
stateVersion = "24.11";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View File

@@ -1,21 +0,0 @@
{
pkgs,
nur-ryan4yin,
...
}: {
# a cat(1) clone with syntax highlighting and Git integration.
programs.bat = {
enable = true;
config = {
pager = "less -FR";
theme = "catppuccin-mocha";
};
themes = {
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
catppuccin-mocha = {
src = nur-ryan4yin.packages.${pkgs.system}.catppuccin-bat;
file = "Catppuccin-mocha.tmTheme";
};
};
};
}

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