treewide: format
All checks were successful
Check flake / build-amd64-linux (push) Successful in 2m53s

This commit is contained in:
2025-01-19 11:13:04 +00:00
parent c3283314b7
commit ccb57f954e
77 changed files with 1487 additions and 808 deletions

View File

@ -1,28 +1,67 @@
{ config, options, lib, self, ... }:
{
config,
options,
lib,
self,
...
}:
with lib;
{
options = with types; {
user = mkOption { type = attrs; default = { }; };
home = {
configFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_CONFIG_HOME"; };
dataFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_DATA_HOME"; };
file = mkOption { type = attrs; default = { }; description = "Files to place directly in $HOME"; };
packages = mkOption { type = attrs; default = { }; description = "User-level installed packages"; };
programs = mkOption { type = attrs; default = { }; description = "Programs managed directly from home-manager"; };
services = mkOption { type = attrs; default = { }; description = "Services managed directly from home-manager"; };
user = mkOption {
type = attrs;
default = { };
};
dconf.settings = mkOption { type = attrs; default = { }; description = "dconf settings to enable"; };
home = {
configFile = mkOption {
type = attrs;
default = { };
description = "Files to place in $XDG_CONFIG_HOME";
};
dataFile = mkOption {
type = attrs;
default = { };
description = "Files to place in $XDG_DATA_HOME";
};
file = mkOption {
type = attrs;
default = { };
description = "Files to place directly in $HOME";
};
packages = mkOption {
type = attrs;
default = { };
description = "User-level installed packages";
};
programs = mkOption {
type = attrs;
default = { };
description = "Programs managed directly from home-manager";
};
services = mkOption {
type = attrs;
default = { };
description = "Services managed directly from home-manager";
};
};
dconf.settings = mkOption {
type = attrs;
default = { };
description = "dconf settings to enable";
};
env = mkOption {
type = attrsOf (oneOf [ str path (listOf (either str path)) ]);
apply = mapAttrs (n: v:
if isList v then
concatMapStringsSep ":" (x: toString x) v
else
(toString v));
type = attrsOf (oneOf [
str
path
(listOf (either str path))
]);
apply = mapAttrs (
n: v: if isList v then concatMapStringsSep ":" (x: toString x) v else (toString v)
);
default = { };
description = "";
};
@ -31,12 +70,27 @@ with lib;
config = {
age.secrets."passwords/users/jordan".file = "${self.inputs.secrets}/passwords/users/jordan.age";
user =
let user = builtins.getEnv "USER";
name = if elem user [ "" "root" ] then "jordan" else user;
in {
let
user = builtins.getEnv "USER";
name =
if
elem user [
""
"root"
]
then
"jordan"
else
user;
in
{
inherit name;
isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" "lxd" ];
extraGroups = [
"networkmanager"
"wheel"
"lxd"
];
description = "Jordan Holt";
useDefaultShell = true;
openssh.authorizedKeys.keys = [
@ -57,12 +111,12 @@ with lib;
file = mkAliasDefinitions options.home.file;
stateVersion = config.system.stateVersion;
};
programs = mkAliasDefinitions options.home.programs;
services = mkAliasDefinitions options.home.services;
programs = mkAliasDefinitions options.home.programs;
services = mkAliasDefinitions options.home.services;
xdg = {
enable = true;
configFile = mkAliasDefinitions options.home.configFile;
dataFile = mkAliasDefinitions options.home.dataFile;
enable = true;
configFile = mkAliasDefinitions options.home.configFile;
dataFile = mkAliasDefinitions options.home.dataFile;
};
dconf.settings = mkAliasDefinitions options.dconf.settings;
};
@ -75,8 +129,8 @@ with lib;
users.users.${config.user.name} = mkAliasDefinitions options.user;
environment.extraInit =
concatStringsSep "\n"
(mapAttrsToList (n: v: "export ${n}=\"${v}\"") config.env);
environment.extraInit = concatStringsSep "\n" (
mapAttrsToList (n: v: "export ${n}=\"${v}\"") config.env
);
};
}

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.brave;
in {
let
cfg = config.modules.programs.brave;
in
{
options.modules.programs.brave = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.cc;
in {
let
cfg = config.modules.programs.dev.cc;
in
{
options.modules.programs.dev.cc = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.java;
in {
let
cfg = config.modules.programs.dev.java;
in
{
options.modules.programs.dev.java = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.lua;
in {
let
cfg = config.modules.programs.dev.lua;
in
{
options.modules.programs.dev.lua = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.node;
in {
let
cfg = config.modules.programs.dev.node;
in
{
options.modules.programs.dev.node = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.python;
in {
let
cfg = config.modules.programs.dev.python;
in
{
options.modules.programs.dev.python = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.rust;
in {
let
cfg = config.modules.programs.dev.rust;
in
{
options.modules.programs.dev.rust = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.scala;
in {
let
cfg = config.modules.programs.dev.scala;
in
{
options.modules.programs.dev.scala = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.shell;
in {
let
cfg = config.modules.programs.dev.shell;
in
{
options.modules.programs.dev.shell = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.dev.zig;
in {
let
cfg = config.modules.programs.dev.zig;
in
{
options.modules.programs.dev.zig = {
enable = lib.mkOption {
default = false;

View File

@ -1,17 +1,24 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.emulators;
in {
let
cfg = config.modules.programs.emulators;
in
{
options.modules.programs.emulators = {
ds.enable = lib.mkOption {
ds.enable = lib.mkOption {
default = false;
example = true;
};
gb.enable = lib.mkOption {
gb.enable = lib.mkOption {
default = false;
example = true;
};
gba.enable = lib.mkOption {
gba.enable = lib.mkOption {
default = false;
example = true;
};
@ -19,35 +26,35 @@ in {
default = false;
example = true;
};
ps1.enable = lib.mkOption {
ps1.enable = lib.mkOption {
default = false;
example = true;
};
ps2.enable = lib.mkOption {
ps2.enable = lib.mkOption {
default = false;
example = true;
};
ps3.enable = lib.mkOption {
ps3.enable = lib.mkOption {
default = false;
example = true;
};
psp.enable = lib.mkOption {
psp.enable = lib.mkOption {
default = false;
example = true;
};
snes.enable = lib.mkOption {
snes.enable = lib.mkOption {
default = false;
example = true;
};
switch.enable = lib.mkOption {
switch.enable = lib.mkOption {
default = false;
example = true;
};
wii.enable = lib.mkOption {
wii.enable = lib.mkOption {
default = false;
example = true;
};
xbox.enable = lib.mkOption {
xbox.enable = lib.mkOption {
default = false;
example = true;
};
@ -60,14 +67,9 @@ in {
(lib.mkIf cfg.ps3.enable rpcs3)
(lib.mkIf cfg.psp.enable unstable.ppsspp)
(lib.mkIf cfg.ds.enable desmume)
(lib.mkIf (cfg.gba.enable ||
cfg.gb.enable ||
cfg.snes.enable)
higan)
(lib.mkIf (cfg.gba.enable || cfg.gb.enable || cfg.snes.enable) higan)
(lib.mkIf cfg.switch.enable yuzuPackages.mainline)
(lib.mkIf (cfg.wii.enable ||
cfg.gamecube.enable)
dolphin-emu)
(lib.mkIf (cfg.wii.enable || cfg.gamecube.enable) dolphin-emu)
(lib.mkIf cfg.xbox.enable unstable.xemu)
];
};

View File

@ -1,7 +1,14 @@
{ config, lib, self, ... }:
{
config,
lib,
self,
...
}:
let cfg = config.modules.programs.firefox;
in {
let
cfg = config.modules.programs.firefox;
in
{
options.modules.programs.firefox = {
enable = lib.mkOption {
default = false;
@ -10,7 +17,8 @@ in {
};
config = lib.mkIf cfg.enable {
home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = self.inputs.firefox-gnome-theme;
home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source =
self.inputs.firefox-gnome-theme;
home.programs.firefox = {
enable = true;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.forensics;
in {
let
cfg = config.modules.programs.forensics;
in
{
options.modules.programs.forensics = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.git;
in {
let
cfg = config.modules.programs.git;
in
{
options.modules.programs.git = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.gpg;
in {
let
cfg = config.modules.programs.gpg;
in
{
options.modules.programs.gpg = {
enable = lib.mkOption {
default = false;

View File

@ -1,17 +1,24 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.graphics;
in {
let
cfg = config.modules.programs.graphics;
in
{
options.modules.programs.graphics = {
modeling.enable = lib.mkOption {
default = false;
example = true;
};
raster.enable = lib.mkOption {
raster.enable = lib.mkOption {
default = false;
example = true;
};
vector.enable = lib.mkOption {
vector.enable = lib.mkOption {
default = false;
example = true;
};

View File

@ -1,25 +1,31 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.programs.libreoffice;
# libreoffice-gtk4 = pkgs.libreoffice.override {
# extraMakeWrapperArgs = [
# "--set SAL_USE_VCLPLUGIN gtk4"
# ];
# unwrapped = pkgs.libreoffice-unwrapped.overrideAttrs (oldAttrs: {
# buildInputs = oldAttrs.buildInputs ++ [
# pkgs.gtk4
# ];
# configureFlags = oldAttrs.configureFlags ++ [
# "--disable-werror"
# "--enable-gtk4"
# ];
# passthru = oldAttrs.passthru // {
# inherit (pkgs) gtk4;
# };
# });
# };
in {
in
# libreoffice-gtk4 = pkgs.libreoffice.override {
# extraMakeWrapperArgs = [
# "--set SAL_USE_VCLPLUGIN gtk4"
# ];
# unwrapped = pkgs.libreoffice-unwrapped.overrideAttrs (oldAttrs: {
# buildInputs = oldAttrs.buildInputs ++ [
# pkgs.gtk4
# ];
# configureFlags = oldAttrs.configureFlags ++ [
# "--disable-werror"
# "--enable-gtk4"
# ];
# passthru = oldAttrs.passthru // {
# inherit (pkgs) gtk4;
# };
# });
# };
{
options.modules.programs.libreoffice = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.lutris;
in {
let
cfg = config.modules.programs.lutris;
in
{
options.modules.programs.lutris = {
enable = lib.mkOption {
default = false;

View File

@ -1,8 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.programs.neovim;
in {
in
{
options.modules.programs.neovim = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.pass;
in {
let
cfg = config.modules.programs.pass;
in
{
options.modules.programs.pass = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.qbittorrent;
in {
let
cfg = config.modules.programs.qbittorrent;
in
{
options.modules.programs.qbittorrent = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.recording;
in {
let
cfg = config.modules.programs.recording;
in
{
options.modules.programs.recording = {
audio.enable = lib.mkOption {
default = false;
@ -14,15 +21,26 @@ in {
};
config = {
user.packages = with pkgs;
(if cfg.audio.enable then [
ardour
audacity
] else []) ++
(if cfg.video.enable then [
handbrake
mkvtoolnix
obs-studio
] else []);
user.packages =
with pkgs;
(
if cfg.audio.enable then
[
ardour
audacity
]
else
[ ]
)
++ (
if cfg.video.enable then
[
handbrake
mkvtoolnix
obs-studio
]
else
[ ]
);
};
}

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.slack;
in {
let
cfg = config.modules.programs.slack;
in
{
options.modules.programs.slack = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.steam;
in {
let
cfg = config.modules.programs.steam;
in
{
options.modules.programs.steam = {
enable = lib.mkOption {
default = false;

View File

@ -1,16 +1,24 @@
{ config, lib, self, ... }:
{
config,
lib,
self,
...
}:
let cfg = config.modules.programs.thunderbird;
in {
let
cfg = config.modules.programs.thunderbird;
in
{
options.modules.programs.thunderbird = {
enable = lib.mkOption {
default = false;
example = true;
};
};
config = lib.mkIf cfg.enable {
home.file.".thunderbird/Default/chrome/thunderbird-gnome-theme".source = self.inputs.thunderbird-gnome-theme;
home.file.".thunderbird/Default/chrome/thunderbird-gnome-theme".source =
self.inputs.thunderbird-gnome-theme;
home.programs.thunderbird = {
enable = true;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.vscode;
in {
let
cfg = config.modules.programs.vscode;
in
{
options.modules.programs.vscode = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.programs.zoom;
in {
let
cfg = config.modules.programs.zoom;
in
{
options.modules.programs.zoom = {
enable = lib.mkOption {
default = false;

View File

@ -1,7 +1,14 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let cfg = config.modules.shell.zsh;
in {
let
cfg = config.modules.shell.zsh;
in
{
options.modules.shell.zsh = {
enable = lib.mkOption {
default = false;
@ -30,9 +37,9 @@ in {
];
env = {
ZDOTDIR = "$XDG_CONFIG_HOME/zsh";
ZDOTDIR = "$XDG_CONFIG_HOME/zsh";
ZSH_CACHE = "$XDG_CACHE_HOME/zsh";
ZGEN_DIR = "$XDG_DATA_HOME/zgenom";
ZGEN_DIR = "$XDG_DATA_HOME/zgenom";
};
home.configFile = {