nixos/preload: init
[NixPkgs.git] / nixos / modules / services / x11 / urxvtd.nix
blobfedcb6c7293eff3775fff14865efbcb069294185
1 { config, lib, pkgs, ... }:
3 # maintainer: siddharthist
5 with lib;
7 let
8   cfg = config.services.urxvtd;
9 in {
10   options.services.urxvtd = {
11     enable = mkOption {
12       type = types.bool;
13       default = false;
14       description = lib.mdDoc ''
15         Enable urxvtd, the urxvt terminal daemon. To use urxvtd, run
16         "urxvtc".
17       '';
18     };
20     package = mkOption {
21       default = pkgs.rxvt-unicode;
22       defaultText = literalExpression "pkgs.rxvt-unicode";
23       description = lib.mdDoc ''
24         Package to install. Usually pkgs.rxvt-unicode.
25       '';
26       type = types.package;
27     };
28   };
30   config = mkIf cfg.enable {
31     systemd.user.services.urxvtd = {
32       description = "urxvt terminal daemon";
33       wantedBy = [ "graphical-session.target" ];
34       partOf = [ "graphical-session.target" ];
35       path = [ pkgs.xsel ];
36       serviceConfig = {
37         ExecStart = "${cfg.package}/bin/urxvtd -o";
38         Environment = "RXVT_SOCKET=%t/urxvtd-socket";
39         Restart = "on-failure";
40         RestartSec = "5s";
41       };
42     };
44     environment.systemPackages = [ cfg.package ];
45     environment.variables.RXVT_SOCKET = "/run/user/$(id -u)/urxvtd-socket";
46   };
48   meta.maintainers = with lib.maintainers; [ rnhmjoj ];