Nixos&Hyprland带有catppucin MacChiato主题配置
目录
- 关于
- 展示柜
- 成分
- 特征
- 安装
- 钥匙扣
- 鱼壳中有用的别名
- AI工具和服务
- Rustaceans的有用信息
- 尼克斯(Nixos)的Yubikey
- 执照
关于
这个存储库包含我的Nixos Linux❄️薄片配置,配以Hyprland Window Manager,并以时尚的catppucin Macchiato主题装饰。我依靠这个设置作为我的日常驱动程序进行工作和编程,主要是在Rust?中。请随意使用它,或借用特定的组件作为您自己的配置。
笔记
必须注意的是,这种配置不是极简主义或轻量级的,并且可能需要一些磁盘空间和知识才能理解。如果您正在寻找更简单的东西,则此配置可能不适合您。
该系统利用尖端的频道和软件版本为您提供最新的更新和功能。值得注意的是,它利用:
- Flake (Nix软件包管理器的实验功能)
-
NUR (NIX用户存储库)*当前禁用 - nixpkgs :不稳定
- 生锈:夜间版本
这种方法可确保您保持在技术的最前沿,并迅速获得最新的软件进步。
警告
但是,重要的是要注意,这种强调出血 – 边缘软件可能会影响系统的稳定性。
重要的
请注意,由于各种原因(主要与安全性(无根和守护程序容器))相关的原因,该系统利用Podman而不是Docker进行容器化,更容易迁移到Kubernetes,Pods的可用性,与Systemd的兼容性以及更好的安全distrobox 。如果您希望使用Docker而不是Podman ,则可以通过评论nixos/virtualisation.nix文件中的Podman部分来进行切换,并删除Docker部分。有关Docker配置的更多详细信息,请参见Nixos中的更多信息。
笔记
该系统还可以启用Selinux补丁,以及Apparmor和Tomoyo Linux安全模块。它包括诸如Fail2ban和Usbguard之类的安全守护程序,并预装了Firejail以满足您的安全要求。
您可以通过修改各自的配置文件来根据您的需求自定义这些配置。
?展示
重要的
展示的图像不能反映系统外观的最新版本。最终设置可能会略有不同。
展示视频
?组件
| 成分 | 版本/名称 |
|---|---|
| 发行版 | 尼克斯 |
| 核心 | 禅 |
| 壳 | 鱼 |
| 显示服务器 | 韦兰 |
| WM(合成器) | Hyprland |
| 酒吧 | Waybar |
| 通知 | 邓斯特 |
| 发射器 | Rofi Wayland |
| 编辑 | 螺旋 |
| 终端 | Kitty + Starship |
| OSD | Avizo |
| 夜间伽玛 | WLSUNSET |
| 获取实用程序 | Neofetch |
| 主题 | catppucin macchiato |
| 图标 | 胶体 – 漆黑,numix-circle |
| 字体 | Jetbrains Mono + Nerd字体补丁 |
| 球员 | YouTube音乐 + Spotify |
| 文件浏览器 | Thunar + Yazi |
| 互联网浏览器 | QuteBrowser,Brave + Vimium + Nighttab +手写笔 |
| 模仿 | MPV,IMV,Zathura |
| 图像编辑器 | 偏差 |
| 截屏 | grim + sl |
| 录音机 | WL-Screenrec |
| 彩色选择器 | Hyprpicker |
| 剪贴板 | WL-Clipboard + Cliphist + WL-Clip-Persist |
| 闲置的 | Hypridle |
| 锁 | Hyprlock |
| 注销菜单 | wlogout |
| 墙纸 | Hyprpaper |
| 图形引导 | 普利茅斯 + catppucin-plymouth |
| 显示管理器 | 问候 + tuigreet |
| 容器化 | Podman |
以及许多其他有用的公用事业。完整列表可以在nixos目录的系统配置文件中找到。
特征
-
可重现:基于尼克斯,可以在其他机器上轻松再现这种配置,从而确保一致的设置。
-
?️一致:几乎每个组件都经过精心设计,以遵守Catppucin MacChiato主题,提供了视觉上凝聚力的体验。
-
✅完成:该系统配备了各种组件和实用程序,类似于MacOS或Windows等操作系统的完整性。
-
?可自定义:利用Linux和Hyprland的功能,此配置提供了广泛的自定义选项,从而使您可以根据自己的偏好调整设置。
安装
- 从官方网站下载并安装尼克斯。
- 使用命令暂时安装RIPGREP和鱼类:
nix-shell -p ripgrep fish --run fish。您也可以在下一步中使用经典的Bash和Grep,而无需安装鱼和Ripgrep。 - 在配置文件中运行命令
rg --hidden FIXME并更改/添加行以匹配您的设备,掉期,分区,外围设备,文件系统等。
重要的
确保您在nixos/usb.nix文件中配置USBGuard,以避免潜在问题。默认情况下,USBGuard会阻止所有USB设备,这可能导致关键的硬件组件(例如集成相机,蓝牙,WiFi等)禁用,以正确配置USBGuard,请添加您可信赖的USB设备。您可以通过使用usbutils软件包的lsusb命令获取所有连接设备的列表。
警告
无法适当配置USBGuard可能会导致无法将任何USB设备连接到您的计算机。如果需要,您还可以通过设置services.usbguard.enable in false in Configuration: services.usbguard.enable = false; 。此步骤可确保USBGuard不会积极阻止任何USB设备。
重要的
请记住要更新位于home/.config/hypr/hyprland.conf Hyprland配置文件中的监视器设置。
重要的
另外,重要的是:如果您使用luks使用磁盘加密并要使用加密交换,则需要在luks上进行交换。通常在/etc/nixos/configuration.nix中自动生成,为boot.initrd.luks.devices.\"luks-...\".device = \"/dev/disk/by-uuid/...\";代码块,如果在Nixos安装过程中设置此选项。您只需将此摘要复制到nixos/swap.nix , nixos/hardware-configuration.nix或nixos/configuration.nix (个人,我更喜欢将其复制到hardware-configuration.nix )。另外,您可以手动设置它或使用随机键使用交换加密。
- 要更改默认的用户名和/或主机名,请运行命令
rg --hidden \'xnm\'以查找和修复用户名的所有实例,以及为主机名的rg --hidden \'isitreal-laptop\'。
重要的
确保更改用户名以匹配安装过程中的设置,以避免登录问题。
重要的
另外,请不要忘记在home/.gitconfig , home/projects/.gitconfig.personal , home/.ssh/config ,以及home/work/.gitconfig.work文件中删除或更改我的git设置,因为它们配置为我的个人使用。
- 在您当前系统上启用
flake支持(此处更多)。在启用/etc/configuration.nix中启用flake后,不要忘记运行sudo nixos-rebuild switch。 - 复制或将所有文件(随附替换)从
home目录中复制到Linux的$HOMEDirectory。 - 复制或将所有文件(带有替换和SUDO权限)从
nixos目录中移动到/etc/nixos/。
重要的
确保system.stateVersion = \"your_version\";正确设置为在configuration.nix文件中的初始安装的发行版。
重要的
另外,出于安全原因,请确保/etc/nixos目录中的所有文件均由root拥有。如果没有,请使用命令更改所有权: sudo chown -R root:root /etc/nixos 。
- 运行命令
sudo nix flake update --flake /etc/nixos; and sudo nixos-rebuild switch --flake /etc/nixos#your-hostname --upgrade或nswitchu。如果选择了第一个命令,请在运行命令之前,将your-hostname替换为主机名;默认情况下,主机名设置为isitreal-laptop。 - 后安装配置:
-
通过执行以下命令来导入GNOME设置以及主题:
dconf load / < home/.config/gnome_settings_backup.dconf。此外,您可以使用gnome-tweaks或themechanger之类的工具来对自己喜欢的特定主题偏好。 -
通过使用bash中的类似命令:
$(find $(nix-store --query --outputs $(which qutebrowser)) -iname \'*dictcli.py*\' | head -1) install en-US hi-IN。要获取所有可用词典的列表,请运行:$(find $(nix-store --query --outputs $(which qutebrowser)) -iname \'*dictcli.py*\' | head -1) list在bash中。有关更多信息,请访问Nixos Wiki上的QuteBrowser页面。 -
将catppucin主题应用于浏览器(勇敢,Firefox,Chromium)中的网站:
- 从其官方网站安装手写笔扩展。
- 打开扩展名的设置页面并导航到备份部分。
- 单击“导入”,然后选择文件
home/.config/stylus-catppuccin.json。
-
将catppucin主题应用于凉爽的术语:
- 启动凉爽的retro术语。
- 右键单击窗口,然后选择“设置”。
- 在通用面板中,单击“导入”,然后选择文件
home/.config/cool-retro-term-style.json。 - 选择名为“ catppucin-theme”的导入配置文件。
- 单击“加载”并从“设置”中退出。
-
应用开放式设置
- 导航到Open-Webui页面:
http://**lo*calhost:8888。 - 注册或签名,如果您还没有这样做。
- 单击右上角的用户照片。
- 从下拉菜单中,选择“管理面板”。
- 在管理面板中,转到“设置”选项卡。
- 在“设置”选项卡下,找到并单击“数据库”部分。
- 单击“从json文件中导入配置”,然后选择“配置文件:
home/.config/open-webui-config.json从您的文件管理器中进行。
- 导航到Open-Webui页面:
-
登录到您的帐户。
-
自定义图形应用程序以适合您的偏好。
之后,您将拥有一个完整的系统。
⌨️关键
主要的
| 关键组合 | 行动 |
|---|---|
| alt + r | 调整Windows模式大小 |
| alt + m | 移动Windows模式 |
| Super + H,J,K,L/箭头 | 更改窗口焦点 |
| 超级 + 1..0 | 更改工作区(1-10) |
| Super + Alt + 1..0 | 更改工作区(11-20) |
| Super + Shift + 1..0 | 移动窗口到工作区(1-10) |
| Super + Shift + Alt + 1..0 | 移动窗口到工作区(11-20) |
| 超级 + Shift + Q | 杀死主动窗口 |
| Super + Shift + f | 切换浮动窗口 |
| Super + Ctrl + F | 切换全屏 |
| 超级 + Shift + O | 切换拆分 |
| Super + Shift + P | 切换伪 |
| 超级 + Shift + M | 退出hyprland
|
| 超级 + ctrl + e | 使用pyprland曝光所有窗户 |
| 超级 + ctrl + m | 使用pyprland公开所有最小的窗户 |
| 超级 + m | 使用pyprland最小化或恢复窗户 |
| Super + Ctrl + T | 使用pyprland启动wezterm板 |
| Super + Ctrl + V | 使用pyprland启动使用pavucontrol启动Scratchpad |
| 超级 + t | 启动wezterm
|
| 超级 + d | 启动rofi -drun
|
| 超级 + b | 启动qutebrowser
|
| Super + Shift + B | 发射brave
|
| 超级 + f | 推出thunar
|
| 超级 +逃脱 | 启动wlogout
|
| 超级 + s | 启动spotify
|
| 超级 + y | 启动youtube-music
|
| Super + Shift + D | 发射discord
|
| 超级 + Shift + T | 发射telegram
|
| 超级 + Shift + L | 启动hyprlock
|
| Super + Shift + S | 进行屏幕截图 |
| 超级 + e | 启动swappy以编辑上次屏幕截图 |
| 超级 + r | 记录屏幕区域(MP4) |
| 超级 + Shift + R | 记录屏幕区域(GIF) |
| 超级 + c | 启动彩色选择器(使用hyperpicer ) |
| 超级 + Z | 切换变焦(与pyprland一起) |
| 超级 + v | 启动剪贴板菜单( rofi -dmenu ) |
| Super + Shift + V | 启动剪贴板菜单( rofi -dmenu )(复制到剪贴板) |
| 超级 + x | 启动剪贴板删除项目菜单( rofi -dmenu ) |
| Super + Shift + X | 清除剪贴板 |
| 超级 + u | 启动书签菜单( rofi -dmenu ) |
| 超级 + Shift + U | 将剪贴板的文字添加到书签 |
| 超级 + ctrl + u | 启动书签删除项目菜单( rofi -dmenu ) |
| Super + Shift + A | 切换飞机模式 |
| 超级 + Shift + N | 切换通知 |
| 超级 +移位 + y | 切换蓝牙 |
| Super + Shift + W | 切换WiFi |
| 超级 + p | 切换游戏临时播放器 |
| 超级 +] | 播放器下一个曲目 |
| 超级 + [ | 玩家以前的曲目 |
您可以在绑定部分中找到/home/.config/hypr/hyprland.conf中的所有其他键键。所有系统鱼类脚本均位于/home/.config/fish/functions目录。
?在鱼壳中有用的别名
该系统包括一个鱼壳配置文件( /home/.config/fish/config.fish ),可提供各种别名,以增强您的经验。
常见命令:
-
cl:清除终端屏幕(clear速记) -
lgit:启动lazygit命令行GIT客户端 -
ldocker:启动lazydocker命令行Docker客户端 -
conf:导航到~/.config目录
尼克斯特定命令:
-
nswitch:使用当前薄片重建系统 -
nswitchu:使用当前薄片重建和更新系统 -
nau:将不稳定的频道添加到软件包管理器 -
nsgc:优化NIX Store并删除未参考和过时的商店路径(相当于sudo nix-store --gc) -
ngc:删除所有旧的用户配置文件(相当于sudo nix-collect-garbage -d) -
ngc7:删除7天以上的用户概况(相当于sudo nix-collect-garbage --delete-older-than 7d) -
ngc14:删除14天以上的用户配置文件(相当于sudo nix-collect-garbage --delete-older-than 14d) -
nixos:导航到/etc/nixos目录 -
store:导航到/nix/store目录
您可以通过在文件中添加更多别名并编辑现有的配置来自定义此配置。这使您的体验更加个性化和更顺畅。
?AI工具和服务
这种配置包括几种用于本地开发和实验的AI/LLM工具和服务:
本地AI服务:
-
Ollama-本地LLM服务器,带有预加载的型号:
- 可在
http://loc*a*lhost:*11434访问 - 模型:
llama3.2:3b,llama3.2-vision:11b,phi4:14b,deepseek-r1:7b,dolphin3:8b,smallthinker:3b - 文本嵌入模型:
nomic-embed-text - GPU推理启用了CUDA加速度
- 可在
-
SEARXNG(SEARX FORK) – 隐私搜索元搜索引擎:
- 可在
http://*lo*calhos*t:7777访问 - 支持HTML和JSON格式
- 切记在您的环境文件中设置
SEARX_SECRET_KEY:home/.config/.env.searxng
- 可在
-
打开webui- for ollama的本地chatgpt风格的UI:
- 可访问
http://**lo*calhost:8888 - 对话历史的现代网络界面
- 支持模型切换和提示模板
- 可访问
AI工具:
-
aichat类似于Chatgpt的CLI和带有许多功能 -
aider-chat直接在终端中的代码助理/聊天 -
alpaca-GUI LLM客户端具有Markdown支持 -
oterm-TUI LLM客户端具有Markdown支持
笔记
默认情况下,这些AI服务将启用。
禁用它们:
- 编辑
nixos/llm.nix - 通过将其
enable属性设置为false来禁用服务:services . ollama . enable = false ; services . searx . enable = false ; services . open-webui . enable = false ;
- 从
environment.systemPackages中删除AI CLI工具。Systempackages如果需要 - 通过
nswitch重建配置
?Rustaceans的有用信息
以下是一些提高您在此系统上的生锈体验的技巧:
-
安装自定义:该系统使用NIX方法利用Rust-Reverlay进行锈安装。要自定义安装,包括对编译目标,组件,频道或配置文件进行修改,请遵循以下步骤:
-
找到
nixos/rust-toolchain.toml文件,并根据您的要求进行必要的调整。 -
如果您正在从事具有独特的
rust-toolchain.toml文件或需要在稳定和夜间生锈版本之间切换的多个项目,请考虑以下选项:-
使用
flake.nix和Rust-Reverlay为每个项目分别设置NIX环境。利用nix develop或direnv来管理特定项目的锈蚀环境。 -
另外,您可以通过
environment.systemPackages和Nixpkgs安装rustup,以进行系统范围的Rust设置。这使您可以通过rustup在全球管理Rust版本。
-
-
-
汇编问题:如果您在生锈过程中遇到问题,尤其是与OpenSSL,Sqlite,Wayland或
pkg-config在编译过程中使用的任何其他程序有关的问题(请参阅此处),您可以使用nix-shell -p pkg-config {your_dependency} [other_dependencies] --run fish。此命令打开了带有必要依赖项的Nix Shell,从而促进了无缝代码汇编。另外,您可以通过使用dev shell而不是nix-shell使用flake.nix来使用初始部分(安装自定义)中概述的方法。此外,当使用Nix Dev Shell时,请注意汇编发生在运行时目录中,这对于某些项目可能不足。为了解决这个问题,您可以在services.logind.extraConfig=\"RuntimeDirectorySize=8G\"下的nixos/users.nix文件中调整运行时目录大小。 -
交叉补偿:对于交叉补偿,请考虑使用诸如
zigbuild或cross类的工具。就个人而言,我发现zigbuild更可取,但两者都是您交叉兼容需求的宝贵选择。 -
货物和生锈工具:该系统配备了各种货物和生锈工具,可确保锈蚀开发体验。其中一些工具包括:
-
rust-analyzer -
cargo-watch -
cargo-deny -
cargo-audit -
cargo-update -
cargo-edit -
cargo-outdated -
cargo-license -
cargo-tarpaulin -
cargo-cross -
cargo-zigbuild -
cargo-nextest -
cargo-spellcheck -
cargo-modules -
cargo-bloat -
cargo-unused-features -
cargo-feature -
cargo-features-manager -
bacon
-
-
环境设置:您可以使用
default.nix,nix-shell或flake.nix在此系统上在此系统上nix developRust Project环境shell.nix以为您的Rust Project创建一个定制的环境(还建议,我个人建议与Direnv一起使用它)。
nixos上的Yubikey
此存储库包含一个nixos配置文件( nixos/yubikey.nix )启用:
- Yubikey用PAM_U2F身份验证
- engerd,sudo,ssh和Hyprlock中的无密码登录
警告
尽管方便,但在没有额外的两因素或多因素身份验证(2FA/MFA)的情况下,使用Yubikey进行展示管理人员(例如GreetD)和屏幕储物柜(例如Hyprlock)具有风险。如果您的Yubikey丢失或被盗,则有人可以在重置键之前获得完整的系统访问权限。 Yubikeys擅长防止在线攻击,但不受离线攻击的安全性。
提示
为了增强安全性和无密码体验:您可以考虑使用Yubikey Bio系列设备。这些钥匙支持FIDO2/Webauthn和Fido U2F,并在指纹扫描仪中构建了强大的身份验证。请注意,他们不提供智能卡,OpenPGP或OTP功能。
执照
该项目是根据MIT许可证获得许可的 – 有关详细信息,请参见许可证文件。
