blob: 7c2e31c6cc1789a0e6d26ec8b7caf3b078b34bc0 (
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
|
{ config, pkgs, lib, ... }:
let
emacsPackage = import ../packages/emacs.nix {
pkgs = pkgs.unstable;
};
editorScript = pkgs.writeScriptBin "edit" ''
#!${pkgs.runtimeShell}
if [ -z "$1" ]; then
exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs
else
exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@"
fi
'';
desktopApplicationFile = pkgs.writeTextFile {
name = "emacsclient.desktop";
destination = "/share/applications/emacsclient.desktop";
text = ''
[Desktop Entry]
Name=Emacsclient
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=${editorScript}/bin/edit %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;
'';
};
in
{ programs.browserpass.enable = true;
documentation.info.enable = true;
nixpkgs.config.firefox.enableOfficialBranding = true;
environment.systemPackages = with pkgs; [
aria2
firefox
pcmanfm
epdfview
geeqie
fish # for emacs-fish-completion
emacsPackage
editorScript
termite
lxappearance
python3Packages.keyring
isync
msmtp
html2text
weechat
unstable.pass-otp
mpv
mosh
aspell
aspellDicts.en
cifs-utils
hexchat
signal-desktop
trash-cli
] ++ (if !stdenv.isDarwin
then [
unstable.mu
]
else []);
nixpkgs.config.allowUnfree = true;
services.compton = {
enable = true;
};
services.devmon.enable = true;
environment.sessionVariables.TERMINAL = "termite";
# termite sets a custom TERM whose definition isn't installed by
# default. I SSH into too many servers to set this up on every
# single one of them, and some get recreated anyway
environment.sessionVariables.TERM = "xterm-color";
services.nscd.enable = true;
systemd.services.nscd.wantedBy = lib.mkForce [];
systemd.timers.nscd = {
description = "Delayed startup of nscd";
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "1 min";
};
};
systemd.user.services.trash-clean = {
path = with pkgs; [ trash-cli ];
description = "Remove old files from FreeDesktop.org trash";
serviceConfig = {
Type = "oneshot";
};
script = "trash-empty 30";
};
systemd.user.timers.trash-clean = {
wantedBy = [ "default.target" ];
timerConfig = {
OnCalendar = "weekly";
Persistent = true;
};
};
environment.variables = {
# This is required so that GTK applications launched from Emacs
# get properly themed:
GTK_DATA_PREFIX = "${config.system.path}";
EDITOR = lib.mkOverride 900 "${editorScript}/bin/edit";
};
services.redshift = {
enable = true;
temperature = {
day = 6500;
night = 3600;
};
};
programs.dconf.enable = true;
services.gnome3 = {
gnome-keyring.enable = true;
seahorse.enable = true;
at-spi2-core.enable = true;
};
imports = [
./services/xserver.nix
];
}
|