blob: 1202cd96066e21a097bc212a8678151ae93c38ed (
plain) (
blame)
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
|
{
pkgs,
lib,
...
}: let
cmd = pkgs.writeShellApplication {
name = "lf_wrapper";
runtimeInputs = [pkgs.lf pkgs.alacritty];
inheritPath = true;
text = builtins.readFile ./lf-wrapper.sh;
};
tfcConfigFile = (pkgs.formats.ini {}).generate "xdg-desktop-portal-termfilechooser.ini" {
filechooser = {
default_dir = "/tmp";
cmd = "${lib.getExe cmd}";
};
};
in {
services.dbus.enable = true;
xdg = {
portal = {
enable = true;
wlr = {
enable = true;
};
config = {
common = {
# NOTE: The next entry is supposedly needed for gtk based apps <2023-08-31>
default = ["wlr" "gtk"];
"org.freedesktop.impl.portal.FileChooser" = ["termfilechooser"];
};
# TODO: Also activate, when on another wlr-based compositor <2023-11-25>
river = {
default = ["wlr" "gtk"];
"org.freedesktop.impl.portal.FileChooser" = ["termfilechooser"];
};
};
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-termfilechooser
];
};
};
environment.etc."xdg/xdg-desktop-portal-termfilechooser/config".source = tfcConfigFile;
systemd.user.services.xdg-desktop-portal-termfilechooser = {
serviceConfig.ExecStart = [
""
"${pkgs.xdg-desktop-portal-termfilechooser}/libexec/xdg-desktop-portal-termfilechooser --loglevel=TRACE"
];
};
# TODO: mime = {};
}
|