Compare commits

...

28 Commits

Author SHA1 Message Date
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
57 changed files with 733 additions and 1261 deletions
+19 -18
View File
@@ -27,18 +27,19 @@ Nix allows for easy-to-manage, collaborative, reproducible deployments. This mea
## Components ## Components
| | NixOS(Wayland) | NixOS(Xorg) | | | NixOS(Wayland) | NixOS(Xorg) |
| --------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | --------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------ |
| **Window Manager** | [Hyprland][Hyprland] | [i3][i3] | | **Window Manager** | [Hyprland][Hyprland] | [i3][i3] |
| **Terminal Emulator** | [Kitty][Kitty] | [Kitty][Kitty] | | **Terminal Emulator** | [Kitty][Kitty] | [Kitty][Kitty] |
| **Bar** | [Waybar][Waybar] | [i3block][i3block] | | **Bar** | [Waybar][Waybar] | [i3block][i3block] |
| **Application Launcher** | [wofi][wofi] | [rofi][rofi] | | **Application Launcher** | [wofi][wofi] | [rofi][rofi] |
| **Notification Daemon** | [Mako][Mako] | [Dunst][Dunst] | | **Notification Daemon** | [Mako][Mako] | [Dunst][Dunst] |
| **Display Manager** | [GDM][GDM] | [GDM][GDM] | | **Display Manager** | [GDM][GDM] | [GDM][GDM] |
| \***\*Color Scheme\*\*** | [Catppuccin][Catppuccin] | [Catppuccin][Catppuccin] |
| **network management tool** | [NetworkManager][NetworkManager] | [NetworkManager][NetworkManager] | | **network management tool** | [NetworkManager][NetworkManager] | [NetworkManager][NetworkManager] |
| **Input method framework** | [Fcitx5][Fcitx5] | [Fcitx5][Fcitx5] | | **Input method framework** | [Fcitx5][Fcitx5] | [Fcitx5][Fcitx5] |
| **System resource monitor** | [Btop][Btop] | [Btop][Btop] | | **System resource monitor** | [Btop][Btop] | [Btop][Btop] |
| **File Manager** | [thunar][thunar] | [thunar][thunar] | | **File Manager** | [ranger][ranger] + [thunar][thunar] | [ranger][ranger] + [thunar][thunar] |
| **Shell** | [Nushell][Nushell] | [Nushell][Nushell] | | **Shell** | [Nushell][Nushell] + [Starship][Starship] | [Nushell][Nushell] + [Starship][Starship] |
| **Music Player** | [mpd][mpd], [ncmpcpp][ncmpcpp], [mpc][mpc], [Netease-cloud-music-gtk][netease-cloud-music-gtk] | [Netease-cloud-music-gtk][netease-cloud-music-gtk] | | **Music Player** | [mpd][mpd], [ncmpcpp][ncmpcpp], [mpc][mpc], [Netease-cloud-music-gtk][netease-cloud-music-gtk] | [Netease-cloud-music-gtk][netease-cloud-music-gtk] |
| **Media Player** | [mpv][mpv] | [mpv][mpv] | | **Media Player** | [mpv][mpv] | [mpv][mpv] |
| **Text Editor** | [Neovim][Neovim] | [Neovim][Neovim] | | **Text Editor** | [Neovim][Neovim] | [Neovim][Neovim] |
@@ -47,32 +48,26 @@ Nix allows for easy-to-manage, collaborative, reproducible deployments. This mea
| **Screenshot Software** | [grim][grim] | [flameshot](https://github.com/flameshot-org/flameshot) | | **Screenshot Software** | [grim][grim] | [flameshot](https://github.com/flameshot-org/flameshot) |
| **Screen Recording** | [OBS][OBS] | [OBS][OBS] | | **Screen Recording** | [OBS][OBS] | [OBS][OBS] |
Wallpapers: https://github.com/ryan4yin/wallpapers
## Hyprland + AstroNvim ## Hyprland + AstroNvim
![](./_img/hyprland_2023-07-26.webp) ![](./_img/hyprland_2023-07-29_1.webp)
![](./_img/hyprland_2023-07-27.webp) ![](./_img/hyprland_2023-07-29_2.webp)
## I3 + AstroNvim ## I3 + AstroNvim
![](/_img/astronvim_2023-07-13_00-39.webp) ![](./_img/i3_2023-07-29_1.webp)
![](./_img/i3_2023-07-29_2.webp)
## Hosts ## Hosts
```shell See [./hosts](./hosts) for details.
tree hosts
hosts
├── harmonica # my MacBook Pro 2020 13-inch, for work.
└── idols
├── ai # my main computer, with NixOS + I5-13600KF + RTX 4090 GPU, for gaming & daily use.
├── aquamarine # my NixOS virtual machine with R9-5900HX(8C16T), for distributed building & testing.
├── kana # yet another NixOS vm on another physical machine with R5-5625U(6C12T).
└── ruby # another NixOS vm on another physical machine with R7-5825U(8C16T).
```
## 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. > :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)) which is not suitable for your hardware, and my private secrets repository [ryan4yin/nix-secrets](https://github.com/ryan4yin/nix-config/tree/main/secrets) that only I have access to. You may use this repo as a reference to build your own configuration.
After installing NixOS with `nix-command` & `flake` enabled, follow the steps below to deploy this flake. After installing NixOS with `nix-command` & `flake` enabled, follow the steps below to deploy this flake.
@@ -81,12 +76,15 @@ For NixOS, use the following commands:
```bash ```bash
# deploy one of the configuration based on the hostname # deploy one of the configuration based on the hostname
sudo nixos-rebuild switch --flake .#ai_i3 sudo nixos-rebuild switch --flake .#ai_i3
# sudo nixos-rebuild switch --flake .#ai_hyprland
# we can also deploy using `make`, which is defined in Makefile # we can also deploy using `make`, which is defined in Makefile
make i3 make i3 # deploy my pc with i3 window manager
# make hypr # deploy my pc with hyprland compositor
# or we can deploy with details # or we can deploy with details
make i3-debug make i3-debug
# make hypr-debug
``` ```
For MacOS, use the following commands: For MacOS, use the following commands:
@@ -177,6 +175,7 @@ Other dotfiles that inspired me:
[i3]: https://github.com/i3/i3 [i3]: https://github.com/i3/i3
[Kitty]: https://github.com/kovidgoyal/kitty [Kitty]: https://github.com/kovidgoyal/kitty
[Nushell]: https://github.com/nushell/nushell [Nushell]: https://github.com/nushell/nushell
[Starship]: https://github.com/starship/starship
[Waybar]: https://github.com/Alexays/Waybar [Waybar]: https://github.com/Alexays/Waybar
[i3block]: https://github.com/vivien/i3blocks [i3block]: https://github.com/vivien/i3blocks
[rofi]: https://github.com/davatorium/rofi [rofi]: https://github.com/davatorium/rofi
@@ -203,3 +202,5 @@ Other dotfiles that inspired me:
[wl-clipboard]: https://github.com/bugaevc/wl-clipboard [wl-clipboard]: https://github.com/bugaevc/wl-clipboard
[GDM]: https://wiki.archlinux.org/title/GDM [GDM]: https://wiki.archlinux.org/title/GDM
[thunar]: https://gitlab.xfce.org/xfce/thunar [thunar]: https://gitlab.xfce.org/xfce/thunar
[ranger]: https://github.com/ranger/ranger
[Catppuccin]: https://github.com/catppuccin/catppuccin
Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 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

Generated
+199 -29
View File
@@ -24,20 +24,148 @@
"astronvim": { "astronvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1689614566, "lastModified": 1690218353,
"narHash": "sha256-LG9eSOmX902EK3KEAkEwqGa4sBkxkK3qOHaWcykv6OA=", "narHash": "sha256-ELEmU6fyC/QzIhV8LmXGB65uEZrmHabIW79xSQiLu6I=",
"owner": "AstroNvim", "owner": "AstroNvim",
"repo": "AstroNvim", "repo": "AstroNvim",
"rev": "215b5605337f32d3e92ba7608e269fe90c1208f6", "rev": "8fe945f07aebf8dd2006e7cb3f89c200e0e4adef",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "AstroNvim", "owner": "AstroNvim",
"ref": "v3.33.3", "ref": "v3.34.0",
"repo": "AstroNvim", "repo": "AstroNvim",
"type": "github" "type": "github"
} }
}, },
"catppuccin-alacritty": {
"flake": false,
"locked": {
"lastModified": 1664239314,
"narHash": "sha256-w9XVtEe7TqzxxGUCDUR9BFkzLZjG8XrplXJ3lX6f+x0=",
"owner": "catppuccin",
"repo": "alacritty",
"rev": "3c808cbb4f9c87be43ba5241bc57373c793d2f17",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "alacritty",
"type": "github"
}
},
"catppuccin-bat": {
"flake": false,
"locked": {
"lastModified": 1668065083,
"narHash": "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=",
"owner": "catppuccin",
"repo": "bat",
"rev": "ba4d16880d63e656acced2b7d4e034e4a93f74b1",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "bat",
"type": "github"
}
},
"catppuccin-btop": {
"flake": false,
"locked": {
"lastModified": 1686163899,
"narHash": "sha256-J3UezOQMDdxpflGax0rGBF/XMiKqdqZXuX4KMVGTxFk=",
"owner": "catppuccin",
"repo": "btop",
"rev": "89ff712eb62747491a76a7902c475007244ff202",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "btop",
"type": "github"
}
},
"catppuccin-cava": {
"flake": false,
"locked": {
"lastModified": 1665489380,
"narHash": "sha256-hYC6ExtroRy2UoxGNHAzKm9MlTdJSegUWToat4VoN20=",
"owner": "catppuccin",
"repo": "cava",
"rev": "ad3301b50786e22e31cbf4316985827d6f05845e",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "cava",
"type": "github"
}
},
"catppuccin-fcitx5": {
"flake": false,
"locked": {
"lastModified": 1664946380,
"narHash": "sha256-uFaCbyrEjv4oiKUzLVFzw+UY54/h7wh2cntqeyYwGps=",
"owner": "catppuccin",
"repo": "fcitx5",
"rev": "ce244cfdf43a648d984719fdfd1d60aab09f5c97",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "fcitx5",
"type": "github"
}
},
"catppuccin-helix": {
"flake": false,
"locked": {
"lastModified": 1680791535,
"narHash": "sha256-aa8KZ7/1TXcBqaV/TYOZ8rpusOf5QeQ9i2Upnncbziw=",
"owner": "catppuccin",
"repo": "helix",
"rev": "5677c16dc95297a804caea9161072ff174018fdd",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "helix",
"type": "github"
}
},
"catppuccin-hyprland": {
"flake": false,
"locked": {
"lastModified": 1683122293,
"narHash": "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8=",
"owner": "catppuccin",
"repo": "hyprland",
"rev": "99a88fd21fac270bd999d4a26cf0f4a4222c58be",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "hyprland",
"type": "github"
}
},
"catppuccin-starship": {
"flake": false,
"locked": {
"lastModified": 1689246850,
"narHash": "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=",
"owner": "catppuccin",
"repo": "starship",
"rev": "5629d2356f62a9f2f8efad3ff37476c19969bd4f",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "starship",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -243,11 +371,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1690368313, "lastModified": 1690431538,
"narHash": "sha256-1MG/pU2riawknpYaTfaynKJPaIKFnQiYTTCFJAjXM5Q=", "narHash": "sha256-Uml8ivMMOFPB9fNSDcw72imGHRdJpaK12sRm2DTLLe8=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "94212ebe32948471a1aa11baa5c576ce60d54589", "rev": "16c07487ac9bc59f58b121d13160c67befa3342e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -263,11 +391,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1689903701, "lastModified": 1690420922,
"narHash": "sha256-kW1Rke5wLqw8XHVyiWw7qIKZR911GCsbOg5SkgKH1Uc=", "narHash": "sha256-qnVkCp364/NqvGyA9tL6yVO0ZjNDaHcZWSEueNZ6CEE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-eval-jobs", "repo": "nix-eval-jobs",
"rev": "fcaf7773e3a6713b78dacfd442339a96cfab405f", "rev": "f360004d785937aa0a9ed19bbeec864dec37737b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -330,11 +458,11 @@
}, },
"nixpkgs-darwin": { "nixpkgs-darwin": {
"locked": { "locked": {
"lastModified": 1690298576, "lastModified": 1690558459,
"narHash": "sha256-RLgIGS04t4Rd0viqsx2e9dGViKB6nVsGmO11EagCWmM=", "narHash": "sha256-5W7y1l2cLYPkpJGNlAja7XW2X2o9rjf0O1mo9nxS9jQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "88f63d511092e95d28e9a7c98534595c53de1048", "rev": "48e82fe1b1c863ee26a33ce9bd39621d2ada0a33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -361,11 +489,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1690179384, "lastModified": 1690548937,
"narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=", "narHash": "sha256-x3ZOPGLvtC0/+iFAg9Kvqm/8hTAIkGjc634SqtgaXTA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b12803b6d90e2e583429bb79b859ca53c348b39a", "rev": "2a9d660ff0f7ffde9d73be328ee6e6f10ef66b28",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -383,11 +511,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1690384532, "lastModified": 1690608929,
"narHash": "sha256-Nc9d6GPajVdSj02aBDkAAq93fdLUtRXP9EIfwKn3Uq4=", "narHash": "sha256-GUpBZvuDH+Hn3Dp7bg9RKt8mgUp4+y4uSxa/HFjZvaY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-wayland", "repo": "nixpkgs-wayland",
"rev": "729cabdcc73e84963751dd65163048e9ff1a1a75", "rev": "90fb8a2b8fe1a2fe792e87825d3ec5c8b1e50de3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -414,11 +542,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1690271650, "lastModified": 1690558459,
"narHash": "sha256-qwdsW8DBY1qH+9luliIH7VzgwvL+ZGI3LZWC0LTiDMI=", "narHash": "sha256-5W7y1l2cLYPkpJGNlAja7XW2X2o9rjf0O1mo9nxS9jQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6dc93f0daec55ee2f441da385aaf143863e3d671", "rev": "48e82fe1b1c863ee26a33ce9bd39621d2ada0a33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -430,11 +558,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1688951312, "lastModified": 1690420098,
"narHash": "sha256-0oG4uv60m5+oOMqgYYQ3ao3OK3YP3n3t7nWFtuyR/uQ=", "narHash": "sha256-47kn22jGYlCeHQxdmqoZeR2jHhZpJjxYFgCXdClVadA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2a5f6cac357616d2596167d0631b4ca729e9a3ea", "rev": "6d8c4bd21e6f9fb6c67bb599459f35cf9486e18b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -446,11 +574,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1690179384, "lastModified": 1690548937,
"narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=", "narHash": "sha256-x3ZOPGLvtC0/+iFAg9Kvqm/8hTAIkGjc634SqtgaXTA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b12803b6d90e2e583429bb79b859ca53c348b39a", "rev": "2a9d660ff0f7ffde9d73be328ee6e6f10ef66b28",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -460,10 +588,34 @@
"type": "github" "type": "github"
} }
}, },
"nushell-scripts": {
"flake": false,
"locked": {
"lastModified": 1690635434,
"narHash": "sha256-luGIvcKOfhDorPfGfL449+eD+58MGo5jMCsNwIRJWt4=",
"owner": "nushell",
"repo": "nu_scripts",
"rev": "3ee56c6ec31fcc8dbffee85e1c73eb6fe0bbba8d",
"type": "github"
},
"original": {
"owner": "nushell",
"repo": "nu_scripts",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"astronvim": "astronvim", "astronvim": "astronvim",
"catppuccin-alacritty": "catppuccin-alacritty",
"catppuccin-bat": "catppuccin-bat",
"catppuccin-btop": "catppuccin-btop",
"catppuccin-cava": "catppuccin-cava",
"catppuccin-fcitx5": "catppuccin-fcitx5",
"catppuccin-helix": "catppuccin-helix",
"catppuccin-hyprland": "catppuccin-hyprland",
"catppuccin-starship": "catppuccin-starship",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"hyprland": "hyprland", "hyprland": "hyprland",
"mysecrets": "mysecrets", "mysecrets": "mysecrets",
@@ -472,7 +624,9 @@
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixpkgs-darwin": "nixpkgs-darwin", "nixpkgs-darwin": "nixpkgs-darwin",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nixpkgs-wayland": "nixpkgs-wayland" "nixpkgs-wayland": "nixpkgs-wayland",
"nushell-scripts": "nushell-scripts",
"wallpapers": "wallpapers"
} }
}, },
"systems": { "systems": {
@@ -512,6 +666,22 @@
"type": "github" "type": "github"
} }
}, },
"wallpapers": {
"flake": false,
"locked": {
"lastModified": 1690648866,
"narHash": "sha256-e3xht5OhbMy550QPAwivh/FoSrm9KIc5gUWEEOqbzgg=",
"owner": "ryan4yin",
"repo": "wallpapers",
"rev": "1fc7ace1530b629e7de927b7595f9ec5c416880e",
"type": "github"
},
"original": {
"owner": "ryan4yin",
"repo": "wallpapers",
"type": "github"
}
},
"wlroots": { "wlroots": {
"flake": false, "flake": false,
"locked": { "locked": {
+124 -76
View File
@@ -8,82 +8,6 @@
# #
################################################################################################################## ##################################################################################################################
# the nixConfig here only affects the flake itself, not the system configuration!
nixConfig = {
experimental-features = ["nix-command" "flakes"];
substituters = [
# replace official cache with a mirror located in China
"https://mirrors.ustc.edu.cn/nix-channels/store"
"https://cache.nixos.org"
];
# nix community's cache server
extra-substituters = [
"https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
];
extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
];
};
# This is the standard format for flake.nix. `inputs` are the dependencies of the flake,
# Each item in `inputs` will be passed as a parameter to the `outputs` function after being pulled and built.
inputs = {
# There are many ways to reference flake inputs. The most widely used is github:owner/name/reference,
# which represents the GitHub repository URL + branch/commit-id/tag.
# Official NixOS package source, using nixos's stable branch by default
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# for macos
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-23.05-darwin";
nix-darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs-darwin";
};
# home-manager, used for managing user configuration
home-manager = {
url = "github:nix-community/home-manager/release-23.05";
# 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,
# to avoid problems caused by different versions of nixpkgs dependencies.
inputs.nixpkgs.follows = "nixpkgs";
};
# modern window compositor
hyprland.url = "github:hyprwm/Hyprland/v0.27.2";
# community wayland nixpkgs
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
# generate iso/qcow2/docker/... image from nixos configuration
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
# secrets management, lock with git commit at 2023/7/15
agenix.url = "github:ryantm/agenix/0d8c5325fc81daf00532e3e26c6752f7bcde1143";
# AstroNvim is an aesthetic and feature-rich neovim config.
astronvim = {
url = "github:AstroNvim/AstroNvim/v3.33.3";
flake = false;
};
# 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;
};
};
# The `outputs` function will return all the build results of the flake. # The `outputs` function will return all the build results of the flake.
# A flake can have many use cases and different types of outputs, # 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. # parameters in `outputs` are defined in `inputs` and can be referenced by their names.
@@ -231,4 +155,128 @@
nixpkgs.legacyPackages.${system}.alejandra nixpkgs.legacyPackages.${system}.alejandra
); );
}; };
# This is the standard format for flake.nix. `inputs` are the dependencies of the flake,
# Each item in `inputs` will be passed as a parameter to the `outputs` function after being pulled and built.
inputs = {
# There are many ways to reference flake inputs. The most widely used is github:owner/name/reference,
# which represents the GitHub repository URL + branch/commit-id/tag.
# Official NixOS package source, using nixos's stable branch by default
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# for macos
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-23.05-darwin";
nix-darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs-darwin";
};
# home-manager, used for managing user configuration
home-manager = {
url = "github:nix-community/home-manager/release-23.05";
# 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,
# to avoid problems caused by different versions of nixpkgs dependencies.
inputs.nixpkgs.follows = "nixpkgs";
};
# modern window compositor
hyprland.url = "github:hyprwm/Hyprland/v0.27.2";
# community wayland nixpkgs
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
# generate iso/qcow2/docker/... image from nixos configuration
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
# secrets management, lock with git commit at 2023/7/15
agenix.url = "github:ryantm/agenix/0d8c5325fc81daf00532e3e26c6752f7bcde1143";
# AstroNvim is an aesthetic and feature-rich neovim config.
astronvim = {
url = "github:AstroNvim/AstroNvim/v3.34.0";
flake = false;
};
# useful nushell scripts, such as auto_completion
nushell-scripts = {
url = "github:nushell/nu_scripts";
flake = false;
};
# 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 wallpapers
wallpapers = {
url = "github:ryan4yin/wallpapers";
flake = false;
};
# color scheme - catppuccin
catppuccin-btop = {
url = "github:catppuccin/btop";
flake = false;
};
catppuccin-fcitx5 = {
url = "github:catppuccin/fcitx5";
flake = false;
};
catppuccin-bat = {
url = "github:catppuccin/bat";
flake = false;
};
catppuccin-alacritty = {
url = "github:catppuccin/alacritty";
flake = false;
};
catppuccin-helix = {
url = "github:catppuccin/helix";
flake = false;
};
catppuccin-starship = {
url = "github:catppuccin/starship";
flake = false;
};
catppuccin-hyprland = {
url = "github:catppuccin/hyprland";
flake = false;
};
catppuccin-cava = {
url = "github:catppuccin/cava";
flake = false;
};
};
# the nixConfig here only affects the flake itself, not the system configuration!
nixConfig = {
experimental-features = ["nix-command" "flakes"];
substituters = [
# replace official cache with a mirror located in China
"https://mirrors.ustc.edu.cn/nix-channels/store"
"https://cache.nixos.org"
];
# nix community's cache server
extra-substituters = [
"https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
];
extra-trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
];
};
} }
+6
View File
@@ -0,0 +1,6 @@
# 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.
+6
View File
@@ -0,0 +1,6 @@
# Home Manager's Base Submodules
2. `server`: Configuration which is suitable for both servers and desktops.
1. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc.
1. it import `server` as its submodule.
@@ -1,4 +1,4 @@
{pkgs, ...}: {pkgs, catppuccin-alacritty, ...}:
########################################################### ###########################################################
# #
# Alacritty Configuration # Alacritty Configuration
@@ -18,6 +18,7 @@
# #
########################################################### ###########################################################
{ {
xdg.configFile."alacritty/theme_catppuccin.yml".source = "${catppuccin-alacritty}/catppuccin-mocha.yml";
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
}; };
@@ -27,7 +28,7 @@
import: import:
# all alacritty themes can be found at # all alacritty themes can be found at
# https://github.com/alacritty/alacritty-theme # https://github.com/alacritty/alacritty-theme
- ~/.config/alacritty/theme_catppuccino.yml - ~/.config/alacritty/theme_catppuccin.yml
window: window:
# Background opacity # Background opacity
@@ -95,6 +96,4 @@
size: 13 size: 13
'' ''
); );
xdg.configFile."alacritty/theme_catppuccino.yml".source = ./theme_catppuccino.yml;
} }
@@ -1,40 +0,0 @@
# Catppuccino theme scheme for Alacritty
colors:
primary:
background: '#1E1E2E'
foreground: '0xd6d6d6'
cursor:
text: '#CDD6F4'
cursor: '#D9D9D9'
normal:
black: '#181A1F'
red: '#E86671'
green: '#98C379'
yellow: '#E5C07B'
blue: '#61AFEF'
magenta: '#C678DD'
cyan: '#54AFBC'
white: '#ABB2BF'
bright:
black: '#5C6370'
red: '#E86671'
green: '#98C379'
yellow: '#E5C07B'
blue: '#61AFEF'
magenta: '#C678DD'
cyan: '#54AFBC'
white: '0xf7f7f7'
dim:
black: '#5C6370'
red: '0x74423f'
green: '#98C379'
yellow: '#E5C07B'
blue: '#61AFEF'
magenta: '0x6e4962'
cyan: '0x5c8482'
white: '0x828282'
+3 -1
View File
@@ -1,10 +1,12 @@
{...}: { {...}: {
imports = [ imports = [
./alacritty
../server ../server
./neovim ./neovim
./alacritty.nix
./development.nix ./development.nix
./helix.nix
./kitty.nix ./kitty.nix
./media.nix ./media.nix
./shell.nix ./shell.nix
+32
View File
@@ -0,0 +1,32 @@
{ pkgs, catppuccin-helix, ... }:
{
# https://github.com/catppuccin/helix
xdg.configFile."helix/themes".source = "${catppuccin-helix}/themes/default";
programs.helix = {
enable = true;
package = pkgs.helix;
settings = {
theme = "catppuccin_mocha";
editor = {
line-number = "relative";
cursorline = true;
color-modes = true;
lsp.display-messages = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides.render = true;
};
keys.normal = {
space.space = "file_picker";
space.w = ":w";
space.q = ":q";
esc = [ "collapse_selection" "keep_primary_selection" ];
};
};
};
}
+1 -1
View File
@@ -27,7 +27,7 @@
{ {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
theme = "Catppuccin-Mocha"; theme = "Catppuccin-Mocha"; # kitty has catppuccin theme built-in
font = { font = {
name = "JetBrainsMono Nerd Font"; name = "JetBrainsMono Nerd Font";
# use different font size on macOS # use different font size on macOS
+11
View File
@@ -17,6 +17,16 @@
# Toggle visual mode: `v` # Toggle visual mode: `v`
# Toggle visual block mode: `<Ctrl> + v` (select a block(vertically) of text) # Toggle visual block mode: `<Ctrl> + v` (select a block(vertically) of text)
# #
# Add at the end of Multiple line: `:normal A<text>`
# Note that `:normal` execute `A<text>` on each line.
# `A` means append text at the end of the line.
# You need to select the lines via visual mode first.
#
# Add at the end of the visual block: `:A<text>`
# You need to select the block via visual block mode first.
# And then this command will append text at the end of the block on each line.
# If the position exceeds the end of the line, neovim will automatically add spaces
#
# Commands & shortcuts in AstroNvim # Commands & shortcuts in AstroNvim
# Learn Neovim's Basics: `:Tutor` # Learn Neovim's Basics: `:Tutor`
# Opening file explorer: `<Space> + e` # Opening file explorer: `<Space> + e`
@@ -26,6 +36,7 @@
# Vertical Split Terminal: `<Space> + tv` # Vertical Split Terminal: `<Space> + tv`
# Open IPython REPL: `<Space> + tp` # Open IPython REPL: `<Space> + tp`
# Opening LSP symbols: `<Space> + lS` # Opening LSP symbols: `<Space> + lS`
# Toggle line wrap: `<Space> + uw`
# Show line diagnostics: `gl` # Show line diagnostics: `gl`
# Go to definition: `gd` # Go to definition: `gd`
# #
+8 -1
View File
@@ -1,4 +1,4 @@
{...}: { { nushell-scripts, ...}: {
programs.bash = { programs.bash = {
# load the alias file for work # load the alias file for work
bashrcExtra = '' bashrcExtra = ''
@@ -19,6 +19,13 @@
# https://github.com/nushell/nushell/issues/8214 # https://github.com/nushell/nushell/issues/8214
extraConfig = '' extraConfig = ''
source /etc/agenix/alias-for-work.nushell source /etc/agenix/alias-for-work.nushell
use ${nushell-scripts}/custom-completions/git/git-completions.nu *
use ${nushell-scripts}/custom-completions/glow/glow-completions.nu *
use ${nushell-scripts}/custom-completions/make/make-completions.nu *
use ${nushell-scripts}/custom-completions/nix/nix-completions.nu *
use ${nushell-scripts}/custom-completions/man/man-completions.nu *
use ${nushell-scripts}/custom-completions/cargo/cargo-completions.nu *
use ${nushell-scripts}/custom-completions/zellij/zellij-completions.nu *
''; '';
}; };
} }
@@ -1,4 +1,4 @@
{...}: { { catppuccin-bat, ...}: {
# a cat(1) clone with syntax highlighting and Git integration. # a cat(1) clone with syntax highlighting and Git integration.
programs.bat = { programs.bat = {
enable = true; enable = true;
@@ -8,7 +8,7 @@
}; };
themes = { themes = {
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme # https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
Catppuccin-mocha = builtins.readFile ./Catppuccin-mocha.tmTheme; Catppuccin-mocha = builtins.readFile "${catppuccin-bat}/Catppuccin-mocha.tmTheme";
}; };
}; };
} }
@@ -1,959 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#1e1e2e</string>
<key>caret</key>
<string>#bac2de</string>
<key>invisibles</key>
<string>#a6adc8</string>
<key>gutterForeground</key>
<string>#9399b2</string>
<key>gutterForegroundHighlight</key>
<string>#a6e3a1</string>
<key>lineHighlight</key>
<string>#585b70</string>
<key>selection</key>
<string>#6c7086</string>
<key>selectionBorder</key>
<string>#1e1e2e</string>
<key>activeGuide</key>
<string>#fab387</string>
<key>findHighlightForeground</key>
<string>#181825</string>
<key>findHighlight</key>
<string>#f9e2af</string>
<key>bracketsForeground</key>
<string>#9399b2</string>
<key>bracketContentsForeground</key>
<string>#9399b2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c7086</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String regex</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Boolean</string>
<key>scope</key>
<string>constant.language.boolean</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>bold italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in function</string>
<key>scope</key>
<string>support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>variable.other.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict></dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Conditional/loop</string>
<key>scope</key>
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Return</string>
<key>scope</key>
<string>keyword.control.return, keyword.control.flow.return</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exception</string>
<key>scope</key>
<string>support.type.exception</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operator</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation separator</string>
<key>scope</key>
<string>punctuation.separator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation terminator</string>
<key>scope</key>
<string>punctuation.terminator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation bracket</string>
<key>scope</key>
<string>punctuation.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9399b2</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Include</string>
<key>scope</key>
<string>keyword.control.import.include</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type</string>
<key>scope</key>
<string>storage.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type namespace</string>
<key>scope</key>
<string>entity.name.namespace, meta.path</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type class</string>
<key>scope</key>
<string>storage.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Label</string>
<key>scope</key>
<string>entity.name.label</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword class</string>
<key>scope</key>
<string>keyword.declaration.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class, meta.toc-list.full-identifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function macro</string>
<key>scope</key>
<string>entity.name.function.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Macro directive - ifdef</string>
<key>scope</key>
<string>keyword.control.import</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constructor</string>
<key>scope</key>
<string>entity.name.function.constructor, entity.name.function.destructor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function declaration</string>
<key>scope</key>
<string>keyword.declaration.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable parameter</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable other</string>
<key>scope</key>
<string>variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable field</string>
<key>scope</key>
<string>variable.other.member</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag delimiter</string>
<key>scope</key>
<string>punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown URL</string>
<key>scope</key>
<string>markup.underline.link.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic underline</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown reference</string>
<key>scope</key>
<string>meta.link.inline.description</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown literal</string>
<key>scope</key>
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown title</string>
<key>scope</key>
<string>punctuation.definition.heading, entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown emphasis</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown strong</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash built-in function</string>
<key>scope</key>
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash parameter</string>
<key>scope</key>
<string>variable.language.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua field</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua constructor</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java constant</string>
<key>scope</key>
<string>entity.name.constant.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS property</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS constant</string>
<key>scope</key>
<string>support.constant.property-value.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS suffix</string>
<key>scope</key>
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variable property</string>
<key>scope</key>
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SCSS tag</string>
<key>scope</key>
<string>entity.name.tag.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SASS variable</string>
<key>scope</key>
<string>variable.other.sass</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c7086</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Message error</string>
<key>scope</key>
<string>message.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.Catppuccin</string>
<key>author</key>
<string>BrunDerSchwarzmagier</string>
</dict>
</plist>
+22 -2
View File
@@ -1,7 +1,7 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
neofetch neofetch
nnn # terminal file manager ranger # terminal file manager(batteries included, with image preview support)
# archives # archives
zip zip
@@ -13,7 +13,6 @@
ripgrep # recursively searches directories for a regex pattern ripgrep # recursively searches directories for a regex pattern
jq # A lightweight and flexible command-line JSON processor jq # A lightweight and flexible command-line JSON processor
yq-go # yaml processer https://github.com/mikefarah/yq yq-go # yaml processer https://github.com/mikefarah/yq
fzf # A command-line fuzzy finder
# networking tools # networking tools
mtr # A network diagnostic tool mtr # A network diagnostic tool
@@ -66,6 +65,27 @@
icons = true; icons = true;
}; };
# A command-line fuzzy finder
fzf = {
enable = true;
# https://github.com/catppuccin/fzf
# catppuccin-mocha
colors = {
"bg+" = "#313244";
"bg" = "#1e1e2e";
"spinner" = "#f5e0dc";
"hl" = "#f38ba8";
"fg" = "#cdd6f4";
"header" = "#f38ba8";
"info" = "#cba6f7";
"pointer" = "#f5e0dc";
"marker" = "#f5e0dc";
"fg+" = "#cdd6f4";
"prompt" = "#cba6f7";
"hl+" = "#f38ba8";
};
};
# skim provides a single executable: sk. # skim provides a single executable: sk.
# Basically anywhere you would want to use grep, try sk instead. # Basically anywhere you would want to use grep, try sk instead.
skim = { skim = {
+1 -1
View File
@@ -1,11 +1,11 @@
{...}: { {...}: {
imports = [ imports = [
./bat
./nushell ./nushell
./tmux ./tmux
./zellij ./zellij
./bash.nix ./bash.nix
./bat.nix
./core.nix ./core.nix
./git.nix ./git.nix
./starship.nix ./starship.nix
+71 -1
View File
@@ -2,8 +2,79 @@
# #
# version = 0.81.1 # version = 0.81.1
# let's define some colors
# https://github.com/catppuccin/i3/blob/main/themes/catppuccin-mocha
let rosewater = "#f5e0dc"
let flamingo = "#f2cdcd"
let pink = "#f5c2e7"
let mauve = "#cba6f7"
let red = "#f38ba8"
let maroon = "#eba0ac"
let peach = "#fab387"
let green = "#a6e3a1"
let teal = "#94e2d5"
let sky = "#89dceb"
let sapphire = "#74c7ec"
let blue = "#89b4fa"
let lavender = "#b4befe"
let text = "#cdd6f4"
let subtext1 = "#bac2de"
let subtext0 = "#a6adc8"
let overlay2 = "#9399b2"
let overlay1 = "#7f849c"
let overlay0 = "#6c7086"
let surface2 = "#585b70"
let surface1 = "#45475a"
let surface0 = "#313244"
let base = "#1e1e2e"
let mantle = "#181825"
let crust = "#11111b"
# we're creating a theme here that uses the colors we defined above.
let catppuccin_theme = {
separator: $overlay2
leading_trailing_space_bg: $surface2
header: $red
date: $pink
filesize: $green
row_index: $text
bool: $peach
int: $red
duration: $sky
range: $sapphire
float: $lavender
string: $text
nothing: $overlay1
binary: $subtext1
cellpath: $subtext0
hints: dark_gray
shape_garbage: { fg: $overlay2 bg: $red attr: b}
shape_bool: $maroon
shape_int: { fg: $pink attr: b}
shape_float: { fg: $pink attr: b}
shape_range: { fg: $overlay0 attr: b}
shape_internalcall: { fg: $maroon attr: b}
shape_external: $mauve
shape_externalarg: { fg: $red attr: b}
shape_literal: $flamingo
shape_operator: $rosewater
shape_signature: { fg: $red attr: b}
shape_string: $red
shape_filepath: $peach
shape_globpattern: { fg: $teal attr: b}
shape_variable: $pink
shape_flag: { fg: $mauve attr: b}
shape_custom: {attr: b}
}
# The default config record. This is where much of your global configuration is setup. # The default config record. This is where much of your global configuration is setup.
let-env config = { let-env config = {
color_config: $catppuccin_theme # <-- this is the theme
use_ansi_coloring: true
# true or false to enable or disable the welcome banner at startup # true or false to enable or disable the welcome banner at startup
show_banner: false show_banner: false
@@ -42,7 +113,6 @@ let-env config = {
footer_mode: "25" # always, never, number_of_rows, auto footer_mode: "25" # always, never, number_of_rows, auto
float_precision: 2 # the precision for displaying floats in tables float_precision: 2 # the precision for displaying floats in tables
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL # buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
use_ansi_coloring: true
bracketed_paste: true # enable bracketed paste, currently useless on windows bracketed_paste: true # enable bracketed paste, currently useless on windows
edit_mode: emacs # emacs, vi edit_mode: emacs # emacs, vi
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
+11 -1
View File
@@ -1,8 +1,18 @@
{...}: { { config, ...}: {
programs.nushell = { programs.nushell = {
enable = true; enable = true;
configFile.source = ./config.nu; configFile.source = ./config.nu;
extraConfig = ''
let-env PATH = ([
"${config.home.homeDirectory}/bin"
"${config.home.homeDirectory}/.local/bin"
"${config.home.homeDirectory}/go/bin"
($env.PATH | split row (char esep))
] | flatten)
'';
# home-manager will merge the cotent in `environmentVariables` with the `envFile.source` # home-manager will merge the cotent in `environmentVariables` with the `envFile.source`
# but basically, I set all environment variables via the shell-independent way, so I don't need to use those two options # but basically, I set all environment variables via the shell-independent way, so I don't need to use those two options
# #
+4 -2
View File
@@ -1,4 +1,4 @@
{...}: { { catppuccin-starship, ...}: {
programs.starship = { programs.starship = {
enable = true; enable = true;
@@ -20,6 +20,8 @@
format = "on [$symbol$active(\($region\))]($style) "; format = "on [$symbol$active(\($region\))]($style) ";
symbol = "🅶 "; symbol = "🅶 ";
}; };
};
palette = "catppuccin_mocha";
} // builtins.fromTOML (builtins.readFile "${catppuccin-starship}/palettes/mocha.toml");
}; };
} }
+7
View File
@@ -0,0 +1,7 @@
# Home Manager's Darwin Submodules
1. `core.nix`: some basic configuration.
2. `nushell.nix`: nushell's configuration for darwin.
3. `rime-squirrel.nix`: [rime-squirrel](https://github.com/rime/squirrel)'s configuration.
4. `default.nix`: the entrypoint of darwin's configuration, it import all the submodules above.
+13
View File
@@ -0,0 +1,13 @@
# Home Manager's Linux Submodules
1. `base`: The base module that is suitable for any NixOS environment.
2. `desktop`: Configuration for desktop environments, such as Hyprland, I3, etc.
3. `fcitx5`: fcitx5's configuration(Chinese input method).
4. `hyprland`: Hyprland's configuration.
5. `i3`: i3's configuration.
6. `server.nix`: Configuration which is suitable for both servers and desktops. It import only `base` as its submodule.
1. used by all my nixos servers.
6. `desktop-hyprland.nix`: the entrypoint of hyprland's configuration, it import all the submodules above, except `i3`.
1. used by my hyprland desktop.
7. `desktop-i3.nix`: the entrypoint of i3's configuration, it import all the submodules above, except `hyprland`.
1. used by my i3 desktop.
+15
View File
@@ -0,0 +1,15 @@
{ catppuccin-btop, ... }:
{
# https://github.com/catppuccin/btop/blob/main/themes/catppuccin_mocha.theme
home.file.".config/btop/themes".source = "${catppuccin-btop}/themes";
# replacement of htop/nmon
programs.btop = {
enable = true;
settings = {
color_theme = "catppuccin_mocha";
theme_background = false; # make btop transparent
};
};
}
+1
View File
@@ -1,5 +1,6 @@
{ {
imports = [ imports = [
./btop.nix
./shell.nix ./shell.nix
./system-tools.nix ./system-tools.nix
]; ];
+1 -1
View File
@@ -1,4 +1,4 @@
{config, ...}: let {config, nushell-scripts, ...}: let
d = config.xdg.dataHome; d = config.xdg.dataHome;
c = config.xdg.configHome; c = config.xdg.configHome;
cache = config.xdg.cacheHome; cache = config.xdg.cacheHome;
-2
View File
@@ -1,8 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
# Linux Only Packages, not available on Darwin # Linux Only Packages, not available on Darwin
home.packages = with pkgs; [ home.packages = with pkgs; [
btop # replacement of htop/nmon
htop
nmon nmon
iotop iotop
iftop iftop
+1
View File
@@ -4,6 +4,7 @@
./immutable-file.nix ./immutable-file.nix
./media.nix ./media.nix
./ssh.nix ./ssh.nix
./wallpaper.nix
./xdg.nix ./xdg.nix
]; ];
+7 -1
View File
@@ -1,6 +1,6 @@
{ {
pkgs, pkgs,
config, catppuccin-cava,
... ...
}: }:
# media - control and enjoy audio/video # media - control and enjoy audio/video
@@ -15,12 +15,18 @@
nvtop nvtop
# video/audio tools # video/audio tools
cava # for visualizing audio
libva-utils libva-utils
vdpauinfo vdpauinfo
vulkan-tools vulkan-tools
glxinfo glxinfo
]; ];
# https://github.com/catppuccin/cava
home.file.".config/cava/config".text = ''
# custom cava config
'' + builtins.readFile "${catppuccin-cava}/mocha.cava";
programs = { programs = {
mpv = { mpv = {
enable = true; enable = true;
+10
View File
@@ -0,0 +1,10 @@
{ wallpapers, ... }:
{
# https://github.com/ryan4yin/wallpapers
home.file.".config/wallpapers".source = wallpapers;
home.file.".local/bin/wallpaper_random" = {
source = "${wallpapers}/wallpaper_random.py";
executable = true;
};
}
+26
View File
@@ -0,0 +1,26 @@
# Vertical Candidate List
Vertical Candidate List=False
# Use Per Screen DPI
PerScreenDPI=True
# Use mouse wheel to go to prev or next page
WheelForPaging=True
# Font
Font="Sans 10"
# Menu Font
MenuFont="Sans 10"
# Tray Font
TrayFont="Sans Bold 10"
# Tray Label Outline Color
TrayOutlineColor=#000000
# Tray Label Text Color
TrayTextColor=#ffffff
# Prefer Text Icon
PreferTextIcon=False
# Show Layout Name In Icon
ShowLayoutNameInIcon=True
# Use input method language to display text
UseInputMethodLangaugeToDisplayText=True
# Theme macchiato, frappe, latte, mocha
Theme=catppuccin-mocha
# Force font DPI on Wayland
ForceWaylandDPI=0
+5 -1
View File
@@ -2,10 +2,14 @@
pkgs, pkgs,
config, config,
lib, lib,
catppuccin-fcitx5,
... ...
}: { }: {
home.file.".config/fcitx5/profile".source = ./profile; home.file.".config/fcitx5/profile".source = ./profile;
home.file.".config/fcitx5/profile-bak".source = ./profile; # used for backup
# color schema
home.file.".local/share/fcitx5/themes".source = "${catppuccin-fcitx5}/src";
home.file.".config/fcitx5/conf/classicui.conf".source = ./classicui.conf;
# every time fcitx5 switch input method, it will modify ~/.config/fcitx5/profile file, # every time fcitx5 switch input method, it will modify ~/.config/fcitx5/profile file,
# which will override my config managed by home-manager # which will override my config managed by home-manager
+19 -6
View File
@@ -1,4 +1,4 @@
{pkgs, ...}: { {pkgs, catppuccin-hyprland, ...}: {
imports = [ imports = [
./wayland-apps.nix ./wayland-apps.nix
]; ];
@@ -14,12 +14,25 @@
# copy the scripts directory recursively # copy the scripts directory recursively
recursive = true; recursive = true;
}; };
home.file.".config/gtk-3.0" = { home.file.".config/hypr/themes".source = "${catppuccin-hyprland}/themes";
source = ./gtk-3.0;
recursive = true; # gtk's theme settings, generate files:
# 1. ~/.gtkrc-2.0
# 2. ~/.config/gtk-3.0/settings.ini
# 3. ~/.config/gtk-4.0/settings.ini
gtk = {
enable = true;
theme = {
# https://github.com/catppuccin/gtk
name = "Catppuccin-Macchiato-Compact-Pink-dark";
package = pkgs.catppuccin-gtk.override {
accents = [ "pink" ];
size = "compact";
tweaks = [ "rimless" "black" ];
variant = "macchiato";
};
};
}; };
home.file.".gtkrc-2.0".source = ./gtkrc-2.0;
home.file.".config/hypr/wallpapers/wallpaper.png".source = ../wallpapers/wallpaper.png;
# music player - mpd # music player - mpd
home.file.".config/mpd" = { home.file.".config/mpd" = {
-16
View File
@@ -1,16 +0,0 @@
[Settings]
gtk-theme-name=Arc-Dark
gtk-icon-theme-name=Qogir-dark
gtk-font-name=Noto Sans 10
gtk-cursor-theme-name=Qogir-dark
gtk-cursor-theme-size=64
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-rgba=rgb
-19
View File
@@ -1,19 +0,0 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "~/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Qogir-dark"
gtk-font-name="Noto Sans 10"
gtk-cursor-theme-name="Qogir-dark"
gtk-cursor-theme-size=64
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"
gtk-xft-rgba="rgb"
@@ -1,5 +1,8 @@
## Hyprland configuration file ## Hyprland configuration file
# color-scheme: cappuccin-mocha
source=~/.config/hypr/themes/mocha.conf
#-- Output ---------------------------------------------------- #-- Output ----------------------------------------------------
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info. # Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
@@ -11,7 +11,7 @@ for _prs in "${_ps[@]}"; do
done done
# Set wallpaper # Set wallpaper
swaybg --output '*' --mode fill --image ~/.config/hypr/wallpapers/wallpaper.png & swaybg --output '*' --mode fill --image ~/.config/wallpapers/default_wallpaper &
# Lauch notification daemon (mako) # Lauch notification daemon (mako)
~/.config/hypr/scripts/notifications & ~/.config/hypr/scripts/notifications &
+1 -1
View File
@@ -20,7 +20,7 @@
firefox = { firefox = {
enable = true; enable = true;
enableGnomeExtensions = false; enableGnomeExtensions = false;
# package = pkgs.firefox-wayland; # firefox with wayland support package = pkgs.firefox-wayland; # firefox with wayland support
}; };
vscode = { vscode = {
+43 -26
View File
@@ -262,7 +262,7 @@ exec --no-startup-id ~/.screenlayout/monitor.sh
# set wallpaper # set wallpaper
# exec --no-startup-id sleep 2 && nitrogen --restore # exec --no-startup-id sleep 2 && nitrogen --restore
exec --no-startup-id sleep 1 && feh --bg-fill ~/.config/i3/wallpaper.png exec --no-startup-id sleep 1 && feh --bg-fill ~/.config/wallpapers/default_wallpaper
# set powersavings for display: # set powersavings for display:
exec --no-startup-id xset s 480 dpms 600 600 600 exec --no-startup-id xset s 480 dpms 600 600 600
@@ -312,25 +312,42 @@ for_window [class="urxvt"] border pixel 1
# color settings for bar and windows # # color settings for bar and windows #
###################################### ######################################
# Define colors variables: # https://github.com/catppuccin/i3/blob/main/themes/catppuccin-mocha
set $darkbluetrans #08052be6 set $rosewater #f5e0dc
set $darkblue #08052b set $flamingo #f2cdcd
set $lightblue #5294e2 set $pink #f5c2e7
set $urgentred #e53935 set $mauve #cba6f7
set $white #ffffff set $red #f38ba8
set $black #000000 set $maroon #eba0ac
set $purple #e345ff set $peach #fab387
set $darkgrey #383c4a set $green #a6e3a1
set $grey #b0b5bd set $teal #94e2d5
set $mediumgrey #8b8b8b set $sky #89dceb
set $yellowbrown #e1b700 set $sapphire #74c7ec
set $blue #89b4fa
set $lavender #b4befe
set $text #cdd6f4
set $subtext1 #bac2de
set $subtext0 #a6adc8
set $overlay2 #9399b2
set $overlay1 #7f849c
set $overlay0 #6c7086
set $surface2 #585b70
set $surface1 #45475a
set $surface0 #313244
set $base #1e1e2e
# use colors in the RGBA format, the last two digits are transparency
set $base_i3bar #1e1e2ee6
set $mantle #181825
set $crust #11111b
# define colors for windows: # target title bg text indicator border
#class border bground text indicator child_border client.focused $red $base $text $rosewater $red
client.focused $lightblue $darkblue $white $mediumgrey $mediumgrey client.focused_inactive $mauve $base $text $rosewater $mauve
client.unfocused $darkblue $darkblue $grey $darkgrey $darkgrey client.unfocused $lavender $base $text $rosewater $lavender
client.focused_inactive $darkblue $darkblue $grey $black $black client.urgent $pink $base $lavender $overlay0 $pink
client.urgent $urgentred $urgentred $white $yellowbrown $yellowbrown client.placeholder $overlay0 $base $text $overlay0 $overlay0
client.background $base
############################################ ############################################
@@ -361,14 +378,14 @@ bar {
##strip_workspace_name no ##strip_workspace_name no
colors { colors {
separator $purple separator $pink
background $darkgrey background $base_transparent
statusline $white statusline $lavender
# border bg txt indicator # border bg txt indicator
focused_workspace $mediumgrey $grey $darkgrey $purple focused_workspace $surface2 $overlay1 $surface1 $pink
active_workspace $lightblue $mediumgrey $darkgrey $purple active_workspace $peach $surface2 $surface1 $pink
inactive_workspace $darkgrey $darkgrey $grey $purple inactive_workspace $surface1 $surface2 $overlay1 $pink
urgent_workspace $urgentred $urgentred $white $purple urgent_workspace $red $red $lavender $pink
} }
} }
-2
View File
@@ -6,8 +6,6 @@
]; ];
home.file = { home.file = {
# wallpaper, binary file
".config/i3/wallpaper.png".source = ../wallpapers/wallpaper.png;
".config/i3/config".source = ./config; ".config/i3/config".source = ./config;
".config/i3/i3blocks.conf".source = ./i3blocks.conf; ".config/i3/i3blocks.conf".source = ./i3blocks.conf;
".config/i3/scripts" = { ".config/i3/scripts" = {
-22
View File
@@ -1,22 +0,0 @@
# convert all images to png
def to_png [old_path: string, old_format: string] {
# 将后缀改为 .png 得到新图片的 path
let webp_path = ($old_path | split row $old_format | append ".png" | str join)
# 使用 ffmpeg 进行格式转换
ffmpeg -y -i $old_path $webp_path
# 删除旧图片
rm $old_path
}
def convert_format [old_format: string] {
# 递归找出所有大于 10kib 的图片
let old_paths = (ls $"**/*($old_format)" | where size > 10kb | each {|it| $it.name})
$old_paths | to md
# 1. 执行图片格式转换与压缩,同时删除原图片
$old_paths | each { |it| to_png $it $old_format }
}
convert_format ".webp"
# convert_format ".jpg"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 MiB

-1
View File
@@ -1 +0,0 @@
jiaocha_anime-girls_seagulls.jpg
+11 -1
View File
@@ -1,4 +1,13 @@
# Oshi no Ko # Hosts
1. `harmonica`: My MacBook Pro 2020 13-inch, for work.
2. `idols`
1. `ai`: My main computer, with NixOS + I5-13600KF + RTX 4090 GPU, for gaming & daily use.
2. `aquamarine`: My NixOS virtual machine with R9-5900HX(8C16T), for distributed building & testing.
3. `kana`: Yet another NixOS vm on another physical machine with R5-5625U(6C12T).
4. `ruby`: Another NixOS vm on another physical machine with R7-5825U(8C16T).
# idols - Oshi no Ko
These four servers are named after the four main characters of the mange/anime Oshi no Ko, they form a NixOS distributed building cluster, These four servers are named after the four main characters of the mange/anime Oshi no Ko, they form a NixOS distributed building cluster,
I usually run the build command on `Ai` and nix will distribute the build to other three machines, which is convenient and fast. I usually run the build command on `Ai` and nix will distribute the build to other three machines, which is convenient and fast.
@@ -15,3 +24,4 @@ When building some packages for riscv64 or aarch64, I often have no cache availa
![](/_img/idols-ai.webp) ![](/_img/idols-ai.webp)
See [Oshi no Ko 【推しの子】 - Wikipedia](https://en.wikipedia.org/wiki/Oshi_no_Ko) for more information. See [Oshi no Ko 【推しの子】 - Wikipedia](https://en.wikipedia.org/wiki/Oshi_no_Ko) for more information.
+7
View File
@@ -77,8 +77,15 @@
# for Nvidia GPU # for Nvidia GPU
services.xserver.videoDrivers = ["nvidia"]; # will install nvidia-vaapi-driver by default services.xserver.videoDrivers = ["nvidia"]; # will install nvidia-vaapi-driver by default
hardware.nvidia = { hardware.nvidia = {
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
# Modesetting is needed for most Wayland compositors
modesetting.enable = true; modesetting.enable = true;
# Use the open source version of the kernel module
# Only available on driver 515.43.04+
open = false;
powerManagement.enable = true; powerManagement.enable = true;
}; };
virtualisation.docker.enableNvidia = true; # for nvidia-docker virtualisation.docker.enableNvidia = true; # for nvidia-docker
+5
View File
@@ -0,0 +1,5 @@
# NixOS / Nix-Darwin's Submodules
1. `darwin`: macOS-specific configuration.
2. `nixos`: NixOS-specific configuration.
-1
View File
@@ -69,7 +69,6 @@
# audio # audio
alsa-utils # provides amixer/alsamixer/... alsa-utils # provides amixer/alsamixer/...
cava # for visualizing audio
mpd # for playing system sounds mpd # for playing system sounds
mpc-cli # command-line mpd client mpc-cli # command-line mpd client
ncmpcpp # a mpd client with a UI ncmpcpp # a mpd client with a UI
+9
View File
@@ -0,0 +1,9 @@
# Overlays
Overlays for both NixOS and Nix-Darwin.
If you don't know much about overlays, it is recommended to learn the function and usage of overlays through [Overlays - NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world/nixpkgs/overlays).
1. `default.nix`: the entrypoint of overlays, it execute and import all overlay files in the current directory with the given args.
2. `fcitx5`: fcitx5's overlay, add my customized Chinese input method - [小鹤音形输入法](https://flypy.com/)
+4 -1
View File
@@ -5,5 +5,8 @@ builtins.map
(builtins.filter # find all overlay files in the current directory (builtins.filter # find all overlay files in the current directory
(f: f != "default.nix") (f:
f != "default.nix" # ignore default.nix
&& f != "README.md" # ignore README.md
)
(builtins.attrNames (builtins.readDir ./.))) (builtins.attrNames (builtins.readDir ./.)))
+1 -1
View File
@@ -8,7 +8,7 @@ they are decrypted only when they are finally used.
In addition, we further improve the security of secrets files by storing them in a separate private repository. In addition, we further improve the security of secrets files by storing them in a separate private repository.
This directory contains this README.md, and a `default.nix` that used to decrypt all my secrets via agenix, and then I can use them in this flake. This directory contains this README.md, and a `nixos.nix`/`darwin.nix` that used to decrypt all my secrets via agenix, and then I can use them in this flake.
## Adding or Updating Secrets ## Adding or Updating Secrets