1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 11:36:05 +01:00
home-manager/modules/services/remmina.nix
Austin Horstman 86402a17b6 treewide: flatten single file modules
Some files don't need nesting and can be root level again to reduce
conflicts with other PRs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 16:20:26 -05:00

85 lines
2 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
mkIf
mkMerge
mkEnableOption
mkPackageOption
mkOption
;
cfg = config.services.remmina;
in
{
meta.maintainers = with lib.maintainers; [ cyntheticfox ];
options.services.remmina = {
enable = mkEnableOption "Remmina";
package = mkPackageOption pkgs "remmina" { };
addRdpMimeTypeAssoc = mkEnableOption "Remmina RDP file open option" // {
default = true;
};
systemdService = {
enable = mkEnableOption "systemd Remmina service" // {
default = true;
};
startupFlags = mkOption {
type = with lib.types; listOf str;
default = [ "--icon" ];
description = ''
Startup flags documented in the manpage to run at service startup.
'';
};
};
};
config = mkIf cfg.enable (mkMerge [
{ home.packages = [ cfg.package ]; }
(mkIf cfg.systemdService.enable {
systemd.user.services.remmina = {
Unit = {
Description = "Remmina remote desktop client";
Documentation = "man:remmina(1)";
Requires = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
ExecStart = "${lib.getExe cfg.package} ${lib.escapeShellArgs cfg.systemdService.startupFlags}";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
})
(mkIf (config.xdg.mimeApps.enable && cfg.addRdpMimeTypeAssoc) {
xdg.mimeApps.associations.added."application/x-rdp" = "org.remmina.Remmina.desktop";
xdg.dataFile."mime/packages/application-x-rdp.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-rdp">
<comment>rdp file</comment>
<icon name="application-x-rdp"/>
<glob-deleteall/>
<glob pattern="*.rdp"/>
</mime-type>
</mime-info>
'';
})
]);
}