blob: f445e5cbd7850d4071698c47712b1150215fefa4 (
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
|
{ config
, pkgs
, lib
, ...
}: {
home.packages = with pkgs; [
darwin.trash
nh
maid
less
];
programs.emacs.package = pkgs.emacs29.overrideAttrs (old: {
NIX_CFLAGS_COMPILE = (old.NIX_CFLAGS_COMPILE or "") + " -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT";
});
home.file.".hushlogin".text = "";
launchd.agents = {
home-manager-expire-generations = {
enable = true;
config = {
ProgramArguments = [
"${pkgs.home-manager}/bin/home-manager"
"expire-generations"
"-30 days"
];
KeepAlive = false;
RunAtLoad = false;
StartCalendarInterval = [{
Hour = 12;
Minute = 00;
Weekday = 6; # Saturday
}];
ProcessType = "Background";
LowPriorityBackgroundIO = true;
};
};
setenv = {
enable = true;
config = {
ProgramArguments = [
"/bin/launchctl"
"setenv"
"XDG_CACHE_HOME"
config.xdg.cacheHome
];
RunAtLoad = true;
StandardErrorPath = "/dev/null";
StandardOutputPath = "/dev/null";
};
};
dark-light-mode = {
enable = true;
config = {
WatchPaths = [ "${config.home.homeDirectory}/Library/Preferences/.GlobalPreferences.plist" ];
StandardOutputPath = "/dev/null";
StandardErrorPath = "/dev/null";
RunAtLoad = true;
KeepAlive = false;
ProgramArguments = [
"/bin/sh"
(
toString
(
pkgs.writeShellScript
"toggle-dark-light-mode"
''
wait4path /nix
if defaults read -g AppleInterfaceStyle &>/dev/null ; then
MODE="dark"
else
MODE="light"
fi
emacsclient="${config.programs.emacs.finalPackage}/bin/emacsclient"
kitty="${pkgs.kitty}/bin/kitty +kitten themes --config-file-name=theme.conf --reload-in=all --cache-age=-1"
emacsSwitchTheme () {
if pgrep -q Emacs; then
if [[ $MODE == "dark" ]]; then
$emacsclient \
--eval "(stimmung-themes-load-dark)" \
--eval "(modify-all-frames-parameters '((ns-appearance '$MODE)))"
elif [[ $MODE == "light" ]]; then
$emacsclient \
--eval "(stimmung-themes-load-light)" \
--eval "(modify-all-frames-parameters '((ns-appearance '$MODE)))"
fi
fi
}
kittySwitchTheme () {
if pgrep -q kitty; then
if [[ $MODE == "dark" ]]; then
$kitty 'Modus Vivendi'
elif [[ $MODE == "light" ]]; then
$kitty 'Modus Operandi'
fi
fi
}
emacsSwitchTheme
kittySwitchTheme
''
)
)
];
};
};
};
home.shellAliases = {
rb = "nh os";
rbs = "nh os switch";
dig = "dig +noall +answer";
stat = "stat -x";
};
programs.ssh.extraConfig = ''
IdentityAgent ~/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh
'';
# Use GPG from GPGTools
programs.git.signing.gpgPath = "/usr/local/bin/gpg";
}
|