# 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, callPackage, ... }: { imports = [ ./configuration-common.nix ../laptop.nix ]; # Bootloader. boot = { kernelPackages = pkgs.linuxPackages_latest; initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; kernelModules = [ "fuse" "coretemp" "cifs" "kvm-intel" ]; initrd.kernelModules = [ "ath10k_pci" ]; loader.systemd-boot.enable = true; loader.efi.canTouchEfiVariables = true; supportedFilesystems = [ "vfat" "ext4" "cifs" "exfat" ]; extraModulePackages = [ ]; extraModprobeConfig = '' options ath10k_pcs irq_mode=1 options ath10k_core rawmode=1 ''; }; # nixpkgs.overlays = [ # (import (builtins.fetchTarball { # url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; # sha256 = "0d04az7ghk446k7wgrlia4rynanx8863xqfw7qzcwqplpzp8h10r"; # })) # ]; security.rtkit.enable = true; # Enable touchpad support (enabled default in most desktopManager). fonts = { enableDefaultPackages = true; fontDir.enable = true; packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-emoji font-awesome material-design-icons noto-fonts-emoji ]++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); }; hardware.bluetooth = { enable = true; powerOnBoot = true; settings = { General = { Experimental = true; FastConnectable = true; }; Policy = { AutoEnable=true; }; }; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ git vim curl age # (pkgs.emacsWithPackagesFromUsePackage { # # Your Emacs config file. Org mode babel files are also # # supported. # # NB: Config files cannot contain unicode characters, since # # they're being parsed in nix, which lacks unicode # # support. # # config = ./emacs.org; # config = ../../home/emacs.org; # # config = ./emacs.el; # # # Whether to include your config as a default init file. # # If being bool, the value of config is used. # # Its value can also be a derivation like this if you want to do some # # substitution: # # defaultInitFile = pkgs.substituteAll { # # name = "default.el"; # # src = ./emacs.el; # # inherit (config.xdg) configHome dataHomenjkasdjf ; # # }; # defaultInitFile = true; # # # Package is optional, defaults to pkgs.emacs # # package = pkgs.emacs-git; # package = pkgs.emacs-unstable-pgtk; # # By default emacsWithPackagesFromUsePackage will only pull in # # packages with `:ensure`, `:ensure t` or `:ensure `. # # Setting `alwaysEnsure` to `true` emulates `use-package-always-ensure` # # and pulls in all use-package references not explicitly disabled via # # `:ensure nil` or `:disabled`. # # Note that this is NOT recommended unless you've actually set # # `use-package-always-ensure` to `t` in your config. # alwaysEnsure = true; # # # For Org mode babel files, by default only code blocks with # # `:tangle yes` are considered. Setting `alwaysTangle` to `true` # # will include all code blocks missing the `:tangle` argument, # # defaulting it to `yes`. # # Note that this is NOT recommended unless you have something like # # `#+PROPERTY: header-args:emacs-lisp :tangle yes` in your config, # # which defaults `:tangle` to `yes`. # alwaysTangle = true; # # # Optionally provide extra packages not in the configuration file. # # This can also include extra executables to be run by Emacs (linters, # # language servers, formatters, etc) # extraEmacsPackages = epkgs: [ # epkgs.cask # pkgs.shellcheck # # Additional packages needed by emacs.org config # epkgs.s # string manipulation library used by vulpea functions # # Language servers for lsp-mode # # pkgs.basedpyright # Python LSP # pkgs.typescript-language-server # TypeScript/JavaScript LSP # pkgs.rust-analyzer # Rust LSP # pkgs.zls # Zig LSP # pkgs.nimlsp # Nim LSP # ]; # # # Optionally override derivations. # override = final: prev: { # weechat = prev.melpaPackages.weechat.overrideAttrs(old: { # patches = [ ./weechat-el.patch ]; # }); # }; # }) ]; #media-session.enable = true; programs = { mtr.enable = true; firefox.enable = true; hyprland = { enable = true; withUWSM = true; }; steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; localNetworkGameTransfers.openFirewall = true; }; # uwsm.enable = true; }; services = { blueman.enable = true; openssh.enable = true; displayManager.autoLogin.enable = true; displayManager.autoLogin.user = "th3r00t"; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; udisks2.enable = false; printing.enable = true; pulseaudio.enable = false; libinput.enable = true; # logmein-hamachi.enable = true; # emacs = { # enable = true; # package = pkgs.emacs-unstable-pgtk; # }; }; # Open ports in the firewall. networking.firewall.allowedTCPPorts = [ 21 22 80 443 5900 8080 12121 12122 61208 ]; networking.firewall.allowedUDPPorts = [ 21 22 80 443 5900 8080 12121 12122 61208 ]; # networking.firewall.enable = false; # 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 = "25.05"; # Did you read the comment? }