about summary refs log tree commit diff
path: root/machines/x220-gnome/gnome.nix
blob: 42f189944c2d958948ca0474e004cb273f5a22b0 (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
{ pkgs, ... }:
{
# 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
	];

	services.xserver.desktopManager.gnome.extraGSettingsOverrides = ''
		[org.gnome.shell]
		favorite-apps = [ "brave-browser.desktop", "org.gnome.Geary.desktop", "org.gnome.Nautilus.desktop" ]

		[org.gnome.desktop.wm.keybindings]
		close = ["<Super>q"]

		[org.gnome.settings-daemon.plugins.media-keys]
		custom-keybindings = ["org/gnome/settings-daemon/plugins/media-keys/custom0/"]

		[org.gnome.settings-daemon.plugins.media-keys.custom0]
		binding = ["<Super><Enter>"]
		command = ["kgx"]
		name = ["GNOME Console"]
	'';

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

# 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;
	};

	environment.systemPackages = with pkgs; [
		libnotify
		gnome.gnome-boxes
		brave
		newsflash
		spotify
		fragments
	];

# Wallpaper

	nixpkgs.overlays = [
      (self: super: {
        gnome = super.gnome.overrideScope' (selfg: superg: {
          gnome-shell = superg.gnome-shell.overrideAttrs (old: {
            patches = (old.patches or []) ++ [
              (let
                bg = pkgs.fetchurl {
		  url = "https://unsplash.com/photos/fzYFRJREmnQ/download?ixid=M3wxMjA3fDB8MXxzZWFyY2h8MTV8fHBvbGlzaCUyMG1vdW50YWluc3xlbnwwfHx8fDE3MjY0MjkwOTd8MA&force=true&h=1080";
		  sha256 = "sha256-4vK8x7bSm2DogBqb494MondL1q0Q549zc0EgNc33XmQ=";
                };
              in pkgs.writeText "bg.patch" ''
                --- a/data/theme/gnome-shell-sass/widgets/_login-lock.scss
                +++ b/data/theme/gnome-shell-sass/widgets/_login-lock.scss
                @@ -15,4 +15,5 @@ $_gdm_dialog_width: 23em;
                 /* Login Dialog */
                 .login-dialog {
                   background-color: $_gdm_bg;
                +  background-image: url('file://${bg}');
                 }
              '')
            ];
          });
        });
      })
    ];

	nixpkgs.config.allowUnfree = true;

	documentation.nixos.enable = false;
}