{ config, lib, pkgs, inputs, ... }: { imports = [ /etc/nixos/hardware-configuration.nix inputs.walker.nixosModules.default ]; # Allow Nix command and flakes (ofc) nix.settings.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 = pkgs.unstable.hyprland; }; 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; [ # Ricing bibata-cursors catppuccin-gtk waybar hyprlock cava cmatrix swaynotificationcenter inputs.chataigne.packages.${stdenv.hostPlatform.system}.chataigne wlogout wpaperd kando oh-my-posh grimblast # Terminal carapace 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 libreoffice-qt6 syncthing xremap 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.steam = { enable = true; package = pkgs.unstable.steam; }; programs.walker.enable = true; 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.elephant.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 inputs.tree-sitter.packages.${stdenv.hostPlatform.system}.default pkgs.ripgrep pkgs.gcc pkgs.gnumake ] } ''; }) 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? }