mirror of
https://github.com/nix-community/home-manager
synced 2024-11-22 20:53:14 +00:00
espanso: enable module on darwin
This commit is contained in:
parent
9f32c66a51
commit
59d50bc582
5 changed files with 108 additions and 12 deletions
|
@ -1,11 +1,9 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
mkOption mkEnableOption mkIf maintainers literalExpression types platforms
|
mkOption mkEnableOption mkIf maintainers literalExpression types
|
||||||
mkRemovedOptionModule versionAtLeast;
|
mkRemovedOptionModule versionAtLeast;
|
||||||
|
|
||||||
inherit (lib.hm.assertions) assertPlatform;
|
|
||||||
|
|
||||||
cfg = config.services.espanso;
|
cfg = config.services.espanso;
|
||||||
espansoVersion = cfg.package.version;
|
espansoVersion = cfg.package.version;
|
||||||
|
|
||||||
|
@ -99,15 +97,12 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [{
|
||||||
(assertPlatform "services.espanso" pkgs platforms.linux)
|
assertion = versionAtLeast espansoVersion "2";
|
||||||
{
|
message = ''
|
||||||
assertion = versionAtLeast espansoVersion "2";
|
The services.espanso module only supports Espanso version 2 or later.
|
||||||
message = ''
|
'';
|
||||||
The services.espanso module only supports Espanso version 2 or later.
|
}];
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = [ cfg.package ];
|
home.packages = [ cfg.package ];
|
||||||
|
|
||||||
|
@ -131,5 +126,20 @@ in {
|
||||||
};
|
};
|
||||||
Install = { WantedBy = [ "default.target" ]; };
|
Install = { WantedBy = [ "default.target" ]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
launchd.agents.espanso = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
ProgramArguments = [ "${cfg.package}/bin/espanso" "launcher" ];
|
||||||
|
EnvironmentVariables.PATH =
|
||||||
|
"${cfg.package}/bin:/usr/bin:/bin:/usr/sbin:/sbin";
|
||||||
|
KeepAlive = {
|
||||||
|
Crashed = true;
|
||||||
|
SuccessfulExit = false;
|
||||||
|
};
|
||||||
|
ProcessType = "Background";
|
||||||
|
RunAtLoad = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,6 +163,7 @@ in import nmtSrc {
|
||||||
./modules/xresources
|
./modules/xresources
|
||||||
] ++ lib.optionals isDarwin [
|
] ++ lib.optionals isDarwin [
|
||||||
./modules/launchd
|
./modules/launchd
|
||||||
|
./modules/services/espanso-darwin
|
||||||
./modules/services/git-sync-darwin
|
./modules/services/git-sync-darwin
|
||||||
./modules/services/imapnotify-darwin
|
./modules/services/imapnotify-darwin
|
||||||
./modules/services/nix-gc-darwin
|
./modules/services/nix-gc-darwin
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
{ ... }: {
|
||||||
|
services.espanso = {
|
||||||
|
enable = true;
|
||||||
|
configs = { default = { show_notifications = false; }; };
|
||||||
|
matches = {
|
||||||
|
base = {
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
trigger = ":now";
|
||||||
|
replace = "It's {{currentdate}} {{currenttime}}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
trigger = ":hello";
|
||||||
|
replace = ''
|
||||||
|
line1
|
||||||
|
line2'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
regex = ":hi(?P<person>.*)\\.";
|
||||||
|
replace = "Hi {{person}}!";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
global_vars = [
|
||||||
|
{
|
||||||
|
name = "currentdate";
|
||||||
|
type = "date";
|
||||||
|
params = { format = "%d/%m/%Y"; };
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "currenttime";
|
||||||
|
type = "date";
|
||||||
|
params = { format = "%R"; };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
test.stubs.espanso = { };
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
serviceFile="LaunchAgents/org.nix-community.home.espanso.plist"
|
||||||
|
serviceFileNormalized="$(normalizeStorePaths "$serviceFile")"
|
||||||
|
assertFileExists $serviceFile
|
||||||
|
assertFileContent $serviceFileNormalized ${./launchd.plist}
|
||||||
|
|
||||||
|
configFile=home-files/.config/espanso/config/default.yml
|
||||||
|
assertFileExists "$configFile"
|
||||||
|
assertFileContent "$configFile" ${../espanso/basic-configuration.yaml}
|
||||||
|
|
||||||
|
matchFile=home-files/.config/espanso/match/base.yml
|
||||||
|
assertFileExists "$matchFile"
|
||||||
|
assertFileContent "$matchFile" ${../espanso/basic-matches.yaml}
|
||||||
|
'';
|
||||||
|
}
|
1
tests/modules/services/espanso-darwin/default.nix
Normal file
1
tests/modules/services/espanso-darwin/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ espanso-darwin-basic-configuration = ./basic-configuration.nix; }
|
29
tests/modules/services/espanso-darwin/launchd.plist
Normal file
29
tests/modules/services/espanso-darwin/launchd.plist
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>EnvironmentVariables</key>
|
||||||
|
<dict>
|
||||||
|
<key>PATH</key>
|
||||||
|
<string>@espanso@/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
|
||||||
|
</dict>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<dict>
|
||||||
|
<key>Crashed</key>
|
||||||
|
<true/>
|
||||||
|
<key>SuccessfulExit</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>org.nix-community.home.espanso</string>
|
||||||
|
<key>ProcessType</key>
|
||||||
|
<string>Background</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>@espanso@/bin/espanso</string>
|
||||||
|
<string>launcher</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Loading…
Reference in a new issue