Rewrite distrobox-*.md to `distrobox <cmd>`, reconcile flag tables with
internal/cli, refresh README+useful_tips, regenerate man/man1/*.1.
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
On macOS, Docker Desktop mounts all paths as private (rprivate) in its
Linux VM via VirtioFS, so rslave/rshared bind propagation is rejected.
Strip these propagation options from the generated docker create command
when running on Darwin.
Also fix a bug in distrobox-init where the socket path prefix stripping
used `sed 's|/run/host||g'` with the global flag, causing paths like
`/run/host/run/host-services/ssh-auth.sock` (a Docker Desktop socket)
to be mangled into `-services/ssh-auth.sock`. The leading `-` was then
parsed as a flag by `rm`, crashing the init script. Replace with shell
parameter expansion `${host_socket#/run/host}` which strips the prefix
exactly once.
distrobox-init detects "rootful" mode by checking if /run/host/etc/shadow
is accessible and owned by root. On macOS with Docker Desktop, all containers
run as root inside the Linux VM, so this check always succeeds even for
containers created without --root, causing a spurious first-shell password
prompt.
Fix this by having distrobox-create mount /dev/null:/run/.distrobox.rootless:ro
for every rootless container. distrobox-init now checks for this marker first
and skips the shadow heuristic when it is present.
This is backward-compatible: existing containers without the marker continue
to use the shadow-file heuristic as before.
Signed-off-by: Eric Curtin <eric.curtin@docker.com>
* docs: update VSCode integration documentation
There are still some problems but it's the best I could test on my own
* docs: added a screenshot to better illustrate the process
* chore: fix lint errors
* fix: typo
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
* fix: typo
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
* fix: typo
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
---------
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
The usage documentation was unclear about how distrobox-host-exec behaves
when it is not given an argument and when it is called via a symlink.
This commit adds some text and examples to clarify things.
* Add Hyprland setup instructions to Distrobox guide
Added instructions for running the latest Hyprland session in Distrobox, including container creation and environment variable setup. I did not add any images, as I am unsure if they are needed.
* fixed lint issues
* Update link to include Hyprland in documentation
Intel has discontinued the distribution, so we remove it from the
compatibility list, and the `swupd` package manager support
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
* init: properly support Chimera Linux guests
https://chimera-linux.org
* init: add some basic doas(1) support
This is an alternative to sudo(1) originating from OpenBSD and also
ported to Linux; base configuration on Chimera Linux where this will be
used.
* init: also support FreeBSD-style stat(1) syntax for rootful check
These system utils are largely used on Chimera Linux (as chimerautils):
+ stat -c %u /run/host/etc/shadow
stat: unrecognized option: c
usage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file|handle ...]
* docs: Chimera Linux compatability tested as host and guest
* docs: replace "Silverblue" with "Atomic Desktops"
Fedora Atomic Desktops is the name for all of the variants, Silverblue is just the GNOME one
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
---------
Co-authored-by: Luca Di Maio <luca.dimaio1@gmail.com>
Co-authored-by: Alessio Biancalana <alessio@dottorblaster.it>
* docs: add MD025 and MD059 to disabled linting rules
* chore: fix markdown for bug report template
* docs: ignore linting for a very specific, tricky doc link