Auto-adapts sway workspace routing to however many monitors are connected (laptop vs. desktop) instead of hardcoding output names.
56 lines
1.9 KiB
Markdown
56 lines
1.9 KiB
Markdown
# Monochrome Arch Wayland dotfiles
|
|
|
|
Modular dotfiles for a Sway desktop on Arch Linux. The installer can install the
|
|
required packages and creates symlinks back to this repository.
|
|
|
|
## Install
|
|
|
|
```sh
|
|
git clone git@git.noroutes.net:owen/dotfiles.git ~/code/dotfiles
|
|
cd ~/code/dotfiles
|
|
./install.sh
|
|
```
|
|
|
|
Useful options:
|
|
|
|
```sh
|
|
./install.sh --no-packages # only create links
|
|
./install.sh --dry-run # show what would happen
|
|
./install.sh --help
|
|
```
|
|
|
|
Existing files are never deleted: conflicting paths are moved to
|
|
`~/.dotfiles-backup/<timestamp>/`. Log out and choose Sway after installation.
|
|
Use `Alt+Shift+r` to reload Sway and `Alt+d` to open Wofi.
|
|
|
|
## Layout
|
|
|
|
- `config/sway/conf.d/` contains focused Sway fragments.
|
|
- `home/.zsh.d/*.zsh` is automatically sourced by `home/.zshrc`.
|
|
- Neovim settings and mappings live in separate Lua modules.
|
|
- The shared monochrome palette with blue accents is repeated in the native format each application
|
|
expects, so no template generator is required at runtime.
|
|
|
|
## Single vs. dual monitor
|
|
|
|
The same configuration works unmodified on the single-monitor laptop and the
|
|
dual-monitor desktop:
|
|
|
|
- Sway ignores `output`/`workspace ... output` directives that reference a
|
|
display name which isn't currently connected, so the desktop-specific
|
|
`DP-3`/`DP-2` positioning in `config/sway/conf.d/10-appearance.conf` is a
|
|
harmless no-op on the laptop.
|
|
- `config/sway/scripts/select-workspace.sh` (bound to the workspace keys)
|
|
doesn't hardcode output names. It ranks whatever outputs are connected
|
|
left-to-right and maps workspaces 1-10 to the first, 11-20 to the second,
|
|
and so on — so it adapts automatically to however many monitors are
|
|
plugged in.
|
|
|
|
## Secrets
|
|
|
|
Nothing in this repository is or should be a secret. Machine-local
|
|
credentials (e.g. the 1Password service-account token read by
|
|
`home/.zshrc`) live outside the repo, in files under `$HOME` that
|
|
`.gitignore` also excludes defensively should they ever end up in the
|
|
checkout.
|