Files
nixos/modules/configurations/configuration-xps13.nix
2025-09-19 11:44:17 -04:00

194 lines
6.0 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <package name>`.
# # 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. Its 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?
}