dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
modules/desktop/gnome/_main.nix (4540B)
1{
2 util ? null,
3 files ? null,
4 ...
5}: {
6 nixos = {pkgs, ...}: {
7 # Desktop Integration
8 gui.qt = {
9 theme = "KvLibadwaitaDark";
10 package = pkgs.custom.kvlibadwaita;
11 };
12
13 # Color Scheme
14 stylix = {
15 base16Scheme = files.colors.adwaita;
16 targets.gnome.enable = false;
17 };
18
19 # Essential Utilities
20 services = {
21 udev.packages = [pkgs.gnome-settings-daemon];
22 telepathy.enable = true;
23 switcherooControl.enable = true;
24 gnome = {
25 core-developer-tools.enable = true;
26 gnome-remote-desktop.enable = true;
27 sushi.enable = true;
28 };
29 };
30
31 programs = {
32 gnupg.agent.pinentryPackage = pkgs.lib.mkForce pkgs.pinentry-gnome3;
33 kdeconnect = {
34 enable = true;
35 package = pkgs.gnomeExtensions.gsconnect;
36 };
37 };
38
39 # Screen Brightness
40 hardware.i2c.enable = true;
41
42 ## Package List
43 environment.systemPackages = with pkgs; [
44 ghostty
45 gnome-boxes
46 gnome-sound-recorder
47 gnome-tweaks
48 papers
49
50 # Games
51 gnome-chess
52 gnome-mines
53 quadrapassel
54
55 # Circle
56 apostrophe
57 curtail
58 deja-dup
59 dialect
60 fractal
61 fragments
62 gnome-decoder
63 gnome-secrets
64 gthumb
65 lollypop
66 resources
67 upscaler
68 video-trimmer
69 wike
70 wordbook
71
72 # Utilities
73 celluloid
74 ddcutil
75 gnuchess
76 ];
77 };
78
79 home = {pkgs, ...}: {
80 config = {
81 # Default Applications
82 xdg.mimeApps.defaultApplications = util.build.mime {
83 archive = ["org.gnome.FileRoller.desktop"];
84 audio = ["org.gnome.Lollypop.desktop"];
85 calendar = ["org.gnome.Calendar.desktop"];
86 document = ["org.gnome.Papers.desktop"];
87 directory = ["org.gnome.Nautilus.desktop"];
88 image = ["org.gnome.Loupe.desktop"];
89 magnet = ["de.haeckerfelix.Fragments.desktop"];
90 markdown = ["org.gnome.gitlab.somas.Apostrophe.desktop"];
91 password = ["org.gnome.World.Secrets.desktop"];
92 pdf = ["org.gnome.Papers.desktop"];
93 text = ["org.gnome.TextEditor.desktop"];
94 video = ["io.github.celluloid_player.Celluloid.desktop"];
95 virtualization = ["org.gnome.Boxes.desktop"];
96 };
97
98 # Persisted Files
99 home.persist.directories = [
100 ".config/evolution"
101 ".config/ghostty"
102 ".config/gnome-boxes"
103 ".config/gnome-builder"
104 ".local/share/epiphany"
105 ".local/share/evolution"
106 ".local/share/gnome-boxes"
107 ".local/share/gnome-builder"
108 ".local/share/lollypop"
109 ".local/share/nautilus"
110 ".local/share/sounds"
111 ".local/share/telepathy"
112 ".local/share/webkitgtk"
113 ".cache/evolution"
114 ".cache/fractal"
115 ".cache/gnome-builder"
116 ];
117
118 programs = {
119 # Terminal
120 ghostty = {
121 enable = true;
122 settings = {
123 clipboard-paste-protection = true;
124 clipboard-trim-trailing-spaces = true;
125 copy-on-select = false;
126 mouse-hide-while-typing = true;
127 quit-after-last-window-closed = true;
128 scrollback-limit = 4200;
129 shell-integration-features = true;
130 window-vsync = true;
131 keybind = [
132 "ctrl+h=goto_split:left"
133 "ctrl+j=goto_split:bottom"
134 "ctrl+k=goto_split:top"
135 "ctrl+l=goto_split:right"
136 "ctrl+shift+h=new_split:left"
137 "ctrl+shift+j=new_split:down"
138 "ctrl+shift+k=new_split:up"
139 "ctrl+shift+l=new_split:right"
140 "ctrl+shift+enter=new_split:auto"
141 "ctrl+shift+i=inspector:toggle"
142 "ctrl+shift+r=reload_config"
143 "ctrl+t=new_tab"
144 ];
145 };
146 };
147
148 # Browser
149 firefox = {
150 nativeMessagingHosts = [pkgs.gnome-browser-connector];
151 policies.ExtensionSettings = {
152 name = "gnome-shell-integration";
153 value = {
154 installation_mode = "normal_installed";
155 install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/chrome-gnome-shell@gnome.org/latest.xpi";
156 };
157 };
158 };
159 };
160
161 stylix.targets = {
162 gnome.enable = true;
163 ghostty.enable = true;
164 firefox = {
165 enable = true;
166 profileNames = ["default"];
167 firefoxGnomeTheme.enable = true;
168 };
169 };
170 };
171 };
172}