diff --git a/flake.nix b/flake.nix index 362a11d..47959e1 100644 --- a/flake.nix +++ b/flake.nix @@ -54,6 +54,24 @@ in { nixosConfigurations = { + gammal = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs outputs; + myhostname = "laptop"; + }; + modules = [ + ./maskiner/gammal/configuration.nix + ./maskiner/gammal/laptop-disk.nix + stylix.nixosModules.stylix + home-manager.nixosModules.home-manager + sops-nix.nixosModules.sops + catppuccin.nixosModules.catppuccin + confetti.nixosModules.default + bbk.nixosModules.default + nixvim.nixosModules.default + disko.nixosModules.disko + ]; + }; laptop = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; diff --git a/machines/gammal/hardware-configuration.nix b/machines/gammal/hardware-configuration.nix new file mode 100644 index 0000000..6020276 --- /dev/null +++ b/machines/gammal/hardware-configuration.nix @@ -0,0 +1,18 @@ +# 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" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/maskiner/gammal/configuration.nix b/maskiner/gammal/configuration.nix new file mode 100644 index 0000000..db965cf --- /dev/null +++ b/maskiner/gammal/configuration.nix @@ -0,0 +1,122 @@ +# 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’). + +{ + inputs, + pkgs, + myhostname, + ... +}: +let + theme = "mocha"; + modulesDirectory = ../../moduler; +in +{ + imports = [ + ./hardware-configuration.nix + + (modulesDirectory + /users.nix) + (modulesDirectory + /git.nix) + (modulesDirectory + /network.nix) + (modulesDirectory + /programs.nix) + (modulesDirectory + /system.nix) + (modulesDirectory + /dev.nix) + (modulesDirectory + /sound.nix) + + (modulesDirectory + /services/base) + + (modulesDirectory + /programs/hyprland) + (modulesDirectory + /programs/nixvim) + ]; + + networking.networkmanager = { + enable = true; + plugins = with pkgs; [ + networkmanager-openvpn + ]; + }; + + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme}.yaml"; + }; + + nixvim = { + enable = true; + theme = theme; + }; + + hyprland = { + enable = true; + theme = theme; + }; + + home-manager.extraSpecialArgs = { inherit inputs pkgs; }; + home-manager.users.fw = { + imports = [ + ./../../moduler/home.nix + ./../../moduler/programs/waybar + inputs.catppuccin.homeModules.catppuccin + ]; + waybar = { + enable = true; + configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc; + stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css; + }; + gtk = { + enable = true; + iconTheme = { + name = "oomox-gruvbox-dark"; + package = pkgs.gruvbox-dark-icons-gtk; + }; + }; + kitty = { + enable = true; + theme = theme; + }; + fish = { + theme = theme; + }; + k9s = { + enable = true; + theme = theme; + }; + oh-my-posh = { + enable = true; + theme = theme; + }; + catppuccin = { + librewolf = { + enable = true; + flavor = theme; + accent = "peach"; + }; + }; + programs.ranger.enable = true; + stylix.targets = { + lazygit.enable = false; + fish.enable = false; + kitty.enable = false; + waybar.enable = false; + tmux.enable = false; + k9s.enable = false; + }; + }; + + security.sudo.wheelNeedsPassword = false; + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFpJBGPIfPB1BwSG7aoKqwfccyZSaU7J3xpJ8behMp9N fw@core" + ]; + + services.upower = { + enable = true; + }; + + boot.kernelPackages = pkgs.linuxPackages_latest; + + networking.hostName = myhostname; + + system.stateVersion = "25.05"; +} diff --git a/maskiner/gammal/hardware-configuration.nix b/maskiner/gammal/hardware-configuration.nix new file mode 100644 index 0000000..e41d1fc --- /dev/null +++ b/maskiner/gammal/hardware-configuration.nix @@ -0,0 +1,18 @@ +# 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" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/maskiner/gammal/laptop-disk.nix b/maskiner/gammal/laptop-disk.nix new file mode 100644 index 0000000..2b12574 --- /dev/null +++ b/maskiner/gammal/laptop-disk.nix @@ -0,0 +1,35 @@ +{ lib, ... }: + +{ + disko.devices = { + disk = { + main = { + device = lib.mkDefault "/dev/sda"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + ESP = { + type = "EF00"; + size = "1G"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/moduler/programs.nix b/moduler/programs.nix index ea97b19..d762dc7 100644 --- a/moduler/programs.nix +++ b/moduler/programs.nix @@ -72,6 +72,9 @@ brightnessctl speedcrunch trilium-desktop + libreoffice + + gnumake dbeaver-bin ( diff --git a/moduler/programs/nixvim/default.nix b/moduler/programs/nixvim/default.nix index 7bb5a5f..a137b0a 100644 --- a/moduler/programs/nixvim/default.nix +++ b/moduler/programs/nixvim/default.nix @@ -322,6 +322,7 @@ with lib; nixd.enable = true; lua_ls.enable = true; bashls.enable = true; + # htmx.enable = true; tinymist.enable = true; tinymist.settings.formatterMode = "typstyle"; diff --git a/moduler/wedding.nix b/moduler/wedding.nix index ca8ff16..e1321e6 100644 --- a/moduler/wedding.nix +++ b/moduler/wedding.nix @@ -18,7 +18,7 @@ in passwordFile = config.sops.secrets.github_password.path; registry = "https://ghcr.io"; }; - image = "ghcr.io/fwastring/wedding:ba5c56d2bba41dfb715a62132c98739a9362b80c"; + image = "ghcr.io/fwastring/wedding:74a8cfe49568f1e0ffebb51f3f5d1178c527a907"; ports = [ "127.0.0.1:8083:8080" ]; }; }; diff --git a/password b/password new file mode 100644 index 0000000..6b9dfcc --- /dev/null +++ b/password @@ -0,0 +1 @@ +ifacts ALL=(ALL) NOPASSWD:/usr/bin/systemctl,/usr/bin/docker,/usr/sbin/iptables