infra/nix/home-manager/programs/espanso.nix

74 lines
2.1 KiB
Nix
Raw Normal View History

2023-11-23 17:52:21 +01:00
{pkgs, ...}: {
services.espanso = {
# package = pkgs.espanso.overrideAttrs(_: {
# # src =
# })
enable = true;
2023-11-23 17:52:21 +01:00
configs = {
default = {
# backend = "Inject";
# backend = "Clipboard";
};
2023-11-23 17:52:21 +01:00
};
matches = let
playerctl = ''
${pkgs.coreutils}/bin/env DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(${pkgs.coreutils}/bin/id -u)/bus" ${pkgs.playerctl}/bin/playerctl'';
in {
default = {
matches = [
{
trigger = ":vpos";
replace = "{{output}}";
vars = [
{
name = "output";
type = "script";
params = {
args = [
(pkgs.writeScript "espanso" ''
#! ${pkgs.python3}/bin/python
import subprocess, os, math, datetime
2023-11-23 17:52:21 +01:00
id=str(os.getuid())
result=subprocess.run(args=["${pkgs.playerctl}/bin/playerctl", "position"], env={"DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/"+id+"/bus"},capture_output=True)
result.check_returncode()
2023-11-23 17:52:21 +01:00
position_secs = math.trunc(float(result.stdout))
position_human = datetime.timedelta(seconds=position_secs)
print("%s - %s" % (position_human, position_secs))
'')
];
};
}
];
}
{
trigger = ":vtit";
replace = "{{output}}";
vars = [
{
name = "output";
type = "script";
params = {
args = [
(pkgs.writeShellScript "espanso"
"${playerctl} metadata title")
];
};
}
];
}
{
trigger = ":dunno";
replace = "¯\\_()_/¯";
}
2024-01-18 14:59:17 +00:00
{
trigger = ":shrug";
replace = "¯\\_()_/¯";
}
2023-11-23 17:52:21 +01:00
];
};
};
};
}