Compare commits

...

1656 Commits

Author SHA1 Message Date
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
Ryan Yin 1581992b8d feat: ignore polybar's scripts in github linguist, it's copied from another repo 2024-01-08 01:26:22 +08:00
Ryan Yin abac10ac49 fix: vterm's color 2024-01-08 00:58:02 +08:00
Ryan Yin 06d7e9f7d5 fix: emacs - transparent on macOS 2024-01-07 23:49:55 +08:00
Ryan Yin c3ba586954 fix: emacs29-macport has problem to start via emacsclient, revert to emacs29 2024-01-07 23:34:47 +08:00
Ryan Yin 4eb5af38e3 docs: misc 2024-01-07 23:33:12 +08:00
Ryan Yin e629ece0eb docs: add screenshot for emacs 2024-01-07 23:23:48 +08:00
Ryan Yin b774bb99c8 fix: some font not found error 2024-01-07 23:01:55 +08:00
Ryan Yin 49e3b91e7e fix: emacs - failed to start in daemon mode 2024-01-07 22:56:12 +08:00
Ryan Yin 0cac1559b8 chore: Tapping homebrew/cask is no longer typically necessary, remove duplicate qqmusic/neteasecloudmusic 2024-01-07 22:45:59 +08:00
Ryan Yin 8ad6be56a5 chore: darwin - remove useless config 2024-01-07 22:15:34 +08:00
Ryan Yin 2d08fd3cb7 docs: gcc is required by nvim-treesitter 2024-01-07 22:09:16 +08:00
Ryan Yin ede2763756 fix: agenix on darwin - check if secrets already exists 2024-01-07 21:39:40 +08:00
Ryan Yin 474bd8ebf4 docs: emacs 2024-01-07 14:36:50 +08:00
Ryan Yin d66c4316aa docs: emacs 2024-01-07 13:58:13 +08:00
Ryan Yin 7d9abf1a01 docs: emacs 2024-01-07 13:37:58 +08:00
Ryan Yin e9eb3d44a4 docs: neovim & emacs 2024-01-07 12:53:07 +08:00
Ryan Yin b492ffa227 docs: testing for emacs & neovim 2024-01-07 12:50:20 +08:00
Ryan Yin cba58c7478 feat: add todo - password management 2024-01-07 12:40:18 +08:00
Ryan Yin 3676862097 chore: formatting 2024-01-07 08:59:56 +08:00
Ryan Yin a45c63b744 fix: build nvim-treesitter on macOS 2024-01-07 08:56:51 +08:00
Ryan Yin dfd3fb3ed3 Merge pull request #36 from we-do-it-lu/patch-1
Update README.md
2024-01-07 08:29:50 +08:00
JayDeLux f90b4d064f Update README.md 2024-01-07 01:06:27 +01:00
Ryan Yin f571b1d02f feat: vim's cheetsheet 2024-01-07 01:27:10 +08:00
Ryan Yin 966e889643 feat: harmonica - enable emacs, disable wezterm 2024-01-07 01:02:49 +08:00
Ryan Yin 30740c73c9 feat: harmonica do not need a local proxy 2024-01-07 01:00:17 +08:00
Ryan Yin 516894b870 feat: neovim - add some dotfiles 2024-01-07 00:21:39 +08:00
Ryan Yin a8b98bc03e fix: emacs - formatting nix code via alejandra 2024-01-07 00:11:33 +08:00
Ryan Yin b979df91fd fix: emacs - enable go-mode... 2024-01-06 23:27:37 +08:00
Ryan Yin 0e0ac0237c feat: emacs(gui) - tranparent backgroud 2024-01-06 23:07:03 +08:00
Ryan Yin 5f4f663e8b fix: neovim - transparent backgroud 2024-01-06 22:49:59 +08:00
Ryan Yin 36c56b7d8d feat: neovim - transparent backgroud 2024-01-06 22:47:28 +08:00
Ryan Yin b82353b513 feat: set default shell to bash to avoid some problems 2024-01-06 22:15:29 +08:00
Ryan Yin f9a650f352 feat: emacs - disable doom's builtin go-mode, use lsp-bridge instead 2024-01-06 22:08:39 +08:00
Ryan Yin 707192cf81 feat: emacsclient desktop icon - NixOS 2024-01-06 21:03:54 +08:00
Ryan Yin cabdfd8cb7 feat: emacs - cjk fonts 2024-01-06 21:00:08 +08:00
Ryan Yin b79cc2faf4 feat: disable zellij auto exit 2024-01-06 20:09:48 +08:00
Ryan Yin 72bd225ca2 feat: emacs - GUI mode by default, increase font size 2024-01-06 20:02:38 +08:00
Ryan Yin daa883caf8 feat: use emacs29-pgtk on NixOS, and emacs29-macport for macOS 2024-01-06 17:58:18 +08:00
Ryan Yin 292809783d feat: emacs - replace company/lsp with lsp-bridge, add fonts 2024-01-06 12:57:46 +08:00
Ryan Yin d5ef998239 feat: emacs - replace smartparens with parinfer
feat: emacs - add emacs-rime
2024-01-06 12:57:46 +08:00
Ryan Yin 3f7c023251 feat: neovim - add orgmode 2024-01-06 01:14:54 +08:00
Ryan Yin d8268599d8 feat: neovim - add conjure and nfnl 2024-01-06 00:44:04 +08:00
Ryan Yin aaef949c99 feat: neovim - parinfer-rust 2024-01-06 00:05:02 +08:00
Ryan Yin 9ffdbfe068 docs: structured editing 2024-01-05 18:18:28 +08:00
Ryan Yin 9424045430 docs: editors 2024-01-05 17:46:57 +08:00
Ryan Yin 3d93e1b565 reafactor: editors 2024-01-05 16:17:27 +08:00
Ryan Yin 1e260e4d17 feat: emacs - objd + word-wrap + docs 2024-01-05 16:10:47 +08:00
Ryan Yin 04aff6d8d8 docs: emacs 2024-01-05 12:37:56 +08:00
Ryan Yin 086c7ad27b feat: enable smartparens-strict-mode for lisp/clojure/scheme 2024-01-05 11:00:33 +08:00
Ryan Yin bb46ed1263 fix: unable to compile emacsPackages.rime on Apple Silicon 2024-01-05 09:56:19 +08:00
Ryan Yin e82b5e0770 feat: emacs - nushell-mode & evil-smartparens 2024-01-05 08:47:55 +08:00
Ryan Yin 55efe14c41 feat: force install neovim/emacs's user config 2024-01-04 20:48:10 +08:00
Ryan Yin 0a5f4dacba docs: emacs 2024-01-04 18:47:21 +08:00
Ryan Yin 0667011531 feat: emacs - format elisp via 'M-x pp-buffer' 2024-01-04 17:00:44 +08:00
Ryan Yin 8af056a3ea feat: emacs - remove theme - catppuccin-emacs, doom-one is more comfort 2024-01-04 15:09:54 +08:00
Ryan Yin 76883edf0b feat: emacs - format nix files via alejandra 2024-01-04 13:45:24 +08:00
Ryan Yin a9c2031aee fix: emacs - mouse scrolling 2024-01-04 12:08:20 +08:00
Ryan Yin 538dc8954b docs: how to remove apps from macOS 2024-01-04 11:39:08 +08:00
Ryan Yin 09c73d9f5e feat: emacs - readable cli args, terminal only 2024-01-04 11:32:14 +08:00
Ryan Yin f65ecdd821 fix: emacsclient - strange color in wezterm 2024-01-04 10:39:32 +08:00
Ryan Yin eaa31be821 fix: ignore home-manager's default i3 config 2024-01-04 00:32:10 +08:00
Ryan Yin 57a3af6e40 fix: i3 polybar - make shell scripts excutable 2024-01-04 00:10:28 +08:00
Ryan Yin 3d8417b4a2 feat: update justfile 2024-01-03 23:47:29 +08:00
Ryan Yin 2e0863ae6d fix: emacs - wrong-type-argument frame-live-p #<dead frame 2024-01-03 23:42:31 +08:00
Ryan Yin b0c1301367 feat: remove emacs-overlay, use stable version instead
fix: emacsclient not found
feat: use nom build to show build details in debug mode
2024-01-03 22:51:40 +08:00
Ryan Yin f68fe49720 feat: emacs daemon 2024-01-03 20:28:02 +08:00
Ryan Yin 59d9601f49 feat: zellij - remove tmux keybindings to avoid conflicts with server's tmux 2024-01-03 16:49:35 +08:00
Ryan Yin 4f2e1e050c docs: README for emacs/neovim 2024-01-03 14:36:24 +08:00
Ryan Yin 98aba2f6da fix: emacs - markdown-mode slow on large table editing 2024-01-03 14:11:19 +08:00
Ryan Yin 1dbd81e2fa feat: emacs - update theme & docs 2024-01-03 13:53:45 +08:00
Ryan Yin 04c2901b5e fix: emacs - yaml highlight with catppuccin-emacs 2024-01-03 13:47:49 +08:00
Ryan Yin a3b9c43c44 feat: quick test for emacs/neovim 2024-01-03 13:04:27 +08:00
Ryan Yin b0a6886b31 feat: emacs 2024-01-03 12:46:34 +08:00
Ryan Yin 4873d63ff7 docs: emacs 2024-01-03 10:54:41 +08:00
Ryan Yin 37529429bf fix: emacs - fix & add docs 2024-01-03 10:35:27 +08:00
Ryan Yin 906fd006b0 feat: emacs - catppuccin-theme and docs 2024-01-03 09:59:04 +08:00
Ryan Yin 65a07315f2 docs: emacs 2024-01-03 01:53:57 +08:00
Ryan Yin 04dedc9fa9 feat: emacs - ignore warnings 2024-01-03 01:44:23 +08:00
Ryan Yin cbfe78f179 feat: emacs - wakatime & copilot 2024-01-03 01:36:22 +08:00
Ryan Yin c9102ead4f feat: emacs - auto save on focus-out 2024-01-03 01:20:00 +08:00
Ryan Yin 26e5a3d12e feat: emacs - copilot & docs 2024-01-03 00:35:58 +08:00
Ryan Yin bed0d1acdc fix: remove emacs-rime - failed to build in both nixos & darwin 2024-01-02 22:48:11 +08:00
Ryan Yin a2dbd51b2e feat: emacs - enable format 2024-01-02 20:07:38 +08:00
Ryan Yin 6f8b0f02fd fix: emacs-rime & doom's PATH 2024-01-02 20:00:46 +08:00
Ryan Yin 6c18d36d48 docs: doom-emacs 2024-01-02 18:59:17 +08:00
Ryan Yin cd2e2509bd feat: emacs - replace neotree with treemacs 2024-01-02 18:51:47 +08:00
Ryan Yin fc6f064a51 feat: enable emacs on fern, add dependencies for emacs/neovim 2024-01-02 18:40:46 +08:00
Ryan Yin 5809155f4b feat: add nix-init 2024-01-02 18:00:23 +08:00
Ryan Yin 3cdb3bb181 feat: neovim - scheme-lsp 2024-01-02 17:58:55 +08:00
Ryan Yin 18ac49f165 chore: format code 2024-01-02 17:15:55 +08:00
Ryan Yin 4a76601970 feat: neovim - scheme lang 2024-01-02 17:15:09 +08:00
Ryan Yin bfb970a6d7 docs: formatter vs linter 2024-01-02 13:55:56 +08:00
Ryan Yin 8ba3c2713f docs: lsp & tree-sitter 2024-01-02 13:32:23 +08:00
Ryan Yin 166a4d0369 feat: neovim - disable mason 2024-01-02 12:29:45 +08:00
Ryan Yin df7c007de3 feat: update darwin set proxy 2024-01-02 12:06:55 +08:00
Ryan Yin 7807f789cf feat: neovim - enable lsp for nushell 2024-01-02 12:04:16 +08:00
Ryan Yin ed822139ec fix: Justfile - darwin rollback 2024-01-02 11:53:23 +08:00
Ryan Yin c5b855765e fix: typo in Justfile 2024-01-02 11:49:09 +08:00
Ryan Yin e3ba141695 refactor: Justfile 2024-01-02 11:47:59 +08:00
Ryan Yin 709f56a0c2 fix: justfile for darwin 2024-01-02 09:38:44 +08:00
Ryan Yin dbac1b8bd7 feat: emacs - enable lsp & tree-sitter 2024-01-01 14:22:08 +08:00
Ryan Yin e2295f350b refactor: dependencies for both emacs & neovim 2023-12-31 01:26:23 +08:00
Ryan Yin 1efb20f534 feat: replace Makefile with Justfile 2023-12-31 00:56:14 +08:00
Ryan Yin 23582c25a1 fix: nushell's extraConfig 2023-12-30 23:50:32 +08:00
Ryan Yin 578a845e60 feat: aliases for git/eza/bat/emacs/nvim, and some completions 2023-12-30 23:30:33 +08:00
Ryan Yin 1443cc06de feat: emacs - more modeuls, persistent org files 2023-12-30 22:33:29 +08:00
Ryan Yin eb91c223ff fix: https://github.com/ryan4yin/nix-config/issues/35 2023-12-30 22:32:38 +08:00
Ryan Yin 0347b877c4 feat: ripgrep with pcre2 2023-12-30 21:11:42 +08:00
Ryan Yin e1981c2e91 fix: doom-emacs 2023-12-30 14:01:50 +08:00
Ryan Yin dd2edb3216 fix: home manager - emacs 2023-12-30 13:34:19 +08:00
Ryan Yin a8d6d2e29e feat: use kitty in hyprland 2023-12-30 13:03:58 +08:00
Ryan Yin 0cfc6140b6 feat: replace nix-doom-emacs with hlissner's config 2023-12-30 13:00:06 +08:00
Ryan Yin 6a14d05f5b feat: add doomemacs 2023-12-30 11:17:31 +08:00
Ryan Yin 03007f48bf docs: helix 2023-12-29 18:02:49 +08:00
Ryan Yin b8f5458ba1 Merge pull request #34 from sxyazi/pr-fc85517c
fix: a typo of `yazi` to `Yazi`
2023-12-29 18:01:15 +08:00
sxyazi aac30d1313 fix: a typo of yazi to Yazi 2023-12-29 17:52:56 +08:00
Ryan Yin 5163067773 refactor: nix path 2023-12-29 17:36:47 +08:00
Ryan Yin 57fdf25c46 fix: NIX_PATH 2023-12-29 16:54:33 +08:00
Ryan Yin 1f43d47695 feat: add packer 2023-12-29 10:01:54 +08:00
Ryan Yin 7da7eadff5 fix: foot & neovim 2023-12-29 01:21:30 +08:00
Ryan Yin 077203b375 feat: use foot as default terminal in hyprland 2023-12-29 01:07:30 +08:00
Ryan Yin 6b978b074d fix: config for foot, add NIX_PATH for compatibility 2023-12-29 01:06:42 +08:00
Ryan Yin af8315a657 feat: neovim 2023-12-28 23:39:37 +08:00
Ryan Yin 6442377d1c feat: sshkey romantic, and yazi theme 2023-12-28 21:45:45 +08:00
Ryan Yin b81b285d92 feat: zellij + yazi + helix 2023-12-28 14:34:15 +08:00
Ryan Yin d393fa707f feat: lazy.nvim + NixOS 2023-12-28 13:55:25 +08:00
Ryan Yin 62c14b3c84 docs: zellij's lock mode(passthrough) 2023-12-28 09:58:33 +08:00
Ryan Yin 29e9e4cecd fix: theme - yazi 2023-12-28 09:36:42 +08:00
Ryan Yin 2cdb0afe48 feat: add theme - catppuccin-yazi 2023-12-28 00:23:11 +08:00
Ryan Yin 19d6cdf416 feat: disable toogleterm.nvim, zellij is far more better than it 2023-12-27 23:12:09 +08:00
Ryan Yin 973c4d27d0 feat: README for neovim + zellij 2023-12-27 23:02:56 +08:00
Ryan Yin 248cf2e86f feat: use zellij as my daily terminal environemnt, remote tmux 2023-12-27 22:32:02 +08:00
Ryan Yin 148da9eecf fix: zellij's auto start in nushell 2023-12-27 21:12:10 +08:00
Ryan Yin 0ceb810133 feat: replace guile with racket-minimal 2023-12-27 21:06:56 +08:00
Ryan Yin 137e11e81f feat: shortname of zellij
feat: autostart zellij in nushell
2023-12-27 19:29:48 +08:00
Ryan Yin 8c71e7aade refactor: move yazi/helix into server related apps 2023-12-27 18:02:04 +08:00
Ryan Yin 03a14c40fe fix: kitty's config for darwin 2023-12-27 16:24:43 +08:00
Ryan Yin 95b976c171 feat: limit neovim's title length 2023-12-27 12:18:38 +08:00
Ryan Yin de5b30e92a fix: nushell scripts 2023-12-26 20:13:29 +08:00
Ryan Yin 9a937013d8 feat: waybar - catppuccin-mocha 2023-12-26 20:13:02 +08:00
Ryan Yin 1962a582c2 feat: add clash-meta for darwin 2023-12-26 15:04:36 +08:00
Ryan Yin 271fad0288 fix: nushell's extraConfig 2023-12-26 14:12:37 +08:00
Ryan Yin 3c1df26fc9 chore: remove useless config - i3 2023-12-26 05:10:25 +08:00
Ryan Yin c205079d46 fix: copy polybar's themes into this repo 2023-12-26 05:04:12 +08:00
Ryan Yin 49dd2c1b2f feat: replace i3blocks/rofi's config with polybar-themes - i3 2023-12-26 04:52:54 +08:00
Ryan Yin 669404d2c3 feat: nushellFull & bashInteractive 2023-12-26 04:51:14 +08:00
Ryan Yin e6008a35ad chore: adjust wallpaper's switch inteval 2023-12-25 21:10:19 +08:00
Ryan Yin 00cab89857 fix: kitty's keybindings for switching tabs 2023-12-25 19:29:08 +08:00
Ryan Yin 53e6c6d872 chore: update macOS's Hot Corners 2023-12-25 15:38:30 +08:00
Ryan Yin bbe6ac0fcd feat: install wezterm via nixpkgs instead of homebrew 2023-12-25 15:23:26 +08:00
Ryan Yin 54cd7bdcdb docs: misc 2023-12-25 15:03:20 +08:00
Ryan Yin 735f803c66 docs: misc 2023-12-25 14:41:47 +08:00
Ryan Yin 378319e4bf feat: selecting&searching in kitty 2023-12-25 14:40:56 +08:00
Ryan Yin 15727ea482 docs: misc 2023-12-25 11:53:27 +08:00
Ryan Yin 3b548b581c refactor: username 2023-12-25 11:31:18 +08:00
Ryan Yin d2a1bb18eb docs: update comments for nix-darwin's manual operations 2023-12-25 10:27:57 +08:00
Ryan Yin e29f62f228 feat: remap esc to capslock 2023-12-25 10:22:58 +08:00
Ryan Yin 0013c9d01e feat: more envs for wayland 2023-12-25 08:39:36 +08:00
Ryan Yin 07a45af96b feat: touchbar natural_scr - shoukei 2023-12-25 08:35:11 +08:00
Ryan Yin 3a1eaa589d feat: waybar - battery for shoukei 2023-12-25 08:31:34 +08:00
Ryan Yin fe599a2143 feat: remap esc to capslock 2023-12-25 08:17:45 +08:00
Ryan Yin 9915343370 fix: nixos-hardware's apple-t2 hardcoded some path 2023-12-25 01:12:03 +08:00
Ryan Yin b3c91a0e7a fix: i3blocks do not show in shoukei 2023-12-25 00:41:59 +08:00
Ryan Yin 1d6ffd7785 Merge pull request #33 from ryan4yin/modular-home
feat: Modular home
2023-12-25 00:10:56 +08:00
Ryan Yin 647f56d213 chore: remove useless config in hyprland 2023-12-25 00:08:11 +08:00
Ryan Yin 210aa544fc fix: user environment variables do not take effects 2023-12-25 00:01:15 +08:00
Ryan Yin 5e83259bcb fix: enable nvidia on idol-ai 2023-12-24 23:32:08 +08:00
Ryan Yin 0a2aae246a fix: neovim fzf 2023-12-24 23:05:58 +08:00
Ryan Yin 30881f356a feat: modular i3's configurations 2023-12-24 22:51:32 +08:00
Ryan Yin 3aaaeb49ca feat: modular hyprland's configurations 2023-12-24 22:39:27 +08:00
Ryan Yin 55e12cddaf feat: modular ssh config 2023-12-24 21:43:14 +08:00
Ryan Yin ac4f625768 feat: modular home 2023-12-24 20:56:44 +08:00
Ryan Yin 2d44bc6006 Merge pull request #32 from ryan4yin/apple-t2
feat: new host - shoukei
2023-12-24 19:29:38 +08:00
Ryan Yin 03c1d14ed9 feat: new host - shoukei 2023-12-24 19:27:31 +08:00
Ryan Yin 73a746cebd fix: darwin 2023-12-24 01:00:56 +08:00
Ryan Yin 1e9dc4df4b feat: share openssh's authorizedKeys between darwin & NixOS 2023-12-23 22:00:40 +08:00
Ryan Yin 7dd55a5de9 chore: nix fmt 2023-12-23 21:39:51 +08:00
Ryan Yin e61116140d Merge pull request #31 from ryan4yin/modular
feat: refactoring configuration with `options` to make it more modular
2023-12-23 21:36:09 +08:00
Ryan Yin b75b79057b feat: refactoring configuration with options to make it more modular 2023-12-23 21:35:12 +08:00
Ryan Yin 1f08d10ac7 fix: man page show odd characters 2023-12-23 19:57:57 +08:00
Ryan Yin b2cf885637 fix: missing hyprland's packages 2023-12-23 19:31:37 +08:00
Ryan Yin 44eb487df9 refactor: home-manager 2023-12-23 17:43:57 +08:00
Ryan Yin 006bf56fd7 docs: why install i3/hyprland in home-manager instead of NixOS 2023-12-23 17:36:07 +08:00
Ryan Yin 73e3707570 refactor: start i3/hyprland in home-manager instead of NixOS 2023-12-23 17:23:25 +08:00
Ryan Yin 82cfa4c6f7 feat: my custom libAttrs 2023-12-23 11:06:50 +08:00
Ryan Yin 27dd5ebb13 docs: update README 2023-12-23 11:06:50 +08:00
Ryan Yin a589feee7b feat: homebrew - darwin 2023-12-22 21:23:23 +08:00
Ryan Yin a9459e7606 feat: darwin 2023-12-22 21:20:02 +08:00
Ryan Yin ad86ed60dc feat: update PATH 2023-12-22 21:03:25 +08:00
Ryan Yin 2a42da46ad fix: mitmproxy on macOS 2023-12-22 17:01:30 +08:00
Ryan Yin 1817f41423 feat: update for shells 2023-12-22 16:59:56 +08:00
Ryan Yin 217057612c feat: migrate yazi into base 2023-12-22 16:43:37 +08:00
Ryan Yin a1b5572eea refactor: via statix 2023-12-22 12:07:37 +08:00
Ryan Yin cddd8101c7 fix: darwin fern 2023-12-22 09:49:09 +08:00
Ryan Yin d6f6154a22 fix: suzu - orangepi5 2023-12-22 01:49:28 +08:00
Ryan Yin 8ac24e4f13 refactor: replace mapAttrs' with mapAttrs 2023-12-22 01:43:28 +08:00
Ryan Yin e4abf62ec3 refactor: replace listToAttrs with mapAttrs' to get a cleaner definition 2023-12-22 01:28:48 +08:00
Ryan Yin 05aa451895 refactor: systems 2023-12-22 01:18:25 +08:00
Ryan Yin c49a96ae29 docs: update docs for idols - ai 2023-12-22 00:18:04 +08:00
Ryan Yin ac3c05545f fix: typo 2023-12-22 00:15:30 +08:00
Ryan Yin b12af73ff6 fix: increase of tmpfs's size by mount a btrfs subvolume for it
feat: migrate nixos-installer from a separate branch into a folder
2023-12-22 00:13:21 +08:00
Ryan Yin 45b52845f7 feat: disable flake_check in ci 2023-12-21 17:48:18 +08:00
Ryan Yin 434b3bfe81 feat: enable zram 2023-12-21 17:10:11 +08:00
Ryan Yin 6c1cd365a0 feat: enable zram 2023-12-21 17:09:34 +08:00
Ryan Yin b1d9bbc26e feat: enable zram 2023-12-21 17:08:39 +08:00
Ryan Yin 76b0b1c68d fix: disable flake_check in ci temporarily 2023-12-21 15:37:28 +08:00
Ryan Yin 6dca4d1492 docs: README 2023-12-21 15:32:28 +08:00
Ryan Yin a237c108d1 fix: bash in mkShell 2023-12-21 14:46:20 +08:00
Ryan Yin 9832a955e4 feat: darwin - homebrew mirror, replace iglance with stats 2023-12-21 12:24:12 +08:00
Ryan Yin c90bb514d0 feat: new aarch64-darwin host - fern 2023-12-21 12:03:16 +08:00
Ryan Yin 932e1a236c Merge pull request #30 from ryan4yin/fern
feat: new aarch64-darwin host - fern
2023-12-20 23:02:46 +08:00
Ryan Yin e70f7269f4 feat: new aarch64-darwin host - fern 2023-12-20 21:43:16 +08:00
Ryan Yin a07dfbe36a feat: replace agenix with ragenix 2023-12-20 15:37:33 +08:00
Ryan Yin d57e3ff61b fix: fcitx5 theme 2023-12-20 13:29:25 +08:00
Ryan Yin 6f38faef79 fix: ci 2023-12-20 13:25:42 +08:00
Ryan Yin 50d9301e13 feat: migrate capptuccin themes into my nur-packages, add nix's access-tokens into secrets 2023-12-20 13:13:54 +08:00
Ryan Yin 58b02a6b16 feat: replace home.activation.xxx via home.file.<name>.force 2023-12-20 10:45:01 +08:00
Ryan Yin 29511fa574 feat: refactor flake.nix 2023-12-20 02:19:40 +08:00
Ryan Yin 809a68fa27 feat: add github workflow - flake_check 2023-12-19 21:03:59 +08:00
Ryan Yin 2ac43c8a33 feat: add github workflow - flake_check 2023-12-19 20:45:53 +08:00
Ryan Yin 802e9e6e39 feat: auto nix develop - direnv 2023-12-19 20:45:27 +08:00
Ryan Yin 625691084a fix: The following files have unrecognized content and would be overwritten: /etc/bashrc /etc/zshrc /etc/zshenv 2023-12-18 15:09:43 +08:00
Ryan Yin 38e7a45bb8 fix: agenix on nix-darwin 2023-12-18 14:42:03 +08:00
Ryan Yin dbe62811c7 fix: agenix on nix-darwin, update flake.nix 2023-12-18 14:05:45 +08:00
Ryan Yin 8d83ded0fb feat: update git pre-commit checks 2023-12-18 11:14:17 +08:00
Ryan Yin 74cec7dd8e feat: nix fmt 2023-12-18 01:06:28 +08:00
Ryan Yin b2f75a37dc feat: nix fmt 2023-12-18 00:36:59 +08:00
Ryan Yin a04a058077 feat: refactor, hyprland - greet with autologin 2023-12-18 00:32:41 +08:00
Ryan Yin 7d03e63bdd feat: upgrade system.stateVersion
feat: autologin - hyprland / i3
feat: 256color for console tty
2023-12-17 05:59:22 +08:00
Ryan Yin 1cf34add85 fix: fcitx - macOS 2023-12-17 00:09:13 +08:00
Ryan Yin 20b6aa07af feat: update flake.lock, add eye-protection.nix 2023-12-17 00:08:54 +08:00
Ryan Yin ab5a68ce9d feat: change linux kernel to xanmod 2023-12-16 21:44:05 +08:00
Ryan Yin da729c1ade feat: add aws ssm plugin 2023-12-13 18:10:05 +08:00
Ryan Yin f899d59da9 docs: impermanence - ai 2023-12-13 12:23:21 +08:00
Ryan Yin ca8f0dc166 feat: disable nix channel 2023-12-13 11:57:59 +08:00
Ryan Yin 393338a23d fix: disable docker storageDriver 2023-12-12 23:39:35 +08:00
Ryan Yin 5ca251646a feat: docker - pulling using containerd 2023-12-12 22:08:32 +08:00
Ryan Yin 75ef84913f fix: agenix failed to decrypt secrets when booting 2023-12-12 20:37:03 +08:00
Ryan Yin b92537e264 fix: nix-darwin 2023-12-12 11:28:24 +08:00
Ryan Yin e3a17925f2 fix: nix optimise storage 2023-12-09 16:37:54 +08:00
Ryan Yin c170e251ac fix: nixConfig.extra-sbustituers https://github.com/ryan4yin/nixos-and-flakes-book/discussions/62#discussioncomment-7805510 2023-12-09 14:18:19 +08:00
Ryan Yin ec1747707b fix: terminfo 2023-12-08 17:50:32 +08:00
Ryan Yin 56f2abc737 fix: terminfo error on macOS 2023-12-08 14:24:44 +08:00
Ryan Yin cb6f46aea8 fix: syntax error, optimise tmux 2023-12-07 22:38:04 +08:00
Ryan Yin dfab5ddacc fix: TERM and TERMINFO 2023-12-07 22:02:01 +08:00
Ryan Yin 0e2faec44f docs: wezterm crash with the latest hyprland 2023-12-07 21:12:17 +08:00
Ryan Yin 88671c40e7 Merge pull request #27 from ryan4yin/fix-nushell-neovim
fix: environment variables missed in nushell
2023-12-07 20:10:01 +08:00
Ryan Yin 9f59301a0e fix: environment variables missed in nushell
fix: https://github.com/ryan4yin/nix-config/issues/26
2023-12-07 13:10:15 +08:00
Ryan Yin d13a353921 revert: shell wrapper for neovim's terminal still useless on macOS 2023-12-07 10:47:08 +08:00
Ryan Yin 989989ecc6 docs: update comments 2023-12-07 10:39:03 +08:00
Ryan Yin 0a66a3b0a3 docs: comment for nvim-shell 2023-12-07 00:27:30 +08:00
Ryan Yin be036118ca feat: optimise autosave.nvim 2023-12-06 23:50:07 +08:00
Ryan Yin 601fcafd31 fix: autosave.nvim & yazi 2023-12-06 23:07:01 +08:00
Ryan Yin 087d38487c feat: access extraPackages in neovim's terminal - add a shell wrapper 2023-12-06 22:39:10 +08:00
Ryan Yin b0e481a1f1 fix: package collisions 2023-12-06 11:45:26 +08:00
Ryan Yin 1ca7607814 feat: update yazi, add tools for java development 2023-12-05 21:05:37 +08:00
Ryan Yin 59ea29a7ab feat: auto chmod agenix's secrets on darwin 2023-12-05 12:12:32 +08:00
Ryan Yin 486a3b343c feat: disable flatpak 2023-12-05 12:01:07 +08:00
Ryan Yin 3b7772712e docs: update README 2023-12-05 11:44:19 +08:00
Ryan Yin 37b34beca4 feat: enable waydroid & lxd 2023-12-05 11:18:15 +08:00
Ryan Yin ef60e7bf91 fix: warning for i3wm - xdg-portal 2023-12-03 01:10:36 +08:00
Ryan Yin 05bfd2df13 fix: persistent files 2023-12-03 00:40:13 +08:00
Ryan Yin 9d00eb39f9 fix: pipewire-pulse.service failed to start 2023-12-02 23:56:45 +08:00
Ryan Yin 30a9619f2c feat: add groups for udev rules 2023-12-02 23:50:56 +08:00
Ryan Yin da2ab6f86b fix: docker storage driver - btrfs 2023-12-02 22:57:35 +08:00
Ryan Yin 7c61a58808 feat: secureboot 2023-12-02 22:46:52 +08:00
ryan4yin 67c62534e8 feat: impermanence 2023-12-02 20:56:50 +08:00
Ryan Yin 26dc7bb149 fix: wezterm's chinese font on macOS 2023-12-01 16:42:21 +08:00
Ryan Yin a1120fd930 Merge pull request #22 from zhpjy/main
修正简体中文显示为异体(日文)字形问题
2023-12-01 16:41:14 +08:00
zhpjy 13c72a8256 修正简体中文显示为异体(日文)字形问题
参考:https://wiki.archlinuxcn.org/wiki/%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%E6%9C%AC%E5%9C%B0%E5%8C%96#%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98:~:text=%E5%AD%97%E4%BD%93%E8%B0%83%E6%A0%A1%E6%8C%87%E5%8D%97-,%E4%BF%AE%E6%AD%A3%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%E6%98%BE%E7%A4%BA%E4%B8%BA%E5%BC%82%E4%BD%93%EF%BC%88%E6%97%A5%E6%96%87%EF%BC%89%E5%AD%97%E5%BD%A2,-%5B%E7%BC%96%E8%BE%91%20%7C
2023-12-01 00:54:52 +08:00
Ryan Yin 0322de2622 feat: add istioctl 2023-11-30 17:39:35 +08:00
Ryan Yin d9be6f9213 fix: wezterm on darwin 2023-11-30 11:01:53 +08:00
Ryan Yin b977203d15 feat: mount swap subvolume in read-only mode 2023-11-28 22:10:39 +08:00
Ryan Yin db4e3b5fdd feat: enable btrfs's zstd compression 2023-11-28 00:26:40 +08:00
Ryan Yin a1f4764526 fix: nix-darwin with nixos-23.11 2023-11-27 16:16:24 +08:00
Ryan Yin 0996ec71e9 docs: update comments 2023-11-27 01:14:17 +08:00
ryan4yin 2e8d068070 feat: encrypted boot partition, fix nix.gc args 2023-11-27 00:38:13 +08:00
Ryan Yin ee606e5518 fix: replace gparted with parted 2023-11-26 22:54:01 +08:00
Ryan Yin 440eb287ed feat: add gparted & ventoy 2023-11-26 22:50:53 +08:00
Ryan Yin ee9828151c docs: README 2023-11-26 22:40:32 +08:00
Ryan Yin 0b6bafb39c feat: minor updates for neovim & bat 2023-11-26 19:52:07 +08:00
Ryan Yin df570294b4 Merge pull request #20 from ryan4yin/nixos-23.11
feat: upgrade nixpkgs to 23.11
2023-11-26 19:27:20 +08:00
Ryan Yin 5e0c7e90ff feat: encrypted root partition with btrfs(except /boot partition) 2023-11-26 19:17:09 +08:00
Ryan Yin ada780afc8 feat: upgrade nixpkgs to 23.11 2023-11-15 01:24:42 +08:00
Ryan Yin d624ab4323 feat: update flake.lock 2023-10-29 14:59:35 +08:00
Ryan Yin f2dfb10c1b fix: sync to gitee 2023-10-04 12:35:09 +08:00
Ryan Yin f10666ff7c feat: sync to gitee 2023-10-04 12:30:36 +08:00
Ryan Yin a378fa3d60 feat: rime-data - update user dict 2023-10-02 16:56:20 +08:00
Ryan Yin dfefa53e6b feat: terraformer 2023-09-26 12:21:59 +08:00
Ryan Yin 09a6af9d36 docs: secrets 2023-09-19 11:44:31 +08:00
Ryan Yin 1172968a93 feat: add guile 2023-09-15 17:05:51 +08:00
Ryan Yin 6d2ba3f0c1 fix: typo 2023-09-11 01:06:34 +08:00
Ryan Yin 262988949c feat: gowin eda - fpga 2023-09-08 22:27:03 +08:00
Ryan Yin f5a745f37e feat: aliyun-cli 2023-09-08 18:42:21 +08:00
Ryan Yin 02b6079198 feat: add btop for macOS, remove verible from macOS 2023-09-07 16:35:59 +08:00
Ryan Yin c645d31dd3 feat: neovim - support verilog / systemverilog 2023-09-06 22:23:57 +08:00
Ryan Yin 32a6789f44 feat: adjust font's dpi 2023-09-06 21:53:38 +08:00
Ryan Yin f173808e10 fix: sonic-pi 2023-08-28 20:38:23 +08:00
Ryan Yin 7ba80d4458 feat: add sonic-pi - music programming 2023-08-28 13:36:26 +08:00
Ryan Yin e63a1a92e8 Merge pull request #16 from DataEraserC/main-2
Remove extra curly brace
2023-08-21 21:38:09 +08:00
雑魚~雑魚~ 90cb0f987b Remove extra curly brace 2023-08-21 05:08:07 -06:00
Ryan Yin bfd05251f2 feat: bump flake.lock 2023-08-19 02:41:04 +08:00
Ryan Yin 13b70df944 feat: use wireless interface for nozomi & yukina 2023-08-19 02:40:48 +08:00
Ryan Yin a0c6965438 feat: add nur-ryan4yin, install yazi 2023-08-17 22:57:08 +08:00
Ryan Yin e36daaa48c fix: macOS - commands like are required by some tools 2023-08-17 14:44:26 +08:00
Ryan Yin ca239579d5 feat: add pictures for 12kingdoms 2023-08-17 02:22:25 +08:00
Ryan Yin d34d2adb42 feat: update Makefile for aarch SBCs 2023-08-17 02:17:03 +08:00
Ryan Yin cc80f0e885 docs: add comments 2023-08-17 02:15:12 +08:00
Ryan Yin 737603403a feat: aarch64 host - suzu 2023-08-17 02:14:00 +08:00
Ryan Yin 05a94aae60 chore: fcitx5 - remove useless config 2023-08-16 23:45:36 +08:00
Ryan Yin b02b7c0af8 feat: more ssh keys 2023-08-16 20:40:54 +08:00
Ryan Yin 24cd473387 feat: README for /lib 2023-08-16 18:38:44 +08:00
Ryan Yin f6630bc6e0 feat: README for /lib 2023-08-16 18:35:11 +08:00
Ryan Yin 417e6658dc Merge pull request #15 from DataEraserC/main-1
Fix typo
2023-08-16 18:27:08 +08:00
雑魚~雑魚~ f626371732 Fix typo 2023-08-16 04:25:29 -06:00
Ryan Yin d318e35a93 feat: README - add pictures 2023-08-16 03:28:58 +08:00
Ryan Yin 7ddac56e17 feat: README - add pictures 2023-08-16 03:28:44 +08:00
Ryan Yin b060b69114 feat: README - add pictures 2023-08-16 03:26:15 +08:00
Ryan Yin 12f3032d8d feat: deploy via colmena 2023-08-16 03:12:31 +08:00
Ryan Yin bbd300422b fix: licheepi4a - mount boot partition 2023-08-16 02:44:34 +08:00
Ryan Yin b2d19ee218 Merge pull request #14 from ryan4yin/riscv64
feat: add riscv64 cluster - rolling girls
2023-08-16 02:07:38 +08:00
Ryan Yin f5c1148c94 feat: add riscv64 cluster - rolling girls 2023-08-16 02:06:48 +08:00
Ryan Yin f682523804 feat: deploy remotely via colmena(instead of nixos-rebuild) 2023-08-16 00:14:13 +08:00
Ryan Yin b635efba09 feat: add color picker 2023-08-16 00:14:13 +08:00
Ryan Yin bd474f798e Merge pull request #13 from Balssh/main-1
Fix typo
2023-08-15 08:36:38 +08:00
George Bals 1575e50fea Fix typo
I love this repo, is very helpful in learning nixos
2023-08-15 00:02:01 +03:00
Ryan Yin ae851875a9 fix: wezterm - font 2023-08-14 14:43:09 +08:00
Ryan Yin 24630c5e5d feat: add docs for terminal 2023-08-14 13:37:56 +08:00
Ryan Yin ae35522d11 feat: kitty - toggle maximized 2023-08-14 13:29:50 +08:00
Ryan Yin 6634eb7cb0 feat: wezterm - toggle window size 2023-08-14 13:21:16 +08:00
Ryan Yin d0568b9f19 feat: wezterm - toggle opacity 2023-08-14 13:16:01 +08:00
Ryan Yin 803992635f feat: enable wezterm 2023-08-14 12:25:14 +08:00
Ryan Yin 9dbf2293ce fix: neovim & wezterm 2023-08-14 11:51:16 +08:00
Ryan Yin bc9b29f62b feat: neovim - using configs from astrocommunity 2023-08-14 02:20:16 +08:00
Ryan Yin 7347bcb842 feat: neovim - markdown-preview 2023-08-14 01:41:34 +08:00
Ryan Yin cc9dfa7940 Update FUNDING.yml 2023-08-13 17:34:37 +08:00
Ryan Yin 0db7703857 docs: neovim - flash.nvim 2023-08-13 00:47:20 +08:00
Ryan Yin c8e84fbc36 feat: neovim - add flash.nvim 2023-08-13 00:38:33 +08:00
Ryan Yin d3553ae104 feat: neovim - add flash.nvim 2023-08-13 00:26:06 +08:00
Ryan Yin 9c5a1b12ef feat: neovim - fix performance issue of telescope preview 2023-08-12 22:42:35 +08:00
Ryan Yin d282a3b0b6 feat: neovim - more plugins 2023-08-12 22:03:02 +08:00
Ryan Yin 62487cc5ca docs: neovim 2023-08-12 21:36:21 +08:00
Ryan Yin f81c62dc0a feat: neovim - noice.nvim 2023-08-12 21:30:20 +08:00
Ryan Yin f02f673012 feat: update flake inputs 2023-08-12 21:15:49 +08:00
Ryan Yin 0be942efe2 feat: neovim - more plugins 2023-08-12 21:00:48 +08:00
Ryan Yin 9f91849707 docs: neovim 2023-08-12 20:28:10 +08:00
Ryan Yin 1cdf80adff docs: neovim 2023-08-12 20:26:01 +08:00
Ryan Yin 8be00a52c8 docs: neovim 2023-08-12 20:22:22 +08:00
Ryan Yin eb5c35d670 docs: neovim 2023-08-12 20:21:11 +08:00
Ryan Yin d00d8cd43b docs: neovim 2023-08-12 20:17:33 +08:00
Ryan Yin b4ea5aa354 docs: neovim 2023-08-12 20:16:05 +08:00
Ryan Yin 8a9af081fc docs: neovim 2023-08-12 20:10:09 +08:00
Ryan Yin ef86bc96f6 docs: neovim 2023-08-12 20:09:17 +08:00
Ryan Yin 289888aa50 feat: neovim - more plugins 2023-08-12 18:43:27 +08:00
Ryan Yin 5b1b79a760 fix: hyprland - cursor disapper with Nvidia GPU 2023-08-12 15:02:05 +08:00
Ryan Yin c60388668c feat: remove vscode 2023-08-12 14:57:59 +08:00
Ryan Yin 9c3e4bea8d feat: neovim - find and search globally, refactoring 2023-08-12 14:52:48 +08:00
Ryan Yin 2f6d1aa482 feat: add comments 2023-08-12 14:09:50 +08:00
Ryan Yin c5267e7932 feat: add tools for CLI search and replace, with diff preview 2023-08-12 13:57:30 +08:00
Ryan Yin 08baea2e22 feat: disable remote building 2023-08-12 11:54:18 +08:00
Ryan Yin 356ed4bfdc feat: add git-trim 2023-08-09 14:35:17 +08:00
Ryan Yin 3799aa0c90 fix: git delmerged 2023-08-09 13:13:39 +08:00
Ryan Yin 28779f60ea feat: git config 2023-08-09 12:40:31 +08:00
Ryan Yin d0a9bdd002 feat: git config 2023-08-09 12:00:51 +08:00
Ryan Yin 0ee541c9e4 feat: git config 2023-08-09 12:00:32 +08:00
Ryan Yin e1baf45441 feat: proxychains's conf for macOS 2023-08-09 11:25:18 +08:00
Ryan Yin e6c1b945f3 feat: proxychains-ng on macOS 2023-08-09 11:17:59 +08:00
Ryan Yin 0efb7dfba1 Update FUNDING.yml 2023-08-09 00:19:29 +08:00
Ryan Yin 4760e508be Create FUNDING.yml 2023-08-09 00:18:48 +08:00
Ryan Yin 682346a66a feat: update flake.lock 2023-08-07 15:25:33 +08:00
Ryan Yin 0fac56f612 fix: typo(tab instead of space) 2023-08-07 15:19:31 +08:00
Ryan Yin 270d43251f feat: update packages to the latest version, disable wezterm 2023-08-07 15:05:04 +08:00
Ryan Yin c3cf8138f8 feat: rime-data - add chinese character - 矽 2023-08-07 15:04:22 +08:00
Ryan Yin 7ccccfc84c feat: remove duplicate configs 2023-08-07 01:16:11 +08:00
Ryan Yin e39b79c508 feat: use the same nixpkgs as much as possible - macOS 2023-08-04 22:40:15 +08:00
Ryan Yin 664506b6cb feat: use the same nixpkgs as much as possible 2023-08-04 22:37:18 +08:00
Ryan Yin a946ff7cce feat: disable neovim's experimental plugin - noice.nvim 2023-08-04 00:40:17 +08:00
Ryan Yin 99819c1df5 docs: minor updates 2023-08-04 00:32:40 +08:00
Ryan Yin c515ea9807 feat: start dockerd on boot 2023-08-03 23:53:04 +08:00
Ryan Yin 7ce3e9a391 feat: add tcpdump, update comments 2023-08-03 23:36:15 +08:00
Ryan Yin f61271a323 feat: comments 2023-08-03 23:22:20 +08:00
Ryan Yin 4a988dbce7 refactor: development environment 2023-08-03 23:16:12 +08:00
Ryan Yin 79a866a287 feat: bump astronvim's version to v3.34.5 2023-08-03 17:31:15 +08:00
Ryan Yin bd53ef65ec feat: add sshconfig for k8s masters 2023-08-03 01:10:26 +08:00
Ryan Yin 804bf99e74 fix: remote building - virtual machines 2023-08-03 00:02:37 +08:00
Ryan Yin 6e7fa3e223 docs: how to search in kitty/alacritty 2023-08-01 17:49:33 +08:00
Ryan Yin 508a45d801 feat: kitty - tab bar on top 2023-08-01 13:16:43 +08:00
Ryan Yin 7c9cb5156f feat: update macOS's system config 2023-08-01 13:16:43 +08:00
Ryan Yin 08d8c4cbc5 fix: firefox gets wrong timezone on NixOS 2023-07-31 21:24:25 +08:00
Ryan Yin 7dc0adee72 feat: add bpftrace 2023-07-31 14:44:28 +08:00
Ryan Yin d61b27bcb5 feat: add bfg-repo-cleaner 2023-07-31 10:56:12 +08:00
Ryan Yin 0030a41a8f feat: install jdk17(Adoptium prebuilt jdk on macOS) 2023-07-31 10:52:43 +08:00
Ryan Yin 66fa46afb6 feat: adjust alacritty & kitty for macOS 2023-07-31 10:33:56 +08:00
Ryan Yin 26da19ba38 fix: grim(wayland): Failed to create image. https://github.com/ryan4yin/nix-config/issues/11 2023-07-30 17:45:17 +08:00
Ryan Yin 81a4104973 docs: README 2023-07-30 17:08:44 +08:00
Ryan Yin 6b55dfca46 docs: README 2023-07-30 17:00:56 +08:00
Ryan Yin b3676ccbe6 fix: correct waybar's config format 2023-07-30 16:44:41 +08:00
Ryan Yin 71af10ff3b feat: update readme, adjust nix settings 2023-07-30 16:32:05 +08:00
Ryan Yin a99adf065d feat: update for hyprland(wayland)
refactor: core-desktop.nix & core-server.nix
2023-07-30 16:18:44 +08:00
Ryan Yin 2485f24fcc docs: remove useless comments 2023-07-30 15:23:33 +08:00
Ryan Yin 777d915cd2 fix: https://github.com/ryan4yin/nix-config/issues/10 2023-07-30 15:16:48 +08:00
Ryan Yin 5df740ca6e docs: README 2023-07-30 05:06:20 +08:00
Ryan Yin dd27f9eaeb fix: add psmisc(killall) 2023-07-30 05:04:52 +08:00
Ryan Yin d370d96f47 feat: update for gtk/x11/xwayland 2023-07-30 04:48:46 +08:00
Ryan Yin 1e98f591f5 feat: replace wofi by anyrun - wayland 2023-07-30 04:19:03 +08:00
Ryan Yin 5e2bec4ac5 docs: README - WARNGING 2023-07-30 01:52:14 +08:00
Ryan Yin 0c30883e22 docs: README - secrets 2023-07-30 01:45:49 +08:00
Ryan Yin c9a42f1a13 feat: update Makefile 2023-07-30 01:37:02 +08:00
Ryan Yin a9c123d9d4 feat: update specific input 2023-07-30 01:35:55 +08:00
Ryan Yin e4c9e863cf feat: update comments 2023-07-30 01:25:28 +08:00
Ryan Yin 2970073d5e feat: add README for lib 2023-07-30 01:20:47 +08:00
Ryan Yin 8bef422482 fix: README 2023-07-30 00:58:52 +08:00
Ryan Yin 6247cecf0b fix: README 2023-07-30 00:56:02 +08:00
Ryan Yin 721e74845a fix: typo 2023-07-30 00:51:30 +08:00
Ryan Yin 349ff8b5a1 feat: migrate wallpaper_random.py into another repo: ryan4yin/wallpapers 2023-07-30 00:43:27 +08:00
Ryan Yin 4cf9b16faf feat: replace nnn with ranger 2023-07-30 00:28:44 +08:00
Ryan Yin 8fc95549bf feat: replace nnn with ranger 2023-07-30 00:28:14 +08:00
Ryan Yin f2dbaba802 feat: replace nnn with ranger 2023-07-30 00:24:14 +08:00
Ryan Yin 538c81ca47 feat: comments for wallpaper_random.py 2023-07-30 00:06:06 +08:00
Ryan Yin 32161dd090 feat: comments for wallpaper_random.py 2023-07-30 00:04:39 +08:00
Ryan Yin a310ab4d4a feat: wallpaper_random 2023-07-30 00:00:38 +08:00
Ryan Yin bc290e371b feat: update README 2023-07-29 22:33:32 +08:00
Ryan Yin b407453836 feat: add README into subfolders 2023-07-29 22:15:01 +08:00
Ryan Yin 6ff9c397c8 feat: update README 2023-07-29 21:52:23 +08:00
Ryan Yin 033d50c738 fix: fcitx5's theme - catppuccin-mocha 2023-07-29 21:18:37 +08:00
Ryan Yin 7dc223a77e feat: update README 2023-07-29 20:49:51 +08:00
Ryan Yin c472654934 feat: add useful nushell scripts - auto-completion 2023-07-29 20:44:52 +08:00
Ryan Yin 189a3a4689 docs: add wallpapers link into README 2023-07-29 19:01:28 +08:00
Ryan Yin 1f0040a9dd feat: update flake.lock 2023-07-29 18:59:41 +08:00
Ryan Yin 5d8615cdb0 feat: update wallpapers
feat: update screenshots for hyprland
2023-07-29 18:53:59 +08:00
Ryan Yin 2f96ab5464 fix: nvidia with hyprland 2023-07-29 16:53:49 +08:00
Ryan Yin c8bd133e49 docs: update screenshots for i3 2023-07-29 16:34:27 +08:00
Ryan Yin 5778d72dd4 feat: catppuccin-mocha for cava 2023-07-29 16:09:58 +08:00
Ryan Yin 01285af535 docs: update README for catppuccin 2023-07-29 16:01:48 +08:00
Ryan Yin e1cd93d6d1 feat: customize all app's theme to catppuccin-mocha 2023-07-29 15:57:40 +08:00
Ryan Yin 714c45f5f9 feat: update README's NOTE 2023-07-29 12:37:50 +08:00
Ryan Yin 87df015862 feat: update README 2023-07-29 12:22:43 +08:00
Ryan Yin c09091fa25 feat: update README 2023-07-29 12:18:52 +08:00
Ryan Yin 8b4a0a7055 fix: typo 2023-07-28 14:33:58 +08:00
Ryan Yin 78319f4ef6 feat: add new editor - helix 2023-07-27 18:23:22 +08:00
Ryan Yin f66e73c5a6 docs: README - add starship 2023-07-27 13:08:28 +08:00
Ryan Yin cf9d5acd95 feat: add components into README 2023-07-27 13:04:20 +08:00
Ryan Yin 98fed47741 fix: minor changes in README 2023-07-27 12:01:49 +08:00
Ryan Yin ed57391eb0 feat: update mimeApps 2023-07-27 03:52:18 +08:00
Ryan Yin fc4a44c023 feat: hyprland - add screenshots 2023-07-27 03:45:04 +08:00
Ryan Yin c158f17c63 feat: switch wallpaper 2023-07-27 03:00:45 +08:00
Ryan Yin e61bd9ae14 feat: aqua/kana/ruby - switch to nixos-stable(23.05) 2023-07-27 02:56:58 +08:00
Ryan Yin 4f6b899643 docs: comments 2023-07-27 02:39:38 +08:00
Ryan Yin 5d2cf3e5dd refactor: flake.nix - adjust nixosConfigurations 2023-07-27 02:33:39 +08:00
Ryan Yin befddfe476 refactor: do not hardcode username/email in sub modules 2023-07-27 02:28:29 +08:00
Ryan Yin 204cb03922 feat: simplify flake.nix 2023-07-27 02:22:08 +08:00
Ryan Yin eebbb9f5e6 feat: update README 2023-07-26 01:59:38 +08:00
Ryan Yin ad76bb3451 feat: update wallpapers 2023-07-26 01:20:39 +08:00
Ryan Yin 0564357a9c feat: add wallpapers 2023-07-26 01:16:13 +08:00
Ryan Yin b44672d16c feat: add screenshot for hyprland 2023-07-26 00:54:44 +08:00
Ryan Yin 1164bebee4 feat: update README 2023-07-26 00:47:36 +08:00
Ryan Yin 29129215a5 fix: waybar, mpd 2023-07-26 00:29:39 +08:00
Ryan Yin bc08dc1949 feat: ai with both i3 & hyprland
replace archcraft's icon by snowflake(nixos)
feat: update waybar's settings
2023-07-25 23:36:25 +08:00
Ryan Yin 6e825eef7f feat: add private key to ssh-agent when using ssh 2023-07-25 13:09:50 +08:00
Ryan Yin 6ae4d4ba80 fix: platformio - failed to upload firmware 2023-07-24 23:32:56 +08:00
Ryan Yin c34911ba26 fix: skip load alias_for_work if it does not exist 2023-07-24 23:12:54 +08:00
Ryan Yin 82819ff091 feat: do not hide any files - neotree 2023-07-24 18:13:08 +08:00
Ryan Yin 12ef055135 feat: search and replace across multiple files in neovim 2023-07-24 00:35:19 +08:00
Ryan Yin 5beb15c165 feat: comments of astronvim 2023-07-24 00:17:01 +08:00
Ryan Yin cf6584ea71 feat: add devbox from nixpkgs-unstable 2023-07-21 12:15:46 +08:00
Ryan Yin 3bbe86cb55 feat: add LINCENSE - MIT 2023-07-20 20:07:08 +08:00
Ryan Yin 18c6e79d0c feat: update README 2023-07-20 20:00:12 +08:00
Ryan Yin 6fbefd0a67 feat: comments for darwin's secrets 2023-07-19 19:32:57 +08:00
Ryan Yin d502490bf6 fix: secrets 2023-07-19 19:31:57 +08:00
Ryan Yin 3f6b5b321a update flake.lock, add comments for tailscale on macOS 2023-07-18 19:43:45 +08:00
Ryan Yin 2d06846467 fix: comments for kitty 2023-07-18 14:37:35 +08:00
Ryan Yin baac168826 feat: comments for kitty/alacritty, bump astronvim to v3.33.3 2023-07-18 14:34:19 +08:00
Ryan Yin 78e5053ae5 fix: correct error info related to secrets 2023-07-18 00:17:24 +08:00
Ryan Yin 25ac706450 feat: bump AstroNvim to v3.33.2 2023-07-17 23:27:48 +08:00
Ryan Yin edff2bdc6c fix: DNS for WireGuard on macOS 2023-07-17 18:09:51 +08:00
Ryan Yin 337f67109e fix: DNS for WireGuard on macOS 2023-07-17 17:31:59 +08:00
Ryan Yin 450389400a feat: zsh on macOS 2023-07-17 17:02:45 +08:00
Ryan Yin f52d604d42 fix: disable neovim's smartidentent 2023-07-17 16:48:59 +08:00
Ryan Yin d12e3b979a fix: do not auto start tmux on boot 2023-07-17 16:24:06 +08:00
Ryan Yin 7b482f8cfa feat: macOS - adjust terminal's font size, starship for zsh, squirrel input method 2023-07-17 16:20:07 +08:00
Ryan Yin de1bc12b1b feat: flypy - add custom symbols Δ 2023-07-17 15:15:37 +08:00
Ryan Yin a6fb453c9e feat: input method for macOS - squirrel 2023-07-17 14:17:56 +08:00
Ryan Yin 32429619ab feat: rime-data for both linux & macOS 2023-07-17 13:25:17 +08:00
Ryan Yin cc6e5ea071 feat: start kitty as fullscreen on macOS 2023-07-17 11:38:38 +08:00
Ryan Yin ba29d32d80 fix: i3 - do not assign all kitty terminal to window 1 2023-07-17 11:32:42 +08:00
Ryan Yin 0f08976902 fix: macOS 2023-07-17 11:31:25 +08:00
Ryan Yin b3ac7784ca feat: enable copilot for markdown & yaml, try to fix nix comment identation 2023-07-16 19:37:18 +08:00
Ryan Yin b271e43df4 fix: kitty settings on linux 2023-07-16 17:03:18 +08:00
Ryan Yin 3dff682ceb fix: identation 2023-07-16 17:01:01 +08:00
Ryan Yin 8d05c3a204 feat: change default terminal from alacritty to kitty 2023-07-16 16:53:36 +08:00
Ryan Yin 887825d254 feat: use different font size on macOS 2023-07-16 16:48:48 +08:00
Ryan Yin 8061e07a00 feat: default to nushell - zellij 2023-07-16 16:46:45 +08:00
Ryan Yin fa1cf24af5 fix: typo 2023-07-16 16:45:31 +08:00
Ryan Yin 1ab318b6db fix: kitty + nushell on macOS 2023-07-16 16:35:33 +08:00
Ryan Yin 59493d03fa feat: exa -> ls 2023-07-16 16:13:47 +08:00
Ryan Yin c06504032c feat: bat with theme - catppuccino 2023-07-16 16:08:55 +08:00
Ryan Yin cf80c7549e refactor: alacritty's config 2023-07-16 15:59:11 +08:00
Ryan Yin e6b7e24a36 feat: add terminal - kitty 2023-07-16 15:31:26 +08:00
Ryan Yin 1b5a415d7a fix: missing base packages - linux 2023-07-16 00:38:11 +08:00
Ryan Yin 95d9cd0a27 fix: macOS 2023-07-15 19:49:39 +08:00
Ryan Yin cca05de49b feat: static hostname - macOS 2023-07-15 19:45:10 +08:00
Ryan Yin fa9f23751c docs: remap capslock key 2023-07-15 19:12:48 +08:00
Ryan Yin cf33721ec1 feat: refactor codes
feat: custom rime - disable full_shape punctuations
feat: remap capslock key
2023-07-15 19:10:04 +08:00
Ryan Yin 52c72bd45d fix: lock agenix's commit 2023-07-15 16:38:07 +08:00
Ryan Yin c6e736d64b feat: install some apps from apple store instead of homebrew
feat: replace username with ryan
fix: secrets
2023-07-15 16:33:22 +08:00
Ryan Yin c90d1c0208 fix: migrate secrets from /run/agenix(deleted after reboot) to /etc/agenix 2023-07-15 12:31:18 +08:00
Ryan Yin 5ed0ece058 fix: secrets for work 2023-07-14 23:12:47 +08:00
Ryan Yin 8684376b98 feat: astronvim - nushell hightlight(wip) 2023-07-14 19:04:31 +08:00
Ryan Yin 03cee6582f docs: secrets 2023-07-14 18:24:11 +08:00
Ryan Yin 86291af053 docs: secrets 2023-07-14 18:13:46 +08:00
Ryan Yin 54bb672d9e feat: harden my private secrets 2023-07-14 17:59:15 +08:00
Ryan Yin f34bf79884 docs: comments - astronvim 2023-07-14 16:14:20 +08:00
Ryan Yin db9ebd5ffd fix: comment - astronvim 2023-07-14 16:04:20 +08:00
Ryan Yin 64e384c18a docs: comment - astronvim 2023-07-14 15:59:22 +08:00
Ryan Yin 1e325739b1 docs: comment for raycast 2023-07-14 15:26:26 +08:00
Ryan Yin 2bf5d295d4 feat: add comment - astronvim on macOS 2023-07-14 15:21:25 +08:00
Ryan Yin 040d8a210c feat: customize keyrepeat & other preferences - macOS 2023-07-14 15:07:40 +08:00
Ryan Yin df63bce926 feat: set args about key repeat - macOS 2023-07-14 13:19:04 +08:00
Ryan Yin b5707d8457 feat: disabled guest login - macOS 2023-07-14 13:13:40 +08:00
Ryan Yin cd4ed3679c docs: comments 2023-07-14 12:56:38 +08:00
Ryan Yin 55b6aadf00 feat: remove visual-studio-code-insider, it's replaced by copilot-lua-cmp.nvim now 2023-07-14 12:52:43 +08:00
Ryan Yin 849ecfd6b7 fix: customize macOS, fix alacritty 2023-07-14 12:50:55 +08:00
Ryan Yin ca60e962f0 feat: alacritty 2023-07-14 10:03:28 +08:00
Ryan Yin 7bf52e7a75 fix: typo 2023-07-14 02:10:16 +08:00
Ryan Yin 872caa0407 feat: astronvim - comments 2023-07-14 02:08:47 +08:00
Ryan Yin 580a08841f feat: add zellij - a modern tmux 2023-07-14 01:58:43 +08:00
Ryan Yin ff6442e588 feat: astronvim - markdown preview - glow 2023-07-14 01:27:21 +08:00
Ryan Yin 271846703f fix: astronvim - formatting & diagnostic & code actions 2023-07-14 01:17:44 +08:00
Ryan Yin 298affd460 fix: astronvim - formatting 2023-07-14 00:15:59 +08:00
Ryan Yin d718c8084a fix: astronvim - lsp 2023-07-14 00:02:20 +08:00
Ryan Yin 39d35091d6 fix: astronvim - lsp 2023-07-13 23:36:22 +08:00
Ryan Yin cf9b184c9f fix: astronvim - install lsp via home-manager instead of mason.nvim 2023-07-13 23:28:32 +08:00
Ryan Yin 4abe5d7b8d feat: astronvim - autosave 2023-07-13 12:28:28 +08:00
Ryan Yin 54ebad9151 fix: astronvim - install lsp, fomatters and others via home-manager instead of mason.nvim 2023-07-13 12:28:23 +08:00
Ryan Yin 3234d0db2e feat: astronvim - update TODO 2023-07-13 11:18:47 +08:00
Ryan Yin c9b5a1d39b feat: update TODO 2023-07-13 01:59:04 +08:00
Ryan Yin fc8d43982b feat: add node2nix 2023-07-13 01:42:20 +08:00
Ryan Yin c4a47b9e53 feat: astronvim - Temporary solution 2023-07-13 01:23:37 +08:00
Ryan Yin 34182f3e45 feat: astronvim - add TODO 2023-07-13 01:05:33 +08:00
Ryan Yin 87de22fec4 fix: astronvim - missing markdown lsp 2023-07-13 00:51:11 +08:00
Ryan Yin 787010ac34 feat: update README 2023-07-13 00:47:01 +08:00
Ryan Yin 874a1ab939 fix: astronvim - fix copilot's completion by <tab>, add comments 2023-07-13 00:26:48 +08:00
Ryan Yin 95df12c59e fix: astronvim - dependencies for languages support 2023-07-12 23:12:59 +08:00
Ryan Yin 25c0938a64 feat: astronvim - languages 2023-07-12 13:24:33 +08:00
Ryan Yin 5731b52d3c feat: astronvim comments 2023-07-12 12:17:40 +08:00
Ryan Yin c7d88c1f57 fix: astronvim with noice.nvim 2023-07-12 12:12:47 +08:00
Ryan Yin 678016e391 feat: neovim - add noice.nvim - enhanced ui 2023-07-12 11:37:01 +08:00
Ryan Yin e14d6f8405 feat: migrate to astronvim 2023-07-12 11:10:59 +08:00
Ryan Yin 588cbabbc2 fix: neovim 2023-07-11 02:49:15 +08:00
Ryan Yin 7cc49c29f1 fix: neovim 2023-07-11 02:22:00 +08:00
Ryan Yin 21b3d4ad37 feat: neovim 2023-07-10 19:11:49 +08:00
Ryan Yin b6629a38a1 feat: remove alias for http_proxy & https_proxy 2023-07-10 00:24:43 +08:00
Ryan Yin a88afaaab3 feat: adjsut brightness(x11) 2023-07-09 22:09:27 +08:00
Ryan Yin 2acda6e977 feat: install ipython for root 2023-07-09 22:01:09 +08:00
Ryan Yin d1dd9bfdd6 fix: typo 2023-07-09 17:31:04 +08:00
Ryan Yin 027d819860 fix: typo 2023-07-09 17:30:37 +08:00
Ryan Yin 7e02cc8566 feat: update readme, comments & flake.lock 2023-07-09 17:26:33 +08:00
Ryan Yin bacc1bf9cd fix: nushell's PATH on darwin 2023-07-06 17:18:00 +08:00
Ryan Yin 6e7815ce22 fix: nushell's PATH on darwin 2023-07-06 17:13:17 +08:00
Ryan Yin 0193f84847 fix: nushell's PATH on darwin 2023-07-06 17:11:08 +08:00
Ryan Yin bb2c967981 feat: add darwin packages using homebrew 2023-07-06 16:45:59 +08:00
Ryan Yin 8d24a094bf chore: update README 2023-07-06 09:47:23 +08:00
Ryan Yin cb0dc30c7e feat: add tailscale for macOS 2023-07-05 18:40:59 +08:00
Ryan Yin 190d409992 feat: update for macOS 2023-07-05 18:35:05 +08:00
Ryan Yin acd7f8308c feat: add apps(using homebrew), update shells 2023-07-05 18:03:12 +08:00
Ryan Yin 4af3fa88dd feat: install apps using homebrew instead of nix 2023-07-05 16:38:04 +08:00
Ryan Yin e90d2eca1e chore: update flake.lock 2023-07-04 21:19:07 +08:00
Ryan Yin 462f671a76 feat: disable remote building for now 2023-07-02 21:17:38 +08:00
Ryan Yin 5d2371dda4 docs: add comment 2023-07-01 22:50:48 +08:00
Ryan Yin 379032a40b feat: enable libvirt(qemu/kvm), install qemu_full(qemu-system-riscv64/qemu-system-loongarch64/...) 2023-07-01 22:47:39 +08:00
Ryan Yin 65b5146dcb feat: enable libvirt(qemu/kvm), install qemu_full(qemu-system-riscv64/qemu-system-loongarch64/...) 2023-07-01 22:46:54 +08:00
Ryan Yin 4c53b59e89 feat: enable libvirt(qemu/kvm) for ai 2023-07-01 22:28:31 +08:00
Ryan Yin 9bd5cac675 feat: update flake.lock 2023-07-01 10:56:35 +08:00
Ryan Yin 2e65d0aa03 fix: install awscli2 instead of awscli 2023-06-30 14:52:36 +08:00
Ryan Yin afc74dcf68 feat: update README.md 2023-06-28 14:54:09 +08:00
Ryan Yin e7e3d0040a feat: update README 2023-06-25 12:52:37 +08:00
Ryan Yin 14c174890e docs: README 2023-06-23 02:32:44 +08:00
Ryan Yin dd472488b6 fix: fallback from unstable to stable caused NixOS failed to boot(precondition: the system image is created with unstable nixpkgs) 2023-06-21 01:09:46 +08:00
Ryan Yin ec4d00509e feat: update idols separately - update Makefile 2023-06-21 00:54:06 +08:00
Ryan Yin aa0c789b6e feat: replace sudo by '--use-remote-sudo', so we will change to sudo only when we need. 2023-06-21 00:49:57 +08:00
Ryan Yin 016115faa5 fix: problem in proxmox-hardware-configuration, update ruby & kana's publicKey 2023-06-21 00:37:09 +08:00
Ryan Yin f6ade7c612 fix: problem in proxmox-hardware-configuration 2023-06-21 00:30:58 +08:00
Ryan Yin 0bfd154437 docs: remove some TODOs 2023-06-18 22:13:23 +08:00
Ryan Yin 9a752121ba feat: adjust idols's max-jobs 2023-06-18 13:39:47 +08:00
Ryan Yin 3ea707245b feat: adjust remote builder's max-jobs 2023-06-18 03:07:07 +08:00
Ryan Yin e31ae3f553 feat: update i3 layout's readme & comments 2023-06-18 02:02:04 +08:00
Ryan Yin c38db38207 fix: remove useless i3block configs 2023-06-18 01:22:00 +08:00
Ryan Yin 6b364e19de fix: autostart in i3 2023-06-18 01:21:12 +08:00
Ryan Yin dae0504f5c feat: save i3 layout and auto load it 2023-06-18 01:09:52 +08:00
Ryan Yin d53ed4ef7e feat: add comments 2023-06-17 22:57:30 +08:00
Ryan Yin 530f8498a1 feat: add comments 2023-06-17 22:53:09 +08:00
Ryan Yin ef3c903582 feat: using nixos's stable branch by default, update Makefile 2023-06-17 22:45:51 +08:00
Ryan Yin 8314b91324 feat: using nixos's stable branch by default to stablize the system 2023-06-17 22:32:19 +08:00
Ryan Yin ccd4752d04 feat: add posters of [推しの子] 2023-06-17 22:10:53 +08:00
Ryan Yin 1bfeeacf2f feat: use 'chatter +i' to make a file immutable on linux 2023-06-17 22:00:32 +08:00
Ryan Yin bfac95b71e feat: idols & nix's distributed building 2023-06-17 12:55:53 +08:00
Ryan Yin b91508af5f feat: harmonica 2023-06-17 12:29:38 +08:00
Ryan Yin e51486a796 feat: yep, it's Oshi no Ko 2023-06-17 12:27:29 +08:00
Ryan Yin 897af2712f feat: dstributed builds 2023-06-17 10:46:05 +08:00
Ryan Yin ed5b4d121c fix: dstributed builds 2023-06-17 10:24:48 +08:00
Ryan Yin 45a7973553 feat: add distributed-builds & many hosts
feat: remove nur & devenv
feat: adjust the structure to make it suitable for servers
feat: add iso/proxmox generators and add docs about it
feat: update ryan's openssh keys & add hashedPassword
feat: add proxmox's nodes into ssh_config, with alias
2023-06-17 09:51:29 +08:00
Ryan Yin a5f0922ba7 feat: add support for riscv64-linux 2023-06-16 21:23:25 +08:00
Ryan Yin 792a7e7bfc feat: import all base configs in darwin
feat: change darwin's default shell to nushell
feat: update starship's config
2023-06-13 13:44:50 +08:00
Ryan Yin 8f512eb0bd feat: add some system tools - lspci/lsusb/hdparm/dmidecode/dig/nslookup 2023-06-13 03:03:47 +08:00
Ryan Yin 4936c0c46e feat: udpate README 2023-06-13 02:45:55 +08:00
Ryan Yin fe54e220e4 feat: update configs for tmux 2023-06-13 02:43:46 +08:00
Ryan Yin 0c5b01b5f0 feat: update git's config 2023-06-13 01:41:51 +08:00
Ryan Yin 0024dff048 fix: polish README 2023-06-13 01:11:01 +08:00
Ryan Yin 7c42d4d950 feat: update comments 2023-06-13 01:07:25 +08:00
Ryan Yin dc0fc97cb9 feat: add comments, format all nix files 2023-06-13 01:05:13 +08:00
Ryan Yin 86114a4db1 feat: polish, add comments 2023-06-13 00:56:40 +08:00
Ryan Yin 24ef3ed105 feat: rename 'common' to 'base' 2023-06-13 00:54:08 +08:00
Ryan Yin be437c3417 feat: change desktop's default shell to nushell 2023-06-13 00:54:08 +08:00
Ryan Yin e2e75407c9 feat: update README.md 2023-06-12 11:47:31 +08:00
Ryan Yin b99f77e0de feat: udpate README for command 'fhs' 2023-06-11 16:48:35 +08:00
Ryan Yin 909409ff29 feat: udpate README for command 'fhs' 2023-06-11 16:41:22 +08:00
553 changed files with 118169 additions and 7558 deletions
+1
View File
@@ -0,0 +1 @@
use flake
+3
View File
@@ -0,0 +1,3 @@
# https://github.com/github-linguist/linguist/blob/master/docs/overrides.md
home/linux/desktop/i3/conf/polybar/** linguist-vendored
+3
View File
@@ -0,0 +1,3 @@
github: ryan4yin
patreon: ryan4yin
custom: ["https://buymeacoffee.com/ryan4yin"]
+42
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@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 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
+32
View File
@@ -0,0 +1,32 @@
name: Mirror this repo to Gitee
on:
push:
branches:
- main
tags:
- "*"
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Mirror repo to Gitee
id: mirror-to-gitee
shell: bash
env:
INPUT_SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY_GITEE_MIRROR }}
INPUT_TARGET_REPO_URL: git@gitee.com:ryan_yin/nix-config.git
run: |
set -eu
mkdir -p ~/.ssh
echo "$INPUT_SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
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/*"
+9 -1
View File
@@ -1,2 +1,10 @@
.Trash-1000/
result result
result/ result/
.direnv/
.DS_Store
.pre-commit-config.yaml
logs/
core*
!core/
!core.nix
+8
View File
@@ -0,0 +1,8 @@
LICENSE.md
dist
pnpm-lock.yaml
flake.lock
vercel.json
cache
temp
.temp
+6
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
+34
View File
@@ -0,0 +1,34 @@
[files]
ignore-dot = true
ignore-files = true
extend-exclude = ["themes/", "data/", "static-surprises/", "resources/"]
[default]
binary = false
# 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",
]
+355
View File
@@ -0,0 +1,355 @@
# just is a command runner, Justfile is very similar to Makefile, but simpler.
# 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")
############################################################################
#
# Common commands(suitable for all machines)
#
############################################################################
# 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 --commit-lock-file
# Update specific input
# Usage: just upp nixpkgs
[group('nix')]
upp 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:
# 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(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 nixpkgs nixpkgs-stable nixpkgs-unstable nixpkgs-darwin nixpkgs-ollama
############################################################################
#
# 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 hyprland nixosConfiguration by hostname match
[linux]
[group('desktop')]
hypr mode="default":
#!/usr/bin/env nu
use {{utils_nu}} *;
nixos-switch $"(hostname)-hyprland" {{mode}}
# Deploy the niri nixosConfiguration by hostname match
[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:
#!/usr/bin/env nu
use {{utils_nu}} *;
darwin-rollback
# 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}}
# Reset launchpad to force it to reindex Applications
[macos]
[group('desktop')]
reset-launchpad:
defaults write com.apple.dock ResetLaunchPad -bool true
killall Dock
############################################################################
#
# Homelab - Kubevirt Cluster related commands
#
############################################################################
# Remote deployment via colmena
[linux]
[group('homelab')]
col tag:
colmena apply --on '@{{tag}}' --verbose --show-trace
# 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' --verbose --show-trace
[linux]
[group('homelab')]
ruby:
colmena apply --on '@ruby' --verbose --show-trace
[linux]
[group('homelab')]
kana:
colmena apply --on '@kana' --verbose --show-trace
############################################################################
#
# Kubernetes related commands
#
############################################################################
# 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}};
[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}};
[linux]
[group('homelab')]
k3s-prod:
colmena apply --on '@k3s-prod-*' --verbose --show-trace
[linux]
[group('homelab')]
k3s-test:
colmena apply --on '@k3s-test-*' --verbose --show-trace
# =================================================
#
# Other useful commands
#
# =================================================
[group('common')]
path:
$env.PATH | split row ":"
[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
[linux]
[group('common')]
penvof pid:
sudo cat $"/proc/($pid)/environ" | tr '\0' '\n'
# Remove all reflog entries and prune unreachable objects
[group('git')]
ggc:
git reflog expire --expire-unreachable=now --all
git gc --prune=now
# Amend the last commit without changing the commit message
[group('git')]
game:
git commit --amend -a --no-edit
# 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
#
# =================================================
# 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
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 Ryan Yin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-37
View File
@@ -1,37 +0,0 @@
deploy:
sudo nixos-rebuild switch --flake .
debug:
sudo nixos-rebuild switch --flake . --show-trace --verbose
update:
nix flake update
history:
nix profile history --profile /nix/var/nix/profiles/system
gc:
# remove all generations older than 7 days
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 7d
# garbage collect all unused nix store entries older than 14 days
sudo nix store gc --debug
darwin-set-proxy:
sudo python3 scripts/darwin_set_proxy.py
darwin: darwin-set-proxy
nix build .#darwinConfigurations.harmonica.system \
--extra-experimental-features 'nix-command flakes'
./result/sw/bin/darwin-rebuild switch --flake .
darwin-debug: darwin-set-proxy
nix build .#darwinConfigurations.harmonica.system \
--show-trace --verbose \
--extra-experimental-features 'nix-command flakes'
./result/sw/bin/darwin-rebuild switch --flake . --show-trace --verbose
.PHONY: clean
clean:
rm -rf result
+179 -61
View File
@@ -1,90 +1,208 @@
# Nix Configuration <h2 align="center">:snowflake: Ryan4Yin's Nix Config :snowflake:</h2>
This repository is home to the nix code that builds my systems. <p align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="400" />
</p>
## Screenshots <p align="center">
<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-25.05-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>
</a>
</p>
![](./_img/screenshot_2023-05-07-21-21.webp) > 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**.
## TODO This repository is home to the nix code that builds my systems:
- enable disk encryption to enhance data security 1. NixOS Desktops: NixOS with home-manager, hyprland, agenix, etc.
- make fcitx5-rime work in vscode/chrome/telegram on wayland 2. macOS Desktops: nix-darwin with home-manager, share the same home-manager configuration with
- auto unlock with `ssh-agent` after login NixOS Desktops.
- [People using ssh-agent, how do you unlock it on login? - reddit](https://www.reddit.com/r/NixOS/comments/lsbo9a/people_using_sshagent_how_do_you_unlock_it_on/) 3. NixOS Servers: virtual machines running on Proxmox/KubeVirt, with various services, such as
- update scripts for i3wm, especially rofi & screenshot kubernetes, homepage, prometheus, grafana, etc.
- fix `xdg-open`: after set `firefox.desktop` as defaultApplication, NixOS returned error `no apps installed that can open "https://baidu.com"`
- `Xcursor.size` do not take effect in i3
## Why Nix? See [./hosts](./hosts) for details of each host.
Nix allows for easy to manage, collaborative, reproducible deployments. This means that once something is setup and configured once, it works forever. If someone else shares their configuration, anyone can make use of it. See [./Virtual-Machine.md](./Virtual-Machine.md) for details of how to create & manage KubeVirt's
Virtual Machine from this flake.
**Want to know Nix in details? Looking for a beginner-friendly tutorial? Check out [NixOS & Nix Flakes - A Guide for Beginners](https://thiscute.world/en/posts/nixos-and-flake-basics/)!** ## 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/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)
**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.
## Components
| | NixOS(Wayland) |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Window Manager** | [Hyprland][Hyprland] / [Niri][Niri] |
| **Terminal Emulator** | [Zellij][Zellij] + [Kitty][Kitty] |
| **Bar** | [Waybar][Waybar] |
| **Application Launcher** | [anyrun][anyrun] |
| **Notification Daemon** | [Mako][Mako] |
| **Display Manager** | [GDM][GDM] |
| **Color Scheme** | [Catppuccin][Catppuccin] |
| **network management tool** | [NetworkManager][NetworkManager] |
| **Input method framework** | [Fcitx5][Fcitx5] |
| **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** | [hyprshot][hyprshot] |
| **Screen Recording** | [OBS][OBS] |
| **Filesystem & Encryption** | tmpfs on `/`, [Btrfs][Btrfs] subvolumes on a [LUKS][LUKS] encrypted partition for persistent, unlock via passphrase |
| **Secure Boot** | [lanzaboote][lanzaboote] |
Wallpapers: https://github.com/ryan4yin/wallpapers
## Hyprland + AstroNvim
![](./_img/hyprland_2023-07-29_1.webp)
![](./_img/hyprland_2023-07-29_2.webp)
## Neovim
See [./home/base/tui/editors/neovim/](./home/base/tui/editors/neovim/) for details.
## Secrets Management
See [./secrets](./secrets) for details.
## How to Deploy this Flake? ## How to Deploy this Flake?
> Note: you should NOT deploy this flake directly on your machine, it contains my hardware information and personal information which is not suitable for you. 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.
After installed NixOS with `nix-command` & `flake` enabled, flow the steps below to deploy this flake. For NixOS:
For NixOS, use the following commands: > 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`.
```bash ```bash
# deploy my test configuration # deploy one of the configuration based on the hostname
sudo nixos-rebuild switch --flake .#nixos-test sudo nixos-rebuild switch --flake .#ai-hyprland
# deploy via `just`(a command runner with similar syntax to make) & Justfile
# Deploy the hyprland nixosConfiguration by hostname match
just hypr
# deploy my PC's configuration # or we can deploy with details
sudo nixos-rebuild switch --flake .#msi-rtx4090 just hypr debug
# or just deploy with hostname
sudo nixos-rebuild switch
# we can also deploy using make, which is defined in Makefile
make deploy
``` ```
For MacOS, use the following commands: For macOS:
```bash ```bash
# deploy the darwin configuration(harmonicia) # If you are deploying for the first time,
make darwin # 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 the darwinConfiguration by hostname match
just local
# deploy with details # deploy with details
make darwin-debug just local debug
``` ```
## Install Apps from Flatpak > [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...)
We can install apps from flathub, which has a lot of apps that are not supported well in nixpkgs. ## References
```bash Other dotfiles that inspired me:
# Add the Flathub repository
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# install apps from flathub - Nix Flakes
flatpak install netease-cloud-music-gtk - [NixOS-CN/NixOS-CN-telegram](https://github.com/NixOS-CN/NixOS-CN-telegram)
- [notusknot/dotfiles-nix](https://github.com/notusknot/dotfiles-nix)
- [xddxdd/nixos-config](https://github.com/xddxdd/nixos-config)
- [bobbbay/dotfiles](https://github.com/bobbbay/dotfiles)
- [gytis-ivaskevicius/nixfiles](https://github.com/gytis-ivaskevicius/nixfiles)
- [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.
- [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.
- [Zeioth/zeioth-hyprland-config](https://github.com/Zeioth/zeioth-hyprland-config)
- [linuxmobile/kaku](https://github.com/linuxmobile/kaku)
- Neovim/AstroNvim
- [maxbrunet/dotfiles](https://github.com/maxbrunet/dotfiles): astronvim with nix flakes.
- Misc
- [1amSimp1e/dots](https://github.com/1amSimp1e/dots)
# install 3d printer slicer - cura [Hyprland]: https://github.com/hyprwm/Hyprland
flatpak install flathub com.ultimaker.cura [Niri]: https://github.com/YaLTeR/niri
[Kitty]: https://github.com/kovidgoyal/kitty
# or you can search apps from flathub [Nushell]: https://github.com/nushell/nushell
flatpak search <keyword> [Starship]: https://github.com/starship/starship
# search on website is also supported: https://flathub.org/ [Waybar]: https://github.com/Alexays/Waybar
``` [polybar]: https://github.com/polybar/polybar
[rofi]: https://github.com/davatorium/rofi
## Other Interesting Dotfiles [anyrun]: https://github.com/Kirottu/anyrun
[Dunst]: https://github.com/dunst-project/dunst
Other configurations that inspired me: [Fcitx5]: https://github.com/fcitx/fcitx5
[Btop]: https://github.com/aristocratos/btop
- [notwidow/hyprland](https://github.com/notwidow/hyprland): hyprland configuration [mpv]: https://github.com/mpv-player/mpv
- [denisse-dev/dotfiles](https://github.com/denisse-dev/dotfiles) [Zellij]: https://github.com/zellij-org/zellij
- [notusknot/dotfiles-nix](https://github.com/notusknot/dotfiles-nix) [Neovim]: https://github.com/neovim/neovim
- [xddxdd/nixos-config](https://github.com/xddxdd/nixos-config) [AstroNvim]: https://github.com/AstroNvim/AstroNvim
- [bobbbay/dotfiles](https://github.com/bobbbay/dotfiles) [Hyprshot]: https://github.com/Gustash/Hyprshot
- [gytis-ivaskevicius/nixfiles](https://github.com/gytis-ivaskevicius/nixfiles) [imv]: https://sr.ht/~exec64/imv/
- [fufexan/dotfiles](https://github.com/fufexan/dotfiles) [OBS]: https://obsproject.com
- [davidtwco/veritas](https://github.com/davidtwco/veritas) [Mako]: https://github.com/emersion/mako
- [NixOS-CN/NixOS-CN-telegram](https://github.com/NixOS-CN/NixOS-CN-telegram) [Nerd fonts]: https://github.com/ryanoasis/nerd-fonts
- [Tips&Tricks for NixOS Desktop](https://discourse.nixos.org/t/tips-tricks-for-nixos-desktop/28488/2) [catppuccin]: https://github.com/catppuccin/catppuccin
[NetworkManager]: https://wiki.gnome.org/Projects/NetworkManager
[wl-clipboard]: https://github.com/bugaevc/wl-clipboard
[GDM]: https://wiki.archlinux.org/title/GDM
[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
+26
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: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

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: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

+2
View File
@@ -0,0 +1,2 @@
*.key
*.csr
+7
View File
@@ -0,0 +1,7 @@
# 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.
All the private keys are ignored by git, and will be stored in my private secrets repo
[../secrets](../secrets/)
+10
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
View File
@@ -0,0 +1 @@
C050420A8E5A3C1E
+22
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
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
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
Generated
+817 -363
View File
File diff suppressed because it is too large Load Diff
+139 -168
View File
@@ -1,212 +1,183 @@
{ {
description = "NixOS configuration of Ryan Yin"; description = "Ryan Yin's nix configuration for both NixOS & macOS";
##################################################################################################################
#
# Want to know Nix in details? Looking for a beginner-friendly tutorial?
# Check out https://github.com/ryan4yin/nixos-and-flakes-book !
#
##################################################################################################################
outputs = inputs: import ./outputs inputs;
# the nixConfig here only affects the flake itself, not the system configuration! # the nixConfig here only affects the flake itself, not the system configuration!
# for more information, see:
# https://nixos-and-flakes.thiscute.world/nix-store/add-binary-cache-servers
nixConfig = { nixConfig = {
experimental-features = [ "nix-command" "flakes" ]; # substituers will be appended to the default substituters when fetching packages
substituters = [
# replace official cache with a mirror located in China
"https://mirrors.bfsu.edu.cn/nix-channels/store"
"https://mirrors.ustc.edu.cn/nix-channels/store"
"https://cache.nixos.org"
];
# nix community's cache server
extra-substituters = [ extra-substituters = [
"https://nix-community.cachix.org" "https://anyrun.cachix.org"
"https://nixpkgs-wayland.cachix.org" # "https://nix-gaming.cachix.org"
"https://xddxdd.cachix.org" # "https://nixpkgs-wayland.cachix.org"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" # "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" # "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
"xddxdd.cachix.org-1:ay1HJyNDYmlSwj5NXQG065C8LfoqqKaTNCyzeixGjf8="
]; ];
}; };
# This is the standard format for flake.nix. `inputs` are the dependencies of the flake, # This is the standard format for flake.nix. `inputs` are the dependencies of the flake,
# and `outputs` function will return all the build results of the flake.
# Each item in `inputs` will be passed as a parameter to the `outputs` function after being pulled and built. # Each item in `inputs` will be passed as a parameter to the `outputs` function after being pulled and built.
inputs = { inputs = {
# There are many ways to reference flake inputs. The most widely used is github:owner/name/reference, # 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. # which represents the GitHub repository URL + branch/commit-id/tag.
# Official NixOS package source, using nixos-unstable branch here # Official NixOS package source, using nixos's unstable branch by default
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.05"; # nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable-small";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-ollama.url = "github:nixos/nixpkgs/nixos-unstable";
# for macos # for macos
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-23.05-darwin"; # nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin";
darwin = { nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nix-darwin = {
url = "github:lnl7/nix-darwin"; url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs-darwin"; inputs.nixpkgs.follows = "nixpkgs-darwin";
}; };
# nix users repository
# used to install some packages not in nixpkgs
# e.g. wechat-uos/qqmusic/dingtalk
nur.url = "github:nix-community/NUR";
# home-manager, used for managing user configuration # home-manager, used for managing user configuration
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.05"; url = "github:nix-community/home-manager/master";
# url = "github:nix-community/home-manager/release-25.05";
# The `follows` keyword in inputs is used for inheritance. # The `follows` keyword in inputs is used for inheritance.
# Here, `inputs.nixpkgs` of home-manager is kept consistent with the `inputs.nixpkgs` of the current flake, # Here, `inputs.nixpkgs` of home-manager is kept consistent with the `inputs.nixpkgs` of the current flake,
# to avoid problems caused by different versions of nixpkgs dependencies. # to avoid problems caused by different versions of nixpkgs dependencies.
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# modern window compositor # https://github.com/catppuccin/nix
hyprland.url = "github:hyprwm/Hyprland/v0.25.0"; catppuccin = {
url = "github:catppuccin/nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs";
};
preservation = {
url = "github:nix-community/preservation";
};
# community wayland nixpkgs # community wayland nixpkgs
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland"; # nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
# anyrun - a wayland launcher
anyrun = {
url = "github:Kirottu/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
# generate iso/qcow2/docker/... image from nixos configuration # generate iso/qcow2/docker/... image from nixos configuration
nixos-generators = { nixos-generators = {
url = "github:nix-community/nixos-generators"; url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# secrets management
# use devenv to manage my development environment agenix = {
devenv.url = "github:cachix/devenv/v0.6.2"; # lock with git commit at May 18, 2025
url = "github:ryantm/agenix/4835b1dc898959d8547a871ef484930675cb47f1";
# secrets management, lock with git commit at 2023/5/15 # replaced with a type-safe reimplementation to get a better error message and less bugs.
agenix.url = "github:ryantm/agenix/db5637d10f797bb251b94ef9040b237f4702cde3"; # url = "github:ryan4yin/ragenix";
inputs.nixpkgs.follows = "nixpkgs";
# nix language server, used by vscode & neovim
nil.url = "github:oxalica/nil/2023-05-09";
};
# `outputs` are all the build result 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,
darwin,
home-manager,
...
}: {
nixosConfigurations = {
# By default, NixOS will try to refer the nixosConfiguration with its hostname.
# so the system named `msi-rtx4090` will use this configuration.
# However, the configuration name can also be specified using `sudo nixos-rebuild switch --flake /path/to/flakes/directory#<name>`.
# The `nixpkgs.lib.nixosSystem` function is used to build this configuration, the following attribute set is its parameter.
# Run `sudo nixos-rebuild switch --flake .#msi-rtx4090` in the flake's directory to deploy this configuration on any NixOS system
msi-rtx4090 = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
# The Nix module system can modularize configurations, improving the maintainability of configurations.
#
# Each parameter in the `modules` is a Nix Module, and there is a partial introduction to it in the nixpkgs manual:
# <https://nixos.org/manual/nixpkgs/unstable/#module-system-introduction>
# It is said to be partial because the documentation is not complete, only some simple introductions
# (such is the current state of Nix documentation...)
# A Nix Module can be an attribute set, or a function that returns an attribute set.
# If a Module is a function, according to the Nix Wiki description, this function can have up to four parameters:
#
# config: The configuration of the entire system
# options: All option declarations refined with all definition and declaration references.
# pkgs: The attribute set extracted from the Nix package collection and enhanced with the nixpkgs.config option.
# modulesPath: The location of the module directory of Nix.
#
# Only these four parameters can be passed by default.
# If you need to pass other parameters, you must use `specialArgs` by uncomment the following line
specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable {
system = system; # refer the `system` parameter form outer scope recursively
# To use chrome, we need to allow the installation of non-free software
config.allowUnfree = true;
};
} // inputs;
modules = [
./hosts/msi-rtx4090
# make home-manager as a module of nixos
# so that home-manager configuration will be deployed automatically when executing `nixos-rebuild switch`
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
# pass all inputs into home manager's all sub modules
home-manager.extraSpecialArgs = specialArgs;
home-manager.users.ryan = import ./home/linux/x11.nix;
}
];
};
nixos-test = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
pkgs-stable = import inputs.nixpkgs-stable {
system = system;
config.allowUnfree = true;
};
} // inputs;
modules = [
./hosts/nixos-test
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = specialArgs;
home-manager.users.ryan = import ./home/linux/wayland.nix;
}
];
};
}; };
# configurations for MacOS nix-gaming = {
darwinConfigurations."harmonica" = darwin.lib.darwinSystem { url = "github:fufexan/nix-gaming";
system = "x86_64-darwin"; inputs.nixpkgs.follows = "nixpkgs";
specialArgs = inputs;
modules = [
./hosts/harmonica
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = inputs;
home-manager.users.admin = import ./home/darwin;
}
];
}; };
# generate qcow2 & iso image from nixos configuration disko = {
# https://github.com/nix-community/nixos-generators url = "github:nix-community/disko/v1.11.0";
# packages.x86_64-linux = { inputs.nixpkgs.follows = "nixpkgs";
# qcow2 = nixos-generators.nixosGenerate { };
# system = "x86_64-linux";
# modules = [
# # you can include your own nixos configuration here, i.e.
# # ./configuration.nix
# ];
# format = "qcow";
# # you can also define your own custom formats
# # customFormats = { "myFormat" = <myFormatModule>; ... };
# # format = "myFormat";
# };
# iso = nixos-generators.nixosGenerate { # add git hooks to format nix code before commit
# system = "x86_64-linux"; pre-commit-hooks = {
# modules = [ url = "github:cachix/git-hooks.nix";
# # you can include your own nixos configuration here, i.e. inputs.nixpkgs.follows = "nixpkgs";
# # ./configuration.nix };
# ];
# format = "iso"; 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";
};
blender-bin = {
url = "github:edolstra/nix-warez?dir=blender";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-apple-silicon = {
# 2025-07-04
url = "github:nix-community/nixos-apple-silicon/release-2025-08-10";
inputs.nixpkgs.follows = "nixpkgs";
};
niri.url = "github:sodiboo/niri-flake";
######################## Some non-flake repositories #########################################
polybar-themes = {
url = "github:adi1090x/polybar-themes";
flake = false;
};
######################## My own repositories #########################################
# my private secrets, it's a private repository, you need to replace it with your own.
# use ssh protocol to authenticate via ssh-agent/ssh-key, and shallow clone to save time
mysecrets = {
url = "git+ssh://git@github.com/ryan4yin/nix-secrets.git?shallow=1";
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";
flake = false;
};
nur-ryan4yin = {
url = "github:ryan4yin/nur-packages";
inputs.nixpkgs.follows = "nixpkgs";
};
# for waydroid
# nur-ataraxiasjel.url = "github:AtaraxiaSjel/nur";
}; };
} }
-35
View File
@@ -1,35 +0,0 @@
{ lib, stdenvNoCC, fetchgit }:
stdenvNoCC.mkDerivation rec {
pname = "archcraft-font";
version = "2023-05-07";
src = fetchgit {
url = "https://github.com/archcraft-os/archcraft-packages.git";
rev = "88030ee6d2df80db958541b53bd3673e081720cf"; # git commit id
sparseCheckout = [ "archcraft-fonts/files/icon-fonts/archcraft.ttf" ]; # only fetch the feather.ttf file
# the sha256 is used to verify the integrity of the downloaded source, and alse cache the build result.
# so if you copy other package src's sha256, you will get a cached build result of that package, and all configs in this file will be ignored.
# specify sha256 to empty and build it, then an error will indicate the correct sha256
sha256 = "sha256-DrGN8lN4Yr1RTyCUZhJjzKgCuC0vTnSWjOKovNg3T/U=";
};
installPhase = ''
runHook preInstall
install -Dm644 archcraft-fonts/files/icon-fonts/archcraft.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/archcraft-os/archcraft-packages";
description = "Archcraft icon font";
version = version;
longDescription = ''Archcraft icon font'';
license = licenses.mit;
maintainers = [ maintainers.ryan4yin ];
platforms = platforms.all;
};
}
-39
View File
@@ -1,39 +0,0 @@
{ lib, stdenvNoCC, fetchgit }:
stdenvNoCC.mkDerivation rec {
pname = "icomoon-feather-font";
version = "2023-05-06";
# 参考 https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ttf-icomoon-feather
src = fetchgit {
url = "https://github.com/adi1090x/polybar-themes.git";
rev = "47b66337a92a1afd2240ed7094ffcb039cc686cf"; # git commit id
sparseCheckout = [ "fonts/feather.ttf" ]; # only fetch the feather.ttf file
# the sha256 is used to verify the integrity of the downloaded source, and alse cache the build result.
# so if you copy other package src's sha256, you will get a cached build result of that package, and all configs in this file will be ignored.
# specify sha256 to empty and build it, then an error will indicate the correct sha256
sha256 = "sha256-R+UpUFkXDrxKcX7ljLara+1B1rOMdKGZiLQq1/ojgP4=";
};
installPhase = ''
runHook preInstall
install -Dm644 fonts/feather.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/feathericons/feather";
description = "Icomoon feather font";
version = version;
longDescription = ''
Feather is a collection of simply beautiful open source icons.
Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency, and flexibility.
'';
license = licenses.mit;
maintainers = [ maintainers.ryan4yin ];
platforms = platforms.all;
};
}
+83
View File
@@ -0,0 +1,83 @@
# 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 Status
1. **System Level**:
- [ ] AppArmor
- [ ] Kernel & System Hardening
1. **Per-App Level**:
- Nixpak (Bubblewrap, running at user-level)
- Firejail (a SUID program, meaning it's running as root)
## 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.
- nixpak configs:
- https://github.com/pokon548/OysterOS/tree/b97604d89953373d6316286b96f6a964af2c398d/desktop/application
- https://github.com/segment-tree/my-nixos/tree/ceb6041f73bd9edcb78a8818b27a28f7c629193b/hm/me/apps/nixpak
- https://github.com/Keksgesicht/nixos-config/tree/91cc77d8d6b598da7c4dbed143e0009c2dea6940/packages/nixpak
- https://github.com/bluskript/nix-config/blob/7ecb6a7254c1ac4969072f4c4febdc19f8b83b30/pkgs/nixpak/default.nix
- firejail configs:
- https://github.com/stelcodes/nixos-config/blob/f8967c82a5e5f3d128eb1aaf7498b5f918f719ec/packages/overlay.nix#L261
- apparmor configs:
- 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`:
+59
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
];
}
+9
View File
@@ -0,0 +1,9 @@
{
nixpkgs.overlays = [
(_: super: {
bwraps = {
wechat = super.callPackage ./wechat.nix { };
};
})
];
}
+99
View File
@@ -0,0 +1,99 @@
# - 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.0.1.11";
src = fetchurl {
url = "https://web.archive.org/web/20250512112413if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_arm64.AppImage";
hash = "sha256-Rg+FWNgOPC02ILUskQqQmlz1qNb9AMdvLcRWv7NQhGk=";
};
};
x86_64-linux = {
version = "4.0.1.11";
src = fetchurl {
url = "https://web.archive.org/web/20250512110825if_/https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.AppImage";
hash = "sha256-gBWcNQ1o1AZfNsmu1Vi1Kilqv3YbR+wqOod4XYAeVKo=";
};
};
};
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;
}
+35
View File
@@ -0,0 +1,35 @@
{
pkgs,
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).config.script;
in
{
# Add nixpaked Apps into nixpkgs, and reference them in home-manager or other nixos modules
nixpkgs.overlays = [
(_: super: {
nixpaks = {
qq = wrapper super ./qq.nix;
qq-desktop-item = super.callPackage ./qq-desktop-item.nix { };
wechat = wrapper super ./wechat.nix;
wechat-desktop-item = super.callPackage ./wechat-desktop-item.nix { };
firefox = wrapper super ./firefox.nix;
firefox-desktop-item = super.callPackage ./firefox-desktop-item.nix { };
};
})
];
}
@@ -0,0 +1,11 @@
{ makeDesktopItem }:
makeDesktopItem {
name = "firefox";
desktopName = "firefox";
exec = "firefox %U";
terminal = false;
icon = "firefox";
type = "Application";
categories = [ "Network" ];
comment = "firefox boxed";
}
+88
View File
@@ -0,0 +1,88 @@
# 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,
pkgs,
mkNixPak,
...
}:
mkNixPak {
config =
{
config,
sloth,
...
}:
{
app = {
package = pkgs.firefox-wayland;
binPath = "bin/firefox";
};
flatpak.appId = "org.mozilla.firefox";
imports = [
./modules/gui-base.nix
./modules/network.nix
];
# list all dbus services:
# ls -al /run/current-system/sw/share/dbus-1/services/
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
dbus.policies = {
"org.mozilla.firefox.*" = "own"; # firefox
"org.mozilla.firefox_beta.*" = "own"; # firefox beta
"org.mpris.MediaPlayer2.firefox.*" = "own";
"org.freedesktop.NetworkManager" = "talk";
"org.gnome.Shell.Screencast" = "talk";
# System tray icon
"org.freedesktop.Notifications" = "talk";
"org.kde.StatusNotifierWatcher" = "talk";
# File Manager
"org.freedesktop.FileManager1" = "talk";
# Uses legacy StatusNotifier implementation
"org.kde.*" = "own";
};
bubblewrap = {
# To trace all the home files QQ accesses, you can use the following nushell command:
# just trace-access firefox
# See the Justfile in the root of this repository for more information.
bind.rw = [
# given the read write permission to the following directories.
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
(sloth.mkdir (sloth.concat' sloth.homeDir "/.mozilla"))
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
];
bind.ro = [
"/sys/bus/pci"
[
"${config.app.package}/lib/firefox"
"/app/etc/firefox"
]
# ================ for browserpass extension ===============================
"/etc/gnupg"
(sloth.concat' sloth.homeDir "/.gnupg") # gpg's config
(sloth.concat' sloth.homeDir "/.local/share/password-store") # my secrets
(sloth.concat' sloth.runtimeDir "/gnupg") # for access gpg-agent socket
# Unsure
(sloth.concat' sloth.xdgConfigHome "/dconf")
];
sockets = {
x11 = false;
wayland = true;
pipewire = true;
};
};
};
}
+110
View File
@@ -0,0 +1,110 @@
# 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";
"org.freedesktop.DBus" = "talk";
"org.gtk.vfs.*" = "talk";
"org.gtk.vfs" = "talk";
"ca.desrt.dconf" = "talk";
"org.a11y.Bus" = "talk";
# for default portal & gtk/hyprland's portal
"org.freedesktop.portal.*" = "talk";
"org.freedesktop.impl.portal.desktop.*" = "talk";
};
# https://github.com/nixpak/nixpak/blob/master/modules/gpu.nix
# 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/machine-id"
"/etc/localtime"
# 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"
]
);
};
};
};
}
+8
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;
};
}
+17
View File
@@ -0,0 +1,17 @@
{
makeDesktopItem,
qq,
}:
makeDesktopItem {
name = "qq";
desktopName = "QQ";
exec = "${qq}/bin/qq %U";
terminal = false;
# To find the icon name(nushell):
# let p = NIXPKGS_ALLOW_UNFREE=1 nix eval --impure nixpkgs#qq.outPath | str trim --char '"'
# tree $"($p)/share/icons"
icon = "${qq}/share/icons/hicolor/512x512/apps/qq.png";
type = "Application";
categories = [ "Network" ];
comment = "QQ boxed";
}
+69
View File
@@ -0,0 +1,69 @@
# 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,
pkgs,
mkNixPak,
...
}:
mkNixPak {
config =
{ sloth, ... }:
{
app = {
package = pkgs.qq.override {
# fix fcitx5 input method
commandLineArgs = lib.concatStringsSep " " [ "--enable-wayland-ime" ];
};
binPath = "bin/qq";
};
flatpak.appId = "com.tencent.qq";
imports = [
./modules/gui-base.nix
./modules/network.nix
];
# list all dbus services:
# ls -al /run/current-system/sw/share/dbus-1/services/
# ls -al /etc/profiles/per-user/ryan/share/dbus-1/services/
dbus.policies = {
"org.gnome.Shell.Screencast" = "talk";
# System tray icon
"org.freedesktop.Notifications" = "talk";
"org.kde.StatusNotifierWatcher" = "talk";
# File Manager
"org.freedesktop.FileManager1" = "talk";
# Uses legacy StatusNotifier implementation
"org.kde.*" = "own";
};
bubblewrap = {
# To trace all the home files QQ accesses, you can use the following nushell command:
# just trace-access qq
# See the Justfile in the root of this repository for more information.
bind.rw = [
# given the read write permission to the following directories.
# NOTE: sloth.mkdir is used to create the directory if it does not exist!
(sloth.mkdir (
sloth.concat [
sloth.xdgConfigHome
"/QQ"
]
))
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgVideosDir
];
sockets = {
x11 = false;
wayland = true;
pipewire = true;
};
};
};
}
+10
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;
}
+5
View File
@@ -0,0 +1,5 @@
# 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.
+5
View File
@@ -0,0 +1,5 @@
# 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
+9
View File
@@ -0,0 +1,9 @@
{
# replacement of htop/nmon
programs.btop = {
enable = true;
settings = {
theme_background = false; # make btop transparent
};
};
}
+122
View File
@@ -0,0 +1,122 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
# Misc
cowsay
gnupg
gnumake
# Modern cli tools, replacement of grep/sed/...
# Interactively filter its input using fuzzy searching, not limit to filenames.
fzf
# search for files by name, faster than find
fd
# search for files by its content, replacement of grep
(ripgrep.override { withPCRE2 = true; })
# A fast and polyglot tool for code searching, linting, rewriting at large scale
# supported languages: only some mainstream languages currently(do not support nix/nginx/yaml/toml/...)
ast-grep
sad # CLI search and replace, just like sed, but with diff preview.
yq-go # yaml processor https://github.com/mikefarah/yq
just # a command runner like make, but simpler
hyperfine # command-line benchmarking tool
gping # ping, but with a graph(TUI)
doggo # DNS client for humans
duf # Disk Usage/Free Utility - a better 'df' alternative
du-dust # A more intuitive version of `du` in rust
gdu # disk usage analyzer(replacement of `du`)
# nix related
#
# 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
# productivity
caddy # A webserver with automatic HTTPS via Let's Encrypt(replacement of nginx)
croc # File transfer between computers securely and easily
ncdu # analyzer your disk usage Interactively, via TUI(replacement of `du`)
];
# 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;
};
}
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+3
View File
@@ -0,0 +1,3 @@
# Editors
See [desktop/editors/](../../desktop/editors/) for more details.
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+6
View File
@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
programs.helix = {
enable = true;
};
}
+11
View File
@@ -0,0 +1,11 @@
{ pkgs, ... }:
{
programs = {
neovim = {
enable = true;
viAlias = true;
vimAlias = true;
};
};
}
+126
View File
@@ -0,0 +1,126 @@
{
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;
userName = myvars.userfullname;
userEmail = myvars.useremail;
includes = [
{
# use different email & name for work
path = "~/work/.gitconfig";
condition = "gitdir:~/work/";
}
];
extraConfig = {
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@gitlab.com/" = {
# insteadOf = "https://gitlab.com/";
# };
# "ssh://git@bitbucket.com/" = {
# insteadOf = "https://bitbucket.com/";
# };
};
};
# signing = {
# key = "xxx";
# signByDefault = true;
# };
# A syntax-highlighting pager for git, diff, grep, and blame output
delta = {
enable = true;
options = {
diff-so-fancy = true;
line-numbers = true;
true-color = "always";
# features => named groups of settings, used to keep related settings organized
# features = "";
};
};
aliases = {
# 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";
};
};
# Git terminal UI (written in go).
programs.lazygit.enable = true;
# Yet another Git TUI (written in rust).
programs.gitui.enable = true;
}
+10
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
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
# '';
}
+175
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)
+34
View File
@@ -0,0 +1,34 @@
{ config, ... }:
let
shellAliases = {
k = "kubectl";
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()))'";
};
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="$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;
# package = pkgs-unstable.nushell;
configFile.source = ./config.nu;
inherit shellAliases;
};
}
+25
View File
@@ -0,0 +1,25 @@
{
programs.starship = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
enableNushellIntegration = true;
settings = {
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
aws = {
symbol = "🅰 ";
};
gcloud = {
# do not show the account/project's info
# to avoid the leak of sensitive information when sharing the terminal
format = "on [$symbol$active(\($region\))]($style) ";
symbol = "🅶 ";
};
};
};
}
+16
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
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 = {
manager = {
show_hidden = true;
sort_dir_first = true;
};
};
};
}
+13
View File
@@ -0,0 +1,13 @@
let
shellAliases = {
"zj" = "zellij";
};
in
{
programs.zellij = {
enable = true;
};
# only works in bash/zsh, not nushell
home.shellAliases = shellAliases;
programs.nushell.shellAliases = shellAliases;
}
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+19
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
]);
}
@@ -9,8 +9,8 @@
ffmpeg-full ffmpeg-full
# images # images
viu # terminal image viewer viu # Terminal image viewer with native support for iTerm and Kitty
imagemagick imagemagick
graphviz graphviz
]; ];
} }
+84
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.05/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
```
@@ -0,0 +1,73 @@
{
pkgs,
pkgs-unstable,
...
}:
###########################################################
#
# 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;
# package = pkgs-unstable.alacritty;
# 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 = if pkgs.stdenv.isDarwin then 14 else 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";
};
};
};
}
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+32
View File
@@ -0,0 +1,32 @@
{ 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=14";
dpi-aware = "no"; # scale via window manager instead
# Spawn a nushell in login mode via `bash`
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
};
mouse = {
hide-when-typing = "yes";
};
};
};
}
+40
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.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'";
};
};
}
+50
View File
@@ -0,0 +1,50 @@
{
lib,
pkgs,
...
}:
###########################################################
#
# Kitty 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.
#
###########################################################
{
programs.kitty = {
enable = true;
font = {
name = "Maple Mono NF CN";
# use different font size on macOS
size = if pkgs.stdenv.isDarwin then 14 else 13;
};
# 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;
tab_bar_edge = "top"; # tab bar on top
# 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`
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
};
# macOS specific settings
darwinLaunchOptions = [ "--start-as=maximized" ];
};
}
+3 -24
View File
@@ -1,27 +1,9 @@
{ config, pkgs, ... }: { myvars, ... }:
{ {
imports = [
../common
./i3
./fcitx5
./desktop
./common/alacritty
./common/development.nix
./common/shell.nix
./common/ssh.nix
./common/system-tools.nix
./common/xdg.nix
];
# Home Manager needs a bit of information about you and the # Home Manager needs a bit of information about you and the
# paths it should manage. # paths it should manage.
home = { home = {
username = "ryan"; inherit (myvars) username;
homeDirectory = "/home/ryan";
# This value determines the Home Manager release that your # This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage # configuration is compatible with. This helps avoid breakage
@@ -31,9 +13,6 @@
# You can update Home Manager without changing this value. See # You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version # the Home Manager release notes for a list of state version
# changes in each release. # changes in each release.
stateVersion = "22.11"; stateVersion = "24.11";
}; };
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
} }
+46
View File
@@ -0,0 +1,46 @@
{
lib,
pkgs,
...
}:
{
# https://developer.hashicorp.com/terraform/cli/config/config-file
home.file.".terraformrc".source = ./terraformrc;
home.packages = with pkgs; [
# infrastructure as code
# pulumi
# pulumictl
# tf2pulumi
# crd2pulumi
# pulumiPackages.pulumi-random
# pulumiPackages.pulumi-command
# pulumiPackages.pulumi-aws-native
# pulumiPackages.pulumi-language-go
# pulumiPackages.pulumi-language-python
# pulumiPackages.pulumi-language-nodejs
# aws
awscli2
ssm-session-manager-plugin # Amazon SSM Session Manager Plugin
aws-iam-authenticator
eksctl
# aliyun
aliyun-cli
# digitalocean
doctl
# google cloud
(google-cloud-sdk.withExtraComponents (
with google-cloud-sdk.components;
[
gke-gcloud-auth-plugin
]
))
# cloud tools that nix do not have cache for.
terraform
terraformer # generate terraform configs from existing cloud resources
packer # machine image builder
];
}
+2
View File
@@ -0,0 +1,2 @@
plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"
disable_checkpoint = true
+41
View File
@@ -0,0 +1,41 @@
{
pkgs,
pkgs-unstable,
nur-ryan4yin,
...
}:
{
home.packages = with pkgs; [
podman-compose
dive # explore docker layers
lazydocker # Docker terminal UI.
skopeo # copy/sync images between registries and local storage
go-containerregistry # provides `crane` & `gcrane`, it's similar to skopeo
kubectl
kubectx # kubectx & kubens
kubectl-view-secret # kubectl view-secret
kubectl-tree # kubectl tree
kubectl-node-shell # exec into node
kubepug # kubernetes pre upgrade checker
kubectl-cnpg # cloudnative-pg's cli tool
kubebuilder
istioctl
clusterctl # for kubernetes cluster-api
kubevirt # virtctl
kubernetes-helm
fluxcd
argocd
ko # build go project to container image
];
programs.k9s.enable = true;
catppuccin.k9s.transparent = true;
programs.kubecolor = {
enable = true;
enableAlias = true;
};
}
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+63
View File
@@ -0,0 +1,63 @@
{
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; [
colmena # nixos's remote deployment tool
# db related
mycli
pgcli
mongosh
sqlite
# embedded development
minicom
# ai related
python313Packages.huggingface-hub # huggingface-cli
# misc
devbox
bfg-repo-cleaner # remove large files from git history
k6 # load testing tool
protobuf # protocol buffer compiler
# solve coding extercises - learn by doing
exercism
# 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
gitleaks
# need to run `conda-install` before using it
# need to run `conda-shell` before using command `conda`
# conda is not available for MacOS
conda
];
programs = {
direnv = {
enable = true;
nix-direnv.enable = true;
enableZshIntegration = true;
enableBashIntegration = true;
enableNushellIntegration = true;
};
};
}
+75
View File
@@ -0,0 +1,75 @@
# Editors Glossary
### LSP - Language Server Protocol
> https://en.wikipedia.org/wiki/Language_Server_Protocol
> https://langserver.org/
The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol for use between source code
editors or integrated development environments (IDEs) and servers that provide programming
language-specific features like:
- motions such as go-to-definition, find-references, hover.
- **code completion**
- **marking of warnings and errors**
- **refactoring routines**
- syntax highlighting (use Tree-sitter instead)
- code formatting (use a dedicated formatter instead)
The goal of the protocol is to allow programming language support to be implemented and distributed
independently of any given editor or IDE.
LSP was originally developed for Microsoft Visual Studio Code and is now an open standard. In the
early 2020s LSP quickly became a "norm" for language intelligence tools providers.
### Tree-sitter
> https://tree-sitter.github.io/tree-sitter/
> https://www.reddit.com/r/neovim/comments/1109wgr/treesitter_vs_lsp_differences_ans_overlap/
Tree-sitter is a parser generator tool and an **incremental parsing** library. It can build a
concrete syntax tree for a source file and efficiently update the syntax tree as the source file is
edited.
It is used by many editors and IDEs to provide:
- **syntax highlighting**
- **indentation**
- **creating foldable code regions**
- **Incremental selection**
- **simple refactoring in a single file**
- such as join/split lines, structural editing, cursor motion, etc.
**Treesitter process each file independently**, and it is not aware of the semantics of your code.
For example, it does not know does a function/variable really exist, or what is the type/return-type
of a variable. This is where LSP comes in.
The LSP server parses the code much more deeply and it **not only parses a single file but your
whole project**. So, the LSP server will know whether a function/variable does exist with the same
type/return-type. If it does not, it will mark it as an error.
**LSP does understand the code semantically, while Treesitter only cares about correct syntax**.
#### LSP vs Tree-sitter
- Tree-sitter: lightweight, fast, but limited knowledge of your code. mainly used for **syntax
highlighting, indentation, and folding/refactoring in a single file**.
- LSP: heavy and slow on large projects, but it has a deep understanding of your code. mainly used
for **code completion, refactoring in the projects, errors/warnings, and other semantic-aware
features**.
### Formatter vs Linter
Linting is distinct from Formatting because:
1. **formatting** only restructures how code appears.
1. `prettier` is a popular formatter.
1. **linting** analyzes how the code runs and detects errors, it may also suggest improvements such
as replace `var` with `let` or `const`.
Formatters and Linters process each file independently, they do not need to know about other files
in the project.
- [ ]
+214
View File
@@ -0,0 +1,214 @@
# Editors
My editors:
1. Neovim
2. Helix
And `Zellij` for a smooth and stable terminal experience.
## Tips
1. Many useful keys are already provided by vim, check vim/neovim's docs before you install a new
plugin / reinvent the wheel.
1. After using Emacs/Neovim more skillfully, I strongly recommend that you read the official
documentation of Neovim/vim:
1. <https://vimhelp.org/>: The official vim documentation.
1. <https://neovim.io/doc/user/>: Neovim's official user documentation.
1. Use Zellij for terminal related operations, and use Neovim/Helix for editing.
1. As for Emacs, Use its GUI version & terminal emulator `vterm` for terminal related operations.
1. Two powerful file search & jump tools:
1. Tree-view plugins are beginner-friendly and intuitive, but they're not very efficient.
1. **Search by the file path**: Useful when you're familiar with the project structure, especially
on a large project.
1. **Search by the content**: Useful when you're familiar with the code.
## Tutorial
Type `:tutor`(`:Tutor` in Neovim) to learn the basics usage of vim/neovim.
## VIM's Cheetsheet
> Here only record my commonly used keys, to see **a more comprehensive cheetsheet**:
> <https://vimhelp.org/quickref.txt.html>
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` |
| Execute a command | `!xxx` |
### File Management
> <https://neovim.io/doc/user/usr_22.html>
> <https://vimhelp.org/editing.txt.html>
| 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` |
| Edit a file | `:e filename`(or `:e <TAB>` to show a file list) |
| Browse the file list | `:Ex` or `:e .` |
| Discard changes and reread the file | `:e!` |
### Motion
> https://vimhelp.org/motion.txt.html
| Action | Command |
| --------------------------------------------------- | -------------------------------------------------- |
| 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` or `Ctr-n`/`Ctrl-p` |
| Move to the matchpairs, default to `()`, `{}`, `[]` | `%` |
| Move to the start/end of the line | `0` / `$` |
| Move a sentence forward/backward | `(` / `)` |
| Move a paragraph forward/backward | `{` / `}` |
| Move a section forward/backward | `[[` / `]]` |
| Jump to various positions | `'` + some other keys(neovim has prompt) |
Text Objects:
- **sentence**: text ending at a '.', '!' or '?' followed by either the end of a line, or by a space
or tab.
- **paragraph**: text ending at a blank line.
- **section**: text starting with a section header and ending at the start of the next section
header (or at the end of the file). - The "`]]`" and "`[[`" commands stop at the '`{`' in the
first column. This is useful to find the start of a function in a C/Go/Java/... program.
### Text Manipulation
Basics:
| Action | |
| --------------------------------------- | -------------------------- |
| Delete the current character | `x` |
| Paste the copied text | `p` |
| Delete the selection | `d` |
| Undo the last word | `CTRL-w`(in insert mode) |
| Undo the last line | `CTRL-u`(in insert mode) |
| Undo the last change | `u` |
| Redo the last change | `Ctrl + r` |
| Inserts the text of the previous insert | `Ctrl + a` |
| Repeat the last command | `.` |
| Toggle text's case | `~` |
| Convert to uppercase | `U` (visual mode) |
| Convert to lowercase | `u` (visual mode) |
| Align the selected content | `:center`/`:left`/`:right` |
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 | |
| ------------------------------------------------------------------------- | -------------- |
| Sort the selected lines | `:sort` |
| Join Selection of Lines With Space | `:join` or `J` |
| Join without spaces | `:join!` |
| 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 all the lines | `:% s/old/new/g` |
| Replace all the lines 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` |
| Remove the trailing spaces | `:% s/\s\+$//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
> <https://neovim.io/doc/user/usr_08.html>
> <https://vimhelp.org/windows.txt.html>
- 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 |
| ----------------------------------- | ----------------------------------- |
| Split the window horizontally | `:sp[lit]` or `:sp filename` |
| Split the window horizontally | `:vs[plit]` or `:vs filename` |
| Switch to the next/previous window | `Ctrl-w + w` or `Ctrl-w + h/j/k/l` |
| Show all buffers | `:ls` |
| show next/previous buffer | `]b`/`[b` or `:bn[ext]` / `bp[rev]` |
| New Tab(New Workspace in DoomEmacs) | `:tabnew` |
| Next/Previews Tab | `gt`/`gy` |
### History
| Action | Command |
| ------------------------ | ------- |
| Show the command history | `q:` |
| Show the search history | `q/` |
@@ -0,0 +1,23 @@
# 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/): modern, 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:
- 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. ...
+4
View File
@@ -0,0 +1,4 @@
{ mylib, ... }:
{
imports = mylib.scanPaths ./.;
}
+64
View File
@@ -0,0 +1,64 @@
# 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.
## Tutorial
Use `:tutor` in helix to start the tutorial.
## Differences between Neovim and Helixer
1. Selecting first, then action.
1. Helix: delete 2 word: `2w` then `x`. You can always see what you're selecting before you apply
the action.
2. Neovim: delete 2 word: `d`. then `2w`. No visual feedback before you apply the action.
1. Helix - Modern builtin features: LSP, tree-sitter, fuzzy finder, multi cursors, surround and
more.
1. They're all available in Neovim too, but you need to find and use the right plugins manually,
which takes time and effort.
1. Helix is built in Rust from scratch. The result is a much smaller codebase and a modern set of
defaults. No VimScript. No Lua.
1. Neovim contains a lot of VimScript, and lua is too dynamic, it's hard to debug.
1. Personally I'm glad to take a look at a Rust codebase, but not a VimScript/Lua codebase.
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 don't have a stable plugin system yet. A PR to add a plugin
system is still envolving: <https://github.com/helix-editor/helix/pull/8675>
1. Neovim has integrated terminal, and it's very powerful. It's quite similar to VSCode's integrated
terminal. I use it a lot.
1. Helix doesn't have a integrated 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 global substitution command, you should run it in another window(via wm or
Zellij).
1. <https://github.com/helix-editor/helix/issues/196>
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).
1. Complexity and Maintenance Costs vs Batteries Included:
<https://github.com/helix-editor/helix/discussions/6356>
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.
+32
View File
@@ -0,0 +1,32 @@
{ pkgs, ... }:
{
programs.helix = {
enable = true;
package = pkgs.helix;
settings = {
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"
];
};
};
};
}
+190
View File
@@ -0,0 +1,190 @@
# Neovim Editor
My Neovim config based on [AstroNvim](https://github.com/AstroNvim/AstroNvim). For more details,
visit the [AstroNvim website](https://astronvim.com/).
This document outlines neovim's configuration structure and various shortcuts/commands for efficient
usage.
## Screenshots
![](/_img/astronvim_2023-07-13_00-39.webp) ![](/_img/hyprland_2023-07-29_2.webp)
## Configuration Structure
| Description | Standard Location | My Location |
| ------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- |
| Neovim's config | `~/.config/nvim` | AstroNvim's github repository, referenced as a flake input in this flake. |
| AstroNvim's user configuration | `$XDG_CONFIG_HOME/astronvim/lua/user` | [./astronvim_user/](./astronvim_user/) |
| Plugins installation directory (lazy.nvim) | `~/.local/share/nvim/` | The same as standard location, generated and managed by lazy.nvim. |
| LSP servers, DAP servers, linters, and formatters | `~/.local/share/nvim/mason/`(by mason.nvim) | [./default.nix](./default.nix), installed by nix. |
## Update/Clean Plugins
Note that lazy.nvim will not automatically update plugins, so you need to update them manually.
```bash
:Lazy update
```
Remove all unused plugins:
```bash
:Lazy clean
```
## Testing
> via `Justfile` located at the root of this repo.
```bash
# testing
just nvim-test
# clear test data
just nvim-clear
```
## Cheetsheet
Here is the cheetsheet related to my Neovim configs. Please read vim's common cheetsheet at
[../README.md](../README.md) before reading the following.
### Incremental Selection
Provided by nvim-treesitter.
| Action | Shortcut |
| ----------------- | -------------- |
| init selection | `<Ctrl-space>` |
| node incremental | `<Ctrl-space>` |
| scope incremental | `<Alt-Space>` |
| node decremental | `Backspace` |
### Search and Jump
Provided by [flash.nvim](https://github.com/folke/flash.nvim), it's a intelligent search and jump
plugin.
1. It enhances the default search and jump behavior of neovim.(search with prefix `/`)
| Action | Shortcut |
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
| Search | `/`(normal search), `s`(disable all code highlight, only highlight matches) |
| Treesitter Search | `yR`,`dR`, `cR`, `vR`, `ctrl+v+R`(around your matches, all the surrounding Treesitter nodes will be labeled) |
| Remote Flash | `yr`, `dr`, `cr`, (around your matches, all the surrounding Treesitter nodes will be labeled) |
### Commands & Shortcuts
| Action | Shortcut |
| ----------------------------- | -------------- |
| Open file explorer | `<Space> + e` |
| Focus Neotree to current file | `<Space> + o` |
| Toggle line wrap | `<Space> + uw` |
| Show line diagnostics | `gl` |
| Show function/variable info | `K` |
| References of a symbol | `gr` |
| Next tab | `]b` |
| Previous tab | `[b` |
### Window Navigation
- Switch between windows: `<Ctrl> + h/j/k/l`
- Resize windows: `<Ctrl> + Up/Down/Left/Right` (`<Ctrl-w> + -/+/</>`)
- Note: On macOS, conflicts with system shortcuts
- Disable in System Preferences -> Keyboard -> Shortcuts -> Mission Control
### Splitting and Buffers
| Action | Shortcut |
| ---------------- | ------------- |
| Horizontal Split | `\` |
| Vertical Split | `\|` |
| Close Buffer | `<Space> + c` |
### Editing and Formatting
| Action | Shortcut |
| ----------------------------------------------------- | -------------- |
| Toggle buffer auto formatting | `<Space> + uf` |
| Format Document | `<Space> + lf` |
| Code Actions | `<Space> + la` |
| Rename | `<Space> + lr` |
| Opening LSP symbols | `<Space> + lS` |
| Comment Line(support multiple lines) | `<Space> + /` |
| Open filepath/URL at cursor(neovim's builtin command) | `gx` |
| Find files by name (fzf) | `<Space> + ff` |
| Find files by name (include hidden files) | `<Space> + fF` |
| Grep string in files (ripgrep) | `<Space> + fw` |
| Grep string in files (include hidden files) | `<Space> + fW` |
### Git
| Action | Shortcut |
| -------------------------- | --------------- |
| Git Commits (repository) | `:<Space> + gc` |
| Git Commits (current file) | `:<Space> + gC` |
| Git Branches | `:<Space> + gb` |
| Git Status | `:<Space> + gt` |
### Sessions
| Action | Shortcut |
| ------------------------------ | -------------- |
| Save Session | `<Space> + Ss` |
| Last Session | `<Space> + Sl` |
| Delete Session | `<Space> + Sd` |
| Search Session | `<Space> + Sf` |
| Load Current Directory Session | `<Space> + S.` |
### Debugging
Press `<Space> + D` to view available bindings and options.
### Search and Replace Globally
| Description | Shortcut |
| ------------------------------------------ | -------------- |
| Open spectre.nvim search and replace panel | `<Space> + ss` |
Search and replace via cli(fd + sad + delta):
```bash
fd "\\.nix$" . | sad '<pattern>' '<replacement>' | delta
```
### Surrounding Characters
Provided by mini.surround plugin.
- Prefix `gz`
| Action | Shortcut | Description |
| ------------------------------ | -------- | ----------------------------------------------- |
| Add surrounding characters | `gzaiw'` | Add `'` around the word under cursor |
| Delete surrounding characters | `gzd'` | Delete `'` around the word under cursor |
| Replace surrounding characters | `gzr'"` | Replace `'` by `"` around the word under cursor |
| Highlight surrounding | `gzh'` | Highlight `'` around the word under cursor |
### Text Manipulation
| Action | |
| -------------------------------------- | ------------- |
| Join with LSP intelligence(treesj) | `<Space> + j` |
| Split Line into Multiple Lines(treesj) | `<Space> + s` |
### Miscellaneous
| Action | |
| --------------------------------- | --------------- |
| Show all Yank History | `:<Space> + yh` |
| Show undo history | `:<Space> + uh` |
| Show the path of the current file | `:!echo $%` |
## Additional Resources
For more detailed information and advanced usage, refer to:
1. [AstroNvim walkthrough](https://astronvim.com/Basic%20Usage/walkthrough)
2. [./astronvim_user/mapping.lua](./astronvim_user/mappings.lua)
3. All the plugins' documentations
+81
View File
@@ -0,0 +1,81 @@
{
config,
lib,
pkgs,
pkgs-unstable,
...
}:
###############################################################################
#
# AstroNvim's configuration and all its dependencies(lsp, formatter, etc.)
#
#e#############################################################################
let
shellAliases = {
v = "nvim";
vdiff = "nvim -d";
};
# the path to nvim directory
# to make this symlink work, we need to git clone this repo to your home directory.
configPath = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/neovim/nvim";
in
{
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink configPath;
# Disable catppuccin to avoid conflict with my non-nix config.
catppuccin.nvim.enable = false;
home.shellAliases = shellAliases;
programs.nushell.shellAliases = shellAliases;
programs.neovim = {
enable = true;
package = pkgs-unstable.neovim-unwrapped;
# defaultEditor = true; # set EDITOR at system-wide level
viAlias = true;
vimAlias = true;
# These environment variables are needed to build and run binaries
# with external package managers like mason.nvim.
#
# LD_LIBRARY_PATH is also needed to run the non-FHS binaries downloaded by mason.nvim.
# it will be set by nix-ld, so we do not need to set it here again.
extraWrapperArgs = with pkgs; [
# LIBRARY_PATH is used by gcc before compilation to search directories
# containing static and shared libraries that need to be linked to your program.
"--suffix"
"LIBRARY_PATH"
":"
"${lib.makeLibraryPath [
stdenv.cc.cc
zlib
]}"
# PKG_CONFIG_PATH is used by pkg-config before compilation to search directories
# containing .pc files that describe the libraries that need to be linked to your program.
"--suffix"
"PKG_CONFIG_PATH"
":"
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
stdenv.cc.cc
zlib
]}"
];
# Currently we use lazy.nvim as neovim's package manager, so comment this one.
#
# NOTE: These plugins will not be used by astronvim by default!
# We should 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
nvim-treesitter.withAllGrammars
];
};
}
@@ -0,0 +1,20 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
},
"lspconfig": {
"lua_ls": {
"Lua.format.enable": false
}
}
}
@@ -0,0 +1,7 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferDouble"
call_parentheses = "None"
collapse_simple_statement = "Always"

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