blob: cab72f8900230aedc62d4502924a09777a448838 (
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
|
{
lib,
config,
pkgs,
inputs,
...
}: let
inherit (lib) mkEnableOption mkIf optionals;
cfg = config.desktop;
in {
imports = [
./waybar
./wofi
./astal.nix
./hypridle.nix
./hyprland.nix
./hyprlock.nix
./hyprpaper.nix
./mako.nix
];
options.desktop = {
enable = mkEnableOption "Enable baseline desktop utils and programs.";
astal = mkEnableOption "Enable the astal gtk shell.";
hypridle = mkEnableOption "Enable the hypridle daemon.";
hyprland = mkEnableOption "Install the Hyprland desktop.";
hyprlock = mkEnableOption "Enable the hyprlock lockscreen.";
hyprpaper = mkEnableOption "Enable the hyprpaper wallpaper daemon.";
mako = mkEnableOption "Enable the mako notification daemon.";
waybar = mkEnableOption "Enable the waybar bar.";
wofi = mkEnableOption "Enable the wofi launcher.";
};
config = mkIf cfg.enable {
home-manager.users.${config.user} = {
# desktop specific programs
home.packages = with pkgs; [
# gtk
adwaita-icon-theme
# codecs
libaacs
libavif
libbluray
libjxl
# wayland
cage
grimblast
wl-clipboard
wl-clip-persist
wl-mirror
# xdg
libnotify
];
};
# desktop only fonts
fonts.packages =
(with pkgs; [
corefonts
dejavu_fonts
fira-code
fira-code-symbols
jetbrains-mono
material-icons
nerd-fonts.fira-code
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
twemoji-color-font
vistafonts
])
++ (with inputs.apple-fonts.packages.${pkgs.system}; [
sf-pro
sf-mono
sf-compact
]);
fonts.fontconfig = {
enable = true;
defaultFonts = {
serif = [
"Twemoji"
"DejaVu Serif"
];
sansSerif = [
"Twemoji"
"DejaVu Sans"
];
monospace = [
"Fira Code"
"FiraCode Nerd Font Mono"
"Font Awesome 6 Pro Regular"
"Twemoji"
"DejaVu Sans Mono"
];
emoji = [
"Twemoji"
"Noto Color Emoji"
];
};
};
};
}
|