From 9959cdfcbed1cc9db1c2473c39b95c62f6f0bdc7 Mon Sep 17 00:00:00 2001 From: Gabe Venberg Date: Tue, 1 Oct 2024 16:38:32 +0200 Subject: [PATCH] added worklaptop, added firefox to i3 config. --- configs/nixos/i3/default.nix | 1 + configs/nixos/touchpad.nix | 16 ++-- flake.lock | 18 ++-- flake.nix | 4 +- hosts/worklaptop/default.nix | 101 ++++++++++++++++++++ hosts/worklaptop/disk-config.nix | 36 +++++++ hosts/worklaptop/hardware-configuration.nix | 24 +++++ 7 files changed, 181 insertions(+), 19 deletions(-) create mode 100644 hosts/worklaptop/default.nix create mode 100644 hosts/worklaptop/disk-config.nix create mode 100644 hosts/worklaptop/hardware-configuration.nix diff --git a/configs/nixos/i3/default.nix b/configs/nixos/i3/default.nix index 8e538e8..bec9ea5 100644 --- a/configs/nixos/i3/default.nix +++ b/configs/nixos/i3/default.nix @@ -27,6 +27,7 @@ brightnessctl arandr dex + firefox ]; services.playerctld.enable = true; xsession.enable = true; diff --git a/configs/nixos/touchpad.nix b/configs/nixos/touchpad.nix index df60b15..2990378 100644 --- a/configs/nixos/touchpad.nix +++ b/configs/nixos/touchpad.nix @@ -3,13 +3,15 @@ pkgs, ... }: { - # Enable touchpad support (enabled default in most desktopManager). - services.xserver.libinput = { + services.libinput = { + # Enable touchpad support (enabled default in most desktopManager). enable = true; - disableWhileTyping = true; - naturalScrolling = true; - additionalOptions = '' - Option "PalmDetection" "True" - ''; + touchpad = { + disableWhileTyping = true; + naturalScrolling = true; + additionalOptions = '' + Option "PalmDetection" "True" + ''; + }; }; } diff --git a/flake.lock b/flake.lock index 841f85c..e9626fa 100644 --- a/flake.lock +++ b/flake.lock @@ -235,10 +235,10 @@ "nix-secrets": { "flake": false, "locked": { - "lastModified": 1727698496, - "narHash": "sha256-b16uaykEPD6EtF+wrOqQs90/fx3hiyzw/HqeN/4dxh8=", + "lastModified": 1727789826, + "narHash": "sha256-V3i5RKqkVQ1YWwcbyFdtG5BKsHrWeDbk73j54MttBsM=", "ref": "refs/heads/main", - "rev": "1f3617effd383934816dfe132f83579738be92a6", + "rev": "affd140495b53aa343ac729c576b2ff4b542469b", "shallow": true, "type": "git", "url": "ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git" @@ -294,11 +294,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1727348695, - "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=", + "lastModified": 1727634051, + "narHash": "sha256-S5kVU7U82LfpEukbn/ihcyNt2+EvG7Z5unsKW9H/yFA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784", + "rev": "06cf0e1da4208d3766d898b7fdab6513366d45b9", "type": "github" }, "original": { @@ -401,11 +401,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1727423009, - "narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=", + "lastModified": 1727734513, + "narHash": "sha256-i47LQwoGCVQq4upV2YHV0OudkauHNuFsv306ualB/Sw=", "owner": "mic92", "repo": "sops-nix", - "rev": "127a96f49ddc377be6ba76964411bab11ae27803", + "rev": "3198a242e547939c5e659353551b0668ec150268", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1aa3d5e..b34e1cf 100644 --- a/flake.nix +++ b/flake.nix @@ -90,12 +90,10 @@ # NixOS configuration entrypoint # Available through 'nixos-rebuild --flake .#your-hostname' nixosConfigurations = { - archlaptop-vm = import ./hosts/archlaptop-vm {inherit inputs configLib;}; - workstation-vm = import ./hosts/workstation-vm {inherit inputs configLib;}; - gv-wsl = import ./hosts/wsl-workstation.nix {inherit inputs configLib;}; rockhole = import ./hosts/rockhole64 {inherit inputs configLib;}; cirrus = import ./hosts/cirrus {inherit inputs configLib;}; cirrostratus = import ./hosts/cirrostratus {inherit inputs configLib;}; + worklaptop = import ./hosts/worklaptop {inherit inputs configLib;}; }; # Standalone home-manager configuration entrypoint diff --git a/hosts/worklaptop/default.nix b/hosts/worklaptop/default.nix new file mode 100644 index 0000000..d7df077 --- /dev/null +++ b/hosts/worklaptop/default.nix @@ -0,0 +1,101 @@ +{ + inputs, + configLib, + ... +}: +# Hetzner cloud multipurpouse server +inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs configLib;}; + # > Our main nixos configuration file < + modules = [ + inputs.home-manager.nixosModules.home-manager + inputs.disko.nixosModules.disko + inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t14s + ./disk-config.nix + ./hardware-configuration.nix + ../../configs/nixos/common.nix + ../../configs/nixos/tailscale.nix + ../../configs/nixos/sshd.nix + ../../configs/nixos/secrets.nix + ../../configs/nixos/i3 + ../../configs/nixos/sound.nix + ../../configs/nixos/printing.nix + ../../configs/nixos/touchpad.nix + ../../configs/nixos/syncthing.nix + ../../configs/nixos/interactive-networking.nix + ../../roles/nixos/power-saving.nix + ({ + config, + pkgs, + configLib, + lib, + ... + }: { + host = { + user = "gabe"; + fullName = "Gabe Venberg"; + gui.enable = false; + isVm = true; + }; + networking.hostName = "gvenbergworklaptop"; # Define your hostname. + networking.hostId = "ab8aa83e"; + + home-manager.sharedModules = [ + inputs.sops-nix.homeManagerModules.sops + ]; + + home-manager.users.${config.host.user} = { + inputs, + osConfig, + lib, + ... + }: { + host = osConfig.host; + user = { + git = { + profile = { + name = config.host.fullName; + email = "gabevenberg@gmail.com"; + }; + workProfile.enable = true; + workProfile.email = "gabriel.venberg@assistme.io"; + }; + }; + sops = lib.mkIf (inputs ? nix-secrets) { + secrets = { + gmail-password.sopsFile = "${inputs.nix-secrets}/workstations.yaml"; + irc-cert.sopsFile = "${inputs.nix-secrets}/workstations.yaml"; + }; + }; + imports = [ + ../../roles/home-manager/terminal.nix + ../../configs/home-manager/common.nix + ../../configs/home-manager/secrets.nix + ../../roles/home-manager/music.nix + ../../configs/home-manager/email.nix + ../../configs/home-manager/tiny-irc.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + }; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + hardware.enableRedistributableFirmware = 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? + }) + ]; +} diff --git a/hosts/worklaptop/disk-config.nix b/hosts/worklaptop/disk-config.nix new file mode 100644 index 0000000..2765708 --- /dev/null +++ b/hosts/worklaptop/disk-config.nix @@ -0,0 +1,36 @@ +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + start = "1M"; + end = "128M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; # Override existing partition + mountpoint = "/"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/worklaptop/hardware-configuration.nix b/hosts/worklaptop/hardware-configuration.nix new file mode 100644 index 0000000..025a97a --- /dev/null +++ b/hosts/worklaptop/hardware-configuration.nix @@ -0,0 +1,24 @@ +# 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, ... }: + +{ + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + # 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.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.tailscale0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; + # networking.interfaces.wwan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}