aboutsummaryrefslogtreecommitdiff
path: root/hosts/nixpad/configuration.nix
diff options
context:
space:
mode:
authorrubiigen <alyxwren@proton.me>2024-02-02 18:29:45 +0000
committerFrankie B <frankieraybrown@gmail.com>2024-02-02 18:39:57 +0000
commitd666f30475528ce7f50cc3dd92a1693241083fe8 (patch)
tree5b443f79a7100f2db735853335df81d9a7b95cc3 /hosts/nixpad/configuration.nix
parentea3485f5c5dac7f89562db741bf981b2b743d01c (diff)
major refactor (treewide amongst general cleaning based on my modified dots (with help from notashelf) - perks 1: it works
Diffstat (limited to 'hosts/nixpad/configuration.nix')
-rw-r--r--hosts/nixpad/configuration.nix267
1 files changed, 112 insertions, 155 deletions
diff --git a/hosts/nixpad/configuration.nix b/hosts/nixpad/configuration.nix
index 4b86ea4..68c8c3f 100644
--- a/hosts/nixpad/configuration.nix
+++ b/hosts/nixpad/configuration.nix
@@ -1,199 +1,156 @@
-# 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’).
+# This is your system's configuration file.
+# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
+ inputs,
+ lib,
config,
pkgs,
...
}: {
+ # You can import other NixOS modules here
imports = [
- # Include the results of the hardware scan.
./hardware-configuration.nix
];
- # Bootloader.
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
- boot.loader.efi.efiSysMountPoint = "/boot/efi";
-
- networking.hostName = "nixpad"; # 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 = "Europe/London";
-
- # Select internationalisation properties.
- 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";
+ services.xserver = {
+ enable = true;
+ displayManager.sddm.enable = true;
+ desktopManager.plasma5.enable = true;
+ xkb.layout = "us";
+ libinput.enable = true;
};
- # Enable the X11 windowing system.
- services.xserver.enable = true;
-
- # Enable the KDE Plasma Desktop Environment.
- services.xserver.displayManager.sddm.enable = true;
- services.xserver.desktopManager.plasma5.enable = true;
-
- programs.hyprland = {
+ hardware.opengl = {
enable = true;
- xwayland.enable = true;
+ driSupport = true;
+ driSupport32Bit = true;
};
- # Configure keymap in X11
- services.xserver = {
- layout = "us";
- xkbVariant = "";
+ nixpkgs = {
+ # Configure your nixpkgs instance
+ config = {
+ # Disable if you don't want unfree packages
+ allowUnfree = true;
+ };
};
- # Enable experimental features
- nix.settings.extra-experimental-features = ["flakes" "nix-command"];
-
- # Enable automatic gc
- nix.gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 30d";
+ nix = {
+ # This will add each flake input as a registry
+ # To make nix3 commands consistent with your flake
+ registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
+
+ # This will additionally add your inputs to the system's legacy channels
+ # Making legacy nix commands consistent as well, awesome!
+ nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
+
+ settings = {
+ # Enable flakes and new 'nix' command
+ experimental-features = "nix-command flakes";
+ # Deduplicate and optimize nix store
+ auto-optimise-store = true;
+ };
};
- # Enable CUPS to print documents.
- services.printing.enable = true;
+ # the configuration (pain)
+ programs = {
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+ hyprland = {
+ enable = true;
+ xwayland.enable = true;
+ };
+ zsh.enable = true;
+ };
- # I never want to touch this again
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
- jack.enable = true;
};
- services.xserver.videoDrivers = ["intel"];
- hardware.opengl = {
- enable = true;
- driSupport = true;
- driSupport32Bit = 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.floppydisk = {
- isNormalUser = true;
- description = "Frankie B.";
- extraGroups = ["networkmanager" "wheel"];
- packages = with pkgs; [
- kate
- ];
- initialPassword = "changeme";
- shell = pkgs.zsh;
- };
+ environment.systemPackages = with pkgs; [
+ gcc
+ git
+ grim
+ lxqt.lxqt-policykit
+ pavucontrol
+ pciutils
+ pulseaudio
+ screen
+ slurp
+ usbutils
+ wget
+ wl-clipboard
+ xdg-utils
+ swaynotificationcenter
+ swayidle
+ wofi
+ swaylock
+ ];
- # Allow unfree packages
- nixpkgs.config.allowUnfree = true;
+ services.printing.enable = true;
- # Fonts
fonts.packages = with pkgs; [
+ font-awesome
+ nerdfonts
+ jetbrains-mono
winePackages.fonts
];
- # List packages installed in system profile. To search, run:
- # $ nix search wget
- environment.systemPackages = with pkgs; [
- # Tools
- vim
- wget
- git
- gnupg
- pinentry
- kitty
- ntfs3g
- pulseaudioFull
- linuxKernel.packages.linux_zen.v4l2loopback
- pciutils
- usbutils
- isoimagewriter
- nvtop
- screen
- pavucontrol
- paprefs
- gcc
-
-
- # Fonts
- nerdfonts
- jetbrains-mono
+ networking.hostName = "nixpad";
- # other shit
- #dunst
- libnotify
- hyprpaper
- networkmanagerapplet
- grim
- slurp
- wl-clipboard
- font-awesome
- rofi
- wlogout
- swaynotificationcenter
- swaylock
- sway
- swayidle
- helvum
- ];
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+ boot.initrd.systemd.enable = true;
+ boot.kernelPackages = pkgs.linuxPackages_latest;
+
- environment.sessionVariables = {
- WLR_NO_HARDWARE_CURSORS = "1";
- NIXOS_OZONE_WL = "1";
- };
+ # Set a time zone, idiot
+ time.timeZone = "Europe/London";
- xdg.portal.enable = true;
- xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ # Fun internationalisation stuffs (AAAAAAAA)
+ i18n.defaultLocale = "en_GB.UTF-8";
- programs.zsh.enable = true;
+ 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";
+ };
- # 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;
+ # define user acc
+ users.users.floppydisk = {
+ isNormalUser = true;
+ description = "Frankie B.";
+ extraGroups = ["networkmanager" "wheel"];
+ openssh.authorizedKeys.keys = [
+ # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
+ ];
+ shell = pkgs.zsh;
};
- # List services that you want to enable:
+ nix.gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 30d";
+ };
- # Enable the OpenSSH daemon.
- services.openssh.enable = true;
+ # This setups a SSH server. Very important if you're setting up a headless system.
+ # Feel free to remove if you don't need it.
- # Open ports in the firewall.
- # networking.firewall.allowedTCPPorts = [ ... ];
- # networking.firewall.allowedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
+ services.openssh.enable = true;
+
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 = "22.11"; # Did you read the comment?
+
+ system.stateVersion = "24.05";
+
}