/
home.nix
192 lines (188 loc) · 4.51 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
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{ inputs, lib, config, pkgs, ... }:
let
dotfiles_dir = /home/henri/Documents/dotFiles;
my-packages = /home/henri/Documents/houseOfNixAndPain;
waterfox = (import "${my-packages}/waterfox" { pkgs = pkgs; });
in
{
# You can import other home-manager modules here
imports = [
./modules/services
./modules/programs
./modules/languages
./unstable-packages.nix
];
nixpkgs = {
# You can add overlays here
overlays = [
# https://github.com/NixOS/nixpkgs/issues/157101
(self: super: {
waybar = super.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
});
})
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
allowUnfreePredicate = (_: true);
};
};
home = {
username = "henri";
homeDirectory = "/home/henri";
sessionVariables = {
# FCITX input-related
GTK_IM_MODULE="ibus";
QT_IM_MODULE="ibus";
XMODIFIERS="@im=ibus";
GLFW_IM_MODULE="ibus";
INPUT_METHOD ="ibus";
IMSETTINGS_MODULE ="ibus";
# Wayland compatibility
NIXOS_OZONE_WL = "1";
XDG_CURRENT_DESKTOP = "Sway";
QT_QPA_PLATFORM = "wayland";
CLUTTER_BACKEND ="wayland";
SDL_VIDEODRIVER = "wayland";
MOZ_ENABLE_WAYLAND = 1;
MOZ_WEBRENDER = 1;
XDG_SESSION_TYPE ="wayland";
# other
SUDO_EDITOR = "nvim";
EDITOR = "hx";
RIPGREP_CONFIG_PATH = "$HOME/.config/rg";
BROWSER = "firefox";
TERMINAL = "wezterm";
NNN_PLUG = "f:finder;o:fzopen;v:imgview;p:preview-tui;t:preview-tabbed";
NNN_OPTS = "Hed";
NNN_TMPFILE = "/tmp/nnn";
NNN_FIFO = "/tmp/nnn.fifo";
TLDR_AUTO_UPDATE_DISABLED = "false";
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
stateVersion = "23.05";
file = {
".config/neofetch/config.conf".source = "${dotfiles_dir}/.config/neofetch/config.conf";
"xprofile" = {
source = "${dotfiles_dir}/.config/.xprofile";
target = "./.xprofile";
};
};
# of note: do not define a package here and then program.<name>.enable = true; it will cause a conflict
packages = with pkgs; [
# dbs only
nitrogen
#battery
acpi
# auto mount drives
udisks
udiskie
# screenshots
slurp
grim
swappy
# flameshot # not working rn
gnumake
# wifi
# nmcli
# languages /fonts
noto-fonts-emoji
tldr
nixpkgs-fmt
#terraform
terraform-ls
# toml
taplo
# yaml
yamlfix
nodePackages.yaml-language-server
# json
nodePackages.vscode-json-languageserver
# nix
nil
# docker
dive
#lisp
#grammar
ispell
# bash
nodePackages.bash-language-server
shellcheck
# editing (3d/photos)
shotwell
# shell
gnupg
pinentry
# client
rclone
awscli2
linode-cli
# cli
unzip
zoxide
#3d printing/cad
super-slicer-latest
#keyboard
wally-cli
# gui/
slides # terminal based powerpoint
chafa # imag in terminal
onlyoffice-bin # word/excel/etc
rpi-imager
neofetch # show that nixos symbol
signal-desktop
gparted
vlc # the only media player allowerd
transmission-gtk
xfce.thunar
xfce.thunar-volman
slack
pulseaudioFull
firefox
waterfox
# social
zoom
# nix
nix-prefetch-git
# nfs
nfs-utils
# ssh
sshpass
# port
lsof
];
};
services = {
gpg-agent = {
enableSshSupport = true;
};
};
programs = {
gpg = {
enable = true;
};
ssh = {
# enable = true;
includes = [ "$HOME/.ssh/endeavourGit" "$HOME/.ssh/opsBox" ];
};
keychain = {
enable = true;
keys = [ "$HOME/.ssh/endeavourGit" ];
};
home-manager = {
enable = true;
};
rofi = {
enable = true;
};
};
xsession = {
windowManager.awesome.enable = true;
}; # Nicely reload system units when changing configs
# systemd.user.startServices = "sd-switch";
}