style: format code

This commit is contained in:
tux
2026-09-11 01:59:55 +05:30
parent 49a341d6b3
commit 344d8bdd4a
87 changed files with 2528 additions and 2719 deletions

View File

@@ -1,7 +1,7 @@
{ {
description = "tux's nix configurations"; description = "tux's nix configurations";
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); outputs = inputs: inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree ./modules);
inputs = { inputs = {
flake-parts = { flake-parts = {

View File

@@ -1,13 +1,14 @@
{ inputs, config, ... }:
{ {
flake.modules.nixOnDroid.core = inputs,
{ config,
...
}: {
flake.modules.nixOnDroid.core = {
hostName, hostName,
userName, userName,
userEmail, userEmail,
... ...
}: }: {
{
home-manager = { home-manager = {
backupFileExtension = "bak"; backupFileExtension = "bak";
useGlobalPkgs = true; useGlobalPkgs = true;

View File

@@ -1,12 +1,10 @@
{ {
flake.modules.nixOnDroid.networking = flake.modules.nixOnDroid.networking = {
{
config, config,
lib, lib,
pkgs, pkgs,
... ...
}: }: let
let
# utility functions # utility functions
concatLines = list: builtins.concatStringsSep "\n" list; concatLines = list: builtins.concatStringsSep "\n" list;
@@ -57,8 +55,7 @@
-f "/etc/${configPath}" \ -f "/etc/${configPath}" \
-D # don't detach into a daemon process -D # don't detach into a daemon process
''; '';
in in {
{
options.tnix.networking.openssh = { options.tnix.networking.openssh = {
enable = lib.mkEnableOption '' enable = lib.mkEnableOption ''
Whether to enable the OpenSSH secure shell daemon, which Whether to enable the OpenSSH secure shell daemon, which
@@ -67,7 +64,7 @@
ports = lib.mkOption { ports = lib.mkOption {
type = lib.types.listOf lib.types.port; type = lib.types.listOf lib.types.port;
default = [ 22 ]; default = [22];
description = '' description = ''
Specifies on which ports the SSH daemon listens. Specifies on which ports the SSH daemon listens.
''; '';
@@ -75,7 +72,7 @@
authorizedKeys = lib.mkOption { authorizedKeys = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ ]; default = [];
description = '' description = ''
Specify a list of public keys to be added to the authorized_keys file. Specify a list of public keys to be added to the authorized_keys file.
''; '';

View File

@@ -1,4 +1,3 @@
{ inputs, ... }: {inputs, ...}: {
{ imports = [inputs.flake-parts.flakeModules.modules];
imports = [ inputs.flake-parts.flakeModules.modules ];
} }

View File

@@ -3,18 +3,17 @@
inputs, inputs,
config, config,
... ...
}: }: let
let mkNixOSHost = hostName: {
mkNixOSHost =
hostName:
{
userName ? "tux", userName ? "tux",
userEmail ? "t@tux.rs", userEmail ? "t@tux.rs",
system ? "x86_64-linux", system ? "x86_64-linux",
unstable ? true, unstable ? true,
}: }: let
let nixpkgs =
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable; if unstable
then inputs.nixpkgs
else inputs.nixpkgs-stable;
in in
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
inherit system; inherit system;
@@ -32,16 +31,16 @@ let
]; ];
}; };
mkDroidHost = mkDroidHost = hostName: {
hostName:
{
userName ? "nix-on-droid", userName ? "nix-on-droid",
userEmail ? "t@tux.rs", userEmail ? "t@tux.rs",
system ? "aarch64-linux", system ? "aarch64-linux",
unstable ? true, unstable ? true,
}: }: let
let nixpkgs =
nixpkgs = if unstable then inputs.nixpkgs else inputs.nixpkgs-stable; if unstable
then inputs.nixpkgs
else inputs.nixpkgs-stable;
in in
inputs.nix-on-droid.lib.nixOnDroidConfiguration { inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
@@ -65,12 +64,7 @@ let
]; ];
}; };
mkNixOSNode = mkNixOSNode = hostName: {system ? "x86_64-linux"}: {
hostName:
{
system ? "x86_64-linux",
}:
{
hostname = hostName; hostname = hostName;
profiles.system = { profiles.system = {
user = "root"; user = "root";
@@ -78,17 +72,11 @@ let
}; };
}; };
activateNixOnDroid = activateNixOnDroid = system: configuration:
system: configuration:
inputs.deploy-rs.lib.${system}.activate.custom configuration.activationPackage inputs.deploy-rs.lib.${system}.activate.custom configuration.activationPackage
"${configuration.activationPackage}/activate"; "${configuration.activationPackage}/activate";
mkDroidNode = mkDroidNode = hostName: {system ? "aarch64-linux"}: {
hostName:
{
system ? "aarch64-linux",
}:
{
hostname = hostName; hostname = hostName;
profiles.system = { profiles.system = {
sshUser = "nix-on-droid"; sshUser = "nix-on-droid";
@@ -101,30 +89,30 @@ let
path = activateNixOnDroid system self.nixOnDroidConfigurations.${hostName}; path = activateNixOnDroid system self.nixOnDroidConfigurations.${hostName};
}; };
}; };
in {
in
{
flake = { flake = {
nixosConfigurations = builtins.mapAttrs mkNixOSHost { nixosConfigurations = builtins.mapAttrs mkNixOSHost {
sirius = { }; sirius = {};
canopus = { }; canopus = {};
arcturus = { }; arcturus = {};
alpha = { }; alpha = {};
vps = { }; vps = {};
}; };
nixOnDroidConfigurations = builtins.mapAttrs mkDroidHost { nixOnDroidConfigurations = builtins.mapAttrs mkDroidHost {
vega = { }; vega = {};
}; };
deploy.nodes = deploy.nodes =
builtins.mapAttrs (hostName: _: mkNixOSNode hostName { }) self.nixosConfigurations builtins.mapAttrs (hostName: _: mkNixOSNode hostName {}) self.nixosConfigurations
// builtins.mapAttrs (hostName: _: mkDroidNode hostName { }) self.nixOnDroidConfigurations; // builtins.mapAttrs (hostName: _: mkDroidNode hostName {}) self.nixOnDroidConfigurations;
}; };
perSystem = { perSystem = {
checks = builtins.mapAttrs ( checks =
builtins.mapAttrs (
_: hostConfig: hostConfig.config.system.build.toplevel _: hostConfig: hostConfig.config.system.build.toplevel
) self.nixosConfigurations; )
self.nixosConfigurations;
}; };
} }

View File

@@ -1,8 +1,4 @@
{ {inputs, ...}: {
inputs,
...
}:
{
flake.overlays = { flake.overlays = {
modifications = final: prev: { modifications = final: prev: {
tnvim = inputs.tnvim.packages.${prev.stdenv.hostPlatform.system}.default; tnvim = inputs.tnvim.packages.${prev.stdenv.hostPlatform.system}.default;
@@ -31,9 +27,7 @@
copyparty = inputs.copyparty.overlays.default; copyparty = inputs.copyparty.overlays.default;
}; };
perSystem = perSystem = {system, ...}: {
{ system, ... }:
{
_module.args.pkgs = import inputs.nixpkgs { _module.args.pkgs = import inputs.nixpkgs {
inherit system; inherit system;
overlays = builtins.attrValues inputs.self.overlays; overlays = builtins.attrValues inputs.self.overlays;

View File

@@ -1,5 +1,4 @@
{ inputs, ... }: {inputs, ...}: {
{
imports = [ imports = [
inputs.treefmt-nix.flakeModule inputs.treefmt-nix.flakeModule
]; ];
@@ -9,7 +8,7 @@
projectRootFile = "flake.nix"; projectRootFile = "flake.nix";
flakeCheck = true; flakeCheck = true;
programs = { programs = {
nixfmt.enable = true; alejandra.enable = true;
}; };
}; };
}; };

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.homeManager.core = flake.modules.homeManager.core = {userName, ...}: {
{ userName, ... }:
{
programs.home-manager.enable = true; programs.home-manager.enable = true;
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";

View File

@@ -1,12 +1,9 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.homeManager.core = {
flake.modules.homeManager.core =
{
lib, lib,
osConfig ? { }, osConfig ? {},
... ...
}: }: {
{
nixpkgs = lib.mkIf (!(osConfig.home-manager.useGlobalPkgs or false)) { nixpkgs = lib.mkIf (!(osConfig.home-manager.useGlobalPkgs or false)) {
config = { config = {
allowUnfree = true; allowUnfree = true;

View File

@@ -1,11 +1,9 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {
{
pkgs, pkgs,
config, config,
... ...
}: }: let
let
configDir = "${config.xdg.configHome}/BraveSoftware/Brave-Browser"; configDir = "${config.xdg.configHome}/BraveSoftware/Brave-Browser";
extensionJson = ext: { extensionJson = ext: {
@@ -16,14 +14,13 @@
}; };
extensions = [ extensions = [
{ id = "nkbihfbeogaeaoehlefnkodbefgpgknn"; } # Metamask {id = "nkbihfbeogaeaoehlefnkodbefgpgknn";} # Metamask
{ id = "gppongmhjkpfnbhagpmjfkannfbllamg"; } # Wappalyzer {id = "gppongmhjkpfnbhagpmjfkannfbllamg";} # Wappalyzer
{ id = "nngceckbapebfimnlniiiahkandclblb"; } # Bitwarden {id = "nngceckbapebfimnlniiiahkandclblb";} # Bitwarden
{ id = "bfnaelmomeimhlpmgjnjophhpkkoljpa"; } # Phantom {id = "bfnaelmomeimhlpmgjnjophhpkkoljpa";} # Phantom
{ id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # DarkReader {id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";} # DarkReader
]; ];
in in {
{
programs.chromium = { programs.chromium = {
enable = true; enable = true;
package = pkgs.brave; package = pkgs.brave;

View File

@@ -1,7 +1,9 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {
{ inputs, userName, ... }: inputs,
{ userName,
...
}: {
imports = [ imports = [
inputs.nixcord.homeModules.nixcord inputs.nixcord.homeModules.nixcord
]; ];
@@ -47,7 +49,7 @@
rpcServer = true; rpcServer = true;
rpcProcessScanner = true; rpcProcessScanner = true;
pushToTalk = true; pushToTalk = true;
pushToTalkKeys = [ "RControl" ]; pushToTalkKeys = ["RControl"];
desktopNotifications = true; desktopNotifications = true;
unreadBadge = true; unreadBadge = true;
}; };

View File

@@ -1,11 +1,9 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {
{
pkgs, pkgs,
userName, userName,
... ...
}: }: {
{
programs.firefox = { programs.firefox = {
enable = true; enable = true;

View File

@@ -1,7 +1,9 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {
{ config, pkgs, ... }: config,
{ pkgs,
...
}: {
# TODO: Hyprland 0.55 switched to Lua-based configuration. # TODO: Hyprland 0.55 switched to Lua-based configuration.
# HM module is updated but I'm too lazy at this point so we symlink our config instead. # HM module is updated but I'm too lazy at this point so we symlink our config instead.
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
@@ -10,7 +12,7 @@
portalPackage = null; portalPackage = null;
xwayland.enable = true; xwayland.enable = true;
configType = "hyprlang"; configType = "hyprlang";
systemd.variables = [ "--all" ]; systemd.variables = ["--all"];
}; };
home.file = { home.file = {

View File

@@ -1,25 +1,21 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.homeManager.desktop = {
flake.modules.homeManager.desktop =
{
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.lan-mouse; cfg = config.tnix.services.lan-mouse;
in in {
{ imports = [inputs.lan-mouse.homeManagerModules.default];
imports = [ inputs.lan-mouse.homeManagerModules.default ];
options.tnix.services.lan-mouse = { options.tnix.services.lan-mouse = {
enable = mkEnableOption "Enable Lan-Mouse"; enable = mkEnableOption "Enable Lan-Mouse";
settings = mkOption { settings = mkOption {
type = (pkgs.formats.toml { }).type; type = (pkgs.formats.toml {}).type;
default = { }; default = {};
description = '' description = ''
TOML configuration for lan-mouse. TOML configuration for lan-mouse.
See <https://github.com/feschber/lan-mouse/> for available options. See <https://github.com/feschber/lan-mouse/> for available options.
@@ -28,7 +24,6 @@
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.lan-mouse = { programs.lan-mouse = {
enable = true; enable = true;
systemd = true; systemd = true;

View File

@@ -1,17 +1,13 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.homeManager.desktop = {
flake.modules.homeManager.desktop =
{
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.desktop.mangowm; cfg = config.tnix.desktop.mangowm;
in in {
{
imports = [ imports = [
inputs.mango.hmModules.mango inputs.mango.hmModules.mango
]; ];
@@ -21,12 +17,12 @@
monitorRule = mkOption { monitorRule = mkOption {
type = with types; listOf str; type = with types; listOf str;
default = [ ]; default = [];
}; };
tagRule = mkOption { tagRule = mkOption {
type = with types; listOf str; type = with types; listOf str;
default = [ ]; default = [];
}; };
}; };

View File

@@ -1,13 +1,10 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.mpv = { programs.mpv = {
enable = true; enable = true;
scripts = ( scripts = (
with pkgs.mpvScripts; with pkgs.mpvScripts; [
[
modernz modernz
thumbfast thumbfast
mpris mpris

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
home.pointerCursor = { home.pointerCursor = {
enable = true; enable = true;
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;

View File

@@ -1,10 +1,5 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {pkgs, ...}: {
{
pkgs,
...
}:
{
programs.vicinae = { programs.vicinae = {
enable = true; enable = true;
systemd = { systemd = {
@@ -52,7 +47,7 @@
opacity = 0.98; opacity = 0.98;
}; };
imports = [ "/run/secrets/vicinae.json" ]; imports = ["/run/secrets/vicinae.json"];
providers = { providers = {
"@sovereign/vicinae-extension-awww-switcher-0" = { "@sovereign/vicinae-extension-awww-switcher-0" = {

View File

@@ -1,5 +1,5 @@
{ inputs, ... }: { {inputs, ...}: {
flake.modules.homeManager.desktop = { pkgs, ... }: { flake.modules.homeManager.desktop = {pkgs, ...}: {
imports = [ imports = [
inputs.voxtype.homeManagerModules.default inputs.voxtype.homeManagerModules.default
]; ];

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.wezterm = { programs.wezterm = {
enable = true; enable = true;
package = pkgs.wezterm-git; package = pkgs.wezterm-git;

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.homeManager.desktop = { osConfig, ... }: { flake.modules.homeManager.desktop = {osConfig, ...}: {
programs.lutris = { programs.lutris = {
enable = true; enable = true;
steamPackage = osConfig.programs.steam.package; steamPackage = osConfig.programs.steam.package;

View File

@@ -1,11 +1,9 @@
{ {
flake.modules.homeManager.shell = flake.modules.homeManager.shell = {
{
userName, userName,
userEmail, userEmail,
... ...
}: }: {
{
programs.git = { programs.git = {
enable = true; enable = true;
signing = { signing = {

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.homeManager.shell = flake.modules.homeManager.shell = {pkgs, ...}: {
{ pkgs, ... }:
{
home.packages = with pkgs; [ home.packages = with pkgs; [
systemctl-tui systemctl-tui
zip zip

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.homeManager.shell = flake.modules.homeManager.shell = {pkgs, ...}: {
{ pkgs, ... }:
{
home.file = { home.file = {
".config/nvim" = { ".config/nvim" = {
recursive = true; recursive = true;

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.homeManager.shell = { pkgs, ... }: { flake.modules.homeManager.shell = {pkgs, ...}: {
programs.opencode = { programs.opencode = {
enable = true; enable = true;
package = pkgs.opencode-git; package = pkgs.opencode-git;
@@ -25,7 +25,7 @@
}; };
}; };
}; };
plugin = [ "@dietrichgebert/ponytail" ]; plugin = ["@dietrichgebert/ponytail"];
}; };
}; };
}; };

View File

@@ -1,58 +1,47 @@
{ {
flake.modules.homeManager.shell = flake.modules.homeManager.shell = {pkgs, ...}: let
{ pkgs, ... }:
let
bg = "default"; bg = "default";
fg = "default"; fg = "default";
bg2 = "brightblack"; bg2 = "brightblack";
fg2 = "white"; fg2 = "white";
color = c: "#{@${c}}"; color = c: "#{@${c}}";
indicator = indicator = let
let
accent = color "indicator_color"; accent = color "indicator_color";
content = " "; content = " ";
in in "#[reverse,fg=${accent}]#{?client_prefix,${content},}";
"#[reverse,fg=${accent}]#{?client_prefix,${content},}";
current_window = current_window = let
let
accent = color "main_accent"; accent = color "main_accent";
index = "#[reverse,fg=${accent},bg=${fg}] #I "; index = "#[reverse,fg=${accent},bg=${fg}] #I ";
name = "#[fg=${bg2},bg=${fg2}] #W "; name = "#[fg=${bg2},bg=${fg2}] #W ";
# flags = "#{?window_flags,#{window_flags}, }"; # flags = "#{?window_flags,#{window_flags}, }";
in in "${index}${name}";
"${index}${name}";
window_status = window_status = let
let
accent = color "window_color"; accent = color "window_color";
index = "#[reverse,fg=${accent},bg=${fg}] #I "; index = "#[reverse,fg=${accent},bg=${fg}] #I ";
name = "#[fg=${bg2},bg=${fg2}] #W "; name = "#[fg=${bg2},bg=${fg2}] #W ";
# flags = "#{?window_flags,#{window_flags}, }"; # flags = "#{?window_flags,#{window_flags}, }";
in in "${index}${name}";
"${index}${name}";
battery = battery = let
let
percentage = pkgs.writeShellScript "percentage" ( percentage = pkgs.writeShellScript "percentage" (
if pkgs.stdenv.isDarwin then if pkgs.stdenv.isDarwin
'' then ''
echo $(pmset -g batt | grep -o "[0-9]\+%" | tr '%' ' ') echo $(pmset -g batt | grep -o "[0-9]\+%" | tr '%' ' ')
'' ''
else else ''
''
path="/org/freedesktop/UPower/devices/DisplayDevice" path="/org/freedesktop/UPower/devices/DisplayDevice"
echo $(${pkgs.upower}/bin/upower -i $path | grep -o "[0-9]\+%" | tr '%' ' ') echo $(${pkgs.upower}/bin/upower -i $path | grep -o "[0-9]\+%" | tr '%' ' ')
'' ''
); );
state = pkgs.writeShellScript "state" ( state = pkgs.writeShellScript "state" (
if pkgs.stdenv.isDarwin then if pkgs.stdenv.isDarwin
'' then ''
echo $(pmset -g batt | awk '{print $4}') echo $(pmset -g batt | awk '{print $4}')
'' ''
else else ''
''
path="/org/freedesktop/UPower/devices/DisplayDevice" path="/org/freedesktop/UPower/devices/DisplayDevice"
echo $(${pkgs.upower}/bin/upower -i $path | grep state | awk '{print $2}') echo $(${pkgs.upower}/bin/upower -i $path | grep state | awk '{print $2}')
'' ''
@@ -77,31 +66,25 @@
elif [ $percentage -ge 0 ]; then echo "red" elif [ $percentage -ge 0 ]; then echo "red"
fi fi
''; '';
in in "#[fg=#(${color})]#(${icon}) #[fg=${fg}]#(${percentage})%";
"#[fg=#(${color})]#(${icon}) #[fg=${fg}]#(${percentage})%";
pwd = pwd = let
let
accent = color "main_accent"; accent = color "main_accent";
icon = "#[fg=${accent}] "; icon = "#[fg=${accent}] ";
format = "#[fg=${fg}]#{b:pane_current_path}"; format = "#[fg=${fg}]#{b:pane_current_path}";
in in "${icon}${format}";
"${icon}${format}";
git = git = let
let
icon = pkgs.writeShellScript "branch" '' icon = pkgs.writeShellScript "branch" ''
git -C "$1" branch && echo " " git -C "$1" branch && echo " "
''; '';
branch = pkgs.writeShellScript "branch" '' branch = pkgs.writeShellScript "branch" ''
git -C "$1" rev-parse --abbrev-ref HEAD git -C "$1" rev-parse --abbrev-ref HEAD
''; '';
in in "#[fg=magenta]#(${icon} #{pane_current_path})#(${branch} #{pane_current_path})";
"#[fg=magenta]#(${icon} #{pane_current_path})#(${branch} #{pane_current_path})";
separator = "#[fg=${fg}]|"; separator = "#[fg=${fg}]|";
in in {
{
programs.tmux = { programs.tmux = {
enable = true; enable = true;
baseIndex = 1; baseIndex = 1;

View File

@@ -2,7 +2,7 @@
flake.modules.homeManager.shell = { flake.modules.homeManager.shell = {
programs.zoxide = { programs.zoxide = {
enable = true; enable = true;
options = [ "--cmd cd" ]; options = ["--cmd cd"];
enableZshIntegration = true; enableZshIntegration = true;
}; };
}; };

View File

@@ -1,8 +1,5 @@
{ lib, ... }: {lib, ...}: {
{ flake.modules.homeManager.shell = {pkgs, ...}: {
flake.modules.homeManager.shell =
{ pkgs, ... }:
{
programs.zsh = { programs.zsh = {
enable = true; enable = true;
history = { history = {

View File

@@ -1,14 +1,14 @@
{ inputs, config, ... }:
{ {
flake.modules.nixos.alpha = inputs,
{ config,
...
}: {
flake.modules.nixos.alpha = {
hostName, hostName,
userName, userName,
... ...
}@innerArgs: } @ innerArgs: {
{ imports = with config.flake.modules.nixos;
imports =
with config.flake.modules.nixos;
[ [
boot boot
networking networking

View File

@@ -1,12 +1,12 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.alpha = {
flake.modules.nixos.alpha = config,
{ config, lib, ... }: lib,
let ...
}: let
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
isLegacy = config.tnix.boot.legacy.enable; isLegacy = config.tnix.boot.legacy.enable;
in in {
{
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
@@ -16,7 +16,8 @@
type = "disk"; type = "disk";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions =
{
ESP = { ESP = {
size = "1G"; size = "1G";
type = "EF00"; type = "EF00";
@@ -36,7 +37,8 @@
content = { content = {
type = "btrfs"; type = "btrfs";
# Base subvolumes that always exist # Base subvolumes that always exist
subvolumes = { subvolumes =
{
"/root" = { "/root" = {
mountOptions = [ mountOptions = [
"compress=zstd" "compress=zstd"

View File

@@ -1,12 +1,10 @@
{ {
flake.modules.nixos.alpha = flake.modules.nixos.alpha = {
{
lib, lib,
modulesPath, modulesPath,
system, system,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];

View File

@@ -1,12 +1,10 @@
{ config, ... }: { {config, ...}: {
flake.modules.nixos.arcturus = flake.modules.nixos.arcturus = {
{
pkgs, pkgs,
hostName, hostName,
userName, userName,
... ...
}@innerArgs: } @ innerArgs: {
{
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
networking networking
@@ -53,7 +51,7 @@
services = { services = {
hermes-agent = { hermes-agent = {
enable = true; enable = true;
environmentFiles = [ innerArgs.config.sops.secrets.hermes.path ]; environmentFiles = [innerArgs.config.sops.secrets.hermes.path];
}; };
cyber-tux = { cyber-tux = {
@@ -76,7 +74,7 @@
path = "/var/lib/copyparty/data"; path = "/var/lib/copyparty/data";
access = { access = {
r = "*"; r = "*";
rwmdgGha = [ userName ]; rwmdgGha = [userName];
}; };
}; };
}; };

View File

@@ -1,11 +1,11 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.arcturus = {
flake.modules.nixos.arcturus = config,
{ config, lib, ... }: lib,
let ...
}: let
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
in in {
{
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
@@ -35,7 +35,8 @@
content = { content = {
type = "btrfs"; type = "btrfs";
# Base subvolumes that always exist # Base subvolumes that always exist
subvolumes = { subvolumes =
{
"/root" = { "/root" = {
mountOptions = [ mountOptions = [
"compress=zstd" "compress=zstd"

View File

@@ -1,13 +1,10 @@
{ config, ... }: {config, ...}: {
{ flake.modules.nixos.arcturus = {
flake.modules.nixos.arcturus =
{
lib, lib,
pkgs, pkgs,
system, system,
... ...
}@innerArgs: } @ innerArgs: {
{
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
hardware hardware
]; ];
@@ -20,9 +17,9 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;

View File

@@ -1,12 +1,10 @@
{ config, ... }: { {config, ...}: {
flake.modules.nixos.canopus = flake.modules.nixos.canopus = {
{
pkgs, pkgs,
hostName, hostName,
userName, userName,
... ...
}: }: {
{
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
networking networking

View File

@@ -1,11 +1,11 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.canopus = {
flake.modules.nixos.canopus = config,
{ config, lib, ... }: lib,
let ...
}: let
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
in in {
{
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
@@ -43,7 +43,8 @@
content = { content = {
type = "btrfs"; type = "btrfs";
# Base subvolumes that always exist # Base subvolumes that always exist
subvolumes = { subvolumes =
{
"/root" = { "/root" = {
mountOptions = [ mountOptions = [
"compress=zstd" "compress=zstd"

View File

@@ -1,15 +1,15 @@
{ inputs, config, ... }:
{ {
flake.modules.nixos.canopus = inputs,
{ config,
...
}: {
flake.modules.nixos.canopus = {
lib, lib,
pkgs, pkgs,
system, system,
... ...
}@innerArgs: } @ innerArgs: {
{ imports = with config.flake.modules.nixos;
imports =
with config.flake.modules.nixos;
[ [
hardware hardware
] ]
@@ -18,7 +18,7 @@
inputs.cardwire.nixosModules.default inputs.cardwire.nixosModules.default
]; ];
boot.kernelParams = [ "nvidia-drm.modeset=1" ]; boot.kernelParams = ["nvidia-drm.modeset=1"];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci" "xhci_pci"
@@ -27,9 +27,9 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
hardware = { hardware = {
nvidia = { nvidia = {
@@ -42,7 +42,7 @@
}; };
services = { services = {
xserver.videoDrivers = [ "nvidia" ]; xserver.videoDrivers = ["nvidia"];
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
upower.enable = true; upower.enable = true;

View File

@@ -1,6 +1,5 @@
{ config, ... }: {config, ...}: {
{ flake.modules.homeManager.canopus = {pkgs, ...}: {
flake.modules.homeManager.canopus = { pkgs, ... }: {
imports = with config.flake.modules.homeManager; [ imports = with config.flake.modules.homeManager; [
desktop desktop
]; ];
@@ -27,8 +26,7 @@
enable = true; enable = true;
settings = { settings = {
authorized_fingerprints = { authorized_fingerprints = {
"f4:4b:17:61:f7:01:a4:a2:e1:c7:8c:1c:7a:f3:8b:87:14:3d:05:3d:a0:8b:cc:e7:88:d8:d8:d2:a4:c2:75:8b" = "f4:4b:17:61:f7:01:a4:a2:e1:c7:8c:1c:7a:f3:8b:87:14:3d:05:3d:a0:8b:cc:e7:88:d8:d8:d2:a4:c2:75:8b" = "sirius";
"sirius";
}; };
}; };
}; };

View File

@@ -1,12 +1,10 @@
{ config, ... }: { {config, ...}: {
flake.modules.nixos.sirius = flake.modules.nixos.sirius = {
{
pkgs, pkgs,
hostName, hostName,
userName, userName,
... ...
}: }: {
{
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
networking networking

View File

@@ -1,11 +1,11 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.sirius = {
flake.modules.nixos.sirius = config,
{ config, lib, ... }: lib,
let ...
}: let
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
in in {
{
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
@@ -43,7 +43,8 @@
content = { content = {
type = "btrfs"; type = "btrfs";
# Base subvolumes that always exist # Base subvolumes that always exist
subvolumes = { subvolumes =
{
"/root" = { "/root" = {
mountOptions = [ mountOptions = [
"compress=zstd" "compress=zstd"

View File

@@ -1,15 +1,15 @@
{ inputs, config, ... }:
{ {
flake.modules.nixos.sirius = inputs,
{ config,
...
}: {
flake.modules.nixos.sirius = {
lib, lib,
pkgs, pkgs,
system, system,
... ...
}@innerArgs: } @ innerArgs: {
{ imports = with config.flake.modules.nixos;
imports =
with config.flake.modules.nixos;
[ [
hardware hardware
] ]
@@ -17,7 +17,7 @@
inputs.cardwire.nixosModules.default inputs.cardwire.nixosModules.default
]; ];
boot.kernelParams = [ "nvidia-drm.modeset=1" ]; boot.kernelParams = ["nvidia-drm.modeset=1"];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci" "xhci_pci"
@@ -26,9 +26,9 @@
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
hardware = { hardware = {
nvidia = { nvidia = {
@@ -41,7 +41,7 @@
}; };
services = { services = {
xserver.videoDrivers = [ "nvidia" ]; xserver.videoDrivers = ["nvidia"];
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;
cardwire = { cardwire = {

View File

@@ -1,5 +1,4 @@
{ config, ... }: {config, ...}: {
{
flake.modules.homeManager.sirius = { flake.modules.homeManager.sirius = {
imports = with config.flake.modules.homeManager; [ imports = with config.flake.modules.homeManager; [
desktop desktop
@@ -45,7 +44,7 @@
position = "bottom"; position = "bottom";
hostname = "canopus"; hostname = "canopus";
activate_on_startup = true; activate_on_startup = true;
ips = [ "192.168.8.2" ]; ips = ["192.168.8.2"];
} }
]; ];
}; };

View File

@@ -1,12 +1,9 @@
{ config, ... }: {config, ...}: {
{ flake.modules.nixOnDroid.vega = {
flake.modules.nixOnDroid.vega =
{
pkgs, pkgs,
userEmail, userEmail,
... ...
}: }: {
{
imports = with config.flake.modules.nixOnDroid; [ imports = with config.flake.modules.nixOnDroid; [
networking networking
]; ];
@@ -18,18 +15,16 @@
# android-integration.termux-setup-storage.enable = true; # android-integration.termux-setup-storage.enable = true;
# android-integration.termux-reload-settings.enable = true; # android-integration.termux-reload-settings.enable = true;
terminal.font = terminal.font = let
let
firacode = pkgs.nerd-fonts.fira-code; firacode = pkgs.nerd-fonts.fira-code;
fontPath = "share/fonts/truetype/NerdFonts/FiraCode/FiraCodeNerdFont-Regular.ttf"; fontPath = "share/fonts/truetype/NerdFonts/FiraCode/FiraCodeNerdFont-Regular.ttf";
in in "${firacode}/${fontPath}";
"${firacode}/${fontPath}";
time.timeZone = "Asia/Kolkata"; time.timeZone = "Asia/Kolkata";
tnix.networking.openssh = { tnix.networking.openssh = {
enable = true; enable = true;
ports = [ 8033 ]; ports = [8033];
authorizedKeys = [ authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D ${userEmail}" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D ${userEmail}"
]; ];

View File

@@ -1,5 +1,4 @@
{ lib, ... }: {lib, ...}: {
{
flake.modules.homeManager.vega = { flake.modules.homeManager.vega = {
# @TODO: Broken currently - By default it's enabled by neovim module # @TODO: Broken currently - By default it's enabled by neovim module
programs.vim.enable = lib.mkForce false; programs.vim.enable = lib.mkForce false;

View File

@@ -1,11 +1,5 @@
{ config, ... }: {config, ...}: {
{ flake.modules.nixos.vps = {hostName, ...}: {
flake.modules.nixos.vps =
{
hostName,
...
}:
{
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
networking networking

View File

@@ -1,12 +1,12 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.vps = {
flake.modules.nixos.vps = config,
{ config, lib, ... }: lib,
let ...
}: let
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
isLegacy = config.tnix.boot.legacy.enable; isLegacy = config.tnix.boot.legacy.enable;
in in {
{
imports = [ imports = [
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
]; ];
@@ -16,7 +16,8 @@
type = "disk"; type = "disk";
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions =
{
ESP = { ESP = {
size = "1G"; size = "1G";
type = "EF00"; type = "EF00";
@@ -36,7 +37,8 @@
content = { content = {
type = "btrfs"; type = "btrfs";
# Base subvolumes that always exist # Base subvolumes that always exist
subvolumes = { subvolumes =
{
"/root" = { "/root" = {
mountOptions = [ mountOptions = [
"compress=zstd" "compress=zstd"

View File

@@ -1,12 +1,10 @@
{ {
flake.modules.nixos.vps = flake.modules.nixos.vps = {
{
lib, lib,
modulesPath, modulesPath,
system, system,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];

View File

@@ -1,16 +1,12 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.boot = {
flake.modules.nixos.boot =
{
config, config,
lib, lib,
userName, userName,
... ...
}: }: let
let
cfg = config.tnix.boot; cfg = config.tnix.boot;
in in {
{
imports = [ imports = [
inputs.impermanence.nixosModules.impermanence inputs.impermanence.nixosModules.impermanence
]; ];
@@ -20,24 +16,24 @@
directories = lib.mkOption { directories = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ ]; default = [];
}; };
files = lib.mkOption { files = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ ]; default = [];
}; };
}; };
options.tnix.boot.impermanence.home = { options.tnix.boot.impermanence.home = {
directories = lib.mkOption { directories = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ ]; default = [];
}; };
files = lib.mkOption { files = lib.mkOption {
type = lib.types.listOf lib.types.str; type = lib.types.listOf lib.types.str;
default = [ ]; default = [];
}; };
}; };
@@ -46,14 +42,16 @@
fileSystems."/persist".neededForBoot = true; fileSystems."/persist".neededForBoot = true;
environment.persistence."/persist" = { environment.persistence."/persist" = {
hideMounts = true; hideMounts = true;
directories = [ directories =
[
"/var/log" "/var/log"
"/var/lib" "/var/lib"
"/etc/NetworkManager/system-connections" "/etc/NetworkManager/system-connections"
] ]
++ cfg.impermanence.directories; ++ cfg.impermanence.directories;
files = [ files =
[
"/etc/machine-id" "/etc/machine-id"
"/etc/ssh/ssh_host_ed25519_key" "/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_ed25519_key.pub" "/etc/ssh/ssh_host_ed25519_key.pub"
@@ -65,7 +63,8 @@
home-manager.users.${userName} = { home-manager.users.${userName} = {
home.persistence."/persist" = { home.persistence."/persist" = {
directories = [ directories =
[
"Downloads" "Downloads"
"Music" "Music"
"Wallpapers" "Wallpapers"
@@ -85,9 +84,9 @@
enable = true; enable = true;
services.wipe-my-fs = { services.wipe-my-fs = {
wantedBy = [ "initrd.target" ]; wantedBy = ["initrd.target"];
after = [ "initrd-root-device.target" ]; after = ["initrd-root-device.target"];
before = [ "sysroot.mount" ]; before = ["sysroot.mount"];
unitConfig.DefaultDependencies = "no"; unitConfig.DefaultDependencies = "no";
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
script = '' script = ''

View File

@@ -1,17 +1,18 @@
{ {
flake.modules.nixos.boot = flake.modules.nixos.boot = {
{ config, lib, ... }: config,
let lib,
...
}: let
cfg = config.tnix.boot; cfg = config.tnix.boot;
in in {
{
options.tnix.boot.legacy = { options.tnix.boot.legacy = {
enable = lib.mkEnableOption "legacy boot (GRUB) instead of systemd-boot"; enable = lib.mkEnableOption "legacy boot (GRUB) instead of systemd-boot";
}; };
config = lib.mkMerge [ config = lib.mkMerge [
{ {
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; boot.binfmt.emulatedSystems = ["aarch64-linux"];
boot.loader = { boot.loader = {
timeout = 1; timeout = 1;

View File

@@ -1,12 +1,10 @@
{ {
flake.modules.nixos.boot = flake.modules.nixos.boot = {pkgs, ...}: {
{ pkgs, ... }:
{
boot = { boot = {
consoleLogLevel = 0; consoleLogLevel = 0;
initrd.verbose = false; initrd.verbose = false;
kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = [ "ntfs" ]; supportedFilesystems = ["ntfs"];
}; };
}; };
} }

View File

@@ -1,17 +1,13 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.boot = {
flake.modules.nixos.boot =
{
config, config,
lib, lib,
pkgs, pkgs,
... ...
}: }: let
let
cfg = config.tnix.boot; cfg = config.tnix.boot;
in in {
{ imports = [inputs.lanzaboote.nixosModules.lanzaboote];
imports = [ inputs.lanzaboote.nixosModules.lanzaboote ];
options.tnix.boot.secure-boot = { options.tnix.boot.secure-boot = {
enable = lib.mkEnableOption "Enable secure-boot"; enable = lib.mkEnableOption "Enable secure-boot";
@@ -25,7 +21,7 @@
} }
]; ];
environment.systemPackages = [ pkgs.sbctl ]; environment.systemPackages = [pkgs.sbctl];
# Lanzaboote replaces systemd-boot, so force it off # Lanzaboote replaces systemd-boot, so force it off
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;

View File

@@ -1,13 +1,14 @@
{ inputs, config, ... }:
{ {
flake.modules.nixos.core = inputs,
{ config,
...
}: {
flake.modules.nixos.core = {
hostName, hostName,
userName, userName,
userEmail, userEmail,
... ...
}: }: {
{
imports = [ imports = [
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
]; ];

View File

@@ -1,11 +1,9 @@
{ {
flake.modules.nixos.core = flake.modules.nixos.core = {
{
config, config,
userName, userName,
... ...
}: }: {
{
programs.nh = { programs.nh = {
enable = true; enable = true;

View File

@@ -1,6 +1,5 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.core = {pkgs, ...}: {
flake.modules.nixos.core = { pkgs, ... }: {
imports = [ imports = [
inputs.nix-index-database.nixosModules.default inputs.nix-index-database.nixosModules.default
]; ];

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.core = flake.modules.nixos.core = {userName, ...}: {
{ userName, ... }:
{
nix = { nix = {
channel.enable = false; channel.enable = false;

View File

@@ -1,5 +1,4 @@
{ inputs, ... }: {inputs, ...}: {
{
flake.modules.nixos.core = { flake.modules.nixos.core = {
nixpkgs = { nixpkgs = {
config = { config = {

View File

@@ -1,18 +1,14 @@
{ inputs, ... }: {inputs, ...}: {
{ flake.modules.nixos.core = {
flake.modules.nixos.core =
{
config, config,
pkgs, pkgs,
... ...
}: }: let
let
isEd25519 = k: k.type == "ed25519"; isEd25519 = k: k.type == "ed25519";
getKeyPath = k: k.path; getKeyPath = k: k.path;
keys = builtins.filter isEd25519 config.services.openssh.hostKeys; keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
in in {
{ imports = [inputs.sops-nix.nixosModules.sops];
imports = [ inputs.sops-nix.nixosModules.sops ];
sops.age = { sops.age = {
sshKeyPaths = map getKeyPath keys; sshKeyPaths = map getKeyPath keys;
@@ -20,6 +16,6 @@
generateKey = true; generateKey = true;
}; };
environment.systemPackages = with pkgs; [ sops ]; environment.systemPackages = with pkgs; [sops];
}; };
} }

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.core = flake.modules.nixos.core = {
{
pkgs, pkgs,
lib, lib,
config, config,
userName, userName,
userEmail, userEmail,
... ...
}: }: let
let hasPasswordSecret = lib.hasAttrByPath ["sops" "secrets" "tux-password"] config;
hasPasswordSecret = lib.hasAttrByPath [ "sops" "secrets" "tux-password" ] config; in {
in
{
programs.zsh.enable = true; programs.zsh.enable = true;
time.timeZone = "Asia/Kolkata"; time.timeZone = "Asia/Kolkata";

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
fonts.packages = with pkgs.nerd-fonts; [ fonts.packages = with pkgs.nerd-fonts; [
fira-code fira-code
jetbrains-mono jetbrains-mono

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.gpu-screen-recorder = { programs.gpu-screen-recorder = {
enable = true; enable = true;
}; };

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
package = pkgs.hyprland-git.hyprland; package = pkgs.hyprland-git.hyprland;

View File

@@ -1,15 +1,9 @@
{ {inputs, ...}: {
inputs, flake.modules.nixos.desktop = {
...
}:
{
flake.modules.nixos.desktop =
{
pkgs, pkgs,
lib, lib,
... ...
}: }: {
{
imports = [ imports = [
inputs.mango.nixosModules.mango inputs.mango.nixosModules.mango
]; ];
@@ -28,8 +22,8 @@
"hyprland" "hyprland"
"gtk" "gtk"
]; ];
"org.freedesktop.impl.portal.ScreenCast" = lib.mkForce [ "hyprland" ]; "org.freedesktop.impl.portal.ScreenCast" = lib.mkForce ["hyprland"];
"org.freedesktop.impl.portal.ScreenShot" = lib.mkForce [ "hyprland" ]; "org.freedesktop.impl.portal.ScreenShot" = lib.mkForce ["hyprland"];
}; };
}; };
}; };

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }: environment.systemPackages = with pkgs; [brightnessctl];
{
environment.systemPackages = with pkgs; [ brightnessctl ];
}; };
} }

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
enableVirtualCamera = true; enableVirtualCamera = true;

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }:
{
services = { services = {
gvfs.enable = true; gvfs.enable = true;
tumbler.enable = true; tumbler.enable = true;

View File

@@ -1,7 +1,5 @@
{ {
flake.modules.nixos.desktop = flake.modules.nixos.desktop = {pkgs, ...}: {
{ pkgs, ... }: environment.systemPackages = with pkgs; [tshell];
{
environment.systemPackages = with pkgs; [ tshell ];
}; };
} }

View File

@@ -1,11 +1,9 @@
{ {
flake.modules.nixos.gaming = flake.modules.nixos.gaming = {pkgs, ...}: {
{ pkgs, ... }:
{
programs.steam = { programs.steam = {
enable = true; enable = true;
protontricks.enable = true; protontricks.enable = true;
extraCompatPackages = with pkgs; [ proton-ge-bin ]; extraCompatPackages = with pkgs; [proton-ge-bin];
}; };
}; };
} }

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.nixos.hardware = { pkgs, ... }: { flake.modules.nixos.hardware = {pkgs, ...}: {
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {

View File

@@ -1,5 +1,5 @@
{ {
flake.modules.nixos.hardware = { pkgs, ... }: { flake.modules.nixos.hardware = {pkgs, ...}: {
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
}; };

View File

@@ -1,16 +1,13 @@
{ {
flake.modules.nixos.networking = flake.modules.nixos.networking = {
{
config, config,
lib, lib,
hostName, hostName,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.networking.netbird-client; cfg = config.tnix.networking.netbird-client;
in in {
{
options.tnix.networking.netbird-client = { options.tnix.networking.netbird-client = {
enable = mkEnableOption "Enable netbird client"; enable = mkEnableOption "Enable netbird client";
}; };

View File

@@ -1,15 +1,12 @@
{ {
flake.modules.nixos.networking = flake.modules.nixos.networking = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.networking.newt; cfg = config.tnix.networking.newt;
in in {
{
options.tnix.networking.newt = { options.tnix.networking.newt = {
enable = mkEnableOption "Newt"; enable = mkEnableOption "Newt";

View File

@@ -1,25 +1,22 @@
{ {
flake.modules.nixos.networking = flake.modules.nixos.networking = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.networking.openssh; cfg = config.tnix.networking.openssh;
# Sops needs acess to the keys before the persist dirs are even mounted; so # Sops needs acess to the keys before the persist dirs are even mounted; so
# just persisting the keys won't work, we must point at /persist # just persisting the keys won't work, we must point at /persist
hasOptinPersistence = config.tnix.boot.impermanence.enable; hasOptinPersistence = config.tnix.boot.impermanence.enable;
in in {
{
options.tnix.networking.openssh = { options.tnix.networking.openssh = {
enable = mkEnableOption "Enable OpenSSH server"; enable = mkEnableOption "Enable OpenSSH server";
ports = mkOption { ports = mkOption {
type = types.listOf types.port; type = types.listOf types.port;
default = [ 22 ]; default = [22];
description = '' description = ''
Specifies on which ports the SSH daemon listens. Specifies on which ports the SSH daemon listens.
''; '';

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.aiostreams; cfg = config.tnix.services.aiostreams;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
options.tnix.services.aiostreams = { options.tnix.services.aiostreams = {
enable = mkEnableOption "AIOStreams"; enable = mkEnableOption "AIOStreams";

View File

@@ -1,19 +1,16 @@
{ inputs, ... }: { {inputs, ...}: {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
pkgs, pkgs,
options, options,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.copyparty; cfg = config.tnix.services.copyparty;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
imports = [ imports = [
inputs.copyparty.nixosModules.default inputs.copyparty.nixosModules.default
]; ];
@@ -75,7 +72,7 @@
accounts = cfg.accounts; accounts = cfg.accounts;
volumes = cfg.volumes; volumes = cfg.volumes;
package = pkgs.copyparty.override { package = pkgs.copyparty.override {
extraPackages = [ pkgs.exiftool ]; extraPackages = [pkgs.exiftool];
}; };
}; };

View File

@@ -1,16 +1,13 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.cyber-tux; cfg = config.tnix.services.cyber-tux;
in in {
{
options.tnix.services.cyber-tux = { options.tnix.services.cyber-tux = {
enable = mkEnableOption "CyberTux Discord bot"; enable = mkEnableOption "CyberTux Discord bot";
@@ -41,9 +38,9 @@
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services.cyber-tux = { systemd.services.cyber-tux = {
description = "CyberTux Discord bot"; description = "CyberTux Discord bot";
after = [ "network-online.target" ]; after = ["network-online.target"];
wants = [ "network-online.target" ]; wants = ["network-online.target"];
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
@@ -83,7 +80,7 @@
RestrictRealtime = true; RestrictRealtime = true;
RestrictSUIDSGID = true; RestrictSUIDSGID = true;
SystemCallArchitectures = "native"; SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" ]; SystemCallFilter = ["@system-service"];
UMask = "0077"; UMask = "0077";
}; };
}; };
@@ -99,7 +96,7 @@
}; };
users.groups = mkIf (cfg.group == "cyber-tux") { users.groups = mkIf (cfg.group == "cyber-tux") {
${cfg.group} = { }; ${cfg.group} = {};
}; };
}; };
}; };

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.gitea; cfg = config.tnix.services.gitea;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
options.tnix.services.gitea = { options.tnix.services.gitea = {
enable = mkEnableOption "Gitea"; enable = mkEnableOption "Gitea";
@@ -109,7 +106,7 @@
postgresql = { postgresql = {
enable = true; enable = true;
ensureDatabases = [ "gitea" ]; ensureDatabases = ["gitea"];
ensureUsers = [ ensureUsers = [
{ {
name = "gitea"; name = "gitea";

View File

@@ -1,6 +1,5 @@
{ inputs, ... }: { {inputs, ...}: {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
pkgs, pkgs,
@@ -8,11 +7,9 @@
userName, userName,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.hermes-agent; cfg = config.tnix.services.hermes-agent;
in in {
{
imports = [ imports = [
inputs.hermes-agent.nixosModules.default inputs.hermes-agent.nixosModules.default
]; ];
@@ -42,7 +39,7 @@
]; ];
}; };
users.users.${userName}.extraGroups = [ "hermes" ]; users.users.${userName}.extraGroups = ["hermes"];
}; };
}; };
} }

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.mediaflow-proxy; cfg = config.tnix.services.mediaflow-proxy;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
options.tnix.services.mediaflow-proxy = { options.tnix.services.mediaflow-proxy = {
enable = mkEnableOption "MediaFlow Proxy"; enable = mkEnableOption "MediaFlow Proxy";

View File

@@ -1,16 +1,13 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
userEmail, userEmail,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.nginx; cfg = config.tnix.services.nginx;
in in {
{
options.tnix.services.nginx = { options.tnix.services.nginx = {
enable = mkEnableOption "Nginx"; enable = mkEnableOption "Nginx";
@@ -30,7 +27,7 @@
"${cfg.domain}" = { "${cfg.domain}" = {
group = "nginx"; group = "nginx";
domain = "*.${cfg.domain}"; domain = "*.${cfg.domain}";
extraDomainNames = [ "${cfg.domain}" ]; extraDomainNames = ["${cfg.domain}"];
dnsProvider = "cloudflare"; dnsProvider = "cloudflare";
credentialFiles = { credentialFiles = {
CLOUDFLARE_EMAIL_FILE = config.sops.secrets."cloudflare-credentials/email".path; CLOUDFLARE_EMAIL_FILE = config.sops.secrets."cloudflare-credentials/email".path;
@@ -41,7 +38,7 @@
}; };
}; };
users.users.nginx.extraGroups = [ "acme" ]; users.users.nginx.extraGroups = ["acme"];
services.nginx = { services.nginx = {
enable = true; enable = true;

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
userEmail, userEmail,
pkgs, pkgs,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.pangolin; cfg = config.tnix.services.pangolin;
in in {
{
options.tnix.services.pangolin = { options.tnix.services.pangolin = {
enable = mkEnableOption "Pangolin"; enable = mkEnableOption "Pangolin";
@@ -77,7 +74,7 @@
postgresql = { postgresql = {
enable = true; enable = true;
ensureDatabases = [ "pangolin" ]; ensureDatabases = ["pangolin"];
ensureUsers = [ ensureUsers = [
{ {
name = "pangolin"; name = "pangolin";

View File

@@ -1,15 +1,12 @@
{ inputs, ... }: { {inputs, ...}: {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.trok; cfg = config.tnix.services.trok;
in in {
{
imports = [ imports = [
inputs.trok.nixosModules.default inputs.trok.nixosModules.default
]; ];

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.uptime-kuma; cfg = config.tnix.services.uptime-kuma;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
options.tnix.services.uptime-kuma = { options.tnix.services.uptime-kuma = {
enable = mkEnableOption "Uptime Kuma"; enable = mkEnableOption "Uptime Kuma";

View File

@@ -1,17 +1,14 @@
{ {
flake.modules.nixos.services = flake.modules.nixos.services = {
{
config, config,
lib, lib,
... ...
}: }:
with lib; with lib; let
let
cfg = config.tnix.services.vaultwarden; cfg = config.tnix.services.vaultwarden;
port = toString cfg.port; port = toString cfg.port;
acmeHost = config.tnix.services.nginx.domain; acmeHost = config.tnix.services.nginx.domain;
in in {
{
options.tnix.services.vaultwarden = { options.tnix.services.vaultwarden = {
enable = mkEnableOption "Vaultwarden"; enable = mkEnableOption "Vaultwarden";
@@ -106,7 +103,7 @@
postgresql = { postgresql = {
enable = true; enable = true;
ensureDatabases = [ "vaultwarden" ]; ensureDatabases = ["vaultwarden"];
ensureUsers = [ ensureUsers = [
{ {
name = "vaultwarden"; name = "vaultwarden";

View File

@@ -1,15 +1,12 @@
{ {
flake.modules.nixos.virtualisation = flake.modules.nixos.virtualisation = {
{
config, config,
lib, lib,
pkgs, pkgs,
... ...
}: }: let
let
cfg = config.tnix.virtualisation; cfg = config.tnix.virtualisation;
in in {
{
options.tnix.virtualisation.distrobox = { options.tnix.virtualisation.distrobox = {
enable = lib.mkEnableOption "Enable DistroBox"; enable = lib.mkEnableOption "Enable DistroBox";
}; };

View File

@@ -1,16 +1,13 @@
{ {
flake.modules.nixos.virtualisation = flake.modules.nixos.virtualisation = {
{
config, config,
lib, lib,
pkgs, pkgs,
userName, userName,
... ...
}: }: let
let
cfg = config.tnix.virtualisation; cfg = config.tnix.virtualisation;
in in {
{
options.tnix.virtualisation.docker = { options.tnix.virtualisation.docker = {
enable = lib.mkEnableOption "Docker container runtime"; enable = lib.mkEnableOption "Docker container runtime";
nvidia = { nvidia = {
@@ -25,8 +22,8 @@
}; };
hardware.nvidia-container-toolkit.enable = lib.mkIf cfg.docker.nvidia.enable true; hardware.nvidia-container-toolkit.enable = lib.mkIf cfg.docker.nvidia.enable true;
environment.systemPackages = with pkgs; [ lazydocker ]; environment.systemPackages = with pkgs; [lazydocker];
users.users.${userName}.extraGroups = [ "docker" ]; users.users.${userName}.extraGroups = ["docker"];
}; };
}; };
} }

View File

@@ -1,16 +1,13 @@
{ {
flake.modules.nixos.virtualisation = flake.modules.nixos.virtualisation = {
{
config, config,
lib, lib,
pkgs, pkgs,
userName, userName,
... ...
}: }: let
let
cfg = config.tnix.virtualisation; cfg = config.tnix.virtualisation;
in in {
{
options.tnix.virtualisation.qemu = { options.tnix.virtualisation.qemu = {
enable = lib.mkEnableOption "QEMU/KVM virtualization with libvirtd"; enable = lib.mkEnableOption "QEMU/KVM virtualization with libvirtd";
}; };
@@ -26,7 +23,7 @@
spiceUSBRedirection.enable = true; spiceUSBRedirection.enable = true;
}; };
users.users.${userName}.extraGroups = [ "libvirtd" ]; users.users.${userName}.extraGroups = ["libvirtd"];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
virt-manager virt-manager
@@ -34,5 +31,4 @@
]; ];
}; };
}; };
} }

View File

@@ -1,14 +1,11 @@
{ {
flake.modules.nixos.virtualisation = flake.modules.nixos.virtualisation = {
{
config, config,
lib, lib,
... ...
}: }: let
let
cfg = config.tnix.virtualisation; cfg = config.tnix.virtualisation;
in in {
{
options.tnix.virtualisation.waydroid = { options.tnix.virtualisation.waydroid = {
enable = lib.mkEnableOption "Waydroid Android container"; enable = lib.mkEnableOption "Waydroid Android container";
}; };