2025-01-14 17:35:06 +08:00
|
|
|
{
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
2025-11-09 06:25:03 +08:00
|
|
|
}: let
|
2025-01-14 17:35:06 +08:00
|
|
|
cfg = config.youthlic.gui;
|
2025-11-09 06:25:03 +08:00
|
|
|
in {
|
2025-05-02 15:36:40 +08:00
|
|
|
options = {
|
|
|
|
|
youthlic.gui.niri = {
|
|
|
|
|
};
|
|
|
|
|
};
|
2025-01-14 17:35:06 +08:00
|
|
|
config = lib.mkIf (cfg.enabled == "niri") {
|
2025-09-12 20:42:21 +08:00
|
|
|
# Enabled to support trash of nautilus
|
|
|
|
|
services.gvfs.enable = true;
|
2025-11-10 19:28:58 +08:00
|
|
|
|
|
|
|
|
systemd.user.services.niri-flake-polkit.serviceConfig.ExecStart = lib.mkForce "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";
|
|
|
|
|
|
2025-09-12 20:42:21 +08:00
|
|
|
environment = {
|
2025-11-09 06:25:03 +08:00
|
|
|
pathsToLink = ["share/thumbnailers"];
|
2025-09-12 20:42:21 +08:00
|
|
|
systemPackages = with pkgs; [
|
|
|
|
|
nautilus
|
|
|
|
|
nautilus-open-any-terminal
|
|
|
|
|
libheif
|
|
|
|
|
libheif.out
|
|
|
|
|
|
|
|
|
|
bluez
|
|
|
|
|
xwayland-satellite-unstable
|
|
|
|
|
evince
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-03-22 16:34:26 +08:00
|
|
|
xdg = {
|
2025-11-11 18:11:23 +08:00
|
|
|
portal = {
|
|
|
|
|
extraPortals = [
|
|
|
|
|
pkgs.xdg-desktop-portal-gtk
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-03-22 16:34:26 +08:00
|
|
|
terminal-exec = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = {
|
2025-11-09 06:25:03 +08:00
|
|
|
default = ["com.mitchellh.ghostty.desktop"];
|
2025-03-22 16:34:26 +08:00
|
|
|
};
|
|
|
|
|
};
|
2025-11-20 14:54:45 +08:00
|
|
|
mime = let
|
|
|
|
|
browsers = [
|
|
|
|
|
"zen-twilight.desktop"
|
|
|
|
|
"chromium-browser.desktop"
|
|
|
|
|
];
|
|
|
|
|
in {
|
2025-03-22 16:34:26 +08:00
|
|
|
enable = true;
|
|
|
|
|
defaultApplications = {
|
2025-06-24 21:42:12 +08:00
|
|
|
"application/pdf" = [
|
|
|
|
|
"org.gnome.Evince.desktop"
|
|
|
|
|
];
|
2025-03-22 16:34:26 +08:00
|
|
|
"inode/directory" = [
|
2025-09-12 20:42:21 +08:00
|
|
|
"org.gnome.Nautilus.desktop"
|
2025-03-22 16:34:26 +08:00
|
|
|
];
|
2025-11-20 14:54:45 +08:00
|
|
|
"text/html" = browsers;
|
|
|
|
|
"x-scheme-handler/about" = browsers;
|
|
|
|
|
"x-scheme-handler/ftp" = browsers;
|
|
|
|
|
"x-scheme-handler/http" = browsers;
|
|
|
|
|
"x-scheme-handler/https" = browsers;
|
|
|
|
|
"x-scheme-handler/mailto" = browsers;
|
2025-11-09 06:25:03 +08:00
|
|
|
"x-scheme-handler/tg" = ["telegramdesktop.desktop"];
|
2025-11-20 14:54:45 +08:00
|
|
|
"x-scheme-handler/unknown" = browsers;
|
2025-07-11 01:38:30 +08:00
|
|
|
"image/gif" = [
|
|
|
|
|
"swayimg.desktop"
|
|
|
|
|
];
|
|
|
|
|
"image/jpeg" = [
|
|
|
|
|
"swayimg.desktop"
|
|
|
|
|
];
|
|
|
|
|
"image/png" = [
|
|
|
|
|
"swayimg.desktop"
|
|
|
|
|
];
|
|
|
|
|
"image/webp" = [
|
|
|
|
|
"swayimg.desktop"
|
|
|
|
|
];
|
2025-03-22 16:34:26 +08:00
|
|
|
};
|
2025-02-08 17:49:45 +08:00
|
|
|
};
|
|
|
|
|
};
|
2025-01-14 17:35:06 +08:00
|
|
|
hardware.bluetooth = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
2025-05-02 15:36:40 +08:00
|
|
|
services = {
|
2025-05-11 12:26:25 +08:00
|
|
|
greetd = {
|
2025-01-14 17:35:06 +08:00
|
|
|
enable = true;
|
2025-07-13 06:04:55 +08:00
|
|
|
settings = {
|
|
|
|
|
default_session = {
|
|
|
|
|
command = "${lib.getExe pkgs.tuigreet} --time --user-menu -r";
|
|
|
|
|
};
|
2025-05-02 15:36:40 +08:00
|
|
|
};
|
2025-10-18 23:10:53 +08:00
|
|
|
useTextGreeter = true;
|
2025-01-14 17:35:06 +08:00
|
|
|
};
|
|
|
|
|
};
|
2025-05-02 15:36:40 +08:00
|
|
|
programs = {
|
|
|
|
|
niri = {
|
|
|
|
|
enable = true;
|
|
|
|
|
package = pkgs.niri-unstable;
|
|
|
|
|
};
|
2025-01-14 17:35:06 +08:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|