357 lines
7.8 KiB
Nix
357 lines
7.8 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
imports = [
|
|
/etc/nixos/hardware-configuration.nix
|
|
];
|
|
|
|
# Allow Nix command and flakes (ofc)
|
|
nix.settings = {
|
|
cores = 6;
|
|
experimental-features = [
|
|
"nix-command"
|
|
"flakes"
|
|
];
|
|
};
|
|
|
|
# Allow unfree packages
|
|
nixpkgs = {
|
|
config = {
|
|
allowUnfree = true;
|
|
packageOverrides = pkgs: {
|
|
unstable = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz") {
|
|
config = {
|
|
allowUnfree = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# Nix store shit
|
|
nix.optimise.automatic = true;
|
|
nix.gc = {
|
|
automatic = true;
|
|
dates = "daily";
|
|
options = "--delete-older-than 5d";
|
|
};
|
|
|
|
# Boot
|
|
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;
|
|
|
|
networking.networkmanager.enable = true;
|
|
networking.networkmanager.dns = "none";
|
|
networking.nameservers = [
|
|
"1.1.1.1"
|
|
"8.8.8.8"
|
|
];
|
|
|
|
# Enable bluetooth
|
|
hardware.bluetooth.enable = true;
|
|
hardware.xpadneo.enable = true;
|
|
|
|
# Set your time zone.
|
|
time.timeZone = "Europe/London";
|
|
|
|
# Locale
|
|
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";
|
|
};
|
|
|
|
# Windowing Systems
|
|
services.xserver.enable = true;
|
|
|
|
programs.hyprland = {
|
|
enable = true;
|
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
};
|
|
security.polkit.enable = true;
|
|
|
|
# Keymap
|
|
services.xserver.xkb = {
|
|
layout = "gb";
|
|
variant = "";
|
|
};
|
|
console.keyMap = "uk";
|
|
|
|
# Pipewire
|
|
services.pulseaudio.enable = false;
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
# Local User
|
|
users.users.user01 = {
|
|
isNormalUser = true;
|
|
shell = pkgs.zsh;
|
|
description = "user01";
|
|
extraGroups = [
|
|
"input"
|
|
"root"
|
|
"plugdev"
|
|
"bluetooth"
|
|
"networkmanager"
|
|
"docker"
|
|
"wheel"
|
|
];
|
|
packages =
|
|
with pkgs;
|
|
let
|
|
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
|
|
bibata-cursors
|
|
catppuccin-gtk
|
|
waybar
|
|
hyprlock
|
|
cava
|
|
cmatrix
|
|
swaynotificationcenter
|
|
inputs.chataigne.packages.${stdenv.hostPlatform.system}.chataigne
|
|
wlogout
|
|
wpaperd
|
|
kando
|
|
oh-my-posh
|
|
grimblast
|
|
(wrap {
|
|
name = "otter-launcher";
|
|
pkg = inputs.otter-launcher.packages.${stdenv.hostPlatform.system}.default;
|
|
modules = [
|
|
chafa
|
|
wl-clipboard
|
|
jq
|
|
];
|
|
})
|
|
inputs.fsel.packages.${stdenv.hostPlatform.system}.default
|
|
|
|
# Terminal
|
|
carapace
|
|
bat
|
|
kitty
|
|
github-cli
|
|
p7zip
|
|
bluetuith
|
|
wget
|
|
playerctl
|
|
git
|
|
fastfetch
|
|
zellij
|
|
lsd
|
|
inputs.doot.packages.${stdenv.hostPlatform.system}.default
|
|
stow
|
|
fzf
|
|
ripgrep
|
|
zsh-autocomplete
|
|
nodejs
|
|
lazygit
|
|
tailscale
|
|
|
|
# Thunar stuff
|
|
xfce.thunar
|
|
xfce.thunar-volman
|
|
xfce.thunar-vcs-plugin
|
|
xfce.thunar-archive-plugin
|
|
|
|
# Apps
|
|
pavucontrol
|
|
firefox
|
|
htop
|
|
input-remapper
|
|
tor-browser
|
|
gotify-desktop
|
|
techmino
|
|
mpv
|
|
prismlauncher
|
|
delfin
|
|
onlyoffice-desktopeditors
|
|
syncthing
|
|
blueman
|
|
];
|
|
};
|
|
|
|
# Zsh
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
enableBashCompletion = true;
|
|
autosuggestions.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
histSize = 10000;
|
|
ohMyZsh = {
|
|
enable = true;
|
|
plugins = [
|
|
"git"
|
|
"dirhistory"
|
|
"history"
|
|
];
|
|
};
|
|
};
|
|
|
|
# User programs
|
|
programs.dconf.enable = true;
|
|
programs.xfconf.enable = true;
|
|
|
|
# User Services
|
|
services.gvfs.enable = true;
|
|
services.tailscale.enable = true;
|
|
services.printing.enable = true;
|
|
services.upower.enable = true;
|
|
services.openssh.enable = true;
|
|
services.avahi.enable = true;
|
|
|
|
# Fonts
|
|
fonts.packages = with pkgs; [
|
|
nerd-fonts.fira-mono
|
|
];
|
|
|
|
fonts.fontconfig.defaultFonts.serif = [ "Fira Mono Nerd Font" ];
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
(pkgs.symlinkJoin {
|
|
name = "nvim-with-lsp";
|
|
paths = [ pkgs.neovim ];
|
|
buildInputs = [ pkgs.makeWrapper ];
|
|
postBuild = ''
|
|
export TREE_SITTER_LIB_PATH="/run/current-system/sw/lib"
|
|
wrapProgram $out/bin/nvim \
|
|
--prefix PATH : ${
|
|
pkgs.lib.makeBinPath [
|
|
# lsps
|
|
pkgs.lua-language-server
|
|
pkgs.vscode-langservers-extracted
|
|
pkgs.emmet-ls
|
|
pkgs.prettier
|
|
pkgs.black
|
|
pkgs.nixfmt
|
|
pkgs.nil
|
|
pkgs.python313Packages.python-lsp-server
|
|
pkgs.typescript-language-server
|
|
pkgs.tailwindcss-language-server
|
|
pkgs.stylua
|
|
pkgs.nixd
|
|
|
|
# other shit
|
|
pkgs.lua5_1
|
|
pkgs.tree-sitter
|
|
pkgs.ripgrep
|
|
pkgs.gcc
|
|
pkgs.gnumake
|
|
pkgs.imagemagick
|
|
pkgs.luajitPackages.magick
|
|
pkgs.ghostscript
|
|
pkgs.luarocks
|
|
(pkgs.texlive.combine {
|
|
inherit (pkgs.texlive)
|
|
scheme-basic
|
|
varwidth
|
|
preview
|
|
mathtools
|
|
amsfonts
|
|
amscdx
|
|
xcolor
|
|
dvisvgm
|
|
dvipng # for preview and export as html
|
|
wrapfig
|
|
standalone
|
|
graphicxbox
|
|
amsmath
|
|
ulem
|
|
hyperref
|
|
capt-of
|
|
;
|
|
})
|
|
]
|
|
}
|
|
'';
|
|
})
|
|
vim
|
|
unzip
|
|
python310 # Its python like come on
|
|
usbutils
|
|
|
|
# Graphics Drivers
|
|
mesa
|
|
vulkan-tools
|
|
|
|
# FileSystem Dependancies
|
|
gvfs
|
|
|
|
# C copmpiler
|
|
clang
|
|
|
|
# XDG Desktop Portal Etc
|
|
xdg-desktop-portal
|
|
xdg-desktop-portal-hyprland
|
|
|
|
# Other things (from gnome)
|
|
glib
|
|
gnutls
|
|
appimage-run
|
|
libnotify
|
|
gsettings-desktop-schemas
|
|
];
|
|
|
|
# The comment
|
|
system.stateVersion = "25.05"; # Did you read the comment?
|
|
|
|
}
|