Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Edit this configuration file to define what should be installed on
- # your system. Help is available in the configuration.nix(5) man page
- # and in the NixOS manual (accessible by running ‘nixos-help’).
- { config, pkgs, ... }:
- {
- imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- <nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix> # Brother Printer support??
- # ./packages.nix
- ];
- nix = {
- nixPath = [
- "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos"
- #"nixos-config=/run/media/<REDACTED>/672e0118-6d85-4f88-9130-93d013a22a00/<REDACTED>/NixOS/hosts/legion/configuration.nix"
- "nixos-config=/home/<REDACTED>/NixOS/hosts/legion/configuration.nix"
- #"nixos-config=/etc/nixos/configuration.nix"
- "/nix/var/nix/profiles/per-user/root/channels"
- ];
- };
- # System mounts
- fileSystems."/mnt/nas/OldNas" = {
- device = "//192.168.1.194/OldNas";
- fsType = "cifs";
- options = [
- "noperm"
- "defaults"
- "users"
- "credentials=/home/<REDACTED>/.smbcredentials"
- "guid=1000"
- "noauto"
- "x-systemd.automount"
- ];
- };
- fileSystems."/mnt/nas/media" = {
- device = "//192.168.1.194/media";
- fsType = "cifs";
- options = [
- "noperm"
- "defaults"
- "users"
- "credentials=/home/<REDACTED>/.smbcredentials"
- "uid=1000"
- "noauto"
- "x-systemd.automount"
- ];
- };
- fileSystems."/mnt/nas/tvshows" = {
- device = "//192.168.1.194/TV-Shows";
- fsType = "cifs";
- options = [
- "noperm"
- "defaults"
- "users"
- "credentials=/home/<REDACTED>/.smbcredentials"
- "uid=1000"
- "noauto"
- "x-systemd.automount"
- ];
- };
- fileSystems."/mnt/nas/media2" = {
- device = "//192.168.1.194/media2";
- fsType = "cifs";
- options = [
- "noperm"
- "defaults"
- "users"
- "credentials=/home/<REDACTED>/.smbcredentials"
- "uid=1000"
- "noauto"
- "x-systemd.automount"
- ];
- };
- # boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_6;
- boot.kernelModules = ["drivetemp"];
- # Enable experimental Feature
- nix.settings.experimental-features = ["nix-command" "flakes"];
- # Enable openGL
- hardware = {
- graphics = {
- enable = true;
- enable32Bit = true;
- extraPackages = [ pkgs.mesa ];
- };
- };
- hardware = {
- sane = {
- enable = true;
- brscan4 = {
- enable = true;
- };
- };
- };
- # Load nvidia driver for Xorg and Wayland
- services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
- hardware.nvidia-container-toolkit.enable = true;
- hardware.nvidia = {
- # Modesetting is required.
- modesetting.enable = true;
- # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
- # Enable this if you have graphical corruption issues or application crashes after waking
- # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
- # of just the bare essentials.
- powerManagement.enable = true;
- # Fine-grained power management. Turns off GPU when not in use.
- # Experimental and only works on modern Nvidia GPUs (Turing or newer).
- powerManagement.finegrained = false;
- # Use the NVidia open source kernel module (not to be confused with the
- # independent third-party "nouveau" open source driver).
- # Support is limited to the Turing and later architectures. Full list of
- # supported GPUs is at:
- # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
- # Only available from driver 515.43.04+
- # Currently alpha-quality/buggy, so false is currently the recommended setting.
- open = false;
- # Enable the Nvidia settings menu,
- # accessible via `nvidia-settings`.
- nvidiaSettings = true;
- # Optionally, you may need to select the appropriate driver version for your specific GPU.
- #package = config.boot.kernelPackages.nvidiaPackages.stable;
- };
- # Bootloader.
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
- # Enable AppImages
- boot.binfmt.registrations.appimage = {
- wrapInterpreterInShell = false;
- interpreter = "${pkgs.appimage-run}/bin/appimage-run";
- recognitionType = "magic";
- offset = 0;
- mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
- magicOrExtension = ''\x7fELF....AI\x02'';
- };
- networking.hostName = "legion"; # Define your hostname.
- # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
- # Configure network proxy if necessary
- # networking.proxy.default = "http://user:password@proxy:port/";
- # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
- # Enable networking
- networking.networkmanager.enable = true;
- # Set your time zone.
- time.timeZone = "America/Chicago";
- # Select internationalisation properties.
- i18n.defaultLocale = "en_US.UTF-8";
- console = {
- packages = [pkgs.terminus_font];
- font = "Lat2-Terminus16";
- useXkbConfig =true;
- };
- i18n.extraLocaleSettings = {
- LC_ADDRESS = "en_US.UTF-8";
- LC_IDENTIFICATION = "en_US.UTF-8";
- LC_MEASUREMENT = "en_US.UTF-8";
- LC_MONETARY = "en_US.UTF-8";
- LC_NAME = "en_US.UTF-8";
- LC_NUMERIC = "en_US.UTF-8";
- LC_PAPER = "en_US.UTF-8";
- LC_TELEPHONE = "en_US.UTF-8";
- LC_TIME = "en_US.UTF-8";
- };
- # Enable Flatpaks
- services = {
- flatpak.enable = true;
- dbus.enable = true;
- picom.enable = true;
- };
- # Enable the X11 windowing system.
- services.xserver.enable = true;
- # Enable the KDE Plasma 5 Desktop Environment.
- #services.xserver.displayManager.sddm.wayland.enable = true;
- #services.xserver.displayManager.defaultSession = "plasma";
- #services.desktopManager.plasma6.enable = true;
- # GNOME Desktop
- # services.desktopManager.gnome.enable = true;
- # services.gnome.games.enable = true;
- # services.gnome.core-developer-tools.enable = true;
- # Enable the Plasma 6 Desktop Enviroment
- # Enable the KDE Plasma Desktop Environment.
- services.displayManager.sddm.enable = true;
- services.displayManager.sddm.wayland.enable = true;
- # services.xserver.desktopManager.plasma5.enable = true;
- services.desktopManager.plasma6.enable = true;
- programs.dconf.enable = true;
- programs.partition-manager.enable = true;
- # Enable PolKit
- security.polkit.enable = true;
- # Configure keymap in X11
- services.xserver = {
- xkb = {
- variant = "";
- layout = "us";
- };
- };
- # Keyboard drivers
- hardware.keyboard.qmk.enable = true;
- services.udev.packages = [ pkgs.via ];
- # Enable Bluetooth Services
- hardware.bluetooth.enable = true;
- hardware.bluetooth.powerOnBoot = true;
- hardware.bluetooth.settings = {
- General = {
- Enable = "Source,Sink,Media,Socket";
- };
- };
- # Enable CUPS to print documents.
- services.printing.enable = true;
- # Enable sound with pipewire.
- #sound.enable = true;
- services.pulseaudio.enable = false;
- security.rtkit.enable = true;
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- wireplumber.enable = true;
- # If you want to use JACK applications, uncomment this
- jack.enable = true;
- # use the example session manager (no others are packaged yet so this is enabled by default,
- # no need to redefine it in your config for now)
- #media-session.enable = true;
- };
- # Enable touchpad support (enabled default in most desktopManager).
- # services.xserver.libinput.enable = true;
- # Define a user account. Don't forget to set a password with ‘passwd’.
- users.users.<REDACTED> = {
- isNormalUser = true;
- description = "<REDACTED>";
- extraGroups = [
- "networkmanager"
- "wheel"
- "adbusers"
- "libvirtd"
- "video"
- "render"
- "audio"
- "scanner"
- "lp"
- ];
- packages = with pkgs; [
- chromium
- firefox
- kdePackages.kate
- # thunderbird
- ];
- };
- fonts.packages = with pkgs; [
- noto-fonts
- ubuntu-classic
- noto-fonts-color-emoji
- liberation_ttf
- fira-code
- fira-code-symbols
- mplus-outline-fonts.githubRelease
- dina-font
- fira
- ];
- # Enable Virtualization
- virtualisation.libvirtd.enable = true;
- programs.virt-manager.enable = true;
- # services.flatpak.enable = true;
- xdg.portal.enable = true;
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
- dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
- };
- nixpkgs.config.permittedInsecurePackages = [
- "electron"
- ];
- # List packages installed in system profile. To search, run:
- # $ nix search wget
- environment.systemPackages = with pkgs; [
- # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
- ## Backups
- borgbackup
- vorta
- pika-backup
- ## Printer Drivers
- brlaser
- xsane
- simple-scan
- # gscan2pdf
- ## Keyboard drivers
- qmk
- via
- ## Finance
- hledger
- hledger-ui
- hledger-web
- hledger-iadd
- hledger-utils
- hledger-interest
- puffin
- ## CLI Utils
- yt-dlp
- spotdl
- tmux
- wget
- curl
- micro
- gitFull
- mesa-demos
- # boinc
- boinctui
- htop
- btop
- # cgminer
- #oraclejre
- temurin-jre-bin-17
- pciutils
- # fwupd
- ctop
- dig
- hddtemp
- iotop
- # lm-sensors
- smartmontools
- hugo
- ncdu
- nvtopPackages.full
- nvitop
- pwgen
- ## GUI programs
- firefox
- kdePackages.kate
- vscode-fhs
- kdePackages.yakuake
- bitwarden-desktop
- # libsForQt5.kdeconnect-kde
- kdePackages.kdeconnect-kde
- # k3b
- libation
- gpa
- kdePackages.kgpg
- remmina
- virt-viewer
- transmission_4-qt6
- # calibre
- chirp
- # Chat/Internet
- #fluffychat
- discord
- # Productivity
- thunderbird
- libreoffice
- nextcloud-client
- # aichat
- # KDE STUFF
- kmymoney
- #kdePackages = {
- kdePackages.kcalc
- kdePackages.akonadi
- kdePackages.akonadiconsole
- kdePackages.akonadi-search
- kdePackages.kontact
- kdePackages.kontactinterface
- kdePackages.kaddressbook
- kdePackages.kdepim-addons
- kdePackages.kdepim-addons
- kdePackages.k3b
- kdePackages.kup
- bup
- #};
- # logseq
- ## Audio/Music
- audacity
- guitarix
- musescore
- carla
- #wireplumber
- calf
- sonixd
- ## CD Ripping
- rubyripper
- abcde
- sound-juicer
- whipper
- ## Video/Graphics
- gimp
- # blender
- vlc
- obs-studio
- # jellyfin-media-player
- kdePackages.kdenlive
- ffmpeg-full
- ## Games
- # minecraft
- prismlauncher
- temurin-jre-bin
- # jdk21
- # znes2
- # nestopia-ue
- # kega-fusion
- # retroarchFull
- ## Iphone Stuff
- libimobiledevice
- ifuse
- # Piper & Wyoming
- wyoming-piper
- piper-tts
- # # TUI Challange
- # aerc
- # mutt
- # carbonyl
- # browsh
- # toutui
- # jellyfin-tui
- # mc
- # todotxt-tui
- # wtf
- gpg-tui
- # caps-log
- # toot
- # Distrobox
- distrobox
- distrobox-tui
- ];
- ## Allow unfree packages
- nixpkgs.config.allowUnfree = true;
- # Some programs need SUID wrappers, can be configured further or are
- # started in user sessions.
- programs.mtr.enable = true;
- programs.gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- };
- # List services that you want to enable:
- programs.kdeconnect.enable = true;
- # programs.kdeconnect.package = pkgs.kdePackages.kdeconnect-kde;
- services = {
- # Firmware Updater?
- fwupd = {
- enable = true;
- };
- # Enable SSH
- openssh = {
- enable = true;
- };
- # Enable Tailscale
- tailscale = {
- enable = true;
- # useRoutingFeatures = both;
- extraUpFlags = [
- "--ssh"
- "--accept-routes"
- ];
- };
- #Enable LLM Services
- ollama = {
- enable = true;
- acceleration = "cuda";
- openFirewall = true;
- # loadModels = [ "llama3.1:8b" ];
- loadModels = [ "DeepSeek-R1:8b" ];
- host = "<REDACTED>";
- };
- # Enable iPhone Tethering
- usbmuxd = {
- enable = true;
- package = pkgs.usbmuxd2;
- };
- boinc.enable = true;
- boinc.allowRemoteGuiRpc = true;
- boinc.extraEnvPackages = [pkgs.virtualbox pkgs.ocl-icd pkgs.linuxPackages.nvidia_x11 pkgs.libglvnd pkgs.brotli];
- boinc.dataDir = "/var/lib/boinc";
- };
- ## Docker
- virtualisation.docker.enable = true;
- virtualisation.docker.autoPrune.enable = true;
- virtualisation.docker.autoPrune.dates = "weekly";
- #virtualisation.docker.enableNvidia = true;
- virtualisation.docker.enableOnBoot = true;
- ## FIREWALL
- # Open ports in the firewall.
- # networking.firewall.allowedTCPPorts = [ ... ];
- # networking.firewall.allowedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
- # networking.firewall.enable = false;
- networking.firewall = {
- enable = false;
- allowedTCPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- allowedUDPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- };
- # Enable Automatic Upgrades
- system.autoUpgrade = {
- enable = true;
- persistent = true;
- };
- # Garbage Collection and Store Optimization
- nix.settings.auto-optimise-store = true;
- nix.gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 30d";
- };
- # This value determines the NixOS release from which the default
- # settings for stateful data, like file locations and database versions
- # on your system were taken. It‘s perfectly fine and recommended to leave
- # this value at the release version of the first install of this system.
- # Before changing this value read the documentation for this option
- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
- system.stateVersion = "23.05"; # Did you read the comment?
- }
Advertisement
Add Comment
Please, Sign In to add comment