
[小白向] NixOS上手Hyprland,配置中文输入法等
总的来说,NixOS确实是一个很好的发行版,我愿意称之为先天服务器圣体,它的可复现性真的很有用,现在我已经回不去Arch了,我的老年西数硬盘可经不起Arch的折腾,至少当这块硬盘爆了后,我可以从容地买一块新硬盘,然后拷贝我的备份的配置文件,然后复现我的系统。但还是有一点要说明,学习NixOS前前后后一共花费了我差不多一周的时间,所以这个系统只时候有时间和经理去折腾的人。当然,我只入门NixOS不到
一、为什么NixOS
突发噩耗
上周的某个晚上,我在用Arch时突然电脑就异常卡顿,然后我一个reboot发现关不了机,一直卡在光标哪里,等了几分钟都没重启,然后我就强制关机,重启发现进不去系统,拥有btrfs+timeshift的我并不慌,我尝试切出tty,没有用,就找出U盘,想用livecd来挂载硬盘来恢复,然后发现硬盘无法挂载,这时候我发现不对劲了,连忙重启狂按F12想要进入Win11 (我的Win11和Arch分别安装在两块不同的硬盘),然后震惊的一幕出现了,Win11蓝屏了。
因为双系统分别在两块不同的硬盘上,按理来说我的Arch挂了也不会影响我的Win11,所以我确定是硬件问题,看了一下蓝屏信息,显示是内存问题,因为是硬件问题,我处理不了,然后就等第二天去售后修电脑,等了一天,售后联系我说安装Linux的那块硬盘损坏了,导致Win11蓝屏,当他们用自己的硬盘测试时内存没有问题,用我的盘就直接蓝屏,然后售后的用DiskGenius测试了一下我的Linux盘,有几个磁盘坏道,好在格式化后坏道没有了,但健康度很低,这可是我一个月前刚买的SN770 1T。
痛定思痛
想了一下原因,我很大程度上怀疑是btrfs干的,因为我前两次Arch挂了都有它有关,所以我不敢再尝试用这个文件系统了,但没有btrfs的Arch是没有灵魂的,这意味着我必须舍弃Arch,转用ext4文件系统的发行版。
但舍弃了Arch系,我又不想用debian系,更不想用红帽系,似乎我没有选择了,我想要可以吃"后悔药"的,使用ext4作为文件系统的发行版,还有什么选择呢?然后我就发现了NixOS。
二、我对NixOS的一些思考
网上说NixOS很复杂,很难,但当我接触后,发现也不是那么难(打包另说),至少安装不难,最小化安装肯定没有Arch折腾,这是可以肯定的。
那它的"难"又难在哪里呢?我认为很大程度上在于新定义的难,毕竟NixOS对于传统Linux发行版有很大的区别,而这些区别也是它的优点。我认为想要入手NixOS,你可以先用一天把这个系统的运行方式,flake,home-manage(非必须)了解了后,操作起来就非常简单的(其实只要先知道有configuration.nix这个文件来全局配置系统就可以进入下一步了)
分享一个网站,可以大致了解这些新概念: 戳这里
在这篇文章中,你甚至可以不用了解flake和home-manager,因为我的初始配置全写在configuration.nix里(虽然回来迁移到flake了),但至少这对于你想快速上手NixOS下的Hyprland是一个不错的选择。
三、安装NixOS
错误的安装方式
我第一次物理机安装NixOS使是图形化界面安装(官网推荐的gnome环境的iso镜像,我不要最小化镜像的原因是在虚拟机试过几次都没有成功,而且图形化安装的默认ext4文件系统就合我心意,也不需要折腾硬盘分区),然后从早上七点安装到中午十二点都没完成,这直接把我干傻了。
(PS:取用户名不要用"nix",不然以后使用flake会有问题)
新的安装方式
第二次安装,在选择桌面时选择了"no desktop",几分钟就可安装完。
四、substituters&hosts的相关配置
安装后重启进入系统,输入命令:
sudoedit /etc/nixos/configuration.nix
然后加入:
#substituters mirrors
nix.settings = {
substituters = [
"https://mirror.sjtu.edu.cn/nix-channels/store"
"https://cache.nixos.org"
];
};
#hosts
networking.hosts = {
"140.82.114.4" = ["github.com"];
};
Ctrl + O保存(注意保存的路径为/etc/nixos/configuration.nix)覆盖原文件,然后更新:
nixos-rebuild switch
这样我们就可以使用国内源了。
再次进入configuration.nix,在最下面的“environment.systemPackages”中修改增加自己喜欢的软件,可以去官网查看是否有相关软件:官网
像我的:
{ config, lib, pkgs, ... }:
{
......(省略前面的配置)
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim
wget
git
curl
firefox
qq
unzip
unrar
];
}
五、安装Hyprland
因为NixOS的Hyprland不会自动生成配置文件,使用我们得先安装一个桌面来下载,复制Hyprland的配置文件,这样更简单。
但不用担心,因为NixOS的特性,我们在用完这个临时桌面后只要把它的相关代码删除或注释掉,这个桌面就会被完全移除,非常干净。
当然,如果你不想安装临时桌面,想要直接从github仓库上clone相关配置文件然后cp或mv也是可以的,因为我的Hyprland配置文件在我的私人QQ群里,所以我安装了gnome环境,下载了QQ。
安装Gnome:
#gnome
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
重启后即可进入Gnome。打开QQ,把Hyprland的配置文件下载,拷贝到 ~/.config中,命令行操作同理,git后cp到此目录下即可。
上手Hyprland
完成上面的步骤后,第二步就是安装Hyprland。
编辑/etc/nixos/configuration.nix
(这时候就可以把gnome的代码注释掉,相当于完全卸载gnome)
# Enable Hyprland
programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
services.xserver.displayManager.gdm.enable = true;
然后编辑"environment.systemPackages":
{ config, lib, pkgs, ... }:
{
......(省略前面的配置)
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
###### Hyprland ###########
libsForQt5.qt5.qtwayland
kdePackages.qtwayland
hyprland
pyprland
xwayland
hyprpicker
hyprcursor
hyprlock
hypridle
hyprpaper
waypaper
hyprshot
kitty
waybar
wofi
wlogout
dunst
hyprshade
];
}
里面的一些软件你们自行决定,像wofi和rofi,我用的是wofi,因为我感觉rofi在wayland下运行不太好。
弄好好退出编辑,再更新一次:
nixos-rebuild switch
最后重启:
reboot
再次进入gdm后选择Hyprland会话,就可以愉快地使用Hyprland了。
六、设置中文输入法
NixOS设置中文输入法也不难,加入:
# fcitx5
environment.variables = {
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
};
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-rime
fcitx5-chinese-addons
];
};
PS;下面是我用的字体:
# Fonts
fonts.packages = with pkgs; [
jetbrains-mono
nerd-font-patcher
noto-fonts-color-emoji
];
你也可以自己选择别的字体。
退出后更新系统
nixos-rebuild switch
重启,进入命令行输入
fcitx5-configtool
增加rime
在托盘的rime设置选择简化字就可以输入简体中文了。
七、结语
总的来说,NixOS确实是一个很好的发行版,我愿意称之为先天服务器圣体,它的可复现性真的很有用,现在我已经回不去Arch了,我的老年西数硬盘可经不起Arch的折腾,至少当这块硬盘爆了后,我可以从容地买一块新硬盘,然后拷贝我的备份的配置文件,然后复现我的系统。
但还是有一点要说明,学习NixOS前前后后一共花费了我差不多一周的时间,所以这个系统只时候有时间和经理去折腾的人。
当然,我只入门NixOS不到一周,有些东西我也不清楚,这个教程和我的看法仅代表我个人见解,供大家参考。
下面是成品:
更多推荐
所有评论(0)