Use alejandra formatter / fix warnings

This commit is contained in:
DashieTM 2025-02-15 16:23:22 +01:00
parent c5b1041bbb
commit 693d4e3c70
70 changed files with 1424 additions and 1547 deletions

View file

@ -5,12 +5,13 @@
hostName, hostName,
modulesPath, modulesPath,
... ...
}: }: let
let
username = config.conf.username; username = config.conf.username;
in in {
{ imports = [
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; (modulesPath + "/installer/scan/not-detected.nix")
#(modulesPath + "/misc/nixpkgs/read-only.nix")
];
# Bootloader. # Bootloader.
boot = { boot = {
@ -34,11 +35,13 @@ in
"sd_mod" "sd_mod"
]; ];
}; };
kernelParams = [ kernelParams =
[
''resume="PARTLABEL=SWAP"'' ''resume="PARTLABEL=SWAP"''
''quiet'' ''quiet''
''udev.log_level=3'' ''udev.log_level=3''
] ++ config.conf.bootParams; ]
++ config.conf.bootParams;
}; };
# Enable networking # Enable networking
@ -59,6 +62,8 @@ in
flatpak.enable = true; flatpak.enable = true;
xserver.enable = true; xserver.enable = true;
fstrim.enable = lib.mkDefault true; fstrim.enable = lib.mkDefault true;
# Enable sound with pipewire.
pulseaudio.enable = false;
pipewire = { pipewire = {
enable = true; enable = true;
alsa = { alsa = {
@ -85,9 +90,7 @@ in
}; };
}; };
# Enable sound with pipewire.
hardware = { hardware = {
pulseaudio.enable = false;
cpu.${config.conf.cpu}.updateMicrocode = cpu.${config.conf.cpu}.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware; lib.mkDefault config.hardware.enableRedistributableFirmware;
}; };
@ -124,5 +127,4 @@ in
password = "firstlogin"; password = "firstlogin";
}; };
}; };
} }

View file

@ -1,5 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
environment = { environment = {
variables = { variables = {
GSETTINGS_SCHEMA_DIR = "${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}"; GSETTINGS_SCHEMA_DIR = "${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}";

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: let
let
layout = pkgs.writeText "dashie" '' layout = pkgs.writeText "dashie" ''
xkb_symbols "dashie" xkb_symbols "dashie"
{ {
@ -10,8 +9,7 @@ let
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] }; key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
}; };
''; '';
in in {
{
environment.systemPackages = [pkgs.xorg.xkbcomp]; environment.systemPackages = [pkgs.xorg.xkbcomp];
services.xserver.xkb.extraLayouts.dashie = { services.xserver.xkb.extraLayouts.dashie = {
description = "US layout with 'umlaut'"; description = "US layout with 'umlaut'";

View file

@ -4,8 +4,7 @@
build_systems, build_systems,
lib, lib,
... ...
}: }: let
let
makeOptionsDoc = configuration: pkgs.nixosOptionsDoc {options = configuration;}; makeOptionsDoc = configuration: pkgs.nixosOptionsDoc {options = configuration;};
generateDocs = obj: '' generateDocs = obj: ''
touch src/${obj.fst}.md touch src/${obj.fst}.md

View file

@ -21,9 +21,7 @@
}; };
}; };
outputs = outputs = {...} @ inputs: {
{ ... }@inputs:
{
nixosConfigurations = inputs.dashNix.dashNixLib.build_systems {root = ./.;}; nixosConfigurations = inputs.dashNix.dashNixLib.build_systems {root = ./.;};
}; };

View file

@ -1,5 +1,4 @@
{ config, ... }: {config, ...}: {
{
# variables for system # variables for system
# TODO important changes # TODO important changes
conf = { conf = {

View file

@ -48,9 +48,7 @@
}; };
}; };
outputs = outputs = {self, ...} @ inputs: let
{ self, ... }@inputs:
let
permittedPackages = [ permittedPackages = [
"olm-3.2.16" "olm-3.2.16"
# well done dotnet... # well done dotnet...
@ -73,7 +71,6 @@
system = "x86_64-linux"; system = "x86_64-linux";
config = { config = {
allowUnfree = true; allowUnfree = true;
allowBroken = true;
permittedInsecurePackages = permittedPackages; permittedInsecurePackages = permittedPackages;
}; };
}; };
@ -86,8 +83,7 @@
allowUnfree = true; allowUnfree = true;
}; };
}; };
in in rec {
rec {
dashNixLib = import ./lib { dashNixLib = import ./lib {
inherit inherit
self self

View file

@ -2,11 +2,9 @@
config, config,
lib, lib,
... ...
}: }: let
let
username = config.conf.username; username = config.conf.username;
in in {
{
manual = { manual = {
html.enable = false; html.enable = false;
json.enable = false; json.enable = false;

View file

@ -1,17 +1,16 @@
{ {
inputs,
pkgs,
config,
lib,
mod,
additionalHomeConfig, additionalHomeConfig,
homeMods,
additionalHomeMods, additionalHomeMods,
additionalInputs, additionalInputs,
config,
homeMods,
inputs,
lib,
mod,
pkgs,
root, root,
... ...
}: }: {
{
xdg = { xdg = {
portal.config.common.default = "*"; portal.config.common.default = "*";
portal = { portal = {

View file

@ -4,11 +4,12 @@
pkgs, pkgs,
lib, lib,
... ...
}: }: let
let
username = config.mods.nextcloud.username; username = config.mods.nextcloud.username;
password = password =
if (config.sops.secrets ? nextcloud.path) then config.sops.secrets.nextcloud.path else ""; if (config.sops.secrets ? nextcloud.path)
then config.sops.secrets.nextcloud.path
else "";
url = config.mods.nextcloud.url; url = config.mods.nextcloud.url;
synclist = config.mods.nextcloud.synclist; synclist = config.mods.nextcloud.synclist;
in in
@ -32,7 +33,8 @@ lib.mkIf config.mods.nextcloud.enable {
}; };
Install.WantedBy = ["multi-user.target"]; Install.WantedBy = ["multi-user.target"];
}; };
}) synclist })
synclist
) )
); );
timers = ( timers = (
@ -48,7 +50,8 @@ lib.mkIf config.mods.nextcloud.enable {
"timers.target" "timers.target"
]; ];
}; };
}) synclist })
synclist
) )
); );
startServices = true; startServices = true;

View file

@ -6,19 +6,16 @@
lib, lib,
inputs, inputs,
... ...
}: }: let
let
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
baseScheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); baseScheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
power = power = number: powerIndex:
number: powerIndex: if powerIndex == 1
if powerIndex == 1 then then number
number else if powerIndex == 0
else if powerIndex == 0 then then 1
1 else number * power number (powerIndex - 1);
else
number * power number (powerIndex - 1);
lookupTable = powerIndex: { lookupTable = powerIndex: {
"0" = 0 * (power 16 powerIndex); "0" = 0 * (power 16 powerIndex);
@ -39,16 +36,14 @@ let
"f" = 15 * (power 16 powerIndex); "f" = 15 * (power 16 powerIndex);
}; };
convertHex = convertHex = hexChars:
hexChars:
recombineColors [ recombineColors [
(convertColor (lib.lists.take 2 hexChars)) (convertColor (lib.lists.take 2 hexChars))
(convertColor (lib.lists.take 2 (lib.lists.drop 2 hexChars))) (convertColor (lib.lists.take 2 (lib.lists.drop 2 hexChars)))
(convertColor (lib.lists.take 2 (lib.lists.drop 4 hexChars))) (convertColor (lib.lists.take 2 (lib.lists.drop 4 hexChars)))
]; ];
convertColor = convertColor = color: (lookupTable 1).${(lib.lists.head color)} + (lookupTable 0).${(lib.lists.last color)};
color: (lookupTable 1).${(lib.lists.head color)} + (lookupTable 0).${(lib.lists.last color)};
recombineColors = colors: lib.lists.foldr (a: b: (toString a) + "," + (toString b)) "end" colors; recombineColors = colors: lib.lists.foldr (a: b: (toString a) + "," + (toString b)) "end" colors;
scheme = { scheme = {
@ -101,9 +96,7 @@ let
convertHex (lib.strings.stringToCharacters baseScheme.base0F) convertHex (lib.strings.stringToCharacters baseScheme.base0F)
); );
}; };
in {
in
{
# temp # temp
# crust -> surface1 # crust -> surface1
# subtext0 -> surface2 # subtext0 -> surface2

View file

@ -3,14 +3,12 @@
inputs, inputs,
pkgs, pkgs,
... ...
}: }: let
let
# at time of using this here, stylix might not be evaluated yet # at time of using this here, stylix might not be evaluated yet
# hence ensure it is by using base16 mkSchemeAttrs # hence ensure it is by using base16 mkSchemeAttrs
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
in in {
{
xdg.configFile."oxiced/theme.toml" = { xdg.configFile."oxiced/theme.toml" = {
source = (pkgs.formats.toml {}).generate "oxiced" { source = (pkgs.formats.toml {}).generate "oxiced" {
name = scheme.scheme; name = scheme.scheme;

View file

@ -4,23 +4,25 @@
pkgs, pkgs,
lib, lib,
... ...
}: }: let
let
username = config.conf.username; username = config.conf.username;
# at time of using this here, stylix might not be evaluated yet # at time of using this here, stylix might not be evaluated yet
# hence ensure it is by using base16 mkSchemeAttrs # hence ensure it is by using base16 mkSchemeAttrs
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
# active_colors=#ffc0caf5, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ffc0caf5, #ffc0caf5, #ffc0caf5, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ffc0caf5, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ffc0caf5, #ffc0caf5 # active_colors=#ffc0caf5, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ffc0caf5, #ffc0caf5, #ffc0caf5, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ffc0caf5, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ffc0caf5, #ffc0caf5
# disabled_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d # disabled_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
# inactive_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d # inactive_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
color = '' color = ''
[ColorScheme] [ColorScheme]
active_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04} active_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
disabled_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04} disabled_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
inactive_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04} inactive_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
''; '';
qss = '' qss = ''
QTabBar::tab:selected { QTabBar::tab:selected {
color: palette(highlight); color: palette(highlight);
} }
@ -28,33 +30,7 @@ let
border: none; border: none;
} }
''; '';
in {
## test
#cfg = config.stylix.targets.qt;
kvconfig = config.lib.stylix.colors {
template = ./kvconfig.mustache;
extension = ".kvconfig";
};
svg = config.lib.stylix.colors {
template = ./kvantum-svg.mustache;
extension = "svg";
};
kvantumPackage = pkgs.runCommandLocal "base16-kvantum" { } ''
directory="$out/share/Kvantum/Base16Kvantum"
mkdir --parents "$directory"
cat ${kvconfig} >>"$directory/Base16Kvantum.kvconfig"
cat ${svg} >>"$directory/Base16Kvantum.svg"
'';
xdg.configFile."Kvantum/kvantum.kvconfig".source =
(pkgs.formats.ini { }).generate "kvantum.kvconfig"
{
General.theme = "Base16Kvantum";
};
xdg.configFile."Kvantum/Base16Kvantum".source = "${kvantumPackage}/share/Kvantum/Base16Kvantum";
in
{
xdg.configFile."qt5ct/colors/tokyonight.conf" = { xdg.configFile."qt5ct/colors/tokyonight.conf" = {
text = "${color}"; text = "${color}";
}; };
@ -64,34 +40,18 @@ in
xdg.configFile."qt5ct/qss/tab.qss" = { xdg.configFile."qt5ct/qss/tab.qss" = {
text = "${qss}"; text = "${qss}";
}; };
stylix.targets.qt = {
enable = false;
};
qt = { qt = {
enable = true; enable = true;
style.package = pkgs.libsForQt5.breeze-qt5; style.package = pkgs.libsForQt5.breeze-qt5;
style.name = lib.mkForce "breeze-dark"; style.name = lib.mkForce "breeze-dark";
}; };
# ## test
# xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
# General.theme = "Base16Kvantum";
# };
# xdg.configFile."Kvantum/Base16Kvantum".source = "${kvantumPackage}/share/Kvantum/Base16Kvantum";
# xdg.configFile."qt5ct/qt5ct.conf".text = ''
# [Appearance]
# style=kvantum
# '';
# #icon_theme=${cfg.iconThemeName}
# xdg.configFile."qt6ct/qt6ct.conf".text = ''
# [Appearance]
# style=kvantum
# '';
# #icon_theme=${cfg.iconThemeName}
xdg.configFile."qt5ct/qt5ct.conf" = { xdg.configFile."qt5ct/qt5ct.conf" = {
text = '' text = ''
[Appearance] [Appearance]
color_scheme_path=/home/${username}/.config/qt5ct/colors/tokyonight.conf color_scheme_path=/home/${username}/.config/qt5ct/colors/tokyonight.conf
custom_palette=true custom_palette=true
@ -128,6 +88,7 @@ in
}; };
xdg.configFile."qt6ct/qt6ct.conf" = { xdg.configFile."qt6ct/qt6ct.conf" = {
text = '' text = ''
[Appearance] [Appearance]
color_scheme_path=/home/${username}/.config/qt6ct/colors/tokyonight.conf color_scheme_path=/home/${username}/.config/qt6ct/colors/tokyonight.conf
custom_palette=true custom_palette=true

View file

@ -4,9 +4,7 @@
modulesPath, modulesPath,
self, self,
... ...
}: }: {
{
imports = ["${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"]; imports = ["${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"];
nixpkgs.hostPlatform = { nixpkgs.hostPlatform = {
system = "x86_64-linux"; system = "x86_64-linux";

View file

@ -1,12 +1,11 @@
{ {
inputs, inputs,
lib,
pkgs, pkgs,
self, self,
stable, stable,
lib,
... ...
}: }: {
{
/* /*
* *
# build_systems # build_systems
@ -35,8 +34,7 @@
# ); # );
# in # in
build_systems = build_systems = {
{
root, root,
additionalMods ? { additionalMods ? {
nixos = []; nixos = [];
@ -75,14 +73,11 @@
map map
(name: { (name: {
name = name; name = name;
value = value = let
let
mod = root + /hosts/${name}/configuration.nix; mod = root + /hosts/${name}/configuration.nix;
additionalNixosConfig = root + /hosts/${name}/hardware.nix; additionalNixosConfig = root + /hosts/${name}/hardware.nix;
additionalHomeConfig = root + /hosts/${name}/home.nix; additionalHomeConfig = root + /hosts/${name}/home.nix;
in args = {
inputs.nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inherit
self self
inputs inputs
@ -90,15 +85,27 @@
additionalHomeConfig additionalHomeConfig
root root
; ;
pkgs = if overridePkgs then stable else pkgs; pkgs = lib.mkForce (
alternativePkgs = if overridePkgs then pkgs else stable; if overridePkgs
then stable
else pkgs
);
alternativePkgs =
if overridePkgs
then pkgs
else stable;
hostName = name; hostName = name;
homeMods = mods.home; homeMods = mods.home;
additionalHomeMods = additionalMods.home; additionalHomeMods = additionalMods.home;
additionalInputs = additionalInputs; additionalInputs = additionalInputs;
}; };
in
inputs.nixpkgs.lib.nixosSystem {
modules = modules =
[ mod ] [
{_module.args = args;}
mod
]
++ mods.nixos ++ mods.nixos
++ additionalMods.nixos ++ additionalMods.nixos
++ inputs.nixpkgs.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig ++ inputs.nixpkgs.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
@ -107,7 +114,10 @@
}) })
( (
lib.lists.remove "" ( lib.lists.remove "" (
lib.attrsets.mapAttrsToList (name: fType: if fType == "directory" then name else "") ( lib.attrsets.mapAttrsToList (name: fType:
if fType == "directory"
then name
else "") (
builtins.readDir (root + /hosts) builtins.readDir (root + /hosts)
) )
) )
@ -118,6 +128,8 @@
specialArgs = { specialArgs = {
inherit self inputs pkgs; inherit self inputs pkgs;
}; };
modules = [ ../iso/configuration.nix ]; modules = [
../iso/configuration.nix
];
}; };
} }

View file

@ -4,16 +4,12 @@
pkgs, pkgs,
options, options,
... ...
}: }: {
{
options.conf = { options.conf = {
system = lib.mkOption { system = lib.mkOption {
default = "x86_64-linux"; default = "x86_64-linux";
# no fisherprice unix support # no fisherprice unix support
type = type = with lib.types; (enum [
with lib.types;
(enum [
"x86_64-linux" "x86_64-linux"
"aarch64-linux" "aarch64-linux"
"aarch64-linux-android" "aarch64-linux-android"
@ -27,9 +23,7 @@
cpu = lib.mkOption { cpu = lib.mkOption {
# TODO: how to enable arm? # TODO: how to enable arm?
default = "amd"; default = "amd";
type = type = with lib.types; (enum [
with lib.types;
(enum [
"amd" "amd"
"intel" "intel"
]); ]);
@ -175,7 +169,6 @@
Home state version Home state version
''; '';
}; };
}; };
config = config =

View file

@ -3,9 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods = { options.mods = {
acpid.enable = lib.mkOption { acpid.enable = lib.mkOption {
default = false; default = false;

View file

@ -3,10 +3,8 @@
lib, lib,
options, options,
pkgs, pkgs,
inputs,
... ...
}: }: {
{
options.mods = { options.mods = {
basePackages = { basePackages = {
enable = lib.mkOption { enable = lib.mkOption {
@ -47,7 +45,8 @@
config = lib.optionalAttrs (options ? environment.systemPackages) { config = lib.optionalAttrs (options ? environment.systemPackages) {
environment.systemPackages = environment.systemPackages =
if config.mods.basePackages.enable then if config.mods.basePackages.enable
then
with pkgs; with pkgs;
[ [
adwaita-icon-theme adwaita-icon-theme
@ -70,19 +69,19 @@
libsForQt5.qtstyleplugin-kvantum libsForQt5.qtstyleplugin-kvantum
libadwaita libadwaita
libxkbcommon libxkbcommon
nixfmt-rfc-style alejandra
openssl openssl
seahorse seahorse
upower upower
xorg.xkbutils xorg.xkbutils
] ]
++ config.mods.basePackages.additionalPackages ++ config.mods.basePackages.additionalPackages
else else config.mods.basePackages.additionalPackages;
config.mods.basePackages.additionalPackages;
gtk.iconCache.enable = false; gtk.iconCache.enable = false;
services = services =
if config.mods.basePackages.enable then if config.mods.basePackages.enable
then
{ {
upower.enable = true; upower.enable = true;
dbus = { dbus = {
@ -95,11 +94,11 @@
}; };
} }
// config.mods.basePackages.specialServices // config.mods.basePackages.specialServices
else else config.mods.basePackages.specialServices;
config.mods.basePackages.specialServices;
programs = programs =
if config.mods.basePackages.enable then if config.mods.basePackages.enable
then
{ {
nix-ld = { nix-ld = {
enable = true; enable = true;
@ -121,8 +120,6 @@
gnupg.agent.enable = true; gnupg.agent.enable = true;
} }
// config.mods.basePackages.specialPrograms // config.mods.basePackages.specialPrograms
else else config.mods.basePackages.specialPrograms;
config.mods.basePackages.specialPrograms;
}; };
} }

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods = { options.mods = {
bluetooth.enable = lib.mkOption { bluetooth.enable = lib.mkOption {
default = false; default = false;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.browser.brave = { options.mods.browser.brave = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.browser.chromium = { options.mods.browser.chromium = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.browser.firefox = { options.mods.browser.firefox = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -5,8 +5,7 @@
system, system,
inputs, inputs,
... ...
}: }: {
{
options.mods.browser.zen = { options.mods.browser.zen = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -4,8 +4,7 @@
pkgs, pkgs,
options, options,
... ...
}: }: {
{
options.mods = { options.mods = {
coding = { coding = {
enable = lib.mkOption { enable = lib.mkOption {
@ -415,8 +414,7 @@
}; };
}; };
config = config = let
let
basePackages = with pkgs; [ basePackages = with pkgs; [
gitui gitui
meson meson
@ -466,8 +464,7 @@
}; };
}; };
}; };
home.packages = home.packages = with pkgs;
with pkgs;
[ [
(lib.mkIf config.mods.coding.dashvim neovide) (lib.mkIf config.mods.coding.dashvim neovide)
(lib.mkIf config.mods.coding.jetbrains jetbrains-toolbox) (lib.mkIf config.mods.coding.jetbrains jetbrains-toolbox)

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.containers = { options.mods.containers = {
variant = lib.mkOption { variant = lib.mkOption {
default = ""; default = "";
@ -48,16 +47,19 @@
environment.systemPackages = environment.systemPackages =
(lib.lists.optionals ( (lib.lists.optionals (
config.mods.containers.variant == "podman" config.mods.containers.variant == "podman"
) config.mods.containers.podmanPackages) )
config.mods.containers.podmanPackages)
++ (lib.lists.optionals ( ++ (lib.lists.optionals (
config.mods.containers.variant == "docker" config.mods.containers.variant == "docker"
) config.mods.containers.dockerPackages) )
config.mods.containers.dockerPackages)
++ (lib.lists.optionals ( ++ (lib.lists.optionals (
config.mods.containers.variant == "podman" || config.mods.containers.variant == "docker" config.mods.containers.variant == "podman" || config.mods.containers.variant == "docker"
) config.mods.containers.combinedPackages); )
config.mods.containers.combinedPackages);
virtualisation = virtualisation =
if (config.mods.containers.variant == "podman") then if (config.mods.containers.variant == "podman")
{ then {
containers.enable = true; containers.enable = true;
podman = { podman = {
enable = true; enable = true;
@ -65,15 +67,14 @@
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
}; };
} }
else if (config.mods.containers.variant == "docker") then else if (config.mods.containers.variant == "docker")
{ then {
containers.enable = true; containers.enable = true;
docker = { docker = {
enable = true; enable = true;
}; };
} }
else else {};
{ };
} }
); );
} }

View file

@ -3,9 +3,7 @@
config, config,
options, options,
... ...
}: }: let
let
driveModule = lib.types.submodule { driveModule = lib.types.submodule {
options = { options = {
name = lib.mkOption { name = lib.mkOption {
@ -33,8 +31,7 @@ let
}; };
}; };
}; };
in in {
{
options.mods = { options.mods = {
drives = { drives = {
useSwap = { useSwap = {
@ -59,7 +56,6 @@ in
}; };
extraDrives = lib.mkOption { extraDrives = lib.mkOption {
default = [ default = [
]; ];
example = [ example = [
{ {
@ -90,12 +86,15 @@ in
fileSystems = fileSystems =
builtins.listToAttrs ( builtins.listToAttrs (
map ( map (
{ name, drive }:
{ {
name,
drive,
}: {
name = "/" + name; name = "/" + name;
value = drive; value = drive;
} }
) config.mods.drives.extraDrives )
config.mods.drives.extraDrives
) )
// (lib.optionalAttrs config.mods.drives.defaultDrives.enable) { // (lib.optionalAttrs config.mods.drives.defaultDrives.enable) {
"/" = { "/" = {

View file

@ -5,12 +5,10 @@
config, config,
options, options,
... ...
}: }: let
let
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
in in {
{
options.mods.fish = { options.mods.fish = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -36,7 +34,8 @@ in
programs.fish = { programs.fish = {
enable = true; enable = true;
shellInit = shellInit =
if config.mods.fish.useDefaultConfig then if config.mods.fish.useDefaultConfig
then
'' ''
if status is-interactive if status is-interactive
# Commands to run in interactive sessions can go here # Commands to run in interactive sessions can go here
@ -182,8 +181,7 @@ in
direnv hook fish | source direnv hook fish | source
'' ''
+ config.mods.fish.additionalConfig + config.mods.fish.additionalConfig
else else config.mods.fish.additionalConfig;
config.mods.fish.additionalConfig;
}; };
} }
); );

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.flatpak = { options.mods.flatpak = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -32,11 +31,13 @@
services.flatpak.uninstallUnmanaged = true; services.flatpak.uninstallUnmanaged = true;
} }
// lib.optionalAttrs (options ? services.flatpak.packages) { // lib.optionalAttrs (options ? services.flatpak.packages) {
services.flatpak.packages = [ services.flatpak.packages =
[
# fallback if necessary, but generally avoided as nix is superior :) # fallback if necessary, but generally avoided as nix is superior :)
# default flatseal installation since flatpak permissions are totally not a broken idea # default flatseal installation since flatpak permissions are totally not a broken idea
"com.github.tchx84.Flatseal" "com.github.tchx84.Flatseal"
] ++ config.mods.flatpak.additional_packages; ]
++ config.mods.flatpak.additional_packages;
} }
); );
} }

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.gaming = { options.mods.gaming = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -3,8 +3,7 @@
options, options,
config, config,
... ...
}: }: {
{
options.mods.gdm = { options.mods.gdm = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.git = { options.mods.git = {
username = lib.mkOption { username = lib.mkOption {
default = "DashieTM"; default = "DashieTM";
@ -38,24 +37,21 @@
default = '' default = ''
Host github.com Host github.com
${ ${
if (config ? sops.secrets && config.sops.secrets ? hub.path) then if (config ? sops.secrets && config.sops.secrets ? hub.path)
"IdentityFile ${config.sops.secrets.hub.path}" then "IdentityFile ${config.sops.secrets.hub.path}"
else else ""
""
} }
Host gitlab.com Host gitlab.com
${ ${
if (config ? sops.secrets && config.sops.secrets ? lab.path) then if (config ? sops.secrets && config.sops.secrets ? lab.path)
"IdentityFile ${config.sops.secrets.lab.path}" then "IdentityFile ${config.sops.secrets.lab.path}"
else else ""
""
} }
Host dashie.org Host dashie.org
${ ${
if (config ? sops.secrets && config.sops.secrets ? dashie.path) then if (config ? sops.secrets && config.sops.secrets ? dashie.path)
"IdentityFile ${config.sops.secrets.dashie.path}" then "IdentityFile ${config.sops.secrets.dashie.path}"
else else ""
""
} }
''; '';
example = ""; example = "";

View file

@ -4,8 +4,7 @@
config, config,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.gnome = { options.mods.gnome = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;
@ -33,8 +32,7 @@
}; };
}; };
config = config = let
let
defaultExtensions = with pkgs.gnomeExtensions; [ defaultExtensions = with pkgs.gnomeExtensions; [
blur-my-shell blur-my-shell
dash-to-dock dash-to-dock

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods = { options.mods = {
gnomeServices.enable = lib.mkOption { gnomeServices.enable = lib.mkOption {
default = true; default = true;
@ -66,8 +65,7 @@
}; };
}; };
home = { home = {
packages = packages = let
let
packages = with pkgs; [ packages = with pkgs; [
gcr gcr
nautilus nautilus

View file

@ -4,9 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods = { options.mods = {
gpu = { gpu = {
nvidia.enable = lib.mkOption { nvidia.enable = lib.mkOption {
@ -63,13 +61,13 @@
}; };
hardware = { hardware = {
graphics = graphics = let
let
amdPackages = [ amdPackages = [
(lib.mkIf (config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable) pkgs.vpl-gpu-rt) (lib.mkIf (config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable) pkgs.vpl-gpu-rt)
(lib.mkIf ( (lib.mkIf (
config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable
) pkgs.intel-media-driver) )
pkgs.intel-media-driver)
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl) (lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl)
(lib.mkIf config.mods.gpu.vapi.enable pkgs.vaapiVdpau) (lib.mkIf config.mods.gpu.vapi.enable pkgs.vaapiVdpau)
(lib.mkIf (config.mods.gpu.intelgpu || config.mods.gpu.amdgpu) pkgs.mesa.drivers) (lib.mkIf (config.mods.gpu.intelgpu || config.mods.gpu.amdgpu) pkgs.mesa.drivers)
@ -78,8 +76,7 @@
pkgs.rocmPackages.clr.icd pkgs.rocmPackages.clr.icd
pkgs.rocm-opencl-runtime pkgs.rocm-opencl-runtime
]; ];
in in {
{
enable = true; enable = true;
enable32Bit = lib.mkDefault true; enable32Bit = lib.mkDefault true;
extraPackages = extraPackages =

View file

@ -5,8 +5,7 @@
pkgs, pkgs,
options, options,
... ...
}: }: {
{
options.mods = { options.mods = {
greetd = { greetd = {
enable = lib.mkOption { enable = lib.mkOption {
@ -70,8 +69,7 @@
}; };
}; };
config = config = let
let
username = config.conf.username; username = config.conf.username;
session = { session = {
command = "${ command = "${

View file

@ -5,8 +5,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
options.mods.homePackages = { options.mods.homePackages = {
useDefaultPackages = lib.mkOption { useDefaultPackages = lib.mkOption {
default = true; default = true;
@ -72,19 +71,20 @@
browser = lib.mkOption { browser = lib.mkOption {
default = inputs.zen-browser.packages.${pkgs.system}.default; default = inputs.zen-browser.packages.${pkgs.system}.default;
example = "firefox"; example = "firefox";
type = type = with lib.types;
with lib.types;
nullOr ( nullOr (
either (enum [ either (enum [
"firefox" "firefox"
]) package ])
package
); );
description = "The browser (the enum variants have preconfigured modules)"; description = "The browser (the enum variants have preconfigured modules)";
}; };
}; };
config = lib.optionalAttrs (options ? home.packages) { config = lib.optionalAttrs (options ? home.packages) {
home.packages = home.packages =
if config.mods.homePackages.useDefaultPackages then if config.mods.homePackages.useDefaultPackages
then
with pkgs; with pkgs;
[ [
(lib.mkIf config.mods.homePackages.ncspot ncspot) (lib.mkIf config.mods.homePackages.ncspot ncspot)
@ -95,7 +95,8 @@
(lib.mkIf ( (lib.mkIf (
# NOTE: This should be package, but nix doesn't have that.... # NOTE: This should be package, but nix doesn't have that....
builtins.isAttrs config.mods.homePackages.browser && !isNull config.mods.homePackages.browser builtins.isAttrs config.mods.homePackages.browser && !isNull config.mods.homePackages.browser
) config.mods.homePackages.browser) )
config.mods.homePackages.browser)
adw-gtk3 adw-gtk3
bat bat
brightnessctl brightnessctl
@ -128,8 +129,7 @@
zoxide zoxide
] ]
++ config.mods.homePackages.additionalPackages ++ config.mods.homePackages.additionalPackages
else else config.mods.homePackages.additionalPackages;
config.mods.homePackages.additionalPackages;
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml {}).generate "direnv" { xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml {}).generate "direnv" {
global = { global = {
@ -139,21 +139,19 @@
programs = programs =
config.mods.homePackages.specialPrograms config.mods.homePackages.specialPrograms
// ( // (
if config.mods.homePackages.browser == "firefox" then if config.mods.homePackages.browser == "firefox"
{ then {
firefox = { firefox = {
enable = true; enable = true;
policies = config.mods.browser.firefox.configuration; policies = config.mods.browser.firefox.configuration;
profiles = builtins.listToAttrs config.mods.browser.firefox.profiles; profiles = builtins.listToAttrs config.mods.browser.firefox.profiles;
}; };
} }
else else {}
{ }
); );
services = services =
if config.mods.homePackages.useDefaultPackages then if config.mods.homePackages.useDefaultPackages
config.mods.homePackages.specialServices then config.mods.homePackages.specialServices
else else config.mods.homePackages.specialServices;
config.mods.homePackages.specialServices;
}; };
} }

View file

@ -5,8 +5,7 @@
options, options,
inputs, inputs,
... ...
}: }: {
{
options.mods = { options.mods = {
hyprland = { hyprland = {
anyrun = { anyrun = {
@ -63,7 +62,8 @@
programs.anyrun = { programs.anyrun = {
enable = true; enable = true;
config = config =
if config.mods.hyprland.anyrun.useDefaultConfig then if config.mods.hyprland.anyrun.useDefaultConfig
then
{ {
plugins = [ plugins = [
inputs.anyrun.packages.${pkgs.system}.applications inputs.anyrun.packages.${pkgs.system}.applications
@ -84,11 +84,11 @@
closeOnClick = true; closeOnClick = true;
} }
// config.mods.hyprland.anyrun.customConfig // config.mods.hyprland.anyrun.customConfig
else else config.mods.hyprland.anyrun.customConfig;
config.mods.hyprland.anyrun.customConfig;
extraCss = extraCss =
if config.mods.hyprland.anyrun.useDefaultCss then if config.mods.hyprland.anyrun.useDefaultCss
then
'' ''
#window { #window {
border-radius: 10px; border-radius: 10px;
@ -138,8 +138,7 @@
} }
'' ''
+ config.mods.hyprland.anyrun.customCss + config.mods.hyprland.anyrun.customCss
else else config.mods.hyprland.anyrun.customCss;
config.mods.hyprland.anyrun.customCss;
}; };
} }
); );

View file

@ -5,19 +5,14 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: let
let
browserName = browserName =
if (builtins.isString config.mods.homePackages.browser) then if (builtins.isString config.mods.homePackages.browser)
config.mods.homePackages.browser then config.mods.homePackages.browser
else if else if config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram then config.mods.homePackages.browser.meta.mainProgram
then else config.mods.homePackages.browser.pname;
config.mods.homePackages.browser.meta.mainProgram in {
else
config.mods.homePackages.browser.pname;
in
{
options.mods = { options.mods = {
hyprland = { hyprland = {
enable = lib.mkOption { enable = lib.mkOption {
@ -129,7 +124,8 @@ in
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
settings = settings =
if config.mods.hyprland.useDefaultConfig then if config.mods.hyprland.useDefaultConfig
then
{ {
"$mod" = "SUPER"; "$mod" = "SUPER";
@ -366,7 +362,8 @@ in
"immediate,class:^(.*)(needforspeedheat.exe)$" "immediate,class:^(.*)(needforspeedheat.exe)$"
]; ];
exec-once = [ exec-once =
[
# environment # environment
"systemctl --user import-environment" "systemctl --user import-environment"
"dbus-update-activation-environment --systemd --all" "dbus-update-activation-environment --systemd --all"
@ -378,22 +375,26 @@ in
"${browserName}" "${browserName}"
"oxipaste_daemon" "oxipaste_daemon"
"oxinoti" "oxinoti"
] ++ config.mods.hyprland.extraAutostart; ]
++ config.mods.hyprland.extraAutostart;
plugin = { plugin =
{
hyprspace = lib.mkIf config.mods.hyprland.hyprspaceEnable { hyprspace = lib.mkIf config.mods.hyprland.hyprspaceEnable {
bind = [ bind = [
"SUPER, W, overview:toggle, toggle" "SUPER, W, overview:toggle, toggle"
]; ];
}; };
} // config.mods.hyprland.pluginConfig; }
// config.mods.hyprland.pluginConfig;
} }
// config.mods.hyprland.customConfig // config.mods.hyprland.customConfig
else else lib.mkForce config.mods.hyprland.customConfig;
lib.mkForce config.mods.hyprland.customConfig; plugins =
plugins = [ [
(lib.mkIf config.mods.hyprland.hyprspaceEnable inputs.Hyprspace.packages.${pkgs.system}.Hyprspace) (lib.mkIf config.mods.hyprland.hyprspaceEnable inputs.Hyprspace.packages.${pkgs.system}.Hyprspace)
] ++ config.mods.hyprland.plugins; ]
++ config.mods.hyprland.plugins;
}; };
} }
); );

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods = { options.mods = {
hyprland.hyprlock = { hyprland.hyprlock = {
enable = lib.mkOption { enable = lib.mkOption {

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods = { options.mods = {
hyprland.hyprpaper = { hyprland.hyprpaper = {
enable = lib.mkOption { enable = lib.mkOption {

View file

@ -3,11 +3,9 @@
config, config,
options, options,
... ...
}: }: let
let
username = config.conf.username; username = config.conf.username;
in in {
{
options.mods = { options.mods = {
hyprland.ironbar = { hyprland.ironbar = {
enable = lib.mkOption { enable = lib.mkOption {
@ -61,7 +59,8 @@ in
programs.ironbar = { programs.ironbar = {
enable = true; enable = true;
style = style =
if config.mods.hyprland.ironbar.useDefaultCss then if config.mods.hyprland.ironbar.useDefaultCss
then
'' ''
@import url("/home/${username}/.config/gtk-3.0/gtk.css"); @import url("/home/${username}/.config/gtk-3.0/gtk.css");
@ -197,16 +196,18 @@ in
} }
'' ''
+ config.mods.hyprland.ironbar.customCss + config.mods.hyprland.ironbar.customCss
else else config.mods.hyprland.ironbar.customCss;
config.mods.hyprland.ironbar.customCss;
features = [ features = [
#"another_feature" #"another_feature"
]; ];
config = { config = {
monitors."${config.conf.defaultMonitor}" = monitors."${config.conf.defaultMonitor}" =
if config.mods.hyprland.ironbar.useDefaultConfig then if config.mods.hyprland.ironbar.useDefaultConfig
then
{ {
end = config.conf.ironbar.modules ++ [ end =
config.conf.ironbar.modules
++ [
{ {
type = "sys_info"; type = "sys_info";
format = [" {memory_percent}"]; format = [" {memory_percent}"];
@ -238,13 +239,13 @@ in
type = "button"; type = "button";
class = "audio-button"; class = "audio-button";
label = ""; label = "";
on_click = (lib.mkIf config.mods.scripts.audioControl "!audioControl bluetooth"); on_click = lib.mkIf config.mods.scripts.audioControl "!audioControl bluetooth";
} }
{ {
type = "button"; type = "button";
class = "audio-button"; class = "audio-button";
label = "󰋋"; label = "󰋋";
on_click = (lib.mkIf config.mods.scripts.audioControl "!audioControl internal"); on_click = lib.mkIf config.mods.scripts.audioControl "!audioControl internal";
} }
]; ];
class = "audio-button-box"; class = "audio-button-box";
@ -317,8 +318,7 @@ in
]; ];
} }
// config.mods.hyprland.ironbar.customConfig // config.mods.hyprland.ironbar.customConfig
else else config.mods.hyprland.ironbar.customConfig;
config.mods.hyprland.ironbar.customConfig;
}; };
}; };
} }

View file

@ -3,8 +3,7 @@
options, options,
config, config,
... ...
}: }: {
{
options.mods.kde = { options.mods.kde = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;
@ -20,5 +19,4 @@
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
} }
); );
} }

View file

@ -4,9 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods = { options.mods = {
kdeConnect.enable = lib.mkOption { kdeConnect.enable = lib.mkOption {
default = false; default = false;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.keepassxc = { options.mods.keepassxc = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -5,10 +5,9 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: let
let
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
hexTable = { hexTable = {
"0" = "1"; "0" = "1";
"1" = "0"; "1" = "0";
@ -34,8 +33,7 @@ let
(lib.lists.take 5 (lib.strings.stringToCharacters scheme.base00)) (lib.lists.take 5 (lib.strings.stringToCharacters scheme.base00))
++ [hexTable."${(lib.lists.last (lib.strings.stringToCharacters scheme.base00))}"] ++ [hexTable."${(lib.lists.last (lib.strings.stringToCharacters scheme.base00))}"]
); );
in in {
{
options.mods.kitty = { options.mods.kitty = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -60,7 +58,8 @@ in
}; };
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings = { settings =
{
enable_audio_bell = "no"; enable_audio_bell = "no";
window_alert_on_bell = "no"; window_alert_on_bell = "no";
cursor_blink_interval = "0"; cursor_blink_interval = "0";
@ -132,7 +131,8 @@ in
# color15 = "#" + scheme.base07; # color15 = "#" + scheme.base07;
shell = lib.mkIf config.mods.fish.enable "fish"; shell = lib.mkIf config.mods.fish.enable "fish";
} // config.mods.kitty.additionalConfig; }
// config.mods.kitty.additionalConfig;
}; };
} }
); );

View file

@ -4,8 +4,7 @@
config, config,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.media = { options.mods.media = {
useBasePackages = lib.mkOption { useBasePackages = lib.mkOption {
default = true; default = true;
@ -40,7 +39,8 @@
}; };
config = lib.optionalAttrs (options ? home.packages) { config = lib.optionalAttrs (options ? home.packages) {
home.packages = home.packages =
if config.mods.media.useBasePackages then if config.mods.media.useBasePackages
then
with pkgs; with pkgs;
[ [
# base audio # base audio
@ -70,21 +70,19 @@
yt-dlp yt-dlp
] ]
++ config.mods.media.additionalPackages ++ config.mods.media.additionalPackages
else else config.mods.media.additionalPackages;
config.mods.media.additionalPackages;
programs = programs =
if config.mods.media.useBasePackages then if config.mods.media.useBasePackages
then
{ {
obs-studio.enable = true; obs-studio.enable = true;
obs-studio.plugins = with pkgs; [obs-studio-plugins.obs-vaapi]; obs-studio.plugins = with pkgs; [obs-studio-plugins.obs-vaapi];
} }
// config.mods.media.specialPrograms // config.mods.media.specialPrograms
else else config.mods.media.specialPrograms;
config.mods.media.specialPrograms;
services = services =
if config.mods.media.useBasePackages then if config.mods.media.useBasePackages
config.mods.media.specialServices then config.mods.media.specialServices
else else config.mods.media.specialServices;
config.mods.media.specialServices;
}; };
} }

View file

@ -5,19 +5,14 @@
lib, lib,
options, options,
... ...
}: }: let
let
browserName = browserName =
if (builtins.isString config.mods.homePackages.browser) then if (builtins.isString config.mods.homePackages.browser)
config.mods.homePackages.browser then config.mods.homePackages.browser
else if else if config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram then config.mods.homePackages.browser.meta.mainProgram
then else config.mods.homePackages.browser.pname;
config.mods.homePackages.browser.meta.mainProgram in {
else
config.mods.homePackages.browser.pname;
in
{
options.mods.mime = { options.mods.mime = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -109,15 +104,14 @@ in
# TODO additional config # TODO additional config
}; };
config = lib.optionalAttrs (options ? home) { config = lib.optionalAttrs (options ? home) {
xdg = xdg = let
let xdgAssociations = type: program: list:
xdgAssociations =
type: program: list:
builtins.listToAttrs ( builtins.listToAttrs (
map (e: { map (e: {
name = "${type}/${e}"; name = "${type}/${e}";
value = program; value = program;
}) list })
list
); );
imageAc = xdgAssociations "image" config.mods.mime.imageApplications config.mods.mime.imageTypes; imageAc = xdgAssociations "image" config.mods.mime.imageApplications config.mods.mime.imageTypes;
@ -125,7 +119,8 @@ in
audioAc = xdgAssociations "audio" config.mods.mime.audioApplications config.mods.mime.audioTypes; audioAc = xdgAssociations "audio" config.mods.mime.audioApplications config.mods.mime.audioTypes;
browserAc = browserAc =
(xdgAssociations "application" config.mods.mime.browserApplications config.mods.mime.browserTypes) (xdgAssociations "application" config.mods.mime.browserApplications config.mods.mime.browserTypes)
// (xdgAssociations "x-scheme-handler" config.mods.mime.browserApplications // (
xdgAssociations "x-scheme-handler" config.mods.mime.browserApplications
config.mods.mime.browserXTypes config.mods.mime.browserXTypes
); );
associations = builtins.mapAttrs (_: v: (map (e: "${e}.desktop") v)) ( associations = builtins.mapAttrs (_: v: (map (e: "${e}.desktop") v)) (

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.ncspot = { options.mods.ncspot = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -1,5 +1,4 @@
{ lib, ... }: {lib, ...}: {
{
options.mods = { options.mods = {
nextcloud = { nextcloud = {
enable = lib.mkOption { enable = lib.mkOption {
@ -36,5 +35,4 @@
}; };
}; };
}; };
} }

View file

@ -4,8 +4,7 @@
options, options,
inputs, inputs,
... ...
}: }: {
{
imports = [ imports = [
./oxidash.nix ./oxidash.nix
./oxinoti.nix ./oxinoti.nix

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.oxi.oxidash = { options.mods.oxi.oxidash = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.oxi.oxinoti = { options.mods.oxi.oxinoti = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -17,7 +16,8 @@
lib.optionalAttrs (options ? xdg.configFile) { lib.optionalAttrs (options ? xdg.configFile) {
programs.oxinoti.enable = true; programs.oxinoti.enable = true;
xdg.configFile."oxinoti/style.css" = { xdg.configFile."oxinoti/style.css" = {
text = # css text =
# css
'' ''
@import url("/home/${config.conf.username}/.config/gtk-3.0/gtk.css"); @import url("/home/${config.conf.username}/.config/gtk-3.0/gtk.css");

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.oxi.oxipaste = { options.mods.oxi.oxipaste = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.oxi.oxishut = { options.mods.oxi.oxishut = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.piper = { options.mods.piper = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.plymouth = { options.mods.plymouth = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.printing = { options.mods.printing = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.scripts = { options.mods.scripts = {
changeBrightness = lib.mkOption { changeBrightness = lib.mkOption {
default = true; default = true;
@ -27,7 +26,8 @@
}; };
config = ( config = (
lib.optionalAttrs (options ? home.packages) { lib.optionalAttrs (options ? home.packages) {
home.packages = [ home.packages =
[
(lib.mkIf config.mods.scripts.changeBrightness ( (lib.mkIf config.mods.scripts.changeBrightness (
pkgs.writeShellScriptBin "changeBrightness" '' pkgs.writeShellScriptBin "changeBrightness" ''
set_brightness() { set_brightness() {
@ -124,7 +124,8 @@
fi fi
'' ''
)) ))
] ++ config.mods.scripts.scripts; ]
++ config.mods.scripts.scripts;
} }
); );
} }

View file

@ -3,8 +3,7 @@
options, options,
config, config,
... ...
}: }: {
{
options.mods.sddm = { options.mods.sddm = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;

View file

@ -5,8 +5,7 @@
options, options,
root, root,
... ...
}: }: {
{
options.mods.sops = { options.mods.sops = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -29,8 +28,7 @@
sopsPath = lib.mkOption { sopsPath = lib.mkOption {
default = root + /secrets/secrets.yaml; default = root + /secrets/secrets.yaml;
example = "/your/path"; example = "/your/path";
type = type = with lib.types;
with lib.types;
oneOf [ oneOf [
str str
path path

View file

@ -5,8 +5,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
options.mods = { options.mods = {
starship = { starship = {
enable = lib.mkOption { enable = lib.mkOption {
@ -40,13 +39,11 @@
# environment.systemPackages needed in order to configure systemwide # environment.systemPackages needed in order to configure systemwide
config = lib.mkIf config.mods.starship.enable ( config = lib.mkIf config.mods.starship.enable (
lib.optionalAttrs (options ? environment.systemPackages) { lib.optionalAttrs (options ? environment.systemPackages) {
programs.starship = programs.starship = let
let
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme); scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
code_format = "[](bg:prev_bg fg:#5256c3)[ $symbol ($version)](bg:#5256c3)"; code_format = "[](bg:prev_bg fg:#5256c3)[ $symbol ($version)](bg:#5256c3)";
in in {
{
enable = true; enable = true;
interactiveOnly = true; interactiveOnly = true;
presets = lib.mkIf config.mods.starship.useDefaultPrompt ["pastel-powerline"]; presets = lib.mkIf config.mods.starship.useDefaultPrompt ["pastel-powerline"];

View file

@ -4,8 +4,7 @@
options, options,
pkgs, pkgs,
... ...
}: }: {
{
options.mods.stylix = { options.mods.stylix = {
colorscheme = lib.mkOption { colorscheme = lib.mkOption {
default = "catppuccin-mocha"; default = "catppuccin-mocha";
@ -34,8 +33,7 @@
base0E = "BB9AF7"; base0E = "BB9AF7";
base0F = "F7768E"; base0F = "F7768E";
}; };
type = type = with lib.types;
with lib.types;
oneOf [ oneOf [
str str
attrs attrs
@ -101,10 +99,9 @@
fonts = config.mods.stylix.fonts; fonts = config.mods.stylix.fonts;
cursor = config.mods.stylix.cursor; cursor = config.mods.stylix.cursor;
base16Scheme = ( base16Scheme = (
if builtins.isAttrs config.mods.stylix.colorscheme then if builtins.isAttrs config.mods.stylix.colorscheme
config.mods.stylix.colorscheme then config.mods.stylix.colorscheme
else else "${pkgs.base16-schemes}/share/themes/${config.mods.stylix.colorscheme}.yaml"
"${pkgs.base16-schemes}/share/themes/${config.mods.stylix.colorscheme}.yaml"
); );
}; };
}) })

View file

@ -5,12 +5,10 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: let
let
base16 = pkgs.callPackage inputs.base16.lib {}; base16 = pkgs.callPackage inputs.base16.lib {};
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme; scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
in in {
{
options.mods.supersonic = { options.mods.supersonic = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;
@ -31,7 +29,11 @@ in
config = lib.mkIf config.mods.supersonic.enable ( config = lib.mkIf config.mods.supersonic.enable (
lib.optionalAttrs (options ? home.packages) { lib.optionalAttrs (options ? home.packages) {
home.packages = with pkgs; [ home.packages = with pkgs; [
(if config.mods.supersonic.variant == "wayland" then supersonic-wayland else supersonic) (
if config.mods.supersonic.variant == "wayland"
then supersonic-wayland
else supersonic
)
]; ];
xdg.configFile."supersonic/themes/custom.toml".source = xdg.configFile."supersonic/themes/custom.toml".source =
(pkgs.formats.toml {}).generate "customTheme" (pkgs.formats.toml {}).generate "customTheme"
@ -67,6 +69,5 @@ in
}; };
}; };
} }
); );
} }

View file

@ -3,12 +3,11 @@
config, config,
options, options,
pkgs, pkgs,
stable,
... ...
}: }: let
let
callPackage = lib.callPackageWith pkgs; callPackage = lib.callPackageWith pkgs;
in in {
{
options.mods.teams = { options.mods.teams = {
enable = lib.mkOption { enable = lib.mkOption {
default = false; default = false;
@ -25,7 +24,7 @@ in
}; };
config = lib.mkIf config.mods.teams.enable ( config = lib.mkIf config.mods.teams.enable (
lib.optionalAttrs (options ? home.packages) { lib.optionalAttrs (options ? home.packages) {
home.packages = [ (callPackage ../../override/teams.nix { }) ]; home.packages = [(callPackage ../../override/teams.nix {pkgs = stable;})];
} }
// (lib.optionalAttrs (options ? boot.kernelModules) { // (lib.optionalAttrs (options ? boot.kernelModules) {
boot = { boot = {

View file

@ -4,18 +4,14 @@
options, options,
pkgs, pkgs,
... ...
}: }: let
let
module = module =
if config.conf.cpu == "intel" then if config.conf.cpu == "intel"
"kvm-intel" then "kvm-intel"
else if config.conf.cpu == "amd" then else if config.conf.cpu == "amd"
"kvm-amd" then "kvm-amd"
else else "";
""; in {
in
{
options.mods = { options.mods = {
virtmanager.enable = lib.mkOption { virtmanager.enable = lib.mkOption {
default = false; default = false;
@ -60,7 +56,6 @@ in
"kvm" "kvm"
"qemu-libvirtd" "qemu-libvirtd"
]; ];
} }
// lib.optionalAttrs (options ? dconf.settings) { // lib.optionalAttrs (options ? dconf.settings) {
dconf.settings = { dconf.settings = {

View file

@ -3,8 +3,7 @@
options, options,
config, config,
... ...
}: }: {
{
options.mods.xkb = { options.mods.xkb = {
layout = lib.mkOption { layout = lib.mkOption {
default = "dashie"; default = "dashie";

View file

@ -3,9 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods = { options.mods = {
xone.enable = lib.mkOption { xone.enable = lib.mkOption {
default = false; default = false;

View file

@ -3,8 +3,7 @@
config, config,
options, options,
... ...
}: }: {
{
options.mods.yazi = { options.mods.yazi = {
enable = lib.mkOption { enable = lib.mkOption {
default = true; default = true;
@ -37,8 +36,7 @@
description = "Additional keymap for yazi"; description = "Additional keymap for yazi";
}; };
}; };
config = config = let
let
conf = import ./yazi.nix; conf = import ./yazi.nix;
in in
lib.optionalAttrs (options ? home.packages) ( lib.optionalAttrs (options ? home.packages) (