diff --git a/home/email/neomutt/default.nix b/home/email/neomutt/default.nix index ad737a8..6e34283 100644 --- a/home/email/neomutt/default.nix +++ b/home/email/neomutt/default.nix @@ -20,6 +20,14 @@ in }; config = lib.mkIf (config.custom.email.enable && config.custom.email.neomutt) { + xsession.windowManager.i3.config = let + i3config = config.xsession.windowManager.i3.config; + in { + keybindings = lib.mkOptionDefault { + "${i3config.modifier}+m" = "exec --no-startup-id ${i3config.terminal} -e ${config.programs.neomutt.package}/bin/neomutt"; + }; + }; + programs.neomutt = { enable = true; vimKeys = false; diff --git a/home/gui.nix b/home/gui.nix index e1159a5..24fa3cb 100644 --- a/home/gui.nix +++ b/home/gui.nix @@ -28,6 +28,22 @@ }; }; + programs.vscode = { + enable = true; + extensions = with pkgs.vscode-extensions; [ + bbenoist.nix + ms-python.python + ms-vscode-remote.remote-ssh + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "remote-ssh-edit"; + publisher = "ms-vscode-remote"; + version = "0.87.0"; + sha256 = "sha256-yeX6RAJl07d+SuYyGQFLZNcUzVKAsmPFyTKEn+y3GuM="; + } + ]; + }; + home.packages = with pkgs; [ inputs.zen-browser.packages."${system}".twilight # globalprotect-openconnect @@ -46,7 +62,9 @@ xfce.thunar xfce.thunar-volman xclip + quickemu # fonts + ultimate-oldschool-pc-font-pack vista-fonts nerd-fonts.ubuntu-mono nerd-fonts.iosevka diff --git a/hosts/default.nix b/hosts/default.nix index 7a8b63c..bf1272c 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -63,5 +63,6 @@ in { nixosConfigurations = { pickwick = mkNixosConfiguration "pickwick" { }; + lemur = mkNixosConfiguration "lemur" { }; }; } diff --git a/hosts/lemur/default.nix b/hosts/lemur/default.nix new file mode 100644 index 0000000..b013487 --- /dev/null +++ b/hosts/lemur/default.nix @@ -0,0 +1,57 @@ +{ + inputs, + lib, + config, + pkgs, + system, + dots, + user, + hm, + host, + ... +}: { + imports = [ + ./hardware.nix + ]; + + custom = { + keyd = { + enable = true; + ids = [ ]; + }; + displaymanager.enable = true; + _1password.enable = true; + audio.enable = true; + bluetooth.enable = true; + sops.enable = true; + }; + + services.fwupd.enable = true; + + time.timeZone = "America/Chicago"; + + users.users = { + ${user} = { + initialPassword = "abc123"; + isNormalUser = true; + openssh.authorizedKeys.keys = []; + extraGroups = ["wheel" "video" "audio" "networkmanager"]; + }; + }; + + # home manager + hm.custom = { + latex.enable = true; + gui = { + default.enable = true; + i3.enable = true; + ghostty.enable = true; + }; + email = { + enable = true; + davmail = true; + neomutt = true; + mbsync = true; + }; + }; +} diff --git a/hosts/lemur/disko.nix b/hosts/lemur/disko.nix new file mode 100644 index 0000000..2ffdb6e --- /dev/null +++ b/hosts/lemur/disko.nix @@ -0,0 +1,66 @@ +{ + device ? throw "select device" +, ... +}: +{ + disko.devices = { + disk = { + main = { + inherit device; + type = "disk"; + content = { + type = "gpt"; + partitions = { + boot = { + name = "boot"; + size = "1M"; + type = "EF02"; + }; + ESP = { + priority = 1; + size = "1G"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ + "defaults" + "umask=0077" + ]; + extraArgs = [ + "-n" + "BOOT" + ]; + }; + }; + swap = { + size = "108G"; + content = { + type = "swap"; + discardPolicy = "both"; + resumeDevice = true; + extraArgs = [ + "--label" + "SWAP" + ]; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + extraArgs = [ + "-L" + "ROOT" + ]; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/lemur/hardware.nix b/hosts/lemur/hardware.nix new file mode 100644 index 0000000..4ec64f2 --- /dev/null +++ b/hosts/lemur/hardware.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, modulesPath, inputs, ... }: +{ + boot.loader.systemd-boot.enable = true; + + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + (import ./disko.nix { device = "/dev/nvme0n1"; }) + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + networking.useDHCP = lib.mkDefault true; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + swapDevices = [ + { + device = "/dev/disk/by-label/SWAP"; + } + ]; + zramSwap.enable = true; +}