• Hunter Hansen's avatar
    Adds X11 forwarding and yaml storage for Docker (#490) · 2c59cbc5
    Hunter Hansen authored
    # Description
    
    This PR adds the capability to opt-into and use X11 Forwarding from
    within the container. All of the configuration for the compose network
    is in `x11.yaml`, the preparation happens in `./container.sh`.
    
    Deeper explanation: Instead of attempting to mount an .Xauth directly,
    we create one ourselves. The `Xauth` cookie is extracted and merged into
    a new .tmp file which is created on the local user's system. This file
    is then mounted inside the container,as is the X11 unix socket, and the
    DISPLAY envvar (as well as a few others to avoid problems) are passed
    from the host machine into the container.
    
    This should work reliably on a container running locally, and it has
    worked for me over ssh. However, given that ssh can make this quite a
    bit more complicated, this PR only seeks to support local x11
    forwarding.
    
    **UPDATE**:
    I've also added some state persistence through `yq` and the file
    `.container.yaml`. I am using this to store settings we only want to ask
    once (`__ORBIT_X11_FORWARDING_ENABLED`) and state that needs to be used
    by multiple functions (`__ORBIT_TMP_XAUTH`). I added a few helper
    functions and and installation function to install `yq` for yaml
    operations.
    
    ## Type of change
    
    - New feature (non-breaking change which adds functionality)
    
    ## Checklist
    
    - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
    `./orbit.sh --format`
    - [ ] I have made corresponding changes to the documentation
    - [x] My changes generate no new warnings
    - [ ] I have added tests that prove my fix is effective or that my
    feature works
    - [x] I have run all the tests with `./orbit.sh --test` and they pass
    - [ ] I have updated the changelog and the corresponding version in the
    extension's `config/extension.toml` file
    - [x] I have added my name to the `CONTRIBUTORS.md` or my name already
    exists there
    
    ---------
    Signed-off-by: 's avatarHunter Hansen <50837800+hhansen-bdai@users.noreply.github.com>
    Co-authored-by: 's avatarPascal Roth <57946385+pascal-roth@users.noreply.github.com>
    2c59cbc5
.dockerignore 329 Bytes