nixos/nixos/modules/gui/niri.nix

103 lines
2.3 KiB
Nix
Raw Normal View History

2025-01-14 17:35:06 +08:00
{
config,
lib,
pkgs,
...
}: let
2025-01-14 17:35:06 +08:00
cfg = config.youthlic.gui;
in {
options = {
youthlic.gui.niri = {
};
};
2025-01-14 17:35:06 +08:00
config = lib.mkIf (cfg.enabled == "niri") {
# 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";
environment = {
pathsToLink = ["share/thumbnailers"];
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 = {
portal = {
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
};
2025-03-22 16:34:26 +08:00
terminal-exec = {
enable = true;
settings = {
default = ["com.mitchellh.ghostty.desktop"];
2025-03-22 16:34:26 +08:00
};
};
mime = let
browsers = [
"zen-twilight.desktop"
"chromium-browser.desktop"
];
in {
2025-03-22 16:34:26 +08:00
enable = true;
defaultApplications = {
"application/pdf" = [
"org.gnome.Evince.desktop"
];
2025-03-22 16:34:26 +08:00
"inode/directory" = [
"org.gnome.Nautilus.desktop"
2025-03-22 16:34:26 +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;
"x-scheme-handler/tg" = ["telegramdesktop.desktop"];
"x-scheme-handler/unknown" = browsers;
"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;
};
services = {
greetd = {
2025-01-14 17:35:06 +08:00
enable = true;
settings = {
default_session = {
command = "${lib.getExe pkgs.tuigreet} --time --user-menu -r";
};
};
2025-10-18 23:10:53 +08:00
useTextGreeter = true;
2025-01-14 17:35:06 +08:00
};
};
programs = {
niri = {
enable = true;
package = pkgs.niri-unstable;
};
2025-01-14 17:35:06 +08:00
};
};
}