Skip to content

Build your desktop

scoot on its own is a compositor: windows, keys, nothing else. Bring the rest.

There are two routes. NixOS takes one switch. Any other Linux takes one config file and a few packages.

Piece What you use today scoot’s own
Compositor scoot ✓ live
Status bar scootbar, or any layer-shell bar (Waybar, …) ✓ live
Wallpaper scootbg, started by scoot from [wallpaper] ✓ live
App launcher scootlaunch (install.sh --launch), or fuzzel ✓ live
Notifications scootnotify (install.sh --notify), or mako ✓ live
Idle and lock swayidle and swaylock scootlock (planned)
Login screen ReGreet on NixOS; your current login screen elsewhere a scoot greeter (planned)
Clipboard history cliphist and wl-clipboard —
Screenshots and screen sharing grim, slurp and xdg-desktop-portal-wlr —

When a scoot-made piece ships, it replaces the tool in the same slot. Keys and options keep their names.

  1. Do the NixOS steps on Install first: a flake.nix, your configuration.nix and a home.nix.

  2. Pick a look, the same one on both sides (the system side themes the login screen).

    configuration.nix and home.nix
    programs.scoot.desktop.look = "ginger-night";
  3. Rebuild.

    Terminal window
    sudo nixos-rebuild switch --flake .#myhost
  4. Log out. Pick scoot on your login screen.

You get every row of the table above, themed to the look. The login screen is the one exception (see below). The looks are ginger-night (the default), music-desk, radial-burst, moonrise and vinyl-sunset. You can see them here.

To replace your login screen with ReGreet, add one more line. Do this only after the desktop works:

configuration.nix
programs.scoot.greeter.enable = true;

Turn off a piece you do not want, on both sides (the system stops installing it, your user stops running it):

configuration.nix and home.nix
programs.scoot.desktop.notifications.enable = false;

Every piece and every option: The scoot desktop.

  1. Install scoot with the Any Linux script (add --system to get it on your login screen, --launch for the launcher below, --notify for notifications). It runs the bar as a service for you.

  2. Install the parts.

    Terminal window
    sudo apt install foot fuzzel mako-notifier swaylock swayidle fonts-dejavu-core
  3. Make the config directory.

    Terminal window
    mkdir -p ~/.config/scoot
  4. Write the bar config to ~/.config/scoot/bar.toml.

    left = ["workspaces"]
    center = ["clock"]
    right = ["window-title"]
  5. Check the bar config. The command prints ok.

    Terminal window
    scootbar daemon --check
  6. Write the scoot config to ~/.config/scoot/config.toml. Change the image path to a picture you have.

    [autostart]
    commands = [
    "spawn mako",
    ]
    [wallpaper]
    image = "~/Pictures/wallpaper.jpg"
    mode = "fill"
    [binds]
    "super+d" = "spawn scootlaunch"
    "super+escape" = "spawn swaylock -f"

    Without --launch (no scootlaunch on PATH), bind fuzzel instead: "super+d" = "spawn fuzzel". A bind is one command, so there is no fallback: a missing binary logs a warning and the key does nothing.

  7. Log out and pick scoot on your login screen. Installed without --system? Press Ctrl+Alt+F3, log in, and run:

    Terminal window
    scoot-session

The bar is at the top and the wallpaper behind your windows. Super+d opens the launcher. Super+Escape locks the screen.

Already running scoot? Do steps 2 to 6, then apply the change without a restart:

Terminal window
scoot msg reload

A reload starts the new [autostart] entries once.

Symptom: the bar does not show. Run journalctl --user -u scootbar and read the error. “no font” means step 2 did not install DejaVu. Install it, then run systemctl --user restart scootbar.

Symptom: the wallpaper does not show. scoot needs scootbg on your PATH. Run command -v scootbg. No output means scootbg is not installed. Install it, then run scoot msg reload.

Symptom: Super+d does nothing. Run scootlaunch in a scoot terminal. An error there names the cause. If it opens, read the scoot log for a warning about [binds]. Bound fuzzel instead? Run fuzzel the same way.

Locking on idle needs a small script, because spawn does not run a shell. The recipe is in Idle: locking and screen power.

Each look is a set of files: config.toml colors, a bar.toml, a wallpaper and terminal colors. The install script writes the first three with --look ginger-night (or any look’s name), never over a file you already have. The terminal and app colors are in the look’s folder; each look’s README lists them.