commit 12a445c4355d9b0edabf678c68f8398eaa8d7536 Author: k Date: Wed May 8 21:48:33 2024 -0400 init diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..40c480b --- /dev/null +++ b/flake.lock @@ -0,0 +1,65 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1715077503, + "narHash": "sha256-AfHQshzLQfUqk/efMtdebHaQHqVntCMjhymQzVFLes0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "6e277d9566de9976f47228dd8c580b97488734d4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1715010655, + "narHash": "sha256-FmdhvR/hgBkPDvIv/HOEIQsSMaVXh8wvTrnep8dF3Jc=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "d1659c9eb8af718118fb4bbe2c86797c8b8623eb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1714906307, + "narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..bc197e6 --- /dev/null +++ b/flake.nix @@ -0,0 +1,50 @@ +{ + description = "Nixos config flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, nixos-hardware, ... }@inputs: + let + system = "x86_64-linux"; + pkg = nixpkgs.legacyPackages.${system}; + in + { + nixosConfigurations = { + laptop = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/laptop/configuration.nix + inputs.home-manager.nixosModules.default + nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga + ]; + }; + + server = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/server/configuration.nix + inputs.home-manager.nixosModules.default + nixos-hardware.nixosModules.system76 + ]; + }; + + tablet = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/tablet/configuration.nix + inputs.home-manager.nixosModules.default + nixos-hardware.nixosModules.microsoft-surface-pro-intel + ]; + }; + + }; + }; +} diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix new file mode 100644 index 0000000..5ec17ba --- /dev/null +++ b/hosts/laptop/configuration.nix @@ -0,0 +1,110 @@ +# 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, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; + nixpkgs.config.allowUnfree = true; + + # 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/New_York"; + + # 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"; + }; + + + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + services.fprintd.enable = true; + services.auto-cpufreq.enable = true; + services.thermald.enable = true; + powerManagement.powertop.enable = true; + powerManagement.enable = true; + + # Enable sound with pipewire. + sound.enable = true; + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.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’. + programs.zsh.enable = true; + users.users.k = { + isNormalUser = true; + description = "k"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [zsh]; + shell = pkgs.zsh; + }; + home-manager = { + users = { + "k" = import ./home.nix; + }; + }; + + system.autoUpgrade.enable = true; + nix.gc.automatic = true; + + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + intel-vaapi-driver + intel-compute-runtime + intel-media-driver + microcodeIntel + ]; + networking.firewall.enable = true; + + # 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/laptop/hardware-configuration.nix b/hosts/laptop/hardware-configuration.nix new file mode 100644 index 0000000..7ec1f98 --- /dev/null +++ b/hosts/laptop/hardware-configuration.nix @@ -0,0 +1,52 @@ +# 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" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + hardware.opengl.driSupport32Bit = true; + + services.fwupd.enable = true; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/9c2b187e-a9db-48f1-adce-dd9311675223"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-665ec0f0-45b9-413f-adff-e7c4d734f832".device = "/dev/disk/by-uuid/665ec0f0-45b9-413f-adff-e7c4d734f832"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/5D11-53E2"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/0dfad18a-8bd0-430c-99c4-135daa6fb892"; } + ]; + + # 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.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.sensor.iio.enable = true; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + boot.initrd.luks.devices."luks-4d1ff260-d134-4b6c-80ef-5f5b74c87988".device = "/dev/disk/by-uuid/4d1ff260-d134-4b6c-80ef-5f5b74c87988"; + networking.hostName = "laptop"; # Define your hostname. +} diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix new file mode 100644 index 0000000..d5b55d3 --- /dev/null +++ b/hosts/laptop/home.nix @@ -0,0 +1,63 @@ +{ config, pkgs, inputs, ... }: + +{ + home.enableNixpkgsReleaseCheck = false; + nixpkgs.config.allowUnfree = true; + + home.username = "k"; + home.homeDirectory = "/home/k"; + home.stateVersion = "23.11"; + + home.packages = [ + pkgs.emacs + pkgs.neovim + pkgs.firefox + pkgs.keepassxc + pkgs.plan9port + pkgs.syncthing + pkgs.thunderbird + pkgs.blender + pkgs.steam + pkgs.discord + pkgs.htop + pkgs.zip + pkgs.spotify + + pkgs.clang-tools + + pkgs.texlive.combined.scheme-full + pkgs.ispell + + pkgs.ollama + pkgs.logseq + ]; + + programs.git = { + enable = true; + userName = "k"; + userEmail = "markers711@gmail.com"; + }; + + programs.starship.enable = true; + programs.zsh = { + enable = true; + autosuggestion.enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + autocd = true; + plugins = [ + { + name = "zsh-nix-shell"; + file = "nix-shell.plugin.zsh"; + src = pkgs.fetchFromGitHub { + owner = "chisui"; + repo = "zsh-nix-shell"; + rev = "v0.8.0"; + sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; + }; + } + ]; + }; + + services.syncthing.enable = true; +} diff --git a/hosts/server/configuration.nix b/hosts/server/configuration.nix new file mode 100644 index 0000000..6c63ee1 --- /dev/null +++ b/hosts/server/configuration.nix @@ -0,0 +1,104 @@ +# 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, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ./service.nix + ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; + nixpkgs.config.allowUnfree = true; + + # 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/New_York"; + + # 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"; + }; + + + # Enable the X11 windowing system. + services.xserver.enable = false; + + # Enable the GNOME Desktop Environment. + services.xserver.displayManager.gdm.enable = false; + services.xserver.desktopManager.gnome.enable = false; + + # Enable CUPS to print documents. + services.auto-cpufreq.enable = true; + services.thermald.enable = true; + powerManagement.powertop.enable = true; + powerManagement.enable = true; + + # Enable sound with pipewire. + sound.enable = false; + + # 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’. + programs.zsh.enable = true; + users.users.k = { + isNormalUser = true; + description = "k"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [zsh]; + shell = pkgs.zsh; + }; + home-manager = { + users = { + "k" = import ./home.nix; + }; + }; + + system.autoUpgrade.enable = true; + nix.gc.automatic = true; + + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + docker-compose + intel-vaapi-driver + intel-compute-runtime + intel-media-driver + microcodeIntel + ]; + networking.firewall = { + enable = false; + allowedTCPPorts = [80 443 22 ]; + }; + + # 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/server/hardware-configuration.nix b/hosts/server/hardware-configuration.nix new file mode 100644 index 0000000..7b7f673 --- /dev/null +++ b/hosts/server/hardware-configuration.nix @@ -0,0 +1,45 @@ +# 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" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixserver"; # Define your hostname. + + + fileSystems."/" = + { device = "/dev/disk/by-uuid/aaf4a4be-fed2-42b2-be79-4ca920bb7292"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/150F-09C6"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/ecde85bd-abea-4926-80d5-810b01d0e364"; } + ]; + + # 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.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/server/home.nix b/hosts/server/home.nix new file mode 100644 index 0000000..982a8b5 --- /dev/null +++ b/hosts/server/home.nix @@ -0,0 +1,44 @@ +{ config, pkgs, inputs, ... }: + +{ + home.enableNixpkgsReleaseCheck = false; + nixpkgs.config.allowUnfree = true; + + home.username = "k"; + home.homeDirectory = "/home/k"; + home.stateVersion = "23.11"; + + home.packages = [ + pkgs.syncthing + pkgs.neovim + pkgs.btop + ]; + + programs.git = { + enable = true; + userName = "k"; + userEmail = "markers711@gmail.com"; + }; + + programs.starship.enable = true; + programs.zsh = { + enable = true; + autosuggestion.enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + autocd = true; + plugins = [ + { + name = "zsh-nix-shell"; + file = "nix-shell.plugin.zsh"; + src = pkgs.fetchFromGitHub { + owner = "chisui"; + repo = "zsh-nix-shell"; + rev = "v0.8.0"; + sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; + }; + } + ]; + }; + services.syncthing.enable = true; +} diff --git a/hosts/server/service.nix b/hosts/server/service.nix new file mode 100644 index 0000000..2565418 --- /dev/null +++ b/hosts/server/service.nix @@ -0,0 +1,169 @@ +{pkgs,...}: +{ + services.openssh = { + enable = true; + }; + + services.jellyfin = { + enable = true; + }; + + services.gitea = { + enable = true; + settings = { + service.DISABLE_REGISTRATION = true; + server = { + HTTP_PORT = 8001; + DOMAIN = "dhilton.xyz"; + ROOT_URL = "https://git.dhilton.xyz"; + }; + }; + }; + + services.gitea-actions-runner.instances.home = { + enable = true; + url = "https://git.dhilton.xyz"; + name = "nixsrv"; + token = "LaqTWUDidsm510TGBglGvcphsUxYmCzMjrZbEtJj"; + labels = ["ubuntu-latest:docker://node:16-bullseye" "ubuntu-22.04:docker://node:16-bullseye" "ubuntu-20.04:docker://node:16-bullseye" "ubuntu-18.04:docker://node:16-buster" "native:host"]; + }; + + services.pufferpanel = { + enable = true; + extraGroups =["docker"]; + extraPackages = [pkgs.jre]; + environment = { + PUFFER_WEB_HOST = ":8002"; + PUFFER_PANEL_REGISTRATIONENABLED = "false"; + }; + }; + + services.home-assistant = { + enable = true; + extraComponents = ["wiz" "fail2ban"]; + config = { + http.server_port=8003; + default_config = {}; + }; + }; + + services.ntfy-sh = { + enable = true; + settings = { + listen-http = ":8004"; + auth-file = "/var/lib/ntfy.db"; + auth-default-access = "read-only"; + base-url = "https://ntfy.dhilton.xyz"; + }; + }; + + services.searx = { + enable=true; + settings = { server.port = 8005; server.secret_key = "secretlol";}; + }; + + networking.domain = "dhilton.xyz"; + + services.akkoma.enable = true; + services.akkoma.config = { + ":pleroma" = { + ":instance" = { + name = "dhilton fedi"; + description = "dhilton akkoma server"; + email = "markers711@gmail.com"; + registration_open = false; + }; + + "Pleroma.Web.Endpoint" = { + url.host = "fed.dhilton.xyz"; + }; + }; +}; + services.akkoma.nginx = { + enableACME = true; + forceSSL = true; + }; + + services.fail2ban = { + enable=false; + }; + + virtualisation.docker = { + enable = true; + }; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + recommendedTlsSettings = true; + }; + + services.nginx.virtualHosts = { + + "dhilton.xyz" = { + enableACME = true; + forceSSL = true; + root = "/var/www/dhilton"; + }; + + "git.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8001"; + proxyWebsockets = true; + }; + }; + + "ntfy.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8004"; + proxyWebsockets = true; + }; + }; + + "jel.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8096"; + proxyWebsockets = true; + }; + }; + + "puf.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8002"; + proxyWebsockets = true; + }; + }; + + "srx.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8005"; + proxyWebsockets = true; + }; + }; + + "hom.dhilton.xyz" = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8003"; + proxyWebsockets = true; + }; + }; + }; + + + security.acme = { + acceptTerms = true; + defaults.email = "markers711@gmail.com"; + }; +} diff --git a/hosts/tablet/configuration.nix b/hosts/tablet/configuration.nix new file mode 100644 index 0000000..3cbc642 --- /dev/null +++ b/hosts/tablet/configuration.nix @@ -0,0 +1,112 @@ +# 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, inputs, nixos-hardware, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; + nixpkgs.config.allowUnfree = true; + + + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/New_York"; + + # 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"; + }; + + + # Enable the X11 windowing system. + #services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + services.xserver.desktopManager.phosh = { + enable = true; + group = ""; + user = "k"; + phocConfig.xwayland = "immediate"; +}; + + # Enable CUPS to print documents. + services.printing.enable = true; + services.auto-cpufreq.enable = true; + services.thermald.enable = true; + powerManagement.powertop.enable = true; + powerManagement.enable = true; + + # Enable sound with pipewire. + sound.enable = true; + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.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’. + programs.zsh.enable = true; + users.users.k = { + isNormalUser = true; + description = "k"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; [zsh]; + shell = pkgs.zsh; + }; + home-manager = { + users = { + "k" = import ./home.nix; + }; + }; + + system.autoUpgrade.enable = true; + nix.gc.automatic = true; + + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + intel-vaapi-driver + intel-compute-runtime + intel-media-driver + microcodeIntel + gnome-console + neovim + ]; + + boot.kernelModules = [ "soc_button_array" ]; + + networking.firewall.enable = true; + + # 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/tablet/hardware-configuration.nix b/hosts/tablet/hardware-configuration.nix new file mode 100644 index 0000000..83feedc --- /dev/null +++ b/hosts/tablet/hardware-configuration.nix @@ -0,0 +1,48 @@ +# 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" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + hardware.opengl.driSupport32Bit = true; + networking.hostName = "surface"; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + + + fileSystems."/" = + { device = "/dev/disk/by-uuid/479b497e-7807-48e4-82e6-d6468549a281"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/DACA-E1BC"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/19941c01-ac8c-4609-a834-20259f3ee32e"; } + ]; + + # 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.wlp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/tablet/home.nix b/hosts/tablet/home.nix new file mode 100644 index 0000000..f479368 --- /dev/null +++ b/hosts/tablet/home.nix @@ -0,0 +1,41 @@ +{ config, pkgs, inputs, ... }: + +{ + home.enableNixpkgsReleaseCheck = false; + nixpkgs.config.allowUnfree = true; + + home.username = "k"; + home.homeDirectory = "/home/k"; + home.stateVersion = "23.11"; + + home.packages = [ + pkgs.firefox + pkgs.steam + pkgs.discord + pkgs.htop + pkgs.spotify + pkgs.jellyfin-media-player + pkgs.keepassxc + ]; + + programs.starship.enable = true; + programs.zsh = { + enable = true; + autosuggestion.enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + autocd = true; + plugins = [ + { + name = "zsh-nix-shell"; + file = "nix-shell.plugin.zsh"; + src = pkgs.fetchFromGitHub { + owner = "chisui"; + repo = "zsh-nix-shell"; + rev = "v0.8.0"; + sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; + }; + } + ]; + }; +}