Commit c1287ca25f01
Changed files (2)
imperative
aomi
imperative/aomi/bootstrap.sh
@@ -102,7 +102,74 @@ build_and_activate() {
log_info "System-manager activated!"
}
-# --- Phase 4: WireGuard key ---
+# --- Phase 4: Native apps (dnf/flatpak) ---
+
+install_native_apps() {
+ log_info "Installing native apps..."
+
+ # Niri compositor
+ if ! rpm -q niri &>/dev/null; then
+ log_info "Installing niri..."
+ sudo dnf install -y niri
+ fi
+
+ # Flatpak apps (sandboxed, auto-updating)
+ if ! command -v flatpak &>/dev/null; then
+ log_info "Installing flatpak..."
+ sudo dnf install -y flatpak
+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
+ fi
+
+ local flatpaks=(
+ com.slack.Slack
+ us.zoom.Zoom
+ )
+ for app in "${flatpaks[@]}"; do
+ if ! flatpak info "$app" &>/dev/null 2>&1; then
+ log_info "Installing $app..."
+ flatpak install -y flathub "$app"
+ else
+ log_info "$app already installed"
+ fi
+ done
+
+ # 1Password (dedicated RPM repo)
+ if ! rpm -q 1password &>/dev/null; then
+ log_info "Installing 1Password..."
+ sudo rpm --import https://downloads.1password.com/linux/keys/1password.asc
+ sudo tee /etc/yum.repos.d/1password.repo <<-'EOF'
+ [1password]
+ name=1Password Stable Channel
+ baseurl=https://downloads.1password.com/linux/rpm/stable/$basearch
+ enabled=1
+ gpgcheck=1
+ repo_gpgcheck=1
+ gpgkey=https://downloads.1password.com/linux/keys/1password.asc
+ EOF
+ sudo dnf install -y 1password 1password-cli
+ fi
+}
+
+# --- Phase 5: Home-manager ---
+
+setup_home_manager() {
+ log_info "Setting up home-manager..."
+
+ # Ensure nix is in PATH
+ if ! command -v nix &>/dev/null; then
+ # shellcheck disable=SC1091
+ . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
+ fi
+
+ cd "$REPO_PATH"
+
+ # Build and activate home-manager
+ nix run home-manager -- switch --flake ".#vincent@${SYSTEM_CONFIG}"
+
+ log_info "Home-manager activated!"
+}
+
+# --- Phase 6: WireGuard key ---
setup_wireguard_key() {
if [[ -f /etc/wireguard/private.key ]]; then
@@ -121,28 +188,26 @@ setup_wireguard_key() {
log_warn "Then re-run: sudo systemctl restart wireguard-wg0"
}
-# --- Main ---
-
print_summary() {
log_info ""
log_info "╔══════════════════════════════════════════╗"
log_info "║ Aomi (Fedora CSB) Bootstrap Done ║"
log_info "╠══════════════════════════════════════════╣"
log_info "║ Nix: ✓ installed ║"
- log_info "║ Repository: ✓ $REPO_PATH"
log_info "║ System-manager: ✓ activated ║"
+ log_info "║ Home-manager: ✓ activated ║"
+ log_info "║ Native apps: ✓ installed ║"
log_info "╠══════════════════════════════════════════╣"
- log_info "║ To rebuild: ║"
- log_info "║ cd $REPO_PATH"
+ log_info "║ Rebuild system: ║"
log_info "║ nix build .#systemConfigs.aomi ║"
log_info "║ sudo ./result/bin/activate ║"
- log_info "╠══════════════════════════════════════════╣"
- log_info "║ Next: home-manager for dev tools ║"
- log_info "║ nix run home-manager -- switch \\ ║"
- log_info "║ --flake .#vincent@aomi ║"
+ log_info "║ Rebuild home: ║"
+ log_info "║ home-manager switch --flake .#vincent@aomi ║"
log_info "╚══════════════════════════════════════════╝"
}
+# --- Main ---
+
main() {
log_info "Bootstrapping aomi (Fedora CSB)..."
log_info " Repo: $REPO_URL → $REPO_PATH"
@@ -154,6 +219,8 @@ main() {
configure_nix
clone_repo
build_and_activate
+ install_native_apps
+ setup_home_manager
setup_wireguard_key
print_summary
}
flake.nix
@@ -53,6 +53,11 @@
# Standalone home configurations
# FIXME set this up
homeConfigurations = {
+ # Fedora CSB workstation
+ "vincent@aomi" = libx.mkHome {
+ username = "vincent";
+ hostname = "aomi";
+ };
# headless machine
"vincent@aion" = libx.mkHome {
username = "vincent";