a lot of shit also baibai home manager, hello hjem

This commit is contained in:
blahai 2025-01-26 20:11:01 +02:00
parent bc82345beb
commit 2c8f822b83
No known key found for this signature in database
37 changed files with 1277 additions and 168 deletions

View file

@ -1,6 +1,6 @@
{
imports = [
./device.nix
./programs
./meta.nix
];
}

View file

@ -0,0 +1,50 @@
{
lib,
config,
...
}: let
inherit (lib.trivial) id;
inherit (lib.options) mkOption;
inherit (lib.validators) anyHome;
inherit (lib.strings) concatStringsSep;
mkMetaOption = path:
mkOption {
default = anyHome config id path;
example = true;
description = "Does ${concatStringsSep "." path} meet the requirements";
type = lib.types.bool;
};
in {
options.olympus.meta = {
fish = mkMetaOption [
"olympus"
"programs"
"fish"
"enable"
];
thunar = mkMetaOption [
"olympus"
"programs"
"thunar"
"enable"
];
gui = mkMetaOption [
"olympus"
"programs"
"gui"
"enable"
];
isWayland = mkMetaOption [
"olympus"
"meta"
"isWayland"
];
isWM = mkMetaOption [
"olympus"
"meta"
"isWM"
];
};
}

View file

@ -1,6 +0,0 @@
{
imports = [
./shells.nix
./defaults.nix
];
}

View file

@ -1,93 +0,0 @@
{lib, ...}: let
inherit (lib.options) mkOption;
inherit (lib.types) enum nullOr;
in {
options.olympus.programs.defaults = {
shell = mkOption {
type = enum [
"bash"
"zsh"
"fish"
];
default = "bash";
};
terminal = mkOption {
type = enum [
"alacritty"
"kitty"
"wezterm"
"foot"
];
default = "wezterm";
};
fileManager = mkOption {
type = enum [
"cosmic-files"
"thunar"
"dolphin"
"nemo"
];
default = "cosmic-files";
};
browser = mkOption {
type = enum [
"firefox"
"floorp"
"chromium"
"thorium"
];
default = "floorp";
};
editor = mkOption {
type = enum [
"nvim"
];
default = "nvim";
};
launcher = mkOption {
type = nullOr (enum [
"rofi"
"wofi"
"cosmic-launcher"
]);
default = "wofi";
};
bar = mkOption {
type = nullOr (enum [
"waybar"
"ags"
]);
default = "ags";
};
screenLocker = mkOption {
type = nullOr (enum [
"hyprlock"
"swaylock"
"gtklock"
"cosmic-greeter"
]);
default = "hyprlock";
description = ''
The lockscreen module to be loaded by home-manager.
'';
};
noiseSuppressor = mkOption {
type = nullOr (enum [
"rnnoise"
"noisetorch"
]);
default = "rnnoise";
description = ''
The noise suppressor to be used for desktop systems with sound enabled.
'';
};
};
}

View file

@ -1,26 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.options) mkEnableOption mkPackageOption;
inherit (lib.attrsets) recursiveUpdate;
mkProgram = pkgs: name: extraConfig:
recursiveUpdate {
enable = mkEnableOption "Enable ${name}";
package = mkPackageOption pkgs name {};
}
extraConfig;
in {
options.olympus.programs = {
bash = mkProgram pkgs "bash" {
enable.default = true;
package.default = pkgs.bashInteractive;
};
zsh = mkProgram pkgs "zsh" {};
fish = mkProgram pkgs "fish" {};
};
}