diff --git a/flake.nix b/flake.nix index c8435b7..e713f58 100644 --- a/flake.nix +++ b/flake.nix @@ -37,7 +37,7 @@ let system = "x86_64"; globals = rec { - # user = "annika"; + user = "annika"; # fullName = "Annika Merris"; # gitName = fullName; # gitEmail = "me@annikamerris.com"; diff --git a/hosts/virt-nix/annika.nix b/hosts/virt-nix/annika.nix deleted file mode 100644 index b555350..0000000 --- a/hosts/virt-nix/annika.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ config, pkgs, inputs, ... }: - -{ - imports = [ - inputs.sops-nix.homeManagerModules.sops - ]; - - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - # Configure secrets stuff - sops = { - defaultSopsFile = ../../secrets/secrets.yaml; - defaultSopsFormat = "yaml"; - age.keyFile = "/home/annika/.config/sops/age/keys.txt"; - }; - - nixpkgs.config.allowUnfree = true; - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "annika"; - home.homeDirectory = "/home/annika"; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = [ - # GUI Apps - pkgs.google-chrome - pkgs.discord - pkgs.prusa-slicer - pkgs.helvum - pkgs.element-desktop - pkgs.netbird-ui - - # Terminal apps - pkgs.tmux - - # Helper stuff - pkgs.nixpkgs-fmt - - # Don't know what to call this - pkgs.spotifyd - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/annika/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - EDITOR = "vim"; - SUDO_EDITOR = "vim"; - }; - - programs = { - direnv = { - enable = true; - enableBashIntegration = true; - nix-direnv.enable = true; - }; - bash = { - enable = true; - }; - vscode = { - enable = true; - extensions = with pkgs.vscode-extensions; [ - bbenoist.nix - catppuccin.catppuccin-vsc - ]; - }; - firefox = { - enable = true; - policies = { - ExtensionSettings = { - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; - installation_mode = "normal_installed"; - default_area = "navbar"; - }; - }; - }; - }; - git = { - enable = true; - userName = "Annika Merris"; - userEmail = "me@annikamerris.com"; - }; - }; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "23.11"; # Please read the comment before changing. -} diff --git a/hosts/virt-nix/configuration.nix b/hosts/virt-nix/configuration.nix deleted file mode 100644 index 3777365..0000000 --- a/hosts/virt-nix/configuration.nix +++ /dev/null @@ -1,211 +0,0 @@ -# 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 - inputs.home-manager.nixosModules.default - ]; - - nix.settings.extra-substituters = [ - "https://cache.lix.systems" - ]; - - nix.settings.trusted-public-keys = [ - "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" - ]; - - # Workaround for an issue with docs and Aux - documentation.nixos.enable = false; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "kim"; # 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/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"; - }; - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - # Enable the X11 windowing system. - services.xserver.enable = true; - - # Enable the KDE Plasma Desktop Environment. - services.displayManager.sddm.enable = true; - services.xserver.desktopManager.plasma5.enable = true; - - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - - # Enable CUPS to print documents. - services.printing.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; - # 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; - }; - - # 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.annika = { - isNormalUser = true; - description = "Annika Merris"; - extraGroups = [ "networkmanager" "wheel" ]; - shell = pkgs.bash; - packages = with pkgs; [ - # kate - ]; - }; - - # Configure secrets stuff - sops = { - defaultSopsFile = ../../secrets/secrets.yaml; - defaultSopsFormat = "yaml"; - age.keyFile = "/home/annika/.config/sops/age/keys.txt"; - - secrets."spotifyd/settings/global/password" = { }; - - templates = { - "spotifyd.conf" = { - owner = "annika"; - content = '' - [global] - username = "me@annikamerris.com" - password = "${config.sops.placeholder."spotifyd/settings/global/password"}" - use_mpris = true - device_name = "kim-nix" - device_type = "computer" - ''; - }; - }; - }; - - # Install and setup spotifyd - # sops.templates. - systemd.user.services.spotifyd = { - description = "spotify daemon"; - documentation = [ "https://github.com/Spotifyd/spotifyd" ]; - - wantedBy = [ "default.target" ]; - - serviceConfig = { - ExecStart = - "${pkgs.spotifyd}/bin/spotifyd --no-daemon --config-path ${config.sops.templates."spotifyd.conf".path}"; - Restart = "always"; - RestartSec = 12; - }; - }; - - home-manager = { - extraSpecialArgs = { inherit inputs; }; - users = { - "annika" = import ./annika.nix; - }; - }; - - nixpkgs.overlays = [ inputs.catppuccin-vsc.overlays.default ]; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # Install firefox. - programs = { - firefox = { - enable = true; - }; - - steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - }; - }; - - programs.solaar.enable = true; - - # 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. - wget - git - # logiops - python3 - age # For encryption - sops # For encryption too - ]; - - # List services that you want to enable: - # Enable the OpenSSH daemon. - services.openssh.enable = true; - services.flatpak.enable = true; - services.netbird.enable = true; - services.ratbagd.enable = true; - - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - networking.firewall.allowedUDPPorts = [ - 5353 - ]; - # Or disable the firewall altogether. - # 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 = "23.11"; # Did you read the comment? - -} diff --git a/hosts/virt-nix/hardware-configuration.nix b/hosts/virt-nix/hardware-configuration.nix deleted file mode 100644 index 88328ec..0000000 --- a/hosts/virt-nix/hardware-configuration.nix +++ /dev/null @@ -1,39 +0,0 @@ -# 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 + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ]; - boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ]; - boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable) - '' - # Set the system time from the hardware clock to work around a - # bug in qemu-kvm > 1.5.2 (where the VM clock is initialised - # to the *boot time* of the host). - hwclock -s - ''; - - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/ba78bd44-dd31-4f55-88ce-ab83fbf3eb4e"; - fsType = "ext4"; - }; - - swapDevices = [ ]; - - # 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.enp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -} diff --git a/modules/common/default.nix b/modules/common/default.nix index 7796cab..fa7a26d 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -5,6 +5,12 @@ stateVersion = "23.11"; in { + options = { + user = lib.mkOption { + type = lib.types.str; + description = "Primary user of the system"; + }; + }; environment.systemPackages = with pkgs; [ git vim