Laptop, desktop, and home lab flake featuring Hyprland, Sway, declarative containers, a reverse proxy, and more.
Find a file
Aly Raffauf 98bf8a2573
upgrade 24.05 -> unstable; add pacifidlog (#114)
* flake: update to nixos-unstable and master for hm,stylix

* common/base: remove deprecated sound.enable

* hwModules: remove deprecated driSupport

* samba: disable extraConfig pending move to services/samba.settings

* hwModules: migrate to new APIs

* flake: update lock

* aly: switch to new systemd.user.startServices syntax

* nemo: migrate to new toplevel

* tree-wide: move to new gnome/cinnamon app toplevels

* mauville/samba: migrate to settings syntax

* slateport/ddclient: migrate use -> usev4

* home/defaultApps: don't install webBrowser to temp fix build error

* lavaridge: set $FLAKE to upgrade-to-2411 branch

* lavaridge: don't force disable firefox media acceleration

* flake: bump lock

* flake: bump lock

* mauville,lavaridge,petalburg: set FLAKE to 24.11 branch

* flake: bump lock

* defaultApps: fuse finalpackage from firefox as default

* common/overlays: remove unnecessary unstable overlays

* flake.lock: Update (#115)

Flake lock file updates:

• Updated input 'nur':
    'github:nix-community/NUR/df48b722316f5a0eab0cd7d8403dd2c82848e3a2?narHash=sha256-TWYwZGe8WHQAnCb5exr23Ht9g3LDntj9qSi4Zk/8gCg%3D' (2024-10-05)
  → 'github:nix-community/NUR/7090c452983a90c066ce421bb75eaa0409f45910?narHash=sha256-OeJk7SbwTD7epbVxbxOQJrlAI4qPr518zjn/uD%2BaWFw%3D' (2024-10-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* mauville: enable immich

* flake.lock: Update

* flake.lock: update

* flake.lock: Update (#119)

Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/d39ee334984fcdae6244f5a8e6ab857479cbaefe?narHash=sha256-CTKEKPzD/j8FK6H4DO3EjyixZd3HHvgAgfnCwpGFP5c%3D' (2024-10-07)
  → 'github:nix-community/disko/c7ef3964b6befa877e76316ae88f3ef251cae573?narHash=sha256-xipqQdXMZdSln1WChUWFqcrghOMYCmdRo7rgf/MtEkg%3D' (2024-10-11)
• Updated input 'home-manager':
    'github:nix-community/home-manager/038630363e7de57c36c417fd2f5d7c14773403e4?narHash=sha256-VdRTjJFyq4Q9U7Z/UoC2Q5jK8vSo6E86lHc2OanXtvc%3D' (2024-10-07)
  → 'github:nix-community/home-manager/65ae9c147349829d3df0222151f53f79821c5134?narHash=sha256-mGKzqdsRyLnGNl6WjEr7%2BsghGgBtYHhJQ4mjpgRTCsU%3D' (2024-10-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c31898adf5a8ed202ce5bea9f347b1c6871f32d1?narHash=sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw%3D' (2024-10-06)
  → 'github:nixos/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/c31898adf5a8ed202ce5bea9f347b1c6871f32d1?narHash=sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw%3D' (2024-10-06)
  → 'github:nixos/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
• Updated input 'nur':
    'github:nix-community/NUR/ff3b3af88896deca3b69f519e6db8d2f725c82fa?narHash=sha256-bAUXaMfUU6ZxGT2GOmdy0A5FCgEpYMawPnBVN52kx6U%3D' (2024-10-08)
  → 'github:nix-community/NUR/80d65008a1f68533bdfb343fb53b543f4ce2305c?narHash=sha256-es6boz1HSERc5HwhSo0mWX7Bd7DMawYAH1LcBR9EvgE%3D' (2024-10-11)
• Updated input 'stylix':
    'github:danth/stylix/63426a59e714c4389c5a8e559dee05a0087a3043?narHash=sha256-z01cTK5VeLFOUekhAXrJHLDzE74uAxxMwE2p6%2BWp9Sg%3D' (2024-10-07)
  → 'github:danth/stylix/f95022bb6e74f726a87975aec982a5aa9fad8691?narHash=sha256-JH2%2BRXJNooFtZIN6ZhaGZWn2KChMrso4H7Fkp1Ujrdo%3D' (2024-10-11)
• Updated input 'stylix/tinted-kitty':
    'github:tinted-theming/tinted-kitty/06bb401fa9a0ffb84365905ffbb959ae5bf40805?narHash=sha256-aRaizTYPpuWEcvoYE9U%2BYRX%2BWsc8%2BiG0guQJbvxEdJY%3D' (2022-10-05)
  → 'github:tinted-theming/tinted-kitty/eb39e141db14baef052893285df9f266df041ff8?narHash=sha256-2xF3sH7UIwegn%2B2gKzMpFi3pk5DlIlM18%2Bvj17Uf82U%3D' (2024-05-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* lavaridge: added monitor description

* add pacifidlog (legion go) (#120)

* flake: add jovian input

* hosts/pacifidlog: add initial output and config

* pacifidlog: set jovian desktopSession to gamescope-wayland

* pacifidlog: use latest kernel

* github: add pacifidlog build

* pacifidlog: disable jovian

* pacifidlog: remove swapfile

* create pacifidlog hardware config

* pacifidlog: enable jovian

* secrets: add pacifidlog

* pacifidlog: add monitor settings

* pacifidlog/hyprland: map touch to screen transformation

* pacifidlog: set desktopSession to hyprland

* pacifidlog: fixup hyprland input settings

* secrets: add aly@pacifidlog and rekey

* pacifidlog: use lanzaboote

* pacifidog: disable steam desktop due to conficts with jovian

* pacifidlog: transform touch device in hyprland

* pacifidlog: enable tabletmode

* reformat

* pacifidlog: add legion module

* pacifidlog: set consoleMode to max

* pacifidlog: enable amdgpu in initrd

* lenovo/legion/go: disable legion module due to build failure

* accidentally changed petalburg :\

* pacifidlog: try consoleMode 1

* pacifidlog: add hdd-decky

* pacifidlog: disable missing plugins

* pacifidlog: run decky loader as root

* decky-loader: add python

* pacifidlog: clean up dekcy oader

* pacifidlog: set jovian has.amd.gpu = true

* legion go: add acpi_call

* add nix-gaming and jovian-nixos substituters

* pacifidlog: add hdd adjustor

* legion go: disable ppd

* pacifidlog: add hdd-ui

* pacifidlog: test systemd hhd-ui

* pacifidlog: add README

* cleanup before merge

* create pkgs/

* adjustor,hhd-ui: update to latest versions

* flake.lock: Update (#121)

Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/c7ef3964b6befa877e76316ae88f3ef251cae573?narHash=sha256-xipqQdXMZdSln1WChUWFqcrghOMYCmdRo7rgf/MtEkg%3D' (2024-10-11)
  → 'github:nix-community/disko/b6215392ec3bd05e9ebfbb2f7945c414096fce8f?narHash=sha256-KOp33tls7jRAhcmu77aVxKpSMou8QgK0BC%2BY3sYLuGo%3D' (2024-10-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/65ae9c147349829d3df0222151f53f79821c5134?narHash=sha256-mGKzqdsRyLnGNl6WjEr7%2BsghGgBtYHhJQ4mjpgRTCsU%3D' (2024-10-11)
  → 'github:nix-community/home-manager/64c6325b28ebd708653dd41d88f306023f296184?narHash=sha256-nr5QiXwQcZmf6/auC1UpX8iAtINMtdi2mH%2BOkqJQVmU%3D' (2024-10-13)
• Updated input 'nur':
    'github:nix-community/NUR/80d65008a1f68533bdfb343fb53b543f4ce2305c?narHash=sha256-es6boz1HSERc5HwhSo0mWX7Bd7DMawYAH1LcBR9EvgE%3D' (2024-10-11)
  → 'github:nix-community/NUR/8952169dd073e0cd2c482c346a088868f61cfb77?narHash=sha256-7zRl4QJD5iK1Y4jyyysUEHcsx%2Bv1jI1C3vP%2Bq3IKLps%3D' (2024-10-13)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* pkgs/hhd-ui: simplify depends

* pacifidlog: add mauville samba shares

* pacifidlog/README: update and fmt

* pacifidlog: disable laptopMode

* p;acifidlog: add further steam optimizations; flake: add nix-gaming

* pacifidlog: set jovian steam environment for native color management and refresh limits

* pacifidlog: set zram to 100%

* pacifidlog: disable steam WSI

* pacifidlog: use steamOSConfig from jovian

* pacifidlog: kernel optimizations + qol improvements (#122)

* pacifidlog: use xanmod kernel

* pacifidlog: add heroic and lutris

* legion go: use zenpower

* legion go: fix boot params

* common/cpu/amd: remove redundant(?) amd_pstate=active param

* hwModules: simplify device specific imports

* pkgs: update hashes

* hosts: remove FLAKE overrides

* flake: remove nixpkgs-unstable

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-14 23:53:48 -04:00
.github/workflows upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
_img README.md: update features and screenshots 2024-08-15 20:46:05 -04:00
common upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
disko reuse disko configs where possible 2024-09-23 23:59:07 -04:00
flake clean-install: prompt for host 2024-07-17 11:07:29 -04:00
homeManagerModules upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
homes upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
hosts upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
hwModules upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
nixosModules upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
pkgs upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
secrets upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
userModules upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
.envrc flake: add devShelland direnv 2024-09-05 22:41:27 -04:00
.gitignore flake: add devShelland direnv 2024-09-05 22:41:27 -04:00
.gitlab-ci.yml code cleanup (#47) 2024-07-18 21:05:35 -04:00
flake.lock upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
flake.nix upgrade 24.05 -> unstable; add pacifidlog (#114) 2024-10-14 23:53:48 -04:00
LICENSE.md hosts: add READMEs (#50) 2024-07-20 19:41:51 -04:00
README.md README.md: fix typo 2024-08-29 22:48:38 -04:00

nixos

My comprehensive NixOS flake for managing my laptop, desktop, and home lab environments.

Features

  • Hyprland: Dynamic tiling Wayland compositor and window manager.
  • Stylix: Auto-gnerated base16 themes for the whole desktop.
  • Encryption: Encrypted boot drives with Secure Boot and LUKS with TPM decryption.
  • Home Lab: Media, file sharing, and more with a efficnet routing via reverse proxy.

Inputs

This flake takes a variety of upstream and third party flakes as inputs:

  • agenix: secrets storage and orchestration.
  • disko: declarative partitions and disk configuration.
  • home-manager: declarative dotfile and user package management.
  • hyprland: great dynamic tiling wayland compositor.
  • iio-hyprland: autorotate daemon for Hyprland.
  • lanzaboote: secure boot for NixOS.
  • nixhw: opinionated set of generic (AMD, Intel, Laptop, SSD) and specific (Framework 13, Yoga 9i, Thinkpad T440p) hardware configuration modules for NixOS.
  • nur: extra packages from the nix user repository.
  • stylix: system-wide colorscheming and typography.
  • sway: fantastic, rock-solid tiling compositor for wayland.

Outputs

  • homeManagerModules.default: app modules + everything you need for a competent Hyprland desktop (and a few others).
  • homeManagerModules.aly: my home-manager config.
  • homeManagerModules.aly-nox: my home-manager config, but for headless systems.
  • homeManagerModules.dustin: my husband's home-manager config.
  • nixosModules.common: various common modules specific to my hosts.
  • nixosModules.nixos: opinionated desktop, app, and service options.
  • nixosModules.users: basic user configuration options.

In addition, this flake outputs NixOS configuration and home-manager configurations for all of my hosts and users, respectively.

Deploying to NixOS

Each hardware configuration is host-specific. If you fork this repository, add a host configuration for your own hardware. Secrets are encrypted with agenix and will not be available without the private decryption keys.

Enabling Flakes

While widely used and considered stable, flakes are still considered experimental. To enable Flakes, add the following lines to your configuration.nix and rebuild.

nix.settings.experimental-features = [ "nix-command" "flakes" ];

Alternatively, pass --experimental-features "nix-command flakes" to nix to temporarily use flakes.

Building Flake

In order to deploy this Flake on your host, run the following command:

sudo nixos-rebuild boot --flake github:alyraffauf/nixcfg#$HOSTNAME

Substitute $HOSTNAME for whichever hostname you have chosen. Reboot to apply the flake's configuration for the chosen host.

Installing from Live USB

If you want to install NixOS from this flake, run the following commands, ideally from a NixOS live environment, providing the hostname associated with a NixOS configuration specified in flake.nix when prompted.

sudo nix --experimental-features "nix-command flakes" run github:alyraffauf/nixcfg