Compare commits

...

8 Commits

Author SHA1 Message Date
0ba9ee4bad added desktop system preset 2026-07-04 18:26:23 +01:00
c5166d8c07 added sddm with autologin (only one needed) 2026-07-04 18:26:15 +01:00
bdb76684d9 added needed services to hyprland 2026-07-04 18:26:05 +01:00
05b0864145 restructured core modules 2026-07-04 18:25:42 +01:00
2d9e205897 moved audio module 2026-07-04 18:25:25 +01:00
7e753132ea renamed zsh and format 2026-07-04 18:25:18 +01:00
5d7739d0f6 fixed otter having a weird module 2026-07-04 18:25:07 +01:00
0f1b783aa3 added mumble 2026-07-04 18:24:46 +01:00
15 changed files with 341 additions and 40 deletions

View File

@@ -7,11 +7,18 @@
pkgs,
lib,
...
}: {
}: let
modules = with self.nixosModules; [
audio
];
in {
imports = modules;
programs.hyprland = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
services.xserver.enable = true;
security.polkit.enable = true;
};
perSystem = {
pkgs,
@@ -20,7 +27,15 @@
...
}: {
packages = {
hyprland = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default;
hyprland = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
runtimePackages =
inputs.hyprland.lib.defaultRuntimePkgs.${pkgs.stdenv.hostPlatform.system}
// {
wpaperd = self'.packages.wpaperd;
kitty = self'.packages.kitty;
otter-launcher = self'.packages.otter-launcher;
};
};
wpaperd = let
config-file = builtins.toFile "config.toml" ''
[any]

View File

@@ -0,0 +1,75 @@
{
self,
inputs,
...
}: {
flake.nixosModules.mumble = {
pkgs,
lib,
...
}: let
modules = with self.nixosModules; [
audio
];
in {
imports = modules;
services.murmur = {
enable = true;
bandwidth = 540000;
bonjour = true;
password = "password";
autobanTime = 0;
};
environment.systemPackages = with pkgs; [
mumble
];
services.pipewire.extraConfig.pipewire = {
"97-null-sink" = {
"context.objects" = [
{
factory = "adapter";
args = {
"factory.name" = "support.null-audio-sink";
"node.name" = "Null-Sink";
"node.description" = "Null Sink";
"media.class" = "Audio/Sink";
"audio.position" = "FL,FR";
};
}
{
factory = "adapter";
args = {
"factory.name" = "support.null-audio-sink";
"node.name" = "Null-Source";
"node.description" = "Null Source";
"media.class" = "Audio/Source";
"audio.position" = "FL,FR";
};
}
];
};
"98-virtual-mic" = {
"context.modules" = [
{
name = "libpipewire-module-loopback";
args = {
"audio.position" = "FL,FR";
"node.description" = "Mumble as Microphone";
"capture.props" = {
# Mumble's output node name.
"node.target" = "Mumble";
"node.passive" = true;
};
"playback.props" = {
"node.name" = "Virtual-Mumble-Microphone";
"media.class" = "Audio/Source";
};
};
}
];
};
};
};
}

View File

@@ -3,16 +3,6 @@
inputs,
...
}: {
flake.nixosModules.hypr = {
pkgs,
lib,
...
}: {
programs.hypr = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
};
perSystem = {
pkgs,
lib,

View File

@@ -0,0 +1,21 @@
{
self,
inputs,
...
}: {
flake.nixosModules.sddm-autologin = {
pkgs,
lib,
...
}: let
modules = with self.nixosModules; [
sddm
];
in {
imports = modules;
services.displayManager = {
autoLogin.enable = true;
autoLogin.user = "user01";
};
};
}

View File

@@ -0,0 +1,25 @@
{
self,
inputs,
...
}: {
flake.nixosModules.sddm = {
pkgs,
lib,
...
}: {
environment.systemPackages = [
(pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "Fira Mono Nerd Font";
fontSize = "11";
background = null;
})
];
services.displayManager.sddm = {
enable = true;
theme = "catppuccin-mocha-mauve";
package = pkgs.kdePackages.sddm;
};
};
}

View File

@@ -10,7 +10,7 @@
}: {
nixpkgs.overlays = [
(final: prev: {
zsh = self.packages.${pkgs.stdenv.hostPlatform.system}.myZsh;
zsh = self.packages.${pkgs.stdenv.hostPlatform.system}.zsh;
})
];
programs.zsh = {
@@ -30,11 +30,11 @@
...
}: {
packages = {
myZsh = inputs.wrappers.wrappers.zsh.wrap {
zsh = inputs.wrappers.wrappers.zsh.wrap {
inherit pkgs;
runtimePkgs = [pkgs.carapace];
zshAliases = {
ls = lib.getExe pkgs.lsd;
ls = "${lib.getExe pkgs.lsd} -l";
cat = lib.getExe pkgs.bat;
lg = lib.getExe pkgs.lazygit;
devenv = lib.getExe pkgs.devenv;

View File

@@ -5,7 +5,7 @@
}: {
flake.nixosConfigurations.HACKSTATION = inputs.nixpkgs.lib.nixosSystem {
modules = with self.nixosModules; [
core
desktop
hackstationConfiguration
];
};

View File

@@ -0,0 +1,21 @@
{
self,
inputs,
...
}: {
flake.nixosModules.audio = {
pkgs,
lib,
...
}: {
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
};
}

View File

@@ -0,0 +1,36 @@
{
self,
inputs,
...
}: {
flake.nixosModules.bootloader = {
pkgs,
lib,
...
}: {
boot = {
loader = {
timeout = 2;
efi = {
canTouchEfiVariables = true;
};
grub = {
efiSupport = true;
device = "nodev";
theme = pkgs.catppuccin-grub;
};
};
plymouth = {
enable = true;
theme = "catppuccin-mocha";
themePackages = with pkgs; [
# By default we would install all themes
(catppuccin-plymouth.override {
variant = "mocha";
})
];
};
kernelPackages = pkgs.linuxPackages_latest;
};
};
}

View File

@@ -9,10 +9,11 @@
...
}: let
modules = with self.nixosModules; [
userConfiguration
hyprland
zsh
kitty
user
bootloader
nix
hardware
locale
];
in {
imports =
@@ -20,13 +21,5 @@
/etc/nixos/hardware-configuration.nix
]
++ modules;
nix.settings = {
cores = 6;
download-buffer-size = 524288000;
experimental-features = [
"nix-command"
"flakes"
];
};
};
}

View File

@@ -0,0 +1,16 @@
{
self,
inputs,
...
}: {
flake.nixosModules.hardware = {
pkgs,
lib,
...
}: {
hardware = {
bluetooth.enable = true;
xpadneo.enable = true;
};
};
}

View File

@@ -0,0 +1,32 @@
{
self,
inputs,
...
}: {
flake.nixosModules.locale = {
pkgs,
lib,
...
}: {
time.timeZone = "Europe/London";
i18n = {
defaultLocale = "en_GB.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
};
services.xserver.xkb = {
layout = "gb";
variant = "";
};
console.keyMap = "uk";
};
}

View File

@@ -0,0 +1,53 @@
{
self,
inputs,
...
}: {
flake.nixosModules.nix = {
pkgs,
lib,
...
}: {
nix = {
registry = {
voidarc = {
from = {
id = "voidarc";
type = "indirect";
};
to = {
type = "git";
url = "https://git.voidarc.co.uk/voidarc/flakes.git";
};
};
};
settings = {
cores = 6;
download-buffer-size = 524288000;
experimental-features = [
"nix-command"
"flakes"
];
};
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
optimise.automatic = true;
gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 5d";
};
};
nixpkgs = {
config = {
allowUnfree = true;
packageOverrides = pkgs: {
unstable = import inputs.nixpkgs-unstable {
config = {
allowUnfree = true;
};
};
};
};
};
};
}

View File

@@ -3,14 +3,19 @@
inputs,
...
}: {
flake.nixosModules.userConfiguration = {
flake.nixosModules.user = {
pkgs,
lib,
...
}: {
}: let
modules = with self.nixosModules; [
zsh
];
in {
imports = modules;
users.users.user01 = {
isNormalUser = true;
initialPassword = "password";
initialPassword = "qwer";
shell = pkgs.zsh;
description = "user01";
extraGroups = [

View File

@@ -0,0 +1,19 @@
{
self,
inputs,
...
}: {
flake.nixosModules.desktop = {
pkgs,
lib,
...
}: let
modules = with self.nixosModules; [
core
hyprland
sddm
];
in {
imports = modules;
};
}