Repository navigation
feat: improve package selection and setup reliability - #14
Merged
Merged
Conversation
- change: add Lua-based Hyprland modules and monitor settings - change: update setup and wallpaper scripts for Lua configuration - docs: update configuration guidance and file references - test: adapt validation scripts to Lua-based paths
- fix: add reversed bold styling and selection markers to focused rows - test: verify selected rows retain color-independent highlighting
- feat: add spinner, step count, percentage, and elapsed time to the TUI - fix: seed and refresh sudo credentials for unattended setup - test: cover progress helpers and password-backed sudo keepalive
- fix: propagate password-backed sudo into nested Bash commands and makepkg - fix: reuse safe yay checkouts and isolate invalid build paths - fix: suppress reboot prompts when setup fails - test: cover nested sudo and yay bootstrap reliability scenarios
- fix: use fallback monitor configuration when explicit monitors are absent - fix: configure GTK file chooser and editor MIME associations - fix: stabilize installation progress tracking and terminal status markers - test: add reliability coverage for monitor and filepicker defaults
- fix: use a screenshot instead of the dynamic wallpaper path - test: validate the hyprlock screenshot background configuration
- feat: color timestamped warnings and errors in live logs - refactor: centralize output severity detection - test: cover severity detection and ANSI stripping
- feat: add audio, network, Bluetooth, power, VPN, temperature, update, and LM Studio controls - fix: improve wallpaper startup and cache the active image for wlogout - refactor: parse Hyprland Lua keybindings and prevent duplicate autostart launches - build: add dependencies for desktop integrations and maintenance tools - test: cover update actions, menu contracts, lifecycle, package counts, and startup locks - docs: update README application and package descriptions
- chore: remove VPN, LM Studio, HyprWhspr, and Razer integrations - chore: launch Waybar using the checked-in configuration directly - docs: remove retired module dependencies from documentation and packages
- fix: start hyprpaper directly and delay wallpaper IPC initialization - fix: preserve manual output scrolling and sync managed runtime scripts - test: cover package renaming and autostart reconciliation
- change: replace Calcurse with Merkuro and update Hyprland launch rules - change: target active wallpaper outputs and improve fallback handling - change: verify login shells and configure SDDM before its theme - test: add coverage for calendar integration and installer behavior
- feat: add registry-backed application roles and generated runtime metadata - feat: add run manifests, logs, scoped rollback, and failure handling - test: add shell integration, regression, and package registry checks - ci: combine Rust, shell, and JSON validation jobs - docs: document roles, run history, rollback, and testing
- fix: load makepkg configuration from the isolated etc root and reject missing or unreadable files - test: cover layered configuration loading and missing configuration failures
- feat: support 13 role groups with membership and primary choices - feat: generate schema 2 metadata and route runtime actions through roles - test: cover installer validation, wrappers, JSONC updates, and regressions - docs: document role configuration, environment variables, and runtime behavior
- feat: add hierarchical application selection with descriptions and scrolling - feat: bundle logged Waybar updates with AUR helper fallback handling - docs: document application selection and update workflows - test: cover chooser rendering, updater behavior, and managed-file synchronization
- feat: add mouse and keyboard output scrolling, following, wrapping, and batching - feat: arrange application choices into responsive name and description columns - docs: document live output controls and updated chooser layout
- feat: add approved agent installers and role metadata - feat: add click-only startup diagnostics with bounded dispatch - fix: scope readiness markers and launcher/panel lifecycle checks - test: cover installer safety, triage privacy, and role integration - docs: document agent installation and startup troubleshooting
- feat: add configurable tmux, Zellij, and Herdr role selection - feat: route shortcuts and startup triage through selected multiplexers - test: expand role, runtime, and triage coverage - docs: document multiplexer behavior and bootable ISO planning
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
One or more issues must be addressed before approval.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (4)
What changed in this PR
This PR centralizes application-role selection and propagates it into generated Hyprland, Waybar, Fish, and Pyprland configuration while adding reliability controls, modular desktop integrations, and extensive regression coverage.
Changes:
- Adds shared multi-select role/package metadata and role-aware launchers.
- Adds run-scoped logging, atomic writes, manifests, rollback, and locking.
- Expands Waybar, startup diagnostics, agent integration, documentation, and tests.
| File | Description |
|---|---|
| tests/verify_hypr_config.sh | Updated as part of this pull request. |
| tests/stubs/yay | Updated as part of this pull request. |
| tests/stubs/xdg-user-dirs-update | Updated as part of this pull request. |
| tests/stubs/systemctl | Updated as part of this pull request. |
| tests/stubs/sudo | Updated as part of this pull request. |
| tests/stubs/stow | Updated as part of this pull request. |
| tests/stubs/reflector | Updated as part of this pull request. |
| tests/stubs/pacman | Updated as part of this pull request. |
| tests/stubs/notify-send | Updated as part of this pull request. |
| tests/stubs/makepkg | Updated as part of this pull request. |
| tests/stubs/getent | Updated as part of this pull request. |
| tests/stubs/chsh | Updated as part of this pull request. |
| tests/shell/waybar_updates.sh | Updated as part of this pull request. |
| tests/shell/startup_triage.sh | Updated as part of this pull request. |
| tests/shell/roles_testlib.sh | Updated as part of this pull request. |
| tests/shell/roles_review_regressions.sh | Updated as part of this pull request. |
| tests/shell/roles_package_normalization.sh | Updated as part of this pull request. |
| tests/shell/roles_lua_argv.sh | Updated as part of this pull request. |
| tests/shell/roles_interactive.sh | Updated as part of this pull request. |
| tests/shell/roles_dbus_atomic.sh | Updated as part of this pull request. |
| tests/shell/roles_controls.sh | Updated as part of this pull request. |
| tests/shell/reliability_two_runs.sh | Updated as part of this pull request. |
| tests/shell/reliability_rollback.sh | Updated as part of this pull request. |
| tests/shell/reliability_latest_log.sh | Updated as part of this pull request. |
| tests/shell/reliability_atomic.sh | Updated as part of this pull request. |
| tests/shell/multiplexer_runtime.sh | Updated as part of this pull request. |
| tests/shell/harness_regressions.sh | Updated as part of this pull request. |
| tests/shell/agent_triage.sh | Updated as part of this pull request. |
| tests/shell/agent_legacy_config.sh | Updated as part of this pull request. |
| tests/run.sh | Updated as part of this pull request. |
| tests/fixtures/hypr/assemble.sh | Updated as part of this pull request. |
| scripts/lib/update-waybar-roles.py | Updated as part of this pull request. |
| install.sh | Updated as part of this pull request. |
| dotfiles/.local/share/dbus-1/services/org.freedesktop.Notifications.service | Updated as part of this pull request. |
| dotfiles/.local/scripts/troubleshoot_with_agent.sh | Updated as part of this pull request. |
| dotfiles/.local/scripts/tests/__init__.py | Updated as part of this pull request. |
| dotfiles/.config/wlogout/style.css | Updated as part of this pull request. |
| dotfiles/.config/waybar/update_menu.xml | Updated as part of this pull request. |
| dotfiles/.config/waybar/tests/test_update_menu_contract.py | Updated as part of this pull request. |
| dotfiles/.config/waybar/tests/test_system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/tests/test_launch_system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/tests/test_keybinds_menu_contract.py | Updated as part of this pull request. |
| dotfiles/.config/waybar/tests/test_confirm_system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/style.css | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/weather.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/weather_tui.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/waybar_launch.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/updates_status.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/update_maintenance_action.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/toggle_waybar.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/temperature_status.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/temperature_resolve_path.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/sensor.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/power_action.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/notification_status.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/nmtui.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/nmtui-connect.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/launch_system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/launch_qt_gui.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/launch_power_screen.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/keyboardlayout_status.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/float-active-window.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/confirm_system_update.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/clipboard.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/brightness.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/bluetooth_manager.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/backlight.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/audio_control.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/scripts/alsamixer.sh | Updated as part of this pull request. |
| dotfiles/.config/waybar/keybinds_favorites.json | Updated as part of this pull request. |
| dotfiles/.config/waybar/backlight_menu.xml | Updated as part of this pull request. |
| dotfiles/.config/pypr/config.toml | Updated as part of this pull request. |
| dotfiles/.config/nwg-panel/dock | Updated as part of this pull request. |
| dotfiles/.config/nwg-panel/bar | Updated as part of this pull request. |
| dotfiles/.config/ironbar/config.toml | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_specific/monitors.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_specific/change_wallpaper.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/windows_and_workspaces.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/windows_and_workspaces.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/look_and_feel.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/look_and_feel.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/keybindings.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/keybindings.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/input.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/environment_variables.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/environment_variables.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/autostart.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/autostart.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/app_variables.lua | Updated as part of this pull request. |
| dotfiles/.config/hypr/sources_example/app_variables.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/toggle_waybar.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/toggle_floating.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/term_exec.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/startup_state.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/Startup_check.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/run_once.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/role_window.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/role_exec.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/repos_wofi.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/nwg_panel.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/notification_control.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/notes.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/menu_exec.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/float_calendar.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/fix-dolphin.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/check_setup_warnings.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/scripts/app_log.sh | Updated as part of this pull request. |
| dotfiles/.config/hypr/hyprlock.conf | Updated as part of this pull request. |
| dotfiles/.config/hypr/hyprland.lua | Updated as part of this pull request. |
| dotfiles/.config/fish/functions/vim.fish | Updated as part of this pull request. |
| dotfiles/.config/fish/conf.d/01-env.fish | Updated as part of this pull request. |
| dotfiles/.config/fastfetch/package-count.sh | Updated as part of this pull request. |
| dotfiles/.config/fastfetch/config.jsonc | Updated as part of this pull request. |
| Documents/waybar-updates.md | Updated as part of this pull request. |
| Documents/startup-triage.md | Updated as part of this pull request. |
| Documents/setup-output.md | Updated as part of this pull request. |
| Documents/app-selections.md | Updated as part of this pull request. |
| Documents/agents.md | Updated as part of this pull request. |
| CHANGELOG.md | Updated as part of this pull request. |
| .github/workflows/rust.yml | Updated as part of this pull request. |
| .github/workflows/ci.yml | Updated as part of this pull request. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- chore: annotate sourced scripts and literal shell expressions - refactor: clarify dynamic role exports and required-role variables - test: make negative assertions and empty role selections explicit
- fix: improve brightness detection, validation, clamping, and reload safety - fix: share JSONC validation across Waybar startup and role updates - fix: restrict troubleshooting launches to approved environment variables - test: add Waybar, environment filtering, and setup synchronization regressions - chore: sync Waybar scripts and validator through setup - ci: validate the added Waybar scripts - docs: document the restricted launch environment
- test: make installer fixtures POSIX sh compatible and verify shell selection - ci: run installer fixtures under Dash and Bash
- feat: add graphical and optional TUI file manager selections and launch integration - docs: document file manager groups, shortcuts, commands, and configuration - test: cover selection validation, package handling, and role launching
- test: add source annotations and improve shell test stubs - test: use explicit numeric assertions and empty environment values
- feat: configure locale settings for all selected shells - fix: parse generic Lua bindings and numbered workspace loops - test: add shell language and Waybar parser coverage - docs: document shell-wide language selection and override precedence
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Replace separate package selectors and shell lists with one registry-backed application selection flow, then carry those choices through installation, generated configuration, and desktop actions. This branch also adds recoverable configuration changes, an interactive setup log, desktop startup fixes, and optional agent-assisted troubleshooting.
Changes
Application selection and setup UI
packages.json, with required and optional groups, single or multiple selections, and explicit primary apps. Validate choices and deduplicate package plans across the Rust UI and shell installer.roles.jsonmetadata and route Hyprland, Fish, Waybar, and Pyprland actions through selected apps with preserved argument boundaries.Installer reliability
Desktop and Waybar
i2c_devreloads.Optional coding agents and troubleshooting
Tests and documentation
Notes for reviewers
How to test
Suggested checks, not rerun for this description update:
Hyprland verification reports a skip when Hyprland is unavailable; this is not a release pass. Hosted CI, live package availability, and interactive or privileged desktop behavior are not verified by this description update.