Compare commits
3 Commits
dendritic
...
9764a025a9
| Author | SHA1 | Date | |
|---|---|---|---|
| 9764a025a9 | |||
| fd62c17426 | |||
| 90c612bb57 |
337
configs/common.nix
Normal file
337
configs/common.nix
Normal file
@@ -0,0 +1,337 @@
|
|||||||
|
{
|
||||||
|
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?
|
||||||
|
}
|
||||||
854
flake.lock
generated
854
flake.lock
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user