Compare commits
8 Commits
b4e0d9f475
...
0ba9ee4bad
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ba9ee4bad | |||
| c5166d8c07 | |||
| bdb76684d9 | |||
| 05b0864145 | |||
| 2d9e205897 | |||
| 7e753132ea | |||
| 5d7739d0f6 | |||
| 0f1b783aa3 |
@@ -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]
|
||||
|
||||
75
modules/features/mumble/default.nix
Normal file
75
modules/features/mumble/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
21
modules/features/sddm/autologin.nix
Normal file
21
modules/features/sddm/autologin.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
25
modules/features/sddm/default.nix
Normal file
25
modules/features/sddm/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
}: {
|
||||
flake.nixosConfigurations.HACKSTATION = inputs.nixpkgs.lib.nixosSystem {
|
||||
modules = with self.nixosModules; [
|
||||
core
|
||||
desktop
|
||||
hackstationConfiguration
|
||||
];
|
||||
};
|
||||
|
||||
21
modules/system/audio/default.nix
Normal file
21
modules/system/audio/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
36
modules/system/core/boot.nix
Normal file
36
modules/system/core/boot.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
16
modules/system/core/hardware.nix
Normal file
16
modules/system/core/hardware.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.hardware = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
hardware = {
|
||||
bluetooth.enable = true;
|
||||
xpadneo.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
32
modules/system/core/locale.nix
Normal file
32
modules/system/core/locale.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
53
modules/system/core/nix-settings.nix
Normal file
53
modules/system/core/nix-settings.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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 = [
|
||||
|
||||
19
modules/system/desktop/default.nix
Normal file
19
modules/system/desktop/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.desktop = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
core
|
||||
hyprland
|
||||
sddm
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user