my nix dotfiles
1{ config
2, pkgs
3, self
4, host
5, lib
6, inputs
7, ...
8}:
9
10let
11 mkTuple = lib.hm.gvariant.mkTuple;
12in
13{
14
15 imports = [
16 ./programs
17 ./services
18 ];
19
20 fonts.fontconfig.enable = true;
21 manual.manpages.enable = true;
22
23 home.stateVersion = "24.11";
24 home.username = "icy";
25 home.homeDirectory = "/home/icy";
26 home.extraOutputsToInstall = [ "man" ];
27
28 home.packages = [
29 pkgs.git
30 pkgs.unzip
31 pkgs.curl
32 pkgs.tmux
33 pkgs.ripgrep
34 pkgs.fd
35 pkgs.imagemagick
36 pkgs.ffmpeg
37 pkgs.wget
38 pkgs.tree
39 pkgs.mpv
40 pkgs.noto-fonts-cjk-sans
41 pkgs.noto-fonts-emoji
42 pkgs.jq
43 pkgs.yq-go
44 pkgs.fzy
45 pkgs.nixpkgs-fmt
46 pkgs.libnotify
47 pkgs.signal-desktop
48 pkgs.calibre
49 pkgs.pinentry
50 pkgs.libreoffice
51 pkgs.go
52 pkgs.dconf
53 pkgs.chromium
54 pkgs.nix-your-shell
55 pkgs.geary
56 pkgs.pass
57 pkgs.newsflash
58 pkgs.errands
59 pkgs.wl-clipboard
60 pkgs.nvtop
61 pkgs.vesktop
62 pkgs.smile
63 pkgs.apostrophe
64
65 pkgs.gnome-pomodoro
66 pkgs.gnome-tweaks
67 pkgs.gnome-shell-extensions
68 pkgs.gnomeExtensions.appindicator
69 pkgs.gnomeExtensions.dash-to-dock
70 pkgs.gnomeExtensions.search-light
71 pkgs.gnomeExtensions.hide-top-bar
72
73 pkgs.prompt
74 pkgs.zed-editor
75 # inputs.zed.packages.${pkgs.system}.zed-editor
76
77 ] ++ (import ./bin { inherit pkgs host; });
78
79 dconf.settings = {
80 "org/gnome/mutter" = {
81 experimental-features = [ "scale-monitor-framebuffer" ];
82 };
83 "org/gnome/desktop/input-sources" = {
84 show-all-sources = true;
85 sources = [
86 (mkTuple [
87 "xkb"
88 "us+workman"
89 ])
90 (mkTuple [
91 "xkb"
92 "us"
93 ])
94 ];
95 xkb-options = [
96 "terminate:ctrl_alt_bksp"
97 "compose:ralt"
98 ];
99 };
100 "org/gnome/mutter" = {
101 overlay-key = [ "" ];
102 };
103 "org/gnome/shell/extensions/search-light" = {
104 shortcut-search = [ "<Super>space" ];
105 };
106 "org/gnome/settings-daemon/plugins/media-keys" = {
107 screensaver = [ "<Control><Super>q" ];
108 };
109
110 "org/gnome/shell/keybindings" = {
111 show-screenshot-ui = [ "<Shift><Control>4" ];
112 };
113
114 "org/gnome/shell/keybindings/screenshot-window" = {
115 screenshot-window = [ "<Shift><Super>space" ];
116 };
117
118 "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
119 binding = [ "<Control>;" ];
120 command = "smile";
121 name = "emoji";
122 };
123 };
124
125 xdg = {
126 userDirs = {
127 enable = true;
128 desktop = "\$HOME/desktop";
129 documents = "\$HOME/docs";
130 download = "\$HOME/downloads";
131 pictures = "\$HOME/pics";
132 videos = "\$HOME/vids";
133 };
134 };
135
136}