From d2cd8c4834005474b65957dee00a6928e662e7d8 Mon Sep 17 00:00:00 2001 From: phartman Date: Thu, 10 Oct 2024 05:31:33 -0500 Subject: [PATCH] adding lattitude configs, really needs cleanup --- hosts/latitude/README.md | 0 hosts/latitude/configuration.nix | 313 ++++++++++++++++++++++ hosts/latitude/hardware-configuration.nix | 49 ++++ 3 files changed, 362 insertions(+) create mode 100644 hosts/latitude/README.md create mode 100644 hosts/latitude/configuration.nix create mode 100644 hosts/latitude/hardware-configuration.nix diff --git a/hosts/latitude/README.md b/hosts/latitude/README.md new file mode 100644 index 0000000..e69de29 diff --git a/hosts/latitude/configuration.nix b/hosts/latitude/configuration.nix new file mode 100644 index 0000000..07c3951 --- /dev/null +++ b/hosts/latitude/configuration.nix @@ -0,0 +1,313 @@ +# 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, lib, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + #../../../common/cpu/intel + #../../../common/pc/laptop +# ./packages.nix + ]; + +# UPDATE YOUR FUCKING ELECTRON APPS GUYS!!! + + nixpkgs.config.permittedInsecurePackages = [ + "electron" + ]; + + + services.thermald.enable = lib.mkDefault 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''; + }; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.systemd-boot.configurationLimit = 10; # Keep only the last 10 Generations. + networking.hostName = "latitude"; # 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"; + + 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"; + }; + + # Experimental Features Enabled + # {pkgs, ...}: { + nix.settings.experimental-features = ["nix-command"]; + # } + + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable Sway (wayland) Window Manager + #programs.sway.enable = true; + + # Enable the KDE Plasma Desktop Environment. + #services.xserver.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.displayManager.defaultSession = "plasma"; + services.desktopManager.plasma6.enable = true; + + # Launch KDE in Wayland session + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Bluetooth + hardware.bluetooth = { + enable =true; + powerOnBoot = true; + + }; + #services.blueman.enable = true; + + # Enable sound with pipewire. + # sound.enable = true; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.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; + }; + + ## Allow Bluetooth buttons to control media player + systemd.user.services.mpris-proxy = { + description = "Mpris proxy"; + after = [ "network.target" "sound.target" ]; + wantedBy = [ "default.target" ]; + serviceConfig.ExecStart = "${pkgs.bluez}/bin/mpris-proxy"; + }; + + ## Enable extra blutooth codecs + hardware.pulseaudio = { + enable = false; + package = pkgs.pulseaudioFull; + }; + + ## Enable Bluetooth A2DP Sink + hardware.bluetooth.settings = { + General = { + Enable = "Source,Sink,Media,Socket"; + }; + }; + + # 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.paul = { + isNormalUser = true; + description = "Paul Hartman"; + extraGroups = [ "networkmanager" "wheel" "dialout"]; + packages = with pkgs; [ + firefox + kate + # thunderbird + ]; + }; + + # 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. + isoimagewriter + appimage-run + libsForQt5.kde-cli-tools + libheif + + # WWAN Utilities + modem-manager-gui + + ## CLI Utils + wget + curl + micro + gitFull + speedtest-cli + pciutils + fwupd + htop + aha + clinfo + virtualgl + glxinfo + vulkan-tools + wayland-utils + ncdu + spotdl + + ## GUI programs + firefox + kate + vscode-fhs + yakuake + bitwarden + remmina + virt-viewer + chirp + #ungoogled-chromium + + # Chat/Internet + #fluffychat + discord + chromium + + # Productivity + bogofilter +# claws-mail + thunderbird + libreoffice + nextcloud-client + kmymoney + #logseq # Electron app, reinstall via flatpak + #obsidian + + ## Audio/Music + audacity + guitarix +# musescore + carla + k3b + libation + sonixd + + ## Video/Graphics + gimp + blender + vlc + obs-studio + + ## Games + prismlauncher + retroarchFull + + + ## Iphone Stuff + + libimobiledevice + ifuse + ]; + + ## Docker + virtualisation.docker.enable = true; + + + # Flatpak bitches - CF 6-1-22 + + services.flatpak.enable = true; + xdg.portal.enable = true; + + ## Steam + 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 +}; + ## 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: + services = { + # Enable SSH + openssh = { + enable = true; + }; + # Enable Tailscale + tailscale = { + enable = true; + # useRoutingFeatures = both; + extraUpFlags = [ + "--ssh" + "--accept-routes" + ]; + }; + # Enable iPhone Tethering + usbmuxd = { + enable = true; + package = pkgs.usbmuxd2; + }; + + }; + # Enable KdeConnect + programs.kdeconnect.enable = true; + + # Open ports in the firewall. + networking.firewall = { + enable = true; + allowedTCPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + allowedUDPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + }; + + # Enable Automatic Upgrades + system.autoUpgrade.enable = true; + nix.gc.automatic = true; + nix.gc.dates = "weekly"; # Run garbage collection weekly to free up disk space + + # 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.11"; # Did you read the comment? + +} diff --git a/hosts/latitude/hardware-configuration.nix b/hosts/latitude/hardware-configuration.nix new file mode 100644 index 0000000..be4e756 --- /dev/null +++ b/hosts/latitude/hardware-configuration.nix @@ -0,0 +1,49 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4b8d4eb2-05a8-4992-afaf-6c549bed3fea"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/DCBE-E5D6"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/81654aa3-1c73-4293-b175-fc10918ed64c"; } + ]; + + ## mount Old NAS + fileSystems."/mnt/OldNas" = { + device = "root@192.168.1.16:/mnt/media"; + fsType = "sshfs"; + options = ["x-systemd.automount" "nodev" "noatime" "identityfile=/root/.ssh/id_rsa" "allow_other" "follow_symlinks"]; + label = "Old NAS"; + }; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wwp0s20f0u2.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}