blob: d72d02cf4736e39875969ef1b022b6f54c7024ff (
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
|
{pkgs, lib, ...}: {
# Desktop environment - Niri compositor
programs.niri.enable = true;
# Display manager - GDM
services.displayManager = {
gdm = {
enable = true;
banner = "Meow :3";
};
defaultSession = "niri";
};
# Polkit fix for Niri
security.polkit.enable = true;
systemd.user.services.niri-flake-polkit.enable = false;
systemd.user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = ["graphical-session.target"];
wants = ["graphical-session.target"];
after = ["graphical-session.target"];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
# Audio - Pipewire
programs.noisetorch.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
environment.systemPackages = with pkgs; [
playerctl
pulsemixer
];
# XDG portals
xdg.portal.extraPortals = [
pkgs.xdg-desktop-portal-cosmic
];
xdg.portal.config.common.default = [
"gnome"
];
# Fonts
nixpkgs.config.packageOverrides = pkgs: {
google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
owner = "google";
repo = "fonts";
rev = "0bd2d5599819aa0774f5ca64c8ac3f54ae3fd54f";
sha256 = "sha256-E89GYJKG65Dh7TPI6TVre/4LCxXnxvTAPYS/OPj7nPg=";
};
installPhase =
oldAttrs.installPhase
+ "mv $out/share/fonts/truetype $out/share/fonts/ttf\n"
+ "rm $out/share/fonts/ttf/Noto*Emoji*.ttf";
});
};
fonts = {
packages = with pkgs; [
nerd-fonts.fira-code
nerd-fonts.departure-mono
google-fonts
noto-fonts-color-emoji
montserrat
atkinson-hyperlegible
arkpandora_ttf
liberation_ttf
caladea
carlito
garamond-libre
ocr-a
amiri
libertine
inter
b612
departure-mono
yasashisa-gothic
];
fontDir.enable = true;
};
# Stylix configuration - Gruvbox Dark Hard
stylix = {
enable = true;
polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
fonts = {
serif = {
package = pkgs.libertine;
name = "Linux Libertine O";
};
sansSerif = {
package = pkgs.atkinson-hyperlegible;
name = "Atkinson Hyperlegible";
};
monospace = {
package = pkgs.nerd-fonts.departure-mono;
name = "Departure Mono Nerd Font";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
};
};
# Flatpak & misc services
services.flatpak.enable = true;
services.illum.enable = true;
services.upower.enable = true;
}
|