2024-06-11 16:24:12 -04:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
2024-06-26 22:13:02 -04:00
|
|
|
options.ar = {
|
|
|
|
apps = {
|
2024-06-28 21:07:20 -04:00
|
|
|
firefox.enable = lib.mkEnableOption "Firefox Web Browser.";
|
|
|
|
nicotine-plus.enable = lib.mkEnableOption "Nicotine+ Soulseek client.";
|
|
|
|
podman.enable = lib.mkEnableOption "Podman for OCI container support.";
|
|
|
|
steam.enable = lib.mkEnableOption "Valve's Steam for video games.";
|
|
|
|
virt-manager.enable = lib.mkEnableOption "Virtual machine client.";
|
2024-06-26 22:13:02 -04:00
|
|
|
};
|
2024-06-11 21:16:05 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
desktop = {
|
2024-06-28 21:07:20 -04:00
|
|
|
cinnamon.enable = lib.mkEnableOption "Cinnamon desktop session.";
|
2024-07-07 19:46:57 -04:00
|
|
|
gnome.enable = lib.mkEnableOption "GNOME desktop session.";
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
greetd = {
|
2024-06-28 21:07:20 -04:00
|
|
|
enable = lib.mkEnableOption "Greetd display manager.";
|
2024-06-26 22:13:02 -04:00
|
|
|
|
|
|
|
autologin = {
|
2024-06-28 21:07:20 -04:00
|
|
|
enable = lib.mkEnableOption "Whether to enable autologin.";
|
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
user = lib.mkOption {
|
|
|
|
description = "User to autologin.";
|
|
|
|
default = "aly";
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
};
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
session = lib.mkOption {
|
|
|
|
description = "Default command to execute on login.";
|
|
|
|
default = lib.getExe config.programs.hyprland.package;
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
};
|
2024-06-28 21:07:20 -04:00
|
|
|
|
|
|
|
hyprland.enable = lib.mkEnableOption "Hyprland wayland session.";
|
2024-07-01 22:59:41 -04:00
|
|
|
lightdm.enable = lib.mkEnableOption "Lightdm display manager.";
|
2024-06-28 21:07:20 -04:00
|
|
|
steam.enable = lib.mkEnableOption "Steam + Gamescope session.";
|
|
|
|
sway.enable = lib.mkEnableOption "Sway wayland session.";
|
2024-06-26 22:13:02 -04:00
|
|
|
};
|
2024-06-28 19:39:27 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
services = {
|
2024-06-28 21:07:20 -04:00
|
|
|
flatpak.enable = lib.mkEnableOption "Flatpak support with GUI.";
|
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
syncthing = {
|
|
|
|
enable = lib.mkEnableOption "Syncthing sync service.";
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
user = lib.mkOption {
|
|
|
|
description = "Specify user Syncthing runs as.";
|
|
|
|
default = "aly";
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
syncMusic = lib.mkOption {
|
|
|
|
description = "Whether to sync music folder.";
|
|
|
|
default = config.ar.services.syncthing.enable;
|
2024-06-22 12:10:36 -04:00
|
|
|
type = lib.types.bool;
|
|
|
|
};
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
musicPath = lib.mkOption {
|
|
|
|
description = "Whether to sync music folder.";
|
|
|
|
default = "/home/${config.ar.services.syncthing.user}/music";
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
};
|
2024-06-28 21:07:20 -04:00
|
|
|
|
2024-06-26 22:13:02 -04:00
|
|
|
tailscale.enable = lib.mkEnableOption "Tailscale WireGuard VPN.";
|
|
|
|
};
|
2024-06-11 16:24:12 -04:00
|
|
|
};
|
|
|
|
}
|