Install
On a fresh Fedora Asahi Remix 44 or Fedora 44 KDE, with a network connection:
curl -fsSL https://nightdrive.sh/install | bashThat 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 partsIt 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.
| Option | What it changes |
|---|---|
--no-greeter | Keeps the KDE login screen; pick Hyprland there (not Hyprland (uwsm-managed)) |
--no-autologin | The Nightdrive login screen starts the desktop after the password, instead of being its lock (black flashes at boot) |
--no-splash | Keeps Fedora's boot splash and the GRUB menu (config/splash/install.sh off later) |
--keep-apps | Keeps 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) |
--debloat | Removes them also on a system that isn't fresh (without a terminal, or with --defaults and the like, nothing is asked) |
--no-kde | Removes Plasma completely (experimental) |
--vm | The virtual machine settings, if the VM isn't detected as one (docs/vm.md) |
--no-nvidia | On a PC, leaves an NVIDIA card's driver alone instead of installing RPM Fusion's (docs/pc.md) |
--with deck,1password | These optional parts on top of the defaults, without asking (--dry-run lists the ids) |
--without youtube | The defaults without these, without asking; combines with --with |
--all / --none / --defaults | Every optional part / none / the defaults (Tailscale, Deck, YouTube), without asking |
--dry-run | Shows 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.shagain: 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