最近回到家,又开始折腾nixos了,当前主题
fish+starship 安装及美化 @
最近把shell从zsh+p10k的模式切换成了fish+starship,发现fish的性能要好很多,同时starship的配置也很方便,配置如下,很简单。
{ config, pkgs, ... }:
{
home.packages = [ pkgs.starship ];
# 这里是starship的主题配置文件,网上可以随便找一个
home.file.".config/starship.toml".source = ./starship.toml;
programs.fish = {
enable = true;
# 这里是删除fish的欢迎信息
interactiveShellInit = ''
set fish_greeting
'';
};
programs.starship = {
enable = true;
package = pkgs.starship;
};
}
overview wallpaper配置 @
其实之前壁纸设置好之后,但在壁纸的缩略图中,背景还是灰色,很难看。其实需要将工作区的壁纸也同时配置在overview才行。
首先在niri-config.kdl配置文件添加这个layer-rule的设置
// Set the overview wallpaper on the backdrop.
layer-rule {
match namespace="^noctalia-overview.*"
place-within-backdrop true
}
然后在noctalia的配置里开启overview壁纸
wallpaper = {
enabled = true;
overviewEnabled = true; # 这里开启
useSolidColor = false;
directory = "${config.home.homeDirectory}/.config/noctalia/wallpapers";
viewMode = "crop";
wallpaperChangeMode = "random";
};
安装chrome和splayer @
chrome浏览器当然不用说,现在基本都用这个。splayer则是一个网易云的播放器,UI做的挺好看的,比较推荐, 安装也很简单。
home.packages = with pkgs; [
google-chrome
splayer
];
图标主题更换 @
我认为noctalia的默认主题有点丑,并且小部分应用是确实图标的,所以必须安装一个图标主题。我选择的是WhiteSur-dark。
按照以下配置即可,需要适配gtk2/gtk3/gtk4各种应用的图标主题。
{ config, pkgs, lib, ... }:
let
iconThemeName = "WhiteSur-dark";
in
{
gtk = {
enable = true;
iconTheme = {
name = iconThemeName;
package = pkgs.whitesur-icon-theme;
};
};
gtk.gtk3 = {
enable = lib.mkDefault true;
};
gtk.gtk4 = {
enable = lib.mkDefault true;
};
home.sessionVariables = {
XDG_ICON_THEME = iconThemeName;
QT_QPA_PLATFORMTHEME = "gtk3";
QS_ICON_THEME = iconThemeName;
};
home.packages = with pkgs; [
whitesur-icon-theme
hicolor-icon-theme
];
}
在hosts/default/defualt.nix,也就是全局环境变量,也需要配置, 否则可能不生效
environment.sessionVariables = {
QS_ICON_THEME = "WhiteSur-dark";
};
hyprlock锁屏 @
hyprlock是hyprland下的一个锁屏软件,但是niri也能用,新建一个hyprlock.nix用于管理hyprlock配置,然后在你的home.nix里import它。
具体配置如下
{pkgs, ...}: {
home.packages = with pkgs; [
hyprlock
];
programs.hyprlock.enable = true;
home.file."/.config/hypr/hyprlock.conf".source = ./hyprlock.conf;
}
hyprlock.conf的内容如下, 这份配置是我在github抄的配置,如有侵权,请联系我删除。
# ~/.config/hypr/hyprlock.conf - 轻松惬意中文版
general {
hide_cursor = true
immediate_render = true
no_fade_in = true
fail_timeout = 2500
}
# 背景设置 - 柔焦效果
background {
monitor =
path = screenshot
# path = /home/youth/wallpapers/wallpaper1.png
blur_passes = 3 # 适度模糊
blur_size = 8 # 柔和程度
noise = 0.03 # 轻微噪点
contrast = 0.95 # 柔和对比
brightness = 1.02 # 稍暗背景
# color = rgba(44, 51, 71, 0.9)
}
# 用户头像 - 圆形设计
image {
monitor =
size = 128
rounding = -1 # 正圆形
border_size = 3
border_color = rgba(143, 188, 187, 0.8) # 薄荷绿边框
position = 0, -180
halign = center
valign = center
shadow_passes = 2
shadow_size = 5
shadow_color = rgba(0, 0, 0, 0.15)
}
# 用户名显示 - 中文友好字体
label {
monitor =
text = <span font_weight="bold">你好,$USER</span>
color = rgba(236, 239, 244, 0.9) # 雪白色
font_size = 24
font_family = "Noto Sans CJK SC" # 中文更友好的字体
position = 0, -120
halign = center
valign = center
}
# 时间显示 - 主视觉焦点
label {
monitor =
text = cmd[update:1000] echo "<span font_weight='bold'>$(date +"%H:%M")</span>"
color = rgba(216, 222, 233, 0.95) # 淡冰川蓝
font_size = 64
font_family = "JetBrains Mono Nerd Font"
position = 0, 0
halign = center
valign = center
}
# 日期显示 - 中文格式
label {
monitor =
text = cmd[update:60000] echo "<span>$(LC_TIME=zh_CN.UTF-8 date +"%Y年%m月%d日 %A")</span>"
color = rgba(180, 196, 211, 0.9) # 浅钢蓝
font_size = 18
font_family = "Noto Sans CJK SC"
position = 0, 70
halign = center
valign = center
}
# 密码输入框 - 圆润设计
input-field {
monitor =
size = 360, 56
outline_thickness = 0
dots_size = 0.3
dots_spacing = 0.15
rounding = 28 # 椭圆造型
inner_color = rgba(76, 86, 106, 0.6) # 深灰蓝
font_color = rgb(228, 229, 232)
font_family = "JetBrains Mono Nerd Font"
placeholder_text = <i><span foreground="##a6b0c0">请输入密码...</span></i>
hide_input = false
check_color = rgba(163, 190, 140, 1.0) # 抹茶绿
fail_color = rgba(191, 97, 106, 1.0) # 珊瑚红
fail_text = <i><span foreground="##BF616A">$FAIL (尝试 $ATTEMPTS 次)</span></i>
position = 0, 150
halign = center
valign = center
}
# 系统信息 - 更简约
label {
monitor =
text = cmd[update:10000] echo "<span>$(uname -n) · 运行 $(uptime -p | sed -e 's/up //' -e 's/days/天/' -e 's/hours/小时/' -e 's/minutes/分钟/')</span>"
color = rgba(158, 173, 191, 0.8) # 灰蓝色
font_size = 12
font_family = "Noto Sans CJK SC"
position = 20, -20
halign = left
valign = bottom
}
# 键盘布局 - 中文标识
label {
monitor =
text = <span>$LAYOUT[EN,中文]</span>
color = rgba(166, 218, 214, 0.9) # 浅水绿色
font_size = 14
font_family = "Noto Sans CJK SC"
position = -20, -20
halign = right
valign = bottom
}
# 指纹提示 - 中文显示
label {
monitor =
text = cmd[update:1000] if [ "$(systemctl is-active fprintd)" = "active" ]; then echo "<span font_size='14'>🖐️ 指纹识别就绪</span>"; fi
color = rgba(166, 218, 214, 0.9) # 与水绿色统一
position = 0, 100
halign = center
valign = center
}
fuzzel启动器 @
fuzzel是一个启动器,用来搜索系统中的应用程序,比较简洁,配置如下
{ ... }:
{
programs.fuzzel = {
enable = true;
settings = {
main = {
font = "JetBrainsMono Nerd Font:weight=bold:size=14";
line-height = 25;
fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty";
prompt = "' ➜ '";
icon-theme = "Papirus-Dark";
layer = "top";
lines = 10;
width = 35;
horizontal-pad = 25;
inner-pad = 5;
};
colors = {
background = "1e1e2ecc";
text = "cdd6f4ff";
match = "f38ba8ff";
selection = "b4befeaa";
selection-match = "f38ba8ff";
selection-text = "cdd6f4ff";
border = "b4befeff";
};
border = {
radius = 15;
width = 3;
};
};
};
}
结尾 @
由于目前的flake项目已经相对完善了,于是我可以把github的链接放出来,给大家参考,因为我也是参考了很多别人的配置写的,希望nixos社区越来越好。 我的nixos-config