finalized Lix setup
This commit is contained in:
parent
4274d2db55
commit
67a413bce8
5 changed files with 26 additions and 14 deletions
|
|
@ -9,11 +9,15 @@
|
||||||
- System packages added: `syncthing`, `uv`, `vscodium`, `waydroid`;
|
- System packages added: `syncthing`, `uv`, `vscodium`, `waydroid`;
|
||||||
- System flatpaks added: Telegram Desktop, Zen Browser
|
- System flatpaks added: Telegram Desktop, Zen Browser
|
||||||
|
|
||||||
## First login behavior
|
## First login
|
||||||
- Triggers for each non-root user on their first session.
|
- Triggers for each non-root user on their first session.
|
||||||
- Writes state to `~/.local/state/deinonyxus/curator-init.done`; delete it to rerun.
|
- Writes state to `~/.local/state/deinonyxus/curator-init.done`; delete it to rerun.
|
||||||
- Bootstraps `~/.config/curator/inventory.toml` and runs `curator switch` with the packages set above.
|
- Bootstraps `~/.config/curator/inventory.toml` and runs `curator switch` with the packages set above.
|
||||||
|
|
||||||
|
## Just Recipes
|
||||||
|
- `upgrade-nix`: upgrades to the latest version of Lix via the user profile. Replaces `nix upgrade-nix` which does not work with an immutable lowerdir `/nix/store` folder
|
||||||
|
- `install-nix-software-center`: installs a graphical app store for Nix packages
|
||||||
|
|
||||||
## Install / Rebase
|
## Install / Rebase
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -30,7 +34,7 @@ The `latest` tag always tracks the latest build for the Fedora base set in `reci
|
||||||
|
|
||||||
## Building locally
|
## Building locally
|
||||||
```bash
|
```bash
|
||||||
bluebuild build --recipe recipes/recipe.yml
|
bluebuild build
|
||||||
```
|
```
|
||||||
|
|
||||||
## Signature verification
|
## Signature verification
|
||||||
|
|
|
||||||
7
files/justfiles/nixpkgs.just
Normal file
7
files/justfiles/nixpkgs.just
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
upgrade-nix:
|
||||||
|
echo 'Installing latest Lix package'
|
||||||
|
nix profile install nixpkgs#lix && nix upgrade-nix
|
||||||
|
|
||||||
|
install-nix-software-center:
|
||||||
|
echo 'Installing Nix Software Center'
|
||||||
|
nix profile install github:snowfallorg/nix-software-center
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
# === INSTALL LIX FROM RPM ===
|
||||||
|
|
||||||
rpm_url="https://nix-community.github.io/nix-installers/lix/x86_64/lix-multi-user-2.91.1.rpm"
|
rpm_url="https://nix-community.github.io/nix-installers/lix/x86_64/lix-multi-user-2.91.1.rpm"
|
||||||
|
|
||||||
install -d /usr/share/nix-store /var/lib/nix-store /var/cache/nix-store /nix /etc/nix
|
install -d /usr/share/nix-store /var/lib/nix-store /var/cache/nix-store /nix /etc/nix
|
||||||
|
|
@ -11,6 +13,9 @@ export SYSTEMD_OFFLINE=1
|
||||||
# Install the RPM; allow missing GPG key since we fetch directly by URL.
|
# Install the RPM; allow missing GPG key since we fetch directly by URL.
|
||||||
dnf install -y --nogpgcheck "$rpm_url"
|
dnf install -y --nogpgcheck "$rpm_url"
|
||||||
|
|
||||||
|
|
||||||
|
# === ADD MISSING LIX CACHE ACCESS PUBKEY ===
|
||||||
|
|
||||||
nix_conf=/etc/nix/nix.conf
|
nix_conf=/etc/nix/nix.conf
|
||||||
lix_cache_url="https://cache.lix.systems/"
|
lix_cache_url="https://cache.lix.systems/"
|
||||||
lix_cache_key="cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
lix_cache_key="cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
||||||
|
|
@ -35,14 +40,8 @@ ensure_list_value() {
|
||||||
ensure_list_value "substituters" "$lix_cache_url"
|
ensure_list_value "substituters" "$lix_cache_url"
|
||||||
ensure_list_value "trusted-public-keys" "$lix_cache_key"
|
ensure_list_value "trusted-public-keys" "$lix_cache_key"
|
||||||
|
|
||||||
# # Ensure the overlay mount service is enabled so /nix is populated on boot.
|
# === MOVE INITIAL NIX STORE TO LOWERDIR ===
|
||||||
# mkdir -p /etc/systemd/system/multi-user.target.wants
|
|
||||||
# ln -sf /usr/lib/systemd/system/nix-overlay.service /etc/systemd/system/multi-user.target.wants/nix-overlay.service
|
|
||||||
|
|
||||||
# Move the pre-populated store out of /nix so it can serve as the immutable lowerdir.
|
|
||||||
if compgen -G "/nix/*" >/dev/null; then
|
if compgen -G "/nix/*" >/dev/null; then
|
||||||
mv /nix/* /usr/share/nix-store/
|
mv /nix/* /usr/share/nix-store/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# The RPM %post handles sysusers/tmpfiles; if we ran with SYSTEMD_OFFLINE the
|
|
||||||
# post scripts are still executed, so no extra calls are needed here.
|
|
||||||
|
|
@ -7,5 +7,3 @@ uvx $curator_git curator init
|
||||||
uvx $curator_git curator add nix:mc nix:micro nix:devbox
|
uvx $curator_git curator add nix:mc nix:micro nix:devbox
|
||||||
uvx $curator_git curator switch
|
uvx $curator_git curator switch
|
||||||
uv tool install $curator_git curator
|
uv tool install $curator_git curator
|
||||||
|
|
||||||
nix upgrade-nix
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# image will be published to ghcr.io/<user>/<name>
|
# image will be published to ghcr.io/<user>/<name>
|
||||||
name: deinonyxus
|
name: deinonyxus
|
||||||
# description will be included in the image's metadata
|
# description will be included in the image's metadata
|
||||||
description: This is my personal spin based on the latest bluefin image.
|
description: Bluefin DX with Nix and sprinkles.
|
||||||
|
|
||||||
# the base image to build on top of (FROM) and the version tag to use
|
# the base image to build on top of (FROM) and the version tag to use
|
||||||
base-image: ghcr.io/ublue-os/bluefin-dx
|
base-image: ghcr.io/ublue-os/bluefin-dx
|
||||||
|
|
@ -20,7 +20,7 @@ modules:
|
||||||
|
|
||||||
- type: script
|
- type: script
|
||||||
scripts:
|
scripts:
|
||||||
- install-nix.sh
|
- install-lix.sh
|
||||||
|
|
||||||
- type: systemd
|
- type: systemd
|
||||||
system:
|
system:
|
||||||
|
|
@ -60,6 +60,10 @@ modules:
|
||||||
- containerd
|
- containerd
|
||||||
- moby-engine
|
- moby-engine
|
||||||
|
|
||||||
|
- type: justfiles
|
||||||
|
include:
|
||||||
|
- nixpkgs.just
|
||||||
|
|
||||||
- type: default-flatpaks
|
- type: default-flatpaks
|
||||||
configurations:
|
configurations:
|
||||||
- notify: true # Send notification after install/uninstall is finished (true/false)
|
- notify: true # Send notification after install/uninstall is finished (true/false)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue