add programs options for system
This commit is contained in:
parent
37c414c4b7
commit
7411f57e2a
9 changed files with 219 additions and 108 deletions
|
|
@ -53,23 +53,20 @@ in
|
||||||
programs = {
|
programs = {
|
||||||
catppuccin.enable = true;
|
catppuccin.enable = true;
|
||||||
antigravity.enable = true;
|
antigravity.enable = true;
|
||||||
hyprshot.enable = true;
|
|
||||||
prismlauncher.enable = true;
|
prismlauncher.enable = true;
|
||||||
proton-ge.enable = true;
|
|
||||||
vlc.enable = true;
|
vlc.enable = true;
|
||||||
gimp.enable = true;
|
gimp.enable = true;
|
||||||
libreoffice.enable = true;
|
libreoffice.enable = true;
|
||||||
lutris.enable = true;
|
|
||||||
osu.enable = true;
|
osu.enable = true;
|
||||||
lmstudio.enable = true;
|
lmstudio.enable = true;
|
||||||
blender.enable = true;
|
blender.enable = true;
|
||||||
xprop.enable = true;
|
xprop.enable = true;
|
||||||
bluetuith.enable = true;
|
|
||||||
pavucontrol.enable = true;
|
pavucontrol.enable = true;
|
||||||
nwg-look.enable = true;
|
nwg-look.enable = true;
|
||||||
proton-apps.enable = true;
|
|
||||||
hytale.enable = true;
|
hytale.enable = true;
|
||||||
cider.enable = true;
|
cider.enable = true;
|
||||||
|
proton-ge.enable = true;
|
||||||
|
proton-apps.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{ libs, ... }:
|
{ libs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./programs.nix
|
||||||
|
|
||||||
(libs.root "/modules/hardware/default.nix")
|
(libs.root "/modules/hardware/default.nix")
|
||||||
|
|
||||||
(libs.root "/modules/fonts.nix")
|
(libs.root "/modules/fonts.nix")
|
||||||
|
|
@ -32,4 +34,3 @@
|
||||||
xdg.menus.enable = true;
|
xdg.menus.enable = true;
|
||||||
services.dbus.enable = true;
|
services.dbus.enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
24
host/desktop/programs.nix
Normal file
24
host/desktop/programs.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
wget.enable = true;
|
||||||
|
tree.enable = true;
|
||||||
|
ffmpeg.enable = true;
|
||||||
|
nodejs.enable = true;
|
||||||
|
bun.enable = true;
|
||||||
|
brightnessctl.enable = true;
|
||||||
|
php.enable = true;
|
||||||
|
ntfs3g.enable = true;
|
||||||
|
zip.enable = true;
|
||||||
|
unzip.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
jdk.enable = true;
|
||||||
|
nixfmt.enable = true;
|
||||||
|
winepackages.enable = true;
|
||||||
|
quickshell.enable = true;
|
||||||
|
papirus-icons.enable = true;
|
||||||
|
kde-packages.enable = true;
|
||||||
|
r-tensorflow.enable = true;
|
||||||
|
hyprland-portals.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
4
host/server/default.nix
Normal file
4
host/server/default.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -10,30 +10,25 @@
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(lib.mkIf config.programs.catppuccin.enable config.programs.catppuccin.package)
|
(lib.mkIf config.programs.catppuccin.enable config.programs.catppuccin.package)
|
||||||
|
|
||||||
(lib.mkIf config.programs.hyprshot.enable config.programs.hyprshot.package)
|
(lib.mkIf config.programs.packages.antigravity.enable config.programs.packages.antigravity.package)
|
||||||
(lib.mkIf config.programs.antigravity.enable config.programs.antigravity.package)
|
(lib.mkIf config.programs.packages.prismlauncher.enable config.programs.packages.prismlauncher.package)
|
||||||
(lib.mkIf config.programs.prismlauncher.enable config.programs.prismlauncher.package)
|
(lib.optionals config.programs.proton-ge.enable config.programs.proton-ge.packages)
|
||||||
(lib.mkIf config.programs.proton-ge.enable config.programs.proton-ge.protonup-qt)
|
(lib.mkIf config.programs.packages.vlc.enable config.programs.packages.vlc.package)
|
||||||
(lib.mkIf config.programs.proton-ge.enable config.programs.proton-ge.protonplus)
|
(lib.mkIf config.programs.packages.gimp.enable config.programs.packages.gimp.package)
|
||||||
(lib.mkIf config.programs.vlc.enable config.programs.vlc.package)
|
(lib.mkIf config.programs.packages.libreoffice.enable config.programs.packages.libreoffice.package)
|
||||||
(lib.mkIf config.programs.gimp.enable config.programs.gimp.package)
|
(lib.mkIf config.programs.packages.osu.enable config.programs.packages.osu.package)
|
||||||
(lib.mkIf config.programs.libreoffice.enable config.programs.libreoffice.package)
|
(lib.mkIf config.programs.packages.lmstudio.enable config.programs.packages.lmstudio.package)
|
||||||
(lib.mkIf config.programs.lutris.enable config.programs.lutris.package)
|
(lib.mkIf config.programs.packages.blender.enable config.programs.packages.blender.package)
|
||||||
(lib.mkIf config.programs.osu.enable config.programs.osu.package)
|
(lib.mkIf config.programs.packages.xprop.enable config.programs.packages.xprop.package)
|
||||||
(lib.mkIf config.programs.lmstudio.enable config.programs.lmstudio.package)
|
|
||||||
(lib.mkIf config.programs.blender.enable config.programs.blender.package)
|
|
||||||
(lib.mkIf config.programs.xprop.enable config.programs.xprop.package)
|
|
||||||
|
|
||||||
(lib.mkIf config.programs.bluetuith.enable config.programs.bluetuith.package)
|
(lib.mkIf config.programs.packages.pavucontrol.enable config.programs.packages.pavucontrol.package)
|
||||||
(lib.mkIf config.programs.pavucontrol.enable config.programs.pavucontrol.package)
|
(lib.mkIf config.programs.packages.nwg-look.enable config.programs.packages.nwg-look.package)
|
||||||
(lib.mkIf config.programs.nwg-look.enable config.programs.nwg-look.package)
|
|
||||||
|
|
||||||
(lib.mkIf config.programs.proton-apps.enable config.programs.proton-apps.pass)
|
(lib.optionals config.programs.proton-apps.enable config.programs.proton-apps.packages)
|
||||||
(lib.mkIf config.programs.proton-apps.enable config.programs.proton-apps.authenticator)
|
|
||||||
|
|
||||||
(lib.mkIf config.programs.hytale.enable config.programs.hytale.package)
|
(lib.mkIf config.programs.packages.hytale.enable config.programs.packages.hytale.package)
|
||||||
(lib.mkIf (
|
(lib.mkIf (
|
||||||
config.programs.cider.enable && osconfig.device.programs.cider-2.enable
|
config.programs.packages.cider.enable && osconfig.device.programs.cider-2.enable
|
||||||
) config.programs.cider.package)
|
) config.programs.packages.cider.package)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
rPackages,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
@ -10,60 +11,30 @@
|
||||||
[
|
[
|
||||||
git
|
git
|
||||||
vim
|
vim
|
||||||
wget
|
|
||||||
tree
|
|
||||||
btop
|
btop
|
||||||
ffmpeg-full
|
|
||||||
nodejs
|
|
||||||
bun
|
|
||||||
brightnessctl
|
|
||||||
php
|
|
||||||
ntfs3g
|
|
||||||
zip
|
|
||||||
unzip
|
|
||||||
python3
|
|
||||||
jdk25
|
|
||||||
nixfmt
|
|
||||||
|
|
||||||
wine
|
(lib.mkIf config.programs.wget.enable config.programs.wget.package)
|
||||||
wine64
|
(lib.mkIf config.programs.tree.enable config.programs.tree.package)
|
||||||
winetricks
|
(lib.mkIf config.programs.ffmpeg.enable config.programs.ffmpeg.package)
|
||||||
protontricks
|
(lib.mkIf config.programs.nodejs.enable config.programs.nodejs.package)
|
||||||
|
(lib.mkIf config.programs.bun.enable config.programs.bun.package)
|
||||||
|
(lib.mkIf config.programs.brightnessctl.enable config.programs.brightnessctl.package)
|
||||||
|
(lib.mkIf config.programs.php.enable config.programs.php.package)
|
||||||
|
(lib.mkIf config.programs.ntfs3g.enable config.programs.ntfs3g.package)
|
||||||
|
(lib.mkIf config.programs.zip.enable config.programs.zip.package)
|
||||||
|
(lib.mkIf config.programs.unzip.enable config.programs.unzip.package)
|
||||||
|
(lib.mkIf config.programs.python.enable config.programs.python.package)
|
||||||
|
(lib.mkIf config.programs.jdk.enable config.programs.jdk.package)
|
||||||
|
(lib.mkIf config.programs.nixfmt.enable config.programs.nixfmt.package)
|
||||||
|
|
||||||
quickshell
|
(lib.optionals config.programs.winepackages.enable config.programs.winepackages.packages)
|
||||||
papirus-icon-theme
|
|
||||||
|
(lib.mkIf config.programs.quickshell.enable config.programs.quickshell.package)
|
||||||
|
(lib.mkIf config.programs.papirus-icons.enable config.programs.papirus-icons.package)
|
||||||
]
|
]
|
||||||
++ (
|
++ (lib.optionals config.programs.kde-packages.enable config.programs.kde-packages.packages)
|
||||||
with pkgs;
|
++ (lib.optionals config.programs.r-tensorflow.enable [ config.programs.r-tensorflow.package ])
|
||||||
with kdePackages;
|
++ (lib.optionals (
|
||||||
[
|
config.programs.hyprland-portals.enable && config.device.wm.hyprland.enable
|
||||||
kservice
|
) config.programs.hyprland-portals.packages);
|
||||||
dolphin
|
|
||||||
kate
|
|
||||||
qt5compat
|
|
||||||
qtdeclarative
|
|
||||||
qtimageformats
|
|
||||||
qtsvg
|
|
||||||
qtmultimedia
|
|
||||||
kde-gtk-config
|
|
||||||
qtdeclarative
|
|
||||||
kirigami
|
|
||||||
ksvg
|
|
||||||
qtbase
|
|
||||||
plasma5support
|
|
||||||
qttools
|
|
||||||
plasma-sdk
|
|
||||||
]
|
|
||||||
)
|
|
||||||
++ (with rPackages; [
|
|
||||||
tensorflow
|
|
||||||
])
|
|
||||||
++ (lib.optionals config.device.wm.hyprland.enable (
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
xdg-desktop-portal
|
|
||||||
xdg-desktop-portal-wlr
|
|
||||||
xdg-desktop-portal-hyprland
|
|
||||||
]
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
{ lib, ... }: {
|
{ lib, ... }:
|
||||||
options.device = {
|
{
|
||||||
flatpak.enable = lib.mkEnableOption "flatpak";
|
imports = [ ./programs.nix ];
|
||||||
flake-name = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
options.device = {
|
||||||
default = "desktop";
|
flatpak.enable = lib.mkEnableOption "flatpak";
|
||||||
description = "Flake name for quick rebuild";
|
flake-name = lib.mkOption {
|
||||||
};
|
type = lib.types.str;
|
||||||
|
default = "desktop";
|
||||||
|
description = "Flake name for quick rebuild";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
118
options/common/programs.nix
Normal file
118
options/common/programs.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
options.programs = {
|
||||||
|
wget = {
|
||||||
|
enable = lib.mkEnableOption "wget";
|
||||||
|
package = lib.mkPackageOption pkgs "wget" { };
|
||||||
|
};
|
||||||
|
tree = {
|
||||||
|
enable = lib.mkEnableOption "tree";
|
||||||
|
package = lib.mkPackageOption pkgs "tree" { };
|
||||||
|
};
|
||||||
|
ffmpeg = {
|
||||||
|
enable = lib.mkEnableOption "ffmpeg";
|
||||||
|
package = lib.mkPackageOption pkgs "ffmpeg-full" { };
|
||||||
|
};
|
||||||
|
nodejs = {
|
||||||
|
enable = lib.mkEnableOption "nodejs";
|
||||||
|
package = lib.mkPackageOption pkgs "nodejs" { };
|
||||||
|
};
|
||||||
|
bun = {
|
||||||
|
enable = lib.mkEnableOption "bun";
|
||||||
|
package = lib.mkPackageOption pkgs "bun" { };
|
||||||
|
};
|
||||||
|
brightnessctl = {
|
||||||
|
enable = lib.mkEnableOption "brightnessctl";
|
||||||
|
package = lib.mkPackageOption pkgs "brightnessctl" { };
|
||||||
|
};
|
||||||
|
php = {
|
||||||
|
enable = lib.mkEnableOption "php";
|
||||||
|
package = lib.mkPackageOption pkgs "php" { };
|
||||||
|
};
|
||||||
|
ntfs3g = {
|
||||||
|
enable = lib.mkEnableOption "ntfs3g";
|
||||||
|
package = lib.mkPackageOption pkgs "ntfs3g" { };
|
||||||
|
};
|
||||||
|
zip = {
|
||||||
|
enable = lib.mkEnableOption "zip";
|
||||||
|
package = lib.mkPackageOption pkgs "zip" { };
|
||||||
|
};
|
||||||
|
unzip = {
|
||||||
|
enable = lib.mkEnableOption "unzip";
|
||||||
|
package = lib.mkPackageOption pkgs "unzip" { };
|
||||||
|
};
|
||||||
|
python = {
|
||||||
|
enable = lib.mkEnableOption "python";
|
||||||
|
package = lib.mkPackageOption pkgs "python3" { };
|
||||||
|
};
|
||||||
|
jdk = {
|
||||||
|
enable = lib.mkEnableOption "jdk-25";
|
||||||
|
package = lib.mkPackageOption pkgs "jdk25" { };
|
||||||
|
};
|
||||||
|
nixfmt = {
|
||||||
|
enable = lib.mkEnableOption "nixfmt";
|
||||||
|
package = lib.mkPackageOption pkgs "nixfmt" { };
|
||||||
|
};
|
||||||
|
winepackages = {
|
||||||
|
enable = lib.mkEnableOption "Wine and Proton utilities";
|
||||||
|
packages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = with pkgs; [
|
||||||
|
wine
|
||||||
|
wine64
|
||||||
|
winetricks
|
||||||
|
protontricks
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
quickshell = {
|
||||||
|
enable = lib.mkEnableOption "quickshell";
|
||||||
|
package = lib.mkPackageOption pkgs "quickshell" { };
|
||||||
|
};
|
||||||
|
papirus-icons = {
|
||||||
|
enable = lib.mkEnableOption "papirus-icon-theme";
|
||||||
|
package = lib.mkPackageOption pkgs "papirus-icon-theme" { };
|
||||||
|
};
|
||||||
|
kde-packages = {
|
||||||
|
enable = lib.mkEnableOption "KDE utility packages";
|
||||||
|
packages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = with pkgs.kdePackages; [
|
||||||
|
kservice
|
||||||
|
dolphin
|
||||||
|
kate
|
||||||
|
qt5compat
|
||||||
|
qtdeclarative
|
||||||
|
qtimageformats
|
||||||
|
qtsvg
|
||||||
|
qtmultimedia
|
||||||
|
kde-gtk-config
|
||||||
|
kirigami
|
||||||
|
ksvg
|
||||||
|
qtbase
|
||||||
|
plasma5support
|
||||||
|
qttools
|
||||||
|
plasma-sdk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
r-tensorflow = {
|
||||||
|
enable = lib.mkEnableOption "R tensorflow";
|
||||||
|
package = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.rPackages.tensorflow;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hyprland-portals = {
|
||||||
|
enable = lib.mkEnableOption "XDGP for hyprland";
|
||||||
|
packages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = with pkgs; [
|
||||||
|
xdg-desktop-portal
|
||||||
|
xdg-desktop-portal-wlr
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -31,18 +31,19 @@
|
||||||
enable = lib.mkEnableOption "antigravity";
|
enable = lib.mkEnableOption "antigravity";
|
||||||
package = lib.mkPackageOption pkgs "antigravity" { };
|
package = lib.mkPackageOption pkgs "antigravity" { };
|
||||||
};
|
};
|
||||||
hyprshot = {
|
|
||||||
enable = lib.mkEnableOption "hyprshot";
|
|
||||||
package = lib.mkPackageOption pkgs "hyprshot" { };
|
|
||||||
};
|
|
||||||
prismlauncher = {
|
prismlauncher = {
|
||||||
enable = lib.mkEnableOption "prismlauncher";
|
enable = lib.mkEnableOption "prismlauncher";
|
||||||
package = lib.mkPackageOption pkgs "prismlauncher" { };
|
package = lib.mkPackageOption pkgs "prismlauncher" { };
|
||||||
};
|
};
|
||||||
proton-ge = {
|
proton-ge = {
|
||||||
enable = lib.mkEnableOption "proton-ge utils";
|
enable = lib.mkEnableOption "proton-ge utils";
|
||||||
protonup-qt = lib.mkPackageOption pkgs "protonup-qt" { };
|
packages = lib.mkOption {
|
||||||
protonplus = lib.mkPackageOption pkgs "protonplus" { };
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = with pkgs; [
|
||||||
|
protonup-qt
|
||||||
|
protonplus
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
vlc = {
|
vlc = {
|
||||||
enable = lib.mkEnableOption "vlc";
|
enable = lib.mkEnableOption "vlc";
|
||||||
|
|
@ -56,10 +57,6 @@
|
||||||
enable = lib.mkEnableOption "libreoffice";
|
enable = lib.mkEnableOption "libreoffice";
|
||||||
package = lib.mkPackageOption pkgs "libreoffice-qt-fresh" { };
|
package = lib.mkPackageOption pkgs "libreoffice-qt-fresh" { };
|
||||||
};
|
};
|
||||||
lutris = {
|
|
||||||
enable = lib.mkEnableOption "lutris";
|
|
||||||
package = lib.mkPackageOption pkgs "lutris" { };
|
|
||||||
};
|
|
||||||
osu = {
|
osu = {
|
||||||
enable = lib.mkEnableOption "osu-lazer";
|
enable = lib.mkEnableOption "osu-lazer";
|
||||||
package = lib.mkPackageOption pkgs "osu-lazer-bin" { };
|
package = lib.mkPackageOption pkgs "osu-lazer-bin" { };
|
||||||
|
|
@ -76,13 +73,9 @@
|
||||||
enable = lib.mkEnableOption "xprop";
|
enable = lib.mkEnableOption "xprop";
|
||||||
package = lib.mkPackageOption pkgs "xprop" { };
|
package = lib.mkPackageOption pkgs "xprop" { };
|
||||||
};
|
};
|
||||||
bluetuith = {
|
|
||||||
enable = lib.mkEnableOption "bluetuith";
|
|
||||||
package = lib.mkPackageOption pkgs "bluetuith" { };
|
|
||||||
};
|
|
||||||
pavucontrol = {
|
pavucontrol = {
|
||||||
enable = lib.mkEnableOption "pavucontrol-qt";
|
enable = lib.mkEnableOption "pavucontrol-qt";
|
||||||
package = lib.mkPackageOption pkgs "lxqt" { extraPrefixCode = ".pavucontrol-qt"; };
|
package = lib.mkPackageOption pkgs.lxqt "pavucontrol-qt" { };
|
||||||
};
|
};
|
||||||
nwg-look = {
|
nwg-look = {
|
||||||
enable = lib.mkEnableOption "nwg-look";
|
enable = lib.mkEnableOption "nwg-look";
|
||||||
|
|
@ -90,8 +83,13 @@
|
||||||
};
|
};
|
||||||
proton-apps = {
|
proton-apps = {
|
||||||
enable = lib.mkEnableOption "proton-pass and proton-authenticator";
|
enable = lib.mkEnableOption "proton-pass and proton-authenticator";
|
||||||
pass = lib.mkPackageOption pkgs "proton-pass" { };
|
packages = lib.mkOption {
|
||||||
authenticator = lib.mkPackageOption pkgs "proton-authenticator" { };
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = with pkgs; [
|
||||||
|
proton-pass
|
||||||
|
proton-authenticator
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
hytale = {
|
hytale = {
|
||||||
enable = lib.mkEnableOption "hytale-launcher";
|
enable = lib.mkEnableOption "hytale-launcher";
|
||||||
|
|
|
||||||
Reference in a new issue