Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sabrehagen/desktop-environment

☁️ From tty to production in one command, on the desktop and in the cloud.
https://github.com/sabrehagen/desktop-environment

alacritty alsamixer cloud-native desktop-environment docker dunst git gotop gtk i3 i3wm pywal terraform tmux vcsh x11 xava zsh

Last synced: 5 days ago
JSON representation

☁️ From tty to production in one command, on the desktop and in the cloud.

Awesome Lists containing this project

README

        

# ☁️ Cloud Desktop Environment

My [daily driver](https://github.com/users/sabrehagen/packages/container/package/desktop-environment) on the desktop and in the cloud.

![desktop](https://i.imgur.com/yv34lxO.png)
![desktop](https://i.imgur.com/Mi40odG.png)
![desktop](https://i.imgur.com/LZvxAnW.jpg)
![desktop](https://i.imgur.com/jm4RrKw.jpg)
![desktop](https://i.imgur.com/C1eBDKX.jpg)
![desktop](https://i.imgur.com/n3YUPD9.png)

## Running on the Desktop

The only dependency required is [Docker](https://docs.docker.com/install).

To run on Linux, clone the repository and start the environment.

```sh
# Clone desktop environment
git clone https://github.com/sabrehagen/desktop-environment

# Start desktop environment
./desktop-environment/docker/scripts/recycle.sh
```

## Running in the Cloud

- Fork this repository.
- Add your [ngrok auth token](https://dashboard.ngrok.com/login) to the [repository secrets](../../settings/secrets/actions/new) as `NGROK_AUTH_TOKEN` to enable web access.
- Enable [read and write permissions](../../settings/actions) on your fork to allow GitHub Actions to push to your repository's container registry.
- Run the [Deploy Desktop Environment](../../actions/workflows/deploy.yml) GitHub Actions workflow to deploy the desktop environment to GitHub's Actions infrastructure.
- Click the Cloud Desktop Environment URL printed in the output of the `Get URL` workflow step.

Fork the [cloud-computer/cloud-computer](https://github.com/cloud-computer/cloud-computer) repository to deploy the desktop environment to Google Cloud.

## Project Goals

- [x] A computer wholly defined in code.
- [x] From zero to production in one command.
- [x] Consistent experience across cloud and desktop.

## Keybindings

Inexhaustive list of keybindings. Check `~/.config/i3/config` for all available bindings.

### System Management

- Restart the desktop environment: `$mod+Shift+q`
- Lock screen: `$mod+slash`

### Window Focus and Movement

Vim-style bindings for focusing and moving windows.

- Focus left: `$mod+h`
- Focus down: `$mod+j`
- Focus up: `$mod+k`
- Focus right: `$mod+l`
- Move focused window left: `$mod+Shift+h`
- Move focused window down: `$mod+Shift+j`
- Move focused window up: `$mod+Shift+k`
- Move focused window right: `$mod+Shift+l`
- Resize gaps: `$mod+equal` and `$mod+Shift+equal`

### Workspace Management

- Create a new workspace: `$mod+n`
- Move the focused window to a new workspace: `$mod+Shift+n`
- Switch to adjacent workspace: `$mod+Control+h` or `$mod+Control+l`
- Switch to workspace n: `$mod+1` to `$mod+0`
- Switch to previous workspace: `$mod+minus`

### Application Launching

- Launch alacritty terminal: `$mod+return`
- Launch google chrome: `$mod+b`
- Launch vs code: `$mod+c`
- Launch discord: `$mod+d`
- Launch pcmanfm file manager: `$mod+e`
- Launch telegram: `$mod+t`
- Launch screenshot: `$mod+x`

### Monitor Management

- Move the focused window to the left monitor: `$mod+less`
- Move the focused window to the right monitor: `$mod+greater`

### Scratchpad

- Show gotop: `$mod+escape`
- Show terminal: `$mod+grave`
- Show volume: `$mod+v`
- Show wifi: `$mod+i`