Shhware

English · Russian

Shh commands

The script: scripts/shh in the repo, installed as ~/.local/bin/shh. Run it as your user, not root: shh stops when run as root.

shh config

A menu: which parts of the system to keep and which to leave out. install.sh opens it by itself on the first run, while there is no ~/.config/shh/config yet. To change the choices later:

shh config

Every change is saved at once and applied by the next shh update (before the first install: sh install.sh). A part turned off: its packages, files and services are not installed.

settings: install options

Install options: Components: settings.

features: environment tools

Parts of the environment you can turn off: Components: features.

misc: additional packages

Extra programs: Components: misc.

The config file

The choices live in ~/.config/shh/config, one NAME=VALUE per line; you can edit it by hand. A missing line = the default. The file is not in the repo, so shh update keeps your choices.

shh update

shh update

Updates the system and the configs: runs install.sh from a fresh copy of the repo. Your choices from shh config stay, the menu does not open again.

  • copy mode: clones the repo (git clone --depth 1, only the last commit) into a temporary folder, runs install.sh from it and deletes the folder when it ends;
  • link mode: git pull in the repo the links point to, then its install.sh. With local changes in the repo the pull stops (fast-forward only).

shh doctor

shh doctor

Checks that everything the install set up is in place and says what is missing, mostly with the fix (sh install.sh or sh lib/link.sh). It follows your choices in shh config: a part turned off is not looked for. At the end: the number of problems, or "all good".

services

Every service from services.txt is running (s6 on Artix, runit on Void).

files

Every file lib/link.sh put in place (the list: ~/.local/state/shh/installed) is still there; a broken link counts as missing.

packages

Every package from common.csv and from the graphics driver lists (by the card, or as picked in settings: graphics) is installed.

session

What sway needs without elogind: XDG_RUNTIME_DIR is set, and you are in the groups seat, audio, video (Void: _seatd, audio, video). Just added to a group: log out and in again.

shh uninstall

shh uninstall
shh uninstall -n

Removes what lib/link.sh put in place (configs, scripts, shh itself, ~/.local/share/shh) and puts your old files back from NAME.bak-DATE (the oldest one, from before the dotfiles). A file you changed since the install is kept, with a warning. Folders left empty are removed. -n: only shows what would be done, changes nothing.

What stays

Packages, services, the login shell (zsh), the groups and the system files in /etc* (important): undoing them by mistake breaks the login (without seatd sway does not start). shh uninstall prints a list of them with the commands to undo by hand only what you need. Also stays: ~/.config/shh/config and the repo folder, if you kept it.

shh color

shh color OLD NEW

Changes a color in every installed config and script, e.g. shh color d7263d ff0000. A color is 6 hex digits, # optional, case does not matter. The palette is listed in config/foot/foot.ini.

  • NEW already used too: a warning, from now on both are one color and change together;
  • copy mode: the next shh update puts the repo colors back (yours stay in .bak files); link mode: the repo files change.

To see the new color: Super+Shift+C (sway and the bar), makoctl reload, new foot and vim / nvim windows.

shh help

shh help

Prints the list of commands; shh -h and shh --help do the same. With no command or an unknown one: the list and an error.