xin/gui/default.nix

114 lines
2.7 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, xinlib, ... }:
let
rage = pkgs.writeScriptBin "rage" (import ../bins/rage.nix { inherit pkgs; });
rpr = pkgs.writeScriptBin "rpr"
(import ../bins/rpr.nix { inherit (pkgs) _1password hut gh tea; });
promnesia =
pkgs.python3Packages.callPackage ../pkgs/promnesia.nix { inherit pkgs; };
hpi = pkgs.python3Packages.callPackage ../pkgs/hpi.nix { inherit pkgs; };
promnesiaService = {
promnesia = {
description = "Service for promnesia.server";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
script = ''
${promnesia}/bin/promnesia serve
'';
};
};
jobs = [{
name = "promnesia-index";
script = "${promnesia}/bin/promnesia index";
2023-02-08 06:27:59 -07:00
startAt = "*:0/5";
path = [ promnesia hpi ];
}];
in with lib; {
2022-08-25 12:21:35 -06:00
imports = [ ./gnome.nix ./kde.nix ./xfce.nix ./arcan.nix ];
options = {
pulse = {
enable = mkOption {
description = "Enable PulseAudio";
default = false;
example = true;
type = types.bool;
};
};
pipewire = {
enable = mkOption {
description = "Enable PipeWire";
default = true;
example = true;
type = types.bool;
};
};
};
config = mkMerge [
(mkIf config.arcan.enable {
sound.enable = true;
services = { xserver.enable = false; };
environment.systemPackages = with pkgs; [
brave
firefox
drawterm
go-font
vlc
pcsctools
];
2022-08-25 12:21:35 -06:00
})
(mkIf (config.kde.enable || config.gnome.enable || config.xfce.enable) {
services = {
xserver.enable = true;
pcscd.enable = true;
};
2023-01-05 16:27:19 -07:00
fonts.fonts = with pkgs; [
go-font
(callPackage ../pkgs/kurinto.nix { })
];
2022-08-25 12:21:35 -06:00
# TODO: TEMP FIX
systemd.services.NetworkManager-wait-online.serviceConfig.ExecStart =
lib.mkForce [ "" "${pkgs.networkmanager}/bin/nm-online -q" ];
sound.enable = true;
security.rtkit.enable = true;
2023-01-30 06:13:41 -07:00
systemd.user.services =
2023-03-03 07:06:30 -07:00
(lib.listToAttrs (builtins.map xinlib.jobToUserService jobs))
// promnesiaService;
2023-01-20 12:38:24 -07:00
environment.systemPackages = with pkgs; [
2023-05-17 15:33:24 -06:00
bc
2023-03-20 08:58:44 -06:00
black
2023-01-20 12:38:24 -07:00
brave
drawterm
firefox
2023-03-20 08:58:44 -06:00
hpi
2023-01-20 12:38:24 -07:00
pcsctools
2023-03-20 08:58:44 -06:00
promnesia
2023-01-20 12:38:24 -07:00
rage
rpr
2023-03-20 08:58:44 -06:00
vlc
2023-03-14 09:17:48 -06:00
zeal
2023-03-20 08:58:44 -06:00
(callPackage ../pkgs/tailscale-systray.nix { })
(callPackage ../pkgs/govulncheck.nix { })
(callPackage ../configs/helix.nix { })
2023-01-20 12:38:24 -07:00
];
2022-08-25 12:21:35 -06:00
})
(mkIf config.pipewire.enable {
services.pipewire = {
enable = true;
pulse.enable = true;
jack.enable = true;
alsa.enable = true;
};
})
];
}