Install

On a fresh Fedora Asahi Remix 44 or Fedora 44 KDE, with a network connection:

curl -fsSL https://nightdrive.sh/install | bash

That runs bootstrap.sh: it installs git, clones Nightdrive into ~/dotfiles and starts its installer. bash -s -- --dev clones the dev channel instead of the stable one, and the installer's options in the table below go after -- too (bash -s -- --with deck). The same by hand:

sudo dnf install -y git   # not in a fresh install
git clone https://github.com/nightdrive-sh/nightdrive.git ~/dotfiles
cd ~/dotfiles
./install.sh              # asks which optional parts to install, then: removes the KDE apps and services Nightdrive
                          # doesn't use (packages-remove.txt), system update, packages, fonts, the notch setting,
                          # config links, login screen and the optional parts

It tells which machine it's on and asks first which optional parts you want (number toggles one, Enter continues):

Machine: PC (x86_64, graphics: amd, keyboard: us)

  Recommended apps
   1 [ ] 1Password         Password manager: launcher › Passwords, op CLI, SSH agent
   2 [x] Deck              Spotify player (needs Premium), launcher and top bar; compiled
   3 [x] Tailscale         VPN, in the top bar (log in afterwards: sudo tailscale up)
   …

  Web apps
   9 [ ] Slack             Slack as a web app (Hyper+S)
   …

  Plugins
  13 [ ] AirPlay Receiver  Mirror an iPhone, iPad or Mac here (UxPlay, experimental)
  14 [ ] Ferry             Files and text both ways with your phone over Tailscale, no app (experimental)
  15 [ ] Mac Keyboard Shortcuts ⌥⌫ deletes a word, ⌘⌫ to the line start; Files: Enter renames, ⌘O opens, ⌘⌫ to the trash
   …

  18 [ ] Install all       every optional part above

  19 [x] Remove apps       112 installed packages Nightdrive doesn't use: akregator dolphin konsole kmail …

Trying it on the system you already use? The removals are on by default only on a fresh install (one installed less than three days ago). On an older system the Remove apps row starts unticked, and nothing else is removed: your configs in ~/.config are moved aside to <name>.bak-<time>, and config/greeter/switch.sh off brings back the KDE login screen.

After that it runs unattended (sudo asks for the password once at the start); the system update and compiling Deck take a while. Home Assistant, if chosen, asks for its address and token at the very end. Anything you skip can be added later from the launcher (System › Install) or with nightdrive plugins install ID.

Then reboot. The Nightdrive boot splash goes straight over to the Nightdrive login screen (greetd + Quickshell): the desktop starts behind it as its lock, so the screen changes hands only once and doesn't flash black. The login apps start after the password. KDE stays installed as a fallback. If the login screen fails, press Ctrl+Alt+F3, log in and run config/greeter/switch.sh off. switch.sh on gives the plain login screen that starts the desktop after the password.

OptionWhat it changes
--no-greeterKeeps the KDE login screen; pick Hyprland there (not Hyprland (uwsm-managed))
--no-autologinThe Nightdrive login screen starts the desktop after the password, instead of being its lock (black flashes at boot)
--no-splashKeeps Fedora's boot splash and the GRUB menu (config/splash/install.sh off later)
--keep-appsKeeps the KDE apps, printing, network shares, accessibility tools and other packages listed in packages-remove.txt (comment a line out to keep just that one)
--debloatRemoves them also on a system that isn't fresh (without a terminal, or with --defaults and the like, nothing is asked)
--no-kdeRemoves Plasma completely (experimental)
--vmThe virtual machine settings, if the VM isn't detected as one (docs/vm.md)
--no-nvidiaOn a PC, leaves an NVIDIA card's driver alone instead of installing RPM Fusion's (docs/pc.md)
--with deck,1passwordThese optional parts on top of the defaults, without asking (--dry-run lists the ids)
--without youtubeThe defaults without these, without asking; combines with --with
--all / --none / --defaultsEvery optional part / none / the defaults (Tailscale, Deck, YouTube), without asking
--dry-runShows the optional parts, what would be installed and what would be removed, then stops

A few things stay manual (the install lists the ones for the parts you chose):

  • Tailscale: sudo tailscale up
  • 1Password: in Settings › Developer, turn on SSH agent and Integrate with 1Password CLI. The launcher's Passwords level needs the CLI integration.
  • Deck: sign in to Spotify (needs Premium and the Client ID of your own Spotify app, see Deck's README).
  • Open Firefox (and Thunderbird) once and run ./link.sh again: it themes their profiles, which don't exist before the first start.
  • Optionally, set up dictation (docs/dictation.md).
  • More optional parts: launcher › System › Install (Recommended, Webapp, Plugins), or nightdrive plugins. Each opens its installer in a terminal (a ready-made web app is added right away); running one again is safe.

./link.sh on its own just (re)links the config files and is safe to run again. The repo can live anywhere; ~/dotfiles is only a convention.

From README.md › Install in the Nightdrive repo