blob: 1ef5354292e2630c673a518e946f8bb64e689242 (
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
{ config, lib, pkgs, ... }:
with lib;
let
cnf = config.cynerd.desktop;
in {
options = {
cynerd.desktop = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable my desktop";
};
laptop = mkOption {
type = types.bool;
default = false;
description = "The desktop requires Laptop extensions";
};
};
};
config = mkIf cnf.enable {
cynerd.hosts.enable = true;
# TODO autologin but only on tty1
services.gpm.enable = true;
programs.sway.enable = true;
programs.sway.extraPackages = with pkgs; [
gnome.dconf-editor
glib gsettings-desktop-schemas
i3blocks sysstat
wofi rofimoji wev
swaybackground myswaylock
alacritty
kanshi wdisplays wayvnc wl-mirror
slurp grim
xdg-desktop-portal-wlr xdg-desktop-portal-gtk pipewire wf-recorder
wl-clipboard wl-color-picker
swayidle
dunst
isync msmtp notmuch astroid
taskwarrior vdirsyncer khal khard
gnupg pass pinentry-gnome pinentry-curses
firefox chromium
ferdi
libreoffice
mupdf pdfgrep
xdg-utils xdg-launch
mesa-demos vulkan-tools
pulsemixer
mpd mpc-cli ncmpcpp
feh shotwell id3lib
vlc mpv youtube-dl
delft-icon-theme gnome3.adwaita-icon-theme
vanilla-dmz
sound-theme-freedesktop
gucharmap
samba cifs-utils
tigervnc freerdp
kdeconnect
hdparm ethtool multipath-tools
usb-modeswitch
v4l-utils
# Calculating
python3Packages.numpy python3Packages.sympy python3Packages.matplotlib
# Creation
simple-scan
audacity
gimp inkscape
blender
kdenlive
# GStreamer
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-ugly
gst_all_1.gst-plugins-viperfx
] ++ (optionals cnf.laptop [
# Power management
powertop
acpi
]);
programs.vim.package = pkgs.vimHugeX;
programs.shellrc.desktop = true;
xdg.portal.enable = true;
xdg.portal.wlr.enable = true;
xdg.portal.gtkUsePortal = true;
xdg.mime.defaultApplications = {
"application/pdf" = [ "mupdf.desktop" ];
};
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
enableBrowserSocket = true;
};
services.dbus.packages = [ pkgs.gcr ];
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
security.rtkit.enable = true;
services.printing = {
enable = true;
drivers = with pkgs; [
gutenprint gutenprintBin
cnijfilter2
];
};
services.samba-wsdd = {
enable = true;
discovery = true;
};
networking.firewall.allowedTCPPorts = [ 5357 ];
networking.firewall.allowedUDPPorts = [ 3702 ];
fonts.fonts = with pkgs; [
arkpandora_ttf
corefonts
dejavu_fonts
font-awesome
freefont_ttf
hack-font
liberation_ttf
libertine
noto-fonts
noto-fonts-emoji
terminus_font_ttf
ubuntu_font_family
unifont
];
services.udev.extraRules = ''
ACTION=="add|change", KERNEL=="sd*[!0-9]", ATTR{queue/scheduler}="bfq"
'';
hardware.opengl.driSupport = true;
hardware.opengl.driSupport32Bit = true;
hardware.bluetooth.enable = mkIf cnf.laptop true;
};
}
|