Compare commits

...

5 Commits

6 changed files with 47 additions and 341 deletions

View File

@@ -1,5 +1,33 @@
# CONTRIBUTING
## Tldr
**Do's**
- Be concise
- Follow the [Formatting Rules](#formatting-rules) to the best of your ability
- Segment larger changes into managable, reviewable commits
- Leave a trail of your development so I can tell you put some effort in (doesnt really
apply to smaller commits)
- Write your own code
- Leave some way of crediting your work
- Disclose the capacity in which you used AI. Most of the time, anything more than making
examples or helping you understand the codebase will be disallowed. As little AI code
should make it to production as possible
**Dont's**
- Report upstream issues to me (ie an issue with the app itself, not my config)
- Make major structural changes
- Submit chore commits such as updating the flake, I can do that myself
- Add new hosts for no reason, make your own flake and import the modules you want for
your host
- Majorly change existing hosts for your own preference
- Ask AI to fix your issues and expect me to merge changes
- Delete existing modules. Executive decisions like that will be made at my disgression,
and will be done as non-destructively as possible, such as moving those modules to a
"deprecated" branch in the future.
## General format
All emails regarding this repo (or another) should have a subject prepended with the

View File

@@ -1,337 +0,0 @@
{
config,
lib,
pkgs,
inputs,
...
}: {
imports = [
/etc/nixos/hardware-configuration.nix
];
# Nix settings
## Limit Cores on rebuild and enable Flakes
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"
];
};
};
## Allow unfree packages and add pkgs.unstable
nixpkgs = {
config = {
allowUnfree = true;
packageOverrides = pkgs: {
unstable = import inputs.nixpkgs-unstable {
config = {
allowUnfree = true;
};
};
};
};
};
# Set <nixpkgs> correctly
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
## Optimise Nix store on rebuild and collect garbage as a service
nix.optimise.automatic = true;
nix.gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 5d";
};
# Bootloader theming and plymouth
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";
})
];
};
};
## Use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Bluetooth and Networking
hardware.bluetooth.enable = true;
hardware.xpadneo.enable = true;
networking.networkmanager.enable = true;
networking.networkmanager.dns = "none";
networking.nameservers = [
"1.1.1.1"
"8.8.8.8"
];
# Locale
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8";
i18n.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";
};
# Userspace Stuff
## Keymap
services.xserver.xkb = {
layout = "gb";
variant = "";
};
console.keyMap = "uk";
## Desktop
services.xserver.enable = true;
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default;
};
security.polkit.enable = true;
## Audio Server
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
# Local User
## User config
users.users.user01 = {
isNormalUser = true;
shell = pkgs.zsh;
description = "user01";
extraGroups = [
"input"
"root"
"plugdev"
"bluetooth"
"networkmanager"
"docker"
"wheel"
];
packages = with pkgs; let
input = {
package,
output ? "default",
}:
inputs.${package}.packages.${pkgs.stdenv.hostPlatform.system}.${output};
wrap = {
name,
pkg,
modules,
}:
pkgs.symlinkJoin {
inherit name;
paths = [pkg];
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/${name} \
--prefix PATH : ${pkgs.lib.makeBinPath modules}
'';
};
in [
# Ricing
## Desktop
bibata-cursors
catppuccin-gtk
unstable.waybar
hyprlock
dunst
wlogout
wpaperd
quickshell
## Desktop Utilities
grimblast
gsettings-desktop-schemas
wl-clipboard
(wrap {
name = "otter-launcher";
pkg = (
input {
package = "otter-launcher";
}
);
modules = [
chafa
jq
];
})
(input {package = "fsel";})
# Terminal
## Styling / Functionality
oh-my-posh
carapace
zsh-autocomplete
bat
## Tools
lazygit
git-secret
p7zip-rar
any-nix-shell
bluetui
fzf
ripgrep
wget
htop
playerctl
git
lsd
(input {
package = "doot";
})
## Other CLI Apps
nodejs
fastfetch
opencode
tailscale
syncthing
jellyfin-tui
devenv
nix-output-monitor
# Apps
## Actual Useful Stuff
nemo
kitty
firefox
gotify-desktop
pavucontrol
mpv
input-remapper
## Other Nonsense
tor-browser
techmino
prismlauncher
delfin
];
};
## Zsh
programs.zsh = {
enable = true;
enableCompletion = true;
enableBashCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
histSize = 10000;
ohMyZsh = {
enable = true;
plugins = [
"git"
"dirhistory"
"history"
];
};
};
users.defaultUserShell = pkgs.zsh;
## User programs
programs = {
dconf.enable = true;
xfconf.enable = true;
gdk-pixbuf.modulePackages = [pkgs.librsvg]; # For wlogout svgs
};
## User Services
services = {
gvfs.enable = true;
input-remapper.enable = true;
tailscale.enable = true;
printing.enable = true;
upower.enable = true;
openssh.enable = true;
avahi.enable = true;
};
## Fonts
fonts.packages = with pkgs; [
nerd-fonts.fira-mono
];
fonts.fontconfig.defaultFonts.serif = ["Fira Mono Nerd Font"];
# System Packages
environment.systemPackages = with pkgs; [
# Utilities
inputs.nvim-wrapped.packages.${stdenv.hostPlatform.system}.default
vim
unzip
python315
usbutils
curlWithGnuTls
# System
mesa
pkg-config
vulkan-tools
gvfs
wayvnc
clang
xdg-desktop-portal
xdg-desktop-portal-hyprland
glib
gnutls
liblzf
librsvg
appimage-run
libnotify
gsettings-desktop-schemas
];
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-all;
};
# The comment
system.stateVersion = "25.05"; # Did you read the comment?
}

8
flake.lock generated
View File

@@ -366,11 +366,11 @@
"wshowkeys": "wshowkeys"
},
"locked": {
"lastModified": 1786391152,
"narHash": "sha256-P+dUN0wWRYLop9lLsnCOEi5bYE/GC5LvzV2VZh520TM=",
"lastModified": 1786876041,
"narHash": "sha256-VshRLF8nJ1CB3D09OzoNgXPGVCJo0SOFG740TRJoumE=",
"ref": "refs/heads/main",
"rev": "b4426becc44de00e891098b9883eca2b2028f981",
"revCount": 53,
"rev": "c853222bde4a2ba8e74d4a4a6fe2d1e26f92ddd6",
"revCount": 54,
"type": "git",
"url": "https://git.voidarc.co.uk/voidarc/hypr"
},

View File

@@ -0,0 +1,11 @@
{moduleWithSystem, ...}: {
flake.nixosModules.music = moduleWithSystem ({pkgs, unfreePkgs, ...}: {
environment.systemPackages = with pkgs; [
ardour
unfreePkgs.vital
distrho-ports
cardinal
calf
];
});
}

View File

@@ -10,6 +10,7 @@
intelDrivers
development
upower
music
];
};
}

View File

@@ -12,6 +12,8 @@
playerctl
pavucontrol
pulseaudioFull
pipewire
pipewire.jack
];
services.pulseaudio.enable = false;
security.rtkit.enable = true;
@@ -24,6 +26,7 @@
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
};
};
}