Add Makefile, Alacritty config, and Kitty config #6

Open
ldraney wants to merge 2 commits from setup-tooling into main
Owner

Summary

  • Add Makefile with install, setup, and console-rotate targets for automated setup
  • make setup wires auto-start Hyprland on TTY1 login via ~/.zprofile
  • make console-rotate fixes portrait TTY via fbcon rotation
  • Include Alacritty and Kitty terminal configs

Closes #5

Changes

  • Makefile -- new file with install, setup, console-rotate, and help targets
  • alacritty.toml -- new Alacritty terminal config
  • kitty.conf -- Kitty terminal config (from prior commit)
  • .gitignore -- add .claude-no-enforce

Test Plan

  • make help prints target descriptions
  • make setup appends auto-start block to ~/.zprofile (idempotent — safe to run twice)
  • make console-rotate rotates TTY console 90 CW for portrait monitor
  • make install installs packages without error
  • No regressions in Hyprland startup

Review Checklist

  • Passed automated review-fix loop
  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Feature flag needed? No — setup tooling, no user-visible workflow change
  • ldraney/hyprland-config #5 — the Forgejo issue this PR implements
## Summary - Add Makefile with `install`, `setup`, and `console-rotate` targets for automated setup - `make setup` wires auto-start Hyprland on TTY1 login via `~/.zprofile` - `make console-rotate` fixes portrait TTY via fbcon rotation - Include Alacritty and Kitty terminal configs Closes #5 ## Changes - `Makefile` -- new file with `install`, `setup`, `console-rotate`, and `help` targets - `alacritty.toml` -- new Alacritty terminal config - `kitty.conf` -- Kitty terminal config (from prior commit) - `.gitignore` -- add `.claude-no-enforce` ## Test Plan - [ ] `make help` prints target descriptions - [ ] `make setup` appends auto-start block to `~/.zprofile` (idempotent — safe to run twice) - [ ] `make console-rotate` rotates TTY console 90 CW for portrait monitor - [ ] `make install` installs packages without error - [ ] No regressions in Hyprland startup ## Review Checklist - [ ] Passed automated review-fix loop - [ ] No secrets committed - [ ] No unnecessary file changes - [ ] Commit messages are descriptive - [ ] Feature flag needed? No — setup tooling, no user-visible workflow change ## Related Notes - `ldraney/hyprland-config #5` — the Forgejo issue this PR implements
Symlinked from ~/.config/kitty/kitty.conf for centralized config management.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Makefile provides install, setup (auto-start Hyprland on TTY1 via
.zprofile), and console-rotate targets for portrait monitor TTY usage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

PR #6 Review

DOMAIN REVIEW

Domain: Makefile / shell automation, dotfiles (Arch Linux / Hyprland)

Makefile analysis:

  • install target uses pacman -S --needed and paru -S --needed -- correct flags for idempotent installs.
  • setup target has a proper idempotency guard (grep -q 'uwsm start' before appending to .zprofile). Well done.
  • console-rotate uses sudo tee to write to sysfs -- correct pattern for writing to kernel interfaces.
  • help is the default target (first in file). Correct Makefile convention.
  • .PHONY declaration covers all targets. Good.

kitty.conf:

  • allow_remote_control socket-only + listen_on unix:/tmp/kitty-{kitty_pid} is the recommended secure remote control pattern. No issues.
  • confirm_os_window_close 0 and enable_audio_bell no are reasonable UX preferences.

alacritty.toml:

  • Valid TOML structure. opacity = 0.95 requires a compositor (Hyprland provides this). Font family Liberation Mono is a standard free font. No issues.

BLOCKERS

None.

NITS

  1. DRY: Package list duplicated in README.md -- The PACKAGES list in the Makefile (lines 1-5) is a near-exact copy of the package list in README.md (lines 18-22). Now that make install exists, consider updating the README Setup section to reference make install instead of listing packages inline. This prevents the two lists from drifting apart.

  2. README Files section not updated -- README.md lines 114-120 list the repo files but do not mention Makefile, alacritty.toml, or kitty.conf. These should be added for discoverability.

  3. NVIDIA driver version pinned -- nvidia-580xx-dkms / nvidia-580xx-utils hard-codes the 580xx series. This is correct for the current Pascal GPU + driver, but will need a manual bump when NVIDIA releases a new major series. A comment in the Makefile noting why 580xx is pinned (Pascal GPU, no nvidia-open support) would help future-you.

  4. Minor scope creep -- .gitignore addition of .claude-no-enforce is unrelated to setup tooling or terminal configs. Harmless but technically out of scope for issue #5.

  5. paru assumed available -- The install target calls paru for AUR packages but does not check if paru is installed. A user running make install on a fresh system without paru would get a confusing error. Consider adding a guard or a comment noting the prerequisite.

SOP COMPLIANCE

  • PR body has ## Summary, ## Changes, ## Test Plan, ## Related
  • No secrets or credentials committed
  • No .env files committed
  • Commit messages are descriptive (359619e Add Kitty terminal config with shell integration and remote control)
  • PR references parent issue (Closes #5)
  • Minor scope creep (.claude-no-enforce in .gitignore unrelated to issue #5) -- non-blocking

PROCESS OBSERVATIONS

  • Deployment risk: Low. These are additive files (new Makefile, new terminal configs, gitignore append). No existing config files are modified. Reverting is trivial.
  • Documentation gap: README should be updated in this PR or a follow-up to reflect the new Makefile workflow and file additions (nit 1 and 2 above).
  • Stale PR #4 / Issue #3: There is an open PR #4 and Issue #3 both titled "Add Kitty terminal configuration." Since kitty.conf is included in this PR, those should be closed as superseded to avoid confusion.

VERDICT: APPROVED

## PR #6 Review ### DOMAIN REVIEW **Domain:** Makefile / shell automation, dotfiles (Arch Linux / Hyprland) **Makefile analysis:** - `install` target uses `pacman -S --needed` and `paru -S --needed` -- correct flags for idempotent installs. - `setup` target has a proper idempotency guard (`grep -q 'uwsm start'` before appending to `.zprofile`). Well done. - `console-rotate` uses `sudo tee` to write to sysfs -- correct pattern for writing to kernel interfaces. - `help` is the default target (first in file). Correct Makefile convention. - `.PHONY` declaration covers all targets. Good. **kitty.conf:** - `allow_remote_control socket-only` + `listen_on unix:/tmp/kitty-{kitty_pid}` is the recommended secure remote control pattern. No issues. - `confirm_os_window_close 0` and `enable_audio_bell no` are reasonable UX preferences. **alacritty.toml:** - Valid TOML structure. `opacity = 0.95` requires a compositor (Hyprland provides this). Font family `Liberation Mono` is a standard free font. No issues. ### BLOCKERS None. ### NITS 1. **DRY: Package list duplicated in README.md** -- The `PACKAGES` list in the Makefile (lines 1-5) is a near-exact copy of the package list in `README.md` (lines 18-22). Now that `make install` exists, consider updating the README Setup section to reference `make install` instead of listing packages inline. This prevents the two lists from drifting apart. 2. **README Files section not updated** -- `README.md` lines 114-120 list the repo files but do not mention `Makefile`, `alacritty.toml`, or `kitty.conf`. These should be added for discoverability. 3. **NVIDIA driver version pinned** -- `nvidia-580xx-dkms` / `nvidia-580xx-utils` hard-codes the 580xx series. This is correct for the current Pascal GPU + driver, but will need a manual bump when NVIDIA releases a new major series. A comment in the Makefile noting why 580xx is pinned (Pascal GPU, no `nvidia-open` support) would help future-you. 4. **Minor scope creep** -- `.gitignore` addition of `.claude-no-enforce` is unrelated to setup tooling or terminal configs. Harmless but technically out of scope for issue #5. 5. **`paru` assumed available** -- The `install` target calls `paru` for AUR packages but does not check if `paru` is installed. A user running `make install` on a fresh system without `paru` would get a confusing error. Consider adding a guard or a comment noting the prerequisite. ### SOP COMPLIANCE - [x] PR body has ## Summary, ## Changes, ## Test Plan, ## Related - [x] No secrets or credentials committed - [x] No `.env` files committed - [x] Commit messages are descriptive (`359619e Add Kitty terminal config with shell integration and remote control`) - [x] PR references parent issue (`Closes #5`) - [ ] Minor scope creep (`.claude-no-enforce` in `.gitignore` unrelated to issue #5) -- non-blocking ### PROCESS OBSERVATIONS - **Deployment risk:** Low. These are additive files (new Makefile, new terminal configs, gitignore append). No existing config files are modified. Reverting is trivial. - **Documentation gap:** README should be updated in this PR or a follow-up to reflect the new Makefile workflow and file additions (nit 1 and 2 above). - **Stale PR #4 / Issue #3:** There is an open PR #4 and Issue #3 both titled "Add Kitty terminal configuration." Since kitty.conf is included in this PR, those should be closed as superseded to avoid confusion. ### VERDICT: APPROVED
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin setup-tooling:setup-tooling
git switch setup-tooling

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff setup-tooling
git switch setup-tooling
git rebase main
git switch main
git merge --ff-only setup-tooling
git switch setup-tooling
git rebase main
git switch main
git merge --no-ff setup-tooling
git switch main
git merge --squash setup-tooling
git switch main
git merge --ff-only setup-tooling
git switch main
git merge setup-tooling
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/hyprland-config!6
No description provided.