diff --git a/home.nix b/home.nix index d1882d2..1af93f2 100644 --- a/home.nix +++ b/home.nix @@ -1,7 +1,6 @@ { config, pkgs, ... }: { - home = { username = "aaronh"; homeDirectory = "/home/aaronh"; @@ -9,22 +8,28 @@ }; home.packages = with pkgs; [ + # GUI deja-dup + discord libreoffice-fresh signal-desktop - + # CLI ]; - - programs.starship = { - enable = true; - enableBashIntegration = true; + + home.sessionVariables = { + EDITOR = "hx"; + VISUAL = "hx"; }; programs.bash = { enable = true; - shellAliases = { - gits = "git status"; - }; + #shellAliases = { + #}; + #bashrcExtra = ""; + }; + + programs.starship = { + enable = true; }; programs.git = { @@ -33,8 +38,9 @@ userName = "Aaron Honeycutt"; userEmail = "aaronhoneycutt@protonmail.com"; aliases = { - force = "push -f"; - undo = "rebase -i HEAD~2"; + undo = "rebase -i HEAD~2"; + amend = "commit -a --amend"; + force = "push -f"; }; extraConfig = { color = { @@ -51,21 +57,28 @@ init = { defaultBranch = "main"; }; + core.editor = "hx"; }; }; + programs.keychain = { + enable = true; + keys = [ + "protonmail" + ]; + }; + programs.helix = { enable = true; - defaultEditor = true; settings = { - theme = "ferra"; - editor = { - true-color = true; - auto-completion = false; - }; + theme = "ferra"; }; }; + programs.zellij = { + enable = true; + }; + # Let Home Manager install and manage itself. programs.home-manager.enable = true; diff --git a/hosts/x86_64/garrus/configuration.nix b/hosts/x86_64/garrus/configuration.nix index 85c2479..d89cf40 100644 --- a/hosts/x86_64/garrus/configuration.nix +++ b/hosts/x86_64/garrus/configuration.nix @@ -1,16 +1,132 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, inputs, ... }: { - # Latest kernel needed for best support - boot.kernelPackages = pkgs.linuxPackages_latest; - - # Name your host machine - networking.hostName = "garrus"; - - environment.systemPackages = with pkgs; [ - # System76 Tools - system76-keyboard-configurator - firmware-manager - ]; + imports = + [ + ./hardware-configuration.nix + ./dev.nix + ]; + + boot.loader = { + systemd-boot.enable = true; + systemd-boot.consoleMode = "0"; + systemd-boot.configurationLimit = 5; + }; + + boot.plymouth.enable = true; + boot.initrd.systemd.enable = true; + boot.kernelParams = [ "quiet" ]; + boot.binfmt.emulatedSystems = ["i686-linux" "aarch64-linux"]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.extra-platforms = config.boot.binfmt.emulatedSystems; + nix.settings.trusted-users = [ "root" "aaronh" ]; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 1w"; + }; + + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + } ]; + + zramSwap.enable = true; + + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/Denver"; + + # Enter keyboard layout + services.xserver.xkb.layout = "us"; + + # Define user accounts + users.users.aaronh = { + description = "Aaron Honeycutt"; + home = "/home/aaronh"; + extraGroups = [ "wheel" "networkmanager" "adm"]; + isNormalUser = true; + hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx."; + + }; + # Allow Unfree + nixpkgs.config.allowUnfree = true; + + # Install some packages + environment.systemPackages = + with pkgs; + [ + # nixpkgs CLI tools + alejandra + avahi + dmidecode + freshfetch + git + git-lfs + libcamera + lshw + mpv + nh + unzip + wget + xz + vlc + zlib + + # GUI tools + firefox + zed-editor + + # Flake CLI tools + inputs.nixpkgs-ahoneybun.packages.${system}.honeyfetch + #inputs.nixpkgs-ahoneybun.packages.${system}.naviterm + ]; + + # Enable/Disable hardware + ## Turn off PulseAudio + #services.pulseaudio.enable = false; + + # Enable Pipewire + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + + # Enable Bluetooth + hardware.bluetooth.enable = true; + + # Enable services + services.fwupd.enable = true; + services.printing.enable = true; + services.openssh.enable = true; + + services.avahi = { + enable = true; + #nssmdns4 = true; + openFirewall = true; + # Needed for detecting scanners + publish = { + enable = true; + addresses = true; + userServices = true; + }; + }; + + # Scanner support + hardware.sane.enable = true; + hardware.sane.extraBackends = [ pkgs.sane-airscan ]; + services.ipp-usb.enable = true; + + services.hardware.bolt.enable = true; + + # System + system.stateVersion = "24.11"; + system.autoUpgrade.enable = true; }