about summary refs log tree commit diff
path: root/modules/gnome.nix
blob: 314e84375dcf6f68eb658c1347893270adc7f551 (plain)
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
{ pkgs, ... }:
let
	switch-theme = pkgs.writeShellScriptBin "switch-theme" (builtins.readFile ./switch-theme.sh);
in
{
# Enable the X11 windowing system.
	services.xserver.enable = true;

# Enable the GNOME Desktop Environment.
	services.xserver.displayManager.gdm.enable = true;
	services.xserver.desktopManager.gnome.enable = true;
	services.xserver.desktopManager.xterm.enable = false;
	services.xserver.excludePackages = [ pkgs.xterm ];

	environment.gnome.excludePackages = with pkgs.gnome; [
		pkgs.epiphany
		baobab totem yelp file-roller seahorse gnome-clocks pkgs.gnome-connections
			pkgs.gnome-tour
	];

	programs.dconf = {
		enable = true;
		profiles.user.databases = [
			{
				lockAll = true;
				settings = {
					"org/gnome/shell" = {
						favorite-apps = [ "brave-browser.desktop" "org.gnome.Geary.desktop" "org.gnome.Nautilus.desktop" ];
					};

					"org/gnome/desktop/interface" = {
						enable-hot-corners = false;
						show-battery-percentage = true;
					};

					"org/gnome/desktop/wm/keybindings" = {
						close = ["<Super>q"];
					};
					
            				"org/gnome/settings-daemon/plugins/media-keys" = {
              					custom-keybindings = [
                					"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
                					"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
							"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" 
             					 ];
					};

            				"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
              					binding = "<Super>Return";
              					command = "kgx";
              					name = "GNOME Console";
            				};

					"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
              					binding = "TaskPane";
              					command = "switch-theme";
              					name = "Switch Theme";
            				};
					"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
              					binding = "Favorites";
              					command = "switch-theme";
              					name = "Switch Theme 2";
            				};


				};
			}
		];
	};

# Configure keymap in X11
	services.xserver = {
		xkb.layout = "pl";
		xkb.variant = "";
	};

# Configure console keymap
	console.keyMap = "pl2";

# Enable CUPS to print documents.
	services.printing.enable = true;

# Enable sound with pipewire.
	hardware.pulseaudio.enable = false;
	security.rtkit.enable = true;
	services.pipewire = {
		enable = true;
		alsa.enable = true;
		alsa.support32Bit = true;
		pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;


# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
	};

	boot.plymouth.enable = true;

	programs.kdeconnect = {
		enable = true;
		package = pkgs.gnomeExtensions.gsconnect;
	};

	environment.systemPackages = with pkgs; [
		switch-theme
		libnotify
		gnome.gnome-boxes
		gnome.file-roller
		gnomeExtensions.hibernate-status-button
		brave
		newsflash
		spotify
		fragments
		libreoffice
		signal-desktop
		vlc
	];

	fonts.packages = with pkgs; [
		#nerdfonts
	];

	nixpkgs.config.allowUnfree = true;

	documentation.nixos.enable = false;
}