-
Notifications
You must be signed in to change notification settings - Fork 0
/
home.nix
227 lines (218 loc) · 6.84 KB
/
home.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# ---- METADATA ----
# Target: ~/.config/home-manager/home.nix
# Author: Hentioe (绅士喵)
# CreatedAt: 2021-03-09
# UpdatedAt: 2024-11-10
# ---- METADATA ----
{
config,
pkgs,
callPackage,
...
}:
let
personal = rec {
# Define some variables
username = "hentioe";
homeDirectory = "/home/${username}";
# git clone [email protected]:Hentioe/nur-packages.git ~/.nur-packages
localNurPackages = "${homeDirectory}/.nur-packages";
# git clone [email protected]:NixOS/nixpkgs.git ~/.nixpkgs
localNixpkgsRepo = "${homeDirectory}/.nixpkgs";
# Localized Nix repository
localizedNixpkgs = import "${localNixpkgsRepo}/default.nix" { };
};
in
rec {
# Nix 的版本
nix.package = pkgs.nixVersions.latest;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# McFly(Shell 历史搜索)
programs.mcfly.enable = true;
# MPV 播放器
programs.mpv = {
enable = true;
scripts = [
pkgs.mpvScripts.thumbfast
pkgs.mpvScripts.autosubsync-mpv
pkgs.mpvScripts.uosc
];
};
# OBS(屏幕录制/推流)
programs.obs-studio = {
enable = true;
plugins = [
pkgs.obs-studio-plugins.obs-vaapi
];
};
# 轻量级图片查看器
programs.feh.enable = true;
# Flameshot 截图工具
services.flameshot.enable = true;
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = personal.username;
home.homeDirectory = personal.homeDirectory;
fonts.fontconfig.enable = true;
nixpkgs.overlays = [
(import "${personal.localNurPackages}/overlay.nix")
];
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
inherit pkgs;
};
};
};
# 用户软件包列表
home.packages = with pkgs; [
# 本地 NUR 软件包
electronqq # 基于 Electron 的官方 Linux QQ
trzsz-ssh # 命令行版 SSH 连接管理
tcping2
pping
# 系统外观
jetbrains-mono # Jetbrains 的等宽字体
papirus-icon-theme # Papirus 图标主题包
#qogir-kde # KDE 主题
# 非自由软件
discord # Discord
telegram-desktop # Telegram
microsoft-edge # Edge 浏览器
google-chrome # Chrome 浏览器
#googleearth-pro # Google 地球
android-studio
# 多媒体工具
peek # 屏幕录制机
gimp # 图像编辑器
#kdenlive # 视频编辑器
libavif # AVIF 工具集/库
# 游戏
minetest
# 系统工具
qemu # 模拟器
virt-manager # 虚拟机管理器
unzip # .zip 解压/压缩
unrar # .rar 解压
ark # 解压工具
openssl # SSL 工具包
gparted # GUI 分区编辑工具
bootiso # USB 启动器制作
# 实用工具
amdgpu_top # 查看 AMD 显卡占用
yt-dlp # 替代 youtube-dl 的视频下载器
rclone # 支持多网盘的同步工具
termius # 多窗口 SSH 客户端
remmina # RDP 客户端
mosh # 使用 UDP 协议的 SSH 替代品
#obsidian # Markdown 编辑器
mailspring # 邮件客户端
ffmpeg-full # 音视频工具集
av1an # 命令行 AV1 视频/图像转换工具
svt-av1 # SVT AV1 编码器
libaom # AOM 的 AV1 编码器
rav1e # Xiph 的 AV1 编码器
imagemagick # 全能的图片转换工具
magic-wormhole # 使用令牌传输文件
warp # 窗口化 magic-wormhole 文件传输
syncthing # 私有文件同步工具
upscayl # 图片 AI 放大
lux # Go 实现的命令行下载器
# 独立的命令行工具
autojump # 快捷跳转目录
htop # 查看进程信息
iperf3 # 网速测试
wrk # HTTP 服务基准测试
sysbench # CPU 基础测试
pciutils # PCI 实用程序
gping # 带有图表的 ping
liquidctl # 查看水冷温度
xorg.xdpyinfo # 显示 X 服务器信息
vulkan-tools # 显示 Vulkan 信息
speedtest-cli # 网速测试
radeontop # 查看 AMD GPU 占用
fastfetch # C 实现的类 neofetch
payload-dumper-go # 解压 Android ROM
tree # 以树状显示目录的结构
aria2 # 下载工具
wget # 网络文件检索
dua # 查看文件占用
gdu # 交互式查看文件占用
yazi # 命令行文件管理器
bandwhich # 查看网络使用情况
dysk # 查看文件系统信息
procs # ps 的替代品
bottom # btm 命令,htop 的替代品
lsd # ls 的替代品
xh # curl 的替代品
git-interactive-rebase-tool # 交互式 git rebase
figlet # 将文字转换为 ASCII Art
# 编程语言工具链
clang # Clang
android-tools # Android 平台工具集
rustup # Rustup
nodejs # Node.js
bun # Bun
typescript # Typescript 编译器
dotnet-sdk # .NET Core
lua # Lua
lua-language-server # Lua 语言服务器
#flutter # 跨平台 UI 框架
# 开发环境工具
vscode # VS Code
fantomas # F# 代码格式化
#android-studio # Android Studio
platformio # PlatformIO
just # 命令运行器(在一般任务场景中替代 make)
cloc # 统计代码行数
tokei # 统计代码行数(现代化)
insomnia # 图形化 HTTP 客户端
jq # 命令行解析 JSON
htmlq # 命令行解析 HTML
bat # 支持高亮显示的 cat 克隆
inotify-tools # 提供 inotify 接口
imhex # Hex 编辑器
personal.localizedNixpkgs.mise # 替代 asdf 的版本管理工具
dblab # 命令行数据库客户端
websocat # WebSocket 客户端
helix # 替代 Vim 的终端编辑器
# 一些无聊的小程序
cowsay # 打印一只牛替你表达
oneko # 创造一只猫跟随你的鼠标
hollywood # 假装你很忙
# 其它工具
screenkey # 在屏幕上显示按键
gpick # 取色器
anki-bin # Anki 桌面版
#bitwarden # 密码管理器
firefox # Firefox 浏览器
f2fs-tools # mkfs.f2fs 命令
tor-browser-bundle-bin # Tor 浏览器
freecad # 开源 CAD
openscad # 基于代码建模的开源 CAD
fstl # 3D 模型查看器
#cura # Cura 切片软件
meshlab # 3D 模型文件编辑
#google-cloud-sdk-gce # GCP 命令行客户端
#azure-cli # Azure 命令行客户端
#awscli2 # AWS 命令行客户端
inkscape # 矢量图形编辑器
#blender # 3D 创作工具
mumble # 语音软件
#stellarium # 天象模拟
#libreoffice # 开源的 Office 替代品
(wxGTK32.override { withWebKit = true; })
];
#config.permittedInsecurePackages = [];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
}