diff --git a/flake.lock b/flake.lock index 120e85f..8f3950e 100644 --- a/flake.lock +++ b/flake.lock @@ -185,11 +185,11 @@ ] }, "locked": { - "lastModified": 1714606777, - "narHash": "sha256-bMkNmAXLj8iyTvxaaD/StcLSadbj1chPcJOjtuVnLmA=", + "lastModified": 1714641030, + "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "4d34ce6412bc450b1d4208c953dc97c7fc764f1a", + "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", "type": "github" }, "original": { @@ -378,11 +378,11 @@ ] }, "locked": { - "lastModified": 1714515075, - "narHash": "sha256-azMK7aWH0eUc3IqU4Fg5rwZdB9WZBvimOGG3piqvtsY=", + "lastModified": 1714679908, + "narHash": "sha256-KzcXzDvDJjX34en8f3Zimm396x6idbt+cu4tWDVS2FI=", "owner": "nix-community", "repo": "home-manager", - "rev": "6d3b6dc9222c12b951169becdf4b0592ee9576ef", + "rev": "9036fe9ef8e15a819fa76f47a8b1f287903fb848", "type": "github" }, "original": { @@ -391,6 +391,27 @@ "type": "github" } }, + "home-manager_stable": { + "inputs": { + "nixpkgs": [ + "nixpkgs_stable" + ] + }, + "locked": { + "lastModified": 1714043624, + "narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "home-manager", + "type": "github" + } + }, "hyprcontrib": { "inputs": { "nixpkgs": [ @@ -454,11 +475,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1714663293, - "narHash": "sha256-1XZi9ZRGn2Wob2WHYUjcshA/jeIIuPvbGHvAsZFNysw=", + "lastModified": 1714743728, + "narHash": "sha256-VCFgqgQ2apEawEOHogI5Dhs6qqcyORwfU1sfizigCpA=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "a3ca016d42283ce1d2d5ffca40b93123b4290f4b", + "rev": "d5bf15387ad3b4ee36cae7a3cd9f4a9c28790f2e", "type": "github" }, "original": { @@ -630,11 +651,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1714603036, - "narHash": "sha256-DdSurfEudH2ERSMsR19jHZmyHcqM1bPKyLUFfbT3RTs=", + "lastModified": 1714683427, + "narHash": "sha256-SMfFU+VsRTZLVIkGpf67oOTZ29gWmFvxF0nGO6CRx/4=", "owner": "neovim", "repo": "neovim", - "rev": "9e2f378b6d255cd4b02a39b1a1dc5aea2df1a84c", + "rev": "01e4a70d668d54a7cefa3ff53ec97e39df516265", "type": "github" }, "original": { @@ -655,11 +676,11 @@ ] }, "locked": { - "lastModified": 1714618080, - "narHash": "sha256-6IKJRxi/Rl7Huz75SSCIWHm0d6ADToLL6MsvjWunTZg=", + "lastModified": 1714694802, + "narHash": "sha256-b0+Zrd2PDgRIEeeXbivzw3kcSaXCZItOvgOgdfRsyOo=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "e45cf8ce3f84056b006935b3f64c35ea6be76300", + "rev": "9b2c33c7fa0287db93868d955e7b3d0da3837a57", "type": "github" }, "original": { @@ -772,11 +793,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1714253743, - "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", + "lastModified": 1714635257, + "narHash": "sha256-4cPymbty65RvF1DWQfc+Bc8B233A1BWxJnNULJKQ1EY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", + "rev": "63c3a29ca82437c87573e4c6919b09a24ea61b0f", "type": "github" }, "original": { @@ -802,6 +823,22 @@ "type": "github" } }, + "nixpkgs_stable": { + "locked": { + "lastModified": 1714531828, + "narHash": "sha256-ILsf3bdY/hNNI/Hu5bSt2/KbmHaAVhBbNUOdGztTHEg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0638fe2715d998fa81d173aad264eb671ce2ebc1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -862,6 +899,7 @@ "anyrun": "anyrun", "catppuccin": "catppuccin", "home-manager": "home-manager", + "home-manager_stable": "home-manager_stable", "hyprcontrib": "hyprcontrib", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", @@ -870,6 +908,7 @@ "neovim-nightly-overlay": "neovim-nightly-overlay", "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs_3", + "nixpkgs_stable": "nixpkgs_stable", "rio-term": "rio-term", "spicetify-nix": "spicetify-nix", "systems": "systems_8", @@ -1089,11 +1128,11 @@ ] }, "locked": { - "lastModified": 1714631500, - "narHash": "sha256-yrUm8IX8mZJdpJHrd/Pd/pJYycjppe8YmqtT0yAXSkU=", + "lastModified": 1714718861, + "narHash": "sha256-mCQdrn0Y3oOVZP/CileWAhuBX6aARBNrfxyqJBB4NxA=", "owner": "Alexays", "repo": "Waybar", - "rev": "79ae530bd29cb561d6f48773e894dd62fe353b7f", + "rev": "231d6972d7a023e9358ab7deda509baac49006cb", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ce56e8c..4f94440 100644 --- a/flake.nix +++ b/flake.nix @@ -12,12 +12,18 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs_stable.url = "github:nixos/nixpkgs/nixos-23.11"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + home-manager_stable = { + url = "github:nix-community/home-manager/release-23.11"; + inputs.nixpkgs.follows = "nixpkgs_stable"; + }; + anyrun.url = "github:Kirottu/anyrun"; anyrun.inputs.nixpkgs.follows = "nixpkgs"; ags.url = "github:Aylur/ags"; @@ -81,6 +87,7 @@ outputs = { self, nixpkgs, + nixpkgs_stable, systems, ... } @ inputs: let @@ -90,6 +97,14 @@ f nixpkgs.legacyPackages.${system} ); in { + nixosConfigurations.pluto = nixpkgs_stable.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = [ + ./hosts/pluto/configuration.nix + inputs.home-manager_stable.nixosModules.default + ]; + }; + nixosConfigurations.earth = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; modules = [ diff --git a/hosts/earth/configuration.nix b/hosts/earth/configuration.nix index 56e16c8..b9d03b2 100644 --- a/hosts/earth/configuration.nix +++ b/hosts/earth/configuration.nix @@ -11,7 +11,6 @@ # Include the results of the hardware scan. ./hardware-configuration.nix ./nvidia.nix - ../../env/wayland ({ options, lib, diff --git a/hosts/pluto/configuration.nix b/hosts/pluto/configuration.nix new file mode 100644 index 0000000..2eedabf --- /dev/null +++ b/hosts/pluto/configuration.nix @@ -0,0 +1,102 @@ +# 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 + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "pluto"; # Define your hostname. + + # 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"; + }; + + # Configure keymap in X11 + services.xserver = { + layout = "us"; + xkbVariant = ""; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.zack = { + isNormalUser = true; + description = "zack"; + extraGroups = ["networkmanager" "wheel"]; + packages = with pkgs; []; + }; + + # 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 + ]; + + home-manager = { + extraSpecialArgs = {inherit inputs;}; + users = { + "zack" = { + imports = [../../modules/home-manager/pluto.nix]; + _module.args.theme = import ../../core/theme.nix; + + home.username = "zack"; + home.homeDirectory = "/home/zack"; + }; + }; + }; + + # 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 = "23.11"; # Did you read the comment? +} diff --git a/hosts/pluto/hardware-configuration.nix b/hosts/pluto/hardware-configuration.nix new file mode 100644 index 0000000..5788720 --- /dev/null +++ b/hosts/pluto/hardware-configuration.nix @@ -0,0 +1,40 @@ +# 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" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/2367b8e2-fe40-43e4-bc6a-fa19f78bfca4"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4DC0-0CF8"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + 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.enp35s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp36s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0f0u14u3c2.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/home-manager/pluto.nix b/modules/home-manager/pluto.nix new file mode 100644 index 0000000..38fc008 --- /dev/null +++ b/modules/home-manager/pluto.nix @@ -0,0 +1,92 @@ +{ + config, + pkgs, + inputs, + lib, + ... +}: { + imports = [ + ./vim/default.nix + + # ../rice/sway + # ../rice/waybar + # ../rice/dunst.nix + ../shell + + # inputs.catppuccin.homeManagerModules.catppuccin + ]; + + nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = _: true; + }; + overlays = [ + inputs.neovim-nightly-overlay.overlay + ]; + }; + + # catppuccin.flavour = "mocha"; + + # 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 it. + + home.packages = [ + pkgs.dconf + + pkgs.nix-output-monitor + + inputs.nixpkgs.legacyPackages.${pkgs.system}.nh + + pkgs.killall + (pkgs.writeShellScriptBin "rebuild" '' + #!${pkgs.bash}/bin/bash + set -e + pushd ~/nixos/ + alejandra . &>/dev/null + git add . + echo "[REBUILD]: rebuilding nixos" + nh os switch + gen=$(nixos-rebuild list-generations | grep current) + git commit -am "$gen" + git push origin main + popd + '') + ]; + + home.sessionVariables = { + EDITOR = "nvim"; + }; + + xdg.enable = true; + + programs.zoxide = { + enable = true; + enableZshIntegration = true; + options = ["--cmd cd"]; + }; + + programs.btop = { + enable = true; + # catppuccin.enable = true; + }; + + programs.lazygit = { + enable = true; + # catppuccin.enable = true; + }; + + programs.fzf = { + enable = true; + # catppuccin.enable = true; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/modules/home-manager/zack.nix b/modules/home-manager/zack.nix index 303ed67..c5a1ef8 100644 --- a/modules/home-manager/zack.nix +++ b/modules/home-manager/zack.nix @@ -1,10 +1,21 @@ { inputs, pkgs, + lib, ... }: { imports = [./default.nix ./applications.nix]; + services = { + udiskie.enable = true; + gpg-agent = { + enable = true; + pinentryPackage = lib.mkForce pkgs.pinentry-gnome3; + enableSshSupport = true; + enableZshIntegration = true; + }; + }; + systemd.user.services.kb-gui = { Unit = { Description = "KB Time/Date thing"; diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix index aa886d5..4ed6daa 100644 --- a/modules/shell/zsh/default.nix +++ b/modules/shell/zsh/default.nix @@ -15,7 +15,7 @@ in { ZSH_AUTOSUGGEST_USE_ASYNC = "true"; SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; }; - autosuggestion.enable = true; + enableAutosuggestions = true; history = { save = 2137; size = 2137; diff --git a/modules/shell/zsh/tools.nix b/modules/shell/zsh/tools.nix index 3893135..2198e24 100644 --- a/modules/shell/zsh/tools.nix +++ b/modules/shell/zsh/tools.nix @@ -3,15 +3,6 @@ lib, ... }: { - services = { - udiskie.enable = true; - gpg-agent = { - enable = true; - pinentryPackage = lib.mkForce pkgs.pinentry-gnome3; - enableSshSupport = true; - enableZshIntegration = true; - }; - }; programs = { gpg.enable = true; man.enable = true;