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

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

View file

@ -0,0 +1,93 @@
{lib, ...}: let
inherit (lib.options) mkOption;
inherit (lib.types) enum nullOr;
in {
options.olympus.programs.defaults = {
shell = mkOption {
type = enum [
"bash"
"fish"
];
default = "bash";
};
terminal = mkOption {
type = enum [
"alacritty"
"kitty"
"wezterm"
"foot"
];
default = "wezterm";
};
fileManager = mkOption {
type = enum [
"cosmic-files"
"thunar"
"dolphin"
"nemo"
"nautilus"
];
default = "nautilus";
};
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 hjem.
'';
};
noiseSuppressor = mkOption {
type = nullOr (enum [
"rnnoise"
"noisetorch"
]);
default = "rnnoise";
description = ''
The noise suppressor to be used for desktop systems with sound enabled.
'';
};
};
}

View file

@ -0,0 +1,16 @@
{
lib,
pkgs,
...
}: let
inherit (lib.programs) mkProgram;
in {
options.olympus.programs = {
bash = mkProgram pkgs "bash" {
enable.default = true;
package.default = pkgs.bashInteractive;
};
fish = mkProgram pkgs "fish" {};
};
}

View file

@ -0,0 +1,32 @@
{
lib,
config,
...
}: let
inherit (lib.options) mkEnableOption;
cfg = config.olympus.programs;
in {
# these are options that will cause a mass rebuild by enabling multiple packages
options.olympus.programs = {
cli = {
enable =
mkEnableOption "Enable CLI programs"
// {
default = true;
};
modernShell.enable = mkEnableOption "Enable programs for a more modern shell";
};
tui.enable =
mkEnableOption "Enable TUI programs"
// {
default = cfg.cli.enable;
};
gui.enable = mkEnableOption "Enable GUI programs";
pentesting.enable = mkEnableOption "Enable packages designed for pentesting";
notes.enable = mkEnableOption "Enable note-taking programs";
};
}