From d3c493362884f9992306e1d33fda336e06ce12e9 Mon Sep 17 00:00:00 2001 From: noe Date: Wed, 27 Dec 2023 02:54:59 -0500 Subject: [PATCH] refactor everything --- flake.nix | 7 +- home-manager/features/direnv.nix | 2 +- home-manager/features/git.nix | 2 +- home-manager/features/kitty.nix | 2 +- home-manager/features/vesktop/default.nix | 2 +- home-manager/features/vim.nix | 15 ++ home-manager/noe/common/home-user.nix | 2 +- modules/nixos/default.nix | 2 +- modules/nixos/pod.nix | 59 -------- nixos/base.nix | 6 +- nixos/features/kde.nix | 18 --- nixos/features/nginx.nix | 2 +- nixos/features/podman.nix | 2 +- nixos/features/systemd-boot.nix | 2 +- nixos/features/tailscale.nix | 1 - nixos/features/wifi.nix | 2 +- nixos/hosts/blueberry/default.nix | 2 +- nixos/hosts/cider/default.nix | 2 +- nixos/hosts/drone/default.nix | 2 +- nixos/hosts/thonkpad/default.nix | 2 +- nixos/hosts/thonkpad/orig.nix | 163 ---------------------- nixos/stacks/stack-utils.nix | 3 +- nixos/templates/proxmox-lxc.nix | 2 +- nixpkgs.nix | 6 +- pkgs/default.nix | 1 - shell.nix | 1 + 26 files changed, 40 insertions(+), 270 deletions(-) delete mode 100644 modules/nixos/pod.nix delete mode 100644 nixos/features/kde.nix delete mode 100644 nixos/hosts/thonkpad/orig.nix diff --git a/flake.nix b/flake.nix index 9ff9fec..9d5c2b3 100644 --- a/flake.nix +++ b/flake.nix @@ -77,8 +77,7 @@ inherit modules pkgs; extraSpecialArgs = { inherit inputs outputs; }; }; - in - rec { + in { # Your custom packages # Acessible through 'nix build', 'nix shell', etc packages = forAllSystems (system: @@ -135,8 +134,8 @@ # Keylime Lab keylime = mkNixos [ ./nixos/hosts/keylime ]; - # HP Spectre - drone = mkNixos [ ./nixos/hosts/drone ]; + # HP Spectre + drone = mkNixos [ ./nixos/hosts/drone ]; }; darwinConfigurations = { diff --git a/home-manager/features/direnv.nix b/home-manager/features/direnv.nix index 381ff1a..8df5404 100644 --- a/home-manager/features/direnv.nix +++ b/home-manager/features/direnv.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ ... }: { programs.direnv = { enable = true; enableBashIntegration = true; diff --git a/home-manager/features/git.nix b/home-manager/features/git.nix index 9e01cfc..71aa654 100644 --- a/home-manager/features/git.nix +++ b/home-manager/features/git.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{ ... }: { programs.git = { enable = true; }; diff --git a/home-manager/features/kitty.nix b/home-manager/features/kitty.nix index f9bce83..6213b26 100644 --- a/home-manager/features/kitty.nix +++ b/home-manager/features/kitty.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ lib, ... }: { programs.kitty = { enable = true; shellIntegration.mode = "enabled"; diff --git a/home-manager/features/vesktop/default.nix b/home-manager/features/vesktop/default.nix index 82b3785..802ece2 100644 --- a/home-manager/features/vesktop/default.nix +++ b/home-manager/features/vesktop/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: with builtins; { +{ pkgs, ... }: { home.packages = [ pkgs.vesktop ]; diff --git a/home-manager/features/vim.nix b/home-manager/features/vim.nix index d44408e..ef3d7f5 100644 --- a/home-manager/features/vim.nix +++ b/home-manager/features/vim.nix @@ -43,6 +43,21 @@ barbar.enable = true; gitgutter.enable = true; persistence.enable = true; + nvim-cmp.enable = true; + cmp-nvim-lsp.enable = true; + cmp_luasnip.enable = true; + luasnip.enable = true; + + + lsp = { + enable = true; + servers = { + nil_ls.enable = true; + rust-analyzer.enable = true; + rust-analyzer.installRustc = false; # use rustc in nix shells, maybe? + rust-analyzer.installCargo = false; + }; + }; }; extraPlugins = with pkgs.vimPlugins; [ diff --git a/home-manager/noe/common/home-user.nix b/home-manager/noe/common/home-user.nix index 32d42cc..21ef0b9 100644 --- a/home-manager/noe/common/home-user.nix +++ b/home-manager/noe/common/home-user.nix @@ -1,4 +1,4 @@ -{ pkgs, config, ... }: +{ pkgs, ... }: let inherit (pkgs.stdenv) isDarwin; homeDirectory = if isDarwin then "/Users/noe" else "/home/noe"; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index e0b4887..0db3279 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,3 +1,3 @@ { - pod = import ./pod.nix; + } diff --git a/modules/nixos/pod.nix b/modules/nixos/pod.nix deleted file mode 100644 index 73cf484..0000000 --- a/modules/nixos/pod.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ pkgs, config, lib, ... }: - -let - cfg = config.pods; - - podOpts = with lib; { - container = mkOption { - type = types.attrsOf (types.submodule ({ options = podContainerOpts; })); - }; - - exportPorts = mkOption { - type = types.listOf types.str; - }; - - routes = mkOption { - type = types.attrsOf (types.submodule ({ options = routeOpts; })); - }; - }; - - podContainerOpts = with lib; { - image = mkOption { - type = types.str; - }; - - ports = mkOption { - type = types.listOf types.str; - }; - - environment = mkOption { - type = types.attrsOf types.str; - }; - - secrets = mkOption { - type = types.attrsOf types.path; - }; - - volumes = mkOption { - type = types.attrsOf types.str; - }; - }; - - routeOpts = with lib; { - port = mkOption { - type = types.str; - }; - }; -in { - options.pods = with lib; { - enable = mkEnableOption "Enable pod support"; - - pods = mkOption { - type = types.attrsOf (types.submodule ({ options = podOpts; })); - }; - }; - - config = lib.mkIf cfg.enable { - - } -} diff --git a/nixos/base.nix b/nixos/base.nix index d41cfa5..aa146de 100644 --- a/nixos/base.nix +++ b/nixos/base.nix @@ -1,6 +1,6 @@ # Things every machine will have... -{ inputs, outputs, lib, config, pkgs, ... }: { +{ inputs, outputs, lib, pkgs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager ./users/noe.nix @@ -63,10 +63,8 @@ gc.automatic = true; settings = { experimental-features = "nix-command flakes"; - #auto-optimize-store = true; + auto-optimise-store = true; trusted-users = [ "root" "@wheel" ]; }; }; - -# system.copySystemConfiguration = true; } diff --git a/nixos/features/kde.nix b/nixos/features/kde.nix deleted file mode 100644 index 07d87e4..0000000 --- a/nixos/features/kde.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, inputs, ... }: { - #imports = [ - # inputs.kde2nix.nixosModules.plasma6 - #]; - - services.xserver = { - enable = true; - displayManager.sddm = { - enable = true; - wayland.enable = true; - }; - desktopManager.plasma5 = { - enable = true; - }; - }; - - programs.xwayland.enable = true; -} diff --git a/nixos/features/nginx.nix b/nixos/features/nginx.nix index 61d5812..40f684a 100644 --- a/nixos/features/nginx.nix +++ b/nixos/features/nginx.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{...}: { services.nginx = { enable = true; #recommendedTlsSettings = true; diff --git a/nixos/features/podman.nix b/nixos/features/podman.nix index 3e2db06..fae7912 100644 --- a/nixos/features/podman.nix +++ b/nixos/features/podman.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: { +{ ... }: { virtualisation = { docker.enable = false; diff --git a/nixos/features/systemd-boot.nix b/nixos/features/systemd-boot.nix index 0b1826d..b0ea6fc 100644 --- a/nixos/features/systemd-boot.nix +++ b/nixos/features/systemd-boot.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ lib, ... }: { boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; } diff --git a/nixos/features/tailscale.nix b/nixos/features/tailscale.nix index 9a935d3..7fdb38a 100644 --- a/nixos/features/tailscale.nix +++ b/nixos/features/tailscale.nix @@ -1,5 +1,4 @@ { config, ... }: { - sops.secrets.tailscale_auth_key = {}; services.tailscale = { enable = true; diff --git a/nixos/features/wifi.nix b/nixos/features/wifi.nix index c4cc202..dc8ed80 100644 --- a/nixos/features/wifi.nix +++ b/nixos/features/wifi.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: { +{ ... }: { networking.networkmanager = { enable = true; diff --git a/nixos/hosts/blueberry/default.nix b/nixos/hosts/blueberry/default.nix index 18f7de1..6d4fd56 100644 --- a/nixos/hosts/blueberry/default.nix +++ b/nixos/hosts/blueberry/default.nix @@ -1,4 +1,4 @@ -{ config, ... }: { +{ ... }: { imports = [ ./hardware-configuration.nix diff --git a/nixos/hosts/cider/default.nix b/nixos/hosts/cider/default.nix index ee031dd..9e7dcdf 100644 --- a/nixos/hosts/cider/default.nix +++ b/nixos/hosts/cider/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, inputs, ... }: { +{ pkgs, inputs, ... }: { imports = [ inputs.apple-silicon.nixosModules.apple-silicon-support diff --git a/nixos/hosts/drone/default.nix b/nixos/hosts/drone/default.nix index de27ea7..13ad74d 100644 --- a/nixos/hosts/drone/default.nix +++ b/nixos/hosts/drone/default.nix @@ -1,4 +1,4 @@ -{ lib, config, pkgs, outputs, ... }: { +{ ... }: { imports = [ ./hardware-configuration.nix ../../client.nix diff --git a/nixos/hosts/thonkpad/default.nix b/nixos/hosts/thonkpad/default.nix index 77bb701..1845119 100644 --- a/nixos/hosts/thonkpad/default.nix +++ b/nixos/hosts/thonkpad/default.nix @@ -1,4 +1,4 @@ -{ lib, config, pkgs, outputs, ... }: { +{ ... }: { imports = [ ./hardware-configuration.nix ../../client.nix diff --git a/nixos/hosts/thonkpad/orig.nix b/nixos/hosts/thonkpad/orig.nix deleted file mode 100644 index fd3c15b..0000000 --- a/nixos/hosts/thonkpad/orig.nix +++ /dev/null @@ -1,163 +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, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../client.nix - ]; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.kernelPackages = pkgs.linuxPackages_zen; - - networking.hostName = "thonkpad"; # Define your hostname. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Configure network proxy if necessary - - - # Enable networking - networking.networkmanager.enable = true; - - services.tailscale = { - 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. - - - # Configure keymap in X11 - services.xserver = { - enable = true; - displayManager = { - defaultSession = "xfce"; - sddm.enable = true; - #sddm.wayland.enable = true; - }; - desktopManager = { - xterm.enable = false; - xfce.enable = true; - }; - layout = "us"; - xkbVariant = ""; - }; - - # 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.noe = { - isNormalUser = true; - description = "noe"; - extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; [ - firefox - ]; - }; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - curl - kitty - git - zsh - ]; - - # 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: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # 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 = "24.05"; # Did you read the comment? - - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - }; - - fonts = { - packages = with pkgs; [ - atkinson-hyperlegible - (nerdfonts.override { fonts = [ "FiraCode" ]; }) - ]; - fontDir.enable = true; - enableDefaultPackages = true; - fontconfig.defaultFonts = { - sansSerif = [ "Atkinson Hyperlegible" ]; - serif = [ "Atkinson Hyperlegible" ]; - monospace = [ "FiraCode Nerd Font" "Fira Code" ]; - }; - }; - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; -} diff --git a/nixos/stacks/stack-utils.nix b/nixos/stacks/stack-utils.nix index 36a14b9..4e400fb 100644 --- a/nixos/stacks/stack-utils.nix +++ b/nixos/stacks/stack-utils.nix @@ -1,7 +1,6 @@ { pod = { pkgs, ... }: podName: containers: ports: { - systemd.services."ensure-pod_${podName}" = let - in { + systemd.services."ensure-pod_${podName}" = { serviceConfig.Type = "oneshot"; wantedBy = map (x: "podman-${x}.service") containers; script = '' diff --git a/nixos/templates/proxmox-lxc.nix b/nixos/templates/proxmox-lxc.nix index 55295bd..28064bf 100644 --- a/nixos/templates/proxmox-lxc.nix +++ b/nixos/templates/proxmox-lxc.nix @@ -1,4 +1,4 @@ -{ pkgs, config, modulesPath, lib, ... }: { +{ pkgs, modulesPath, lib, ... }: { imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ../users/noe.nix diff --git a/nixpkgs.nix b/nixpkgs.nix index 041de40..de0c119 100644 --- a/nixpkgs.nix +++ b/nixpkgs.nix @@ -1,8 +1,8 @@ # A nixpkgs instance that is grabbed from the pinned nixpkgs commit in the lock file # This is useful to avoid using channels when using legacy nix commands -let lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; -in -import (fetchTarball { +let + lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked; +in import (fetchTarball { url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz"; sha256 = lock.narHash; }) diff --git a/pkgs/default.nix b/pkgs/default.nix index 6e95538..8798371 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,3 +1,2 @@ { pkgs ? (import ../nixpkgs.nix) { }, ... }: rec { - } diff --git a/shell.nix b/shell.nix index 7ee2f36..9db2a79 100644 --- a/shell.nix +++ b/shell.nix @@ -14,6 +14,7 @@ age ssh-to-age bun + nil ]; }; }