Skip to content

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

158 Commits

Folders and files

Repository files navigation

💠 آفاق | Horizons

A personal fork of illogical-impulse by @end-4, customized and maintained by pctrade.

This monorepo combines the three pieces that make up Horizons:

  • dotfiles/ — the base Hyprland/kitty/fish/etc. dotfiles (originally dots-hyprland).
  • shell/ — the Quickshell desktop shell (originally end4-pC), including its README(s) in shell/README.md.

Liquid Glass / blur are provided by Hyprland's own native decoration:blur:variant (no plugin needed) — see dotfiles/dots/.config/hypr/hyprland/general.lua and Settings > Hyprland > Blur Style in the shell.

Install — Horizons Installer v2.0

git clone https://github.com/PROFFESSOR0x/Horizons-DE.git Horizons-DE
cd Horizons-DE
./installer.sh                          # interactive (profile: core)
./installer.sh --profile full --force   # full non-interactive
./installer.sh --dry-run --profile ultra # preview what would be done

The unified installer (installer.sh + install/lib/*) does in order: a target-aware runtime bootstrap, pre-flight checks, legacy migration (illogical-impulse/end4-pC → horizons), optional backup, build from source, optional bundled extras (Rubik/Gabarito/Bibata/GoogleSans), the shell/ Quickshell config into ~/.config/quickshell/horizons, target-specific WM integration and keybinds, a matching-session Quickshell restart, and finally writes the identity marker.

i3 / X11

X11 and Wayland are display protocols; i3 and Hyprland are window managers, not desktop environments. Horizons supports only the two valid pairs below:

Target Protocol Installer behavior
Hyprland Wayland Full Horizons-managed desktop can be selected, including compatible dotfiles.
i3 X11 Shell integration only; i3 IPC provides windows, workspaces, outputs, focus, and workspace actions.

Hyprland/X11 and i3/Wayland are rejected by the installer because those upstream combinations do not exist. For an i3-like Wayland compositor, Sway would need its own supported backend rather than pretending i3 can run on Wayland.

On a new install, the installer requires a target and desktop-integration choice:

./installer.sh --wm hyprland --desktop horizons
./installer.sh --wm i3 --desktop existing

The first successful installation stores the selected protocol, window manager, desktop mode, profile, and components in ~/.config/horizons/.horizons-meta.json. Subsequent plain ./installer.sh calls automatically enter update mode and reuse that stored target. Use --fresh-install only when you explicitly want to run a new installation flow. i3 integration installs ~/.config/i3/horizons.conf and adds one reversible include after making a backup; it does not modify existing i3 rules or bindings.

Before modifying configuration, the installer audits the selected target and installs only missing runtime capabilities. It tries the distribution's normal repositories first, then safe alternatives (including an Arch AUR fallback where an existing yay or paru is available). Ubuntu is handled natively through apt: the installer enables universe, uses Ubuntu packages for Hyprland and runtime helpers, enables the upstream Quickshell PPA (ppa:avengemedia/danklinux) when needed, enables the Hyprland PPA (ppa:cppiber/hyprland) when Ubuntu's own archive lacks the Hyprland stack, and builds swappy from source when it is missing from apt. If no Quickshell package is available after the PPA, it offers a source build with its build dependencies. Hyprland installs its Wayland runtime helpers; i3 installs i3, X.Org, and X11 clipboard support. --skip-deps is an explicit opt-out: it leaves the installer in audit-only mode and reports what is still missing.

The installer also inventories known existing desktop configuration directories for Hyprland, i3, QuickShell, AGS, Waybar, Polybar, Eww, Kitty, and Fish. Interactive installs offer Keep, Backup, or permanently Delete. Deletion requires typing DELETE; non-interactive installs keep files unless --existing-config backup was supplied explicitly.

Identity marker & update protocol

After a successful install a marker is written (requested feature):

  • ~/.config/horizons/.horizons-meta.json — machine-readable (installer version, dates, git commit, profile, components)
  • ~/.config/horizons/.horizons-info — simple key=value human-readable
  • ~/.config/horizons/.horizons-version — one-liner horizons <commit> <date> profile=<p>

The update protocol reads this marker:

./installer.sh status          # show identity + repo status
./installer.sh check           # check for updates (git fetch + compare)
./installer.sh update          # pull (stash+rebase) + smart re-apply
./install/horizons-update check
./install/horizons-update full --rebase --smart
./install/horizons-update rollback
./install/horizons-update timer install  # daily systemd timer
# Installed helper after first run:
horizons status
horizons update

Profiles & granular control

Profile Dots Shell Bundled Build SysUpgrade
minimal ✗ ✔ ✗ ✗ ✗
core (default) ✔ ✔ ✗ ✗ ✗
full ✔ ✔ ✔ ✗ ✗
ultra ✔ ✔ ✔ ✔ ✔

Granular overrides: --components <csv> with ^/-/no- negation.

./installer.sh --profile minimal --force            # shell only
./installer.sh --profile full --with-sysupdate -y   # full + system upgrade
./installer.sh --components dots,shell --force      # only dots + shell
./installer.sh --components no-dots,^bundled -y     # everything except dots/bundled
./installer.sh build --build-force                  # only rebuild quickshell

Full flags

Run ./installer.sh --help for the complete list. Highlights:

  • -f/--force, -y/--yes, -q/--quiet, -v/--verbose, --dry-run
  • --profile minimal|core|full|ultra, --components <csv>, --show-profiles
  • --with-deps / --skip-deps, --with-sysupdate / --skip-sysupdate, --with-build / --skip-build, --with-bundled / --skip-bundled, --with-backup / --skip-backup
  • --via-nix, --with-fontset <set>, --build-force, --log-file <path>
  • Legacy compat: --skip-dots, --skip-qs still work
  • Commands: install (default), update, check, status, build, uninstall

Credits

  • @end-4 — original dots-hyprland / illogical-impulse.
  • pctrade — end4-pC fork, now rebranded as آفاق | Horizons.

See shell/README.md for shell-specific docs (also available in 日本語 and 简体中文), and RESTRUCTURE_PLAN.md for the monorepo restructuring history.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages