# Panama

Formerly Sunhat. A personal config for Fedora, with the intention of helping a
user set up their Fedora system with one command.

```sh
git clone https://git.gbrown.org/gib/Panama.git ~/.local/share/Panama
~/.local/share/Panama/install
```

`install` runs everything in `setup/scripts/` in order:

| Script | Does |
|---|---|
| `install-packages` | Repos (RPM Fusion, Terra, Hyprland COPR), then the four package lists in `setup/packages/` |
| `link-dotfiles` | Symlinks `config/dot/<name>` → `~/.config/<name>` |
| `change-settings` | Copies `config/copy/` over `/`, applies gsettings, enables user services |

Existing configs are moved to `config/old/` rather than overwritten.

## Desktops

Panama configures **two** desktops that coexist. Both sessions stay available in
GDM, so you can switch back and forth while you settle in.

### GNOME
The original setup: Forge for tiling, Dash-to-Dock, Openbar, Vitals,
AppIndicator support. Configured through `config/dot/forge/` and gsettings.

### Hyprland
A from-scratch replacement built to reproduce the GNOME setup closely enough
that muscle memory transfers — same keybinds, same panel contents, same dock,
same Tokyo Night Moon palette.

| Piece | What it is |
|---|---|
| `config/dot/hypr/` | Compositor config. **Lua, not hyprlang** — see its README |
| `config/dot/quickshell/` | The shell: bar, dock, Continuum overview, Panama Settings, Screen Intelligence, focus sessions, quick settings, notifications, screenshot UI |
| `config/dot/vicinae/` | Raycast-style launcher, themed |
| `config/dot/uwsm/` | Session environment (see the uwsm caveat in the hypr README) |
| `config/dot/wofi/` | Fallback launcher, in case the shell fails to start |
| `config/dot/xdg-desktop-portal/` | Portal backend routing |

**Start here: [`config/dot/hypr/README.md`](config/dot/hypr/README.md)** — it
covers the Lua migration, the uwsm environment gotcha, the HDR decision, the
full keymap, and troubleshooting.

Log in as **"Hyprland (uwsm-managed)"**, not plain "Hyprland".

## Layout

```
bin/            Small user-facing commands on PATH
config/
  bash/         .bashrc, aliases, env (env is gitignored)
  copy/         Files copied verbatim over / (needs sudo)
  dot/          Symlinked into ~/.config
  old/          Backups of whatever was replaced (gitignored)
setup/
  packages/     One package per line
  scripts/      Run in order by ./install
```
