testsAndMisc/linux_configuration/fresh-install
Krzysztof kuhy Rudnicki f72455662c Extract the hosts blocker into its own repo
linux_configuration/periodic_background/hosts/ is now
github.com/kuhyx/hosts-blocker, cloned at ~/hosts-blocker. Clears 5 of the 46
directory-depth violations; the remaining 41 are all digital_wellbeing, so
--warn stays on the depth hook until that unit moves too.

History was filtered across ALL FOUR paths the unit has lived at (hosts/,
linux_configuration/hosts/, linux_configuration/scripts/periodic_background/
hosts/, and the current one). Filtering on the current path alone would have
preserved 1 commit out of 51 -- the flatten moved it recently, so a naive
single --path silently truncates the history to the flatten commit and still
looks fine in `git log | head`.

No source line changed: all 15 files are byte-identical to the copies removed
here. install.sh already resolved its lib/ via BASH_SOURCE.

The six callers now resolve the checkout through a new shared helper,
linux_configuration/lib/extracted_repos.sh, which reads the invoking user's
home from SUDO_USER's passwd entry rather than $HOME -- several of these
scripts re-exec under sudo, where $HOME is /root. A missing checkout fails
loudly with a clone instruction; it is never a silent skip, which is the
failure mode that left screen-locker's self-repair dead for five months after
the 2026-05-15 reorg.

The live blocker is untouched: /etc/hosts keeps its chattr +i, and the guards
load their plugins from /usr/local/share/guard-lib-plugins/ (byte-identical by
md5), not from a repo path.

Verified: 25 tests pass from ~/hosts-blocker; shellcheck clean on the helper
and all six callers; sudo resolution prints /home/kuhy/hosts-blocker;
test_setup_dns_blocker.sh passes; report_live_state.sh --check is byte-identical
before and after, so no new stale references.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
2026-08-23 20:30:18 +02:00
..
lib Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
aur_packages.txt Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
detect_gpu_and_install.sh Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
detect_gpu.sh Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
install_amd_driver.sh Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
install_intel_driver.sh Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
install_nvidia_driver.sh Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
main.sh Extract the hosts blocker into its own repo 2026-08-23 20:30:18 +02:00
makepkg.conf Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
mkinitcpio.conf Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
mpv.conf Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
packages.txt Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
pacman_packages.txt Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
pacman.conf Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
README.md Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00

Package Lists

This directory contains package lists for the fresh install script:

  • pacman_packages.txt - List of packages to install via pacman
  • aur_packages.txt - List of AUR packages with their repository URLs

Format

pacman_packages.txt

One package name per line:

package1
package2
package3
# This is a comment and will be ignored
# Another comment

aur_packages.txt

Package name and repository URL separated by space:

package-name https://aur.archlinux.org/package-name.git
another-package https://aur.archlinux.org/another-package.git
# This is a comment and will be ignored
# Another comment

Note: Lines starting with anything other than lowercase letters (a-z) or digits (0-9) will be ignored as comments. This includes lines starting with #, spaces, uppercase letters, or special characters.

Usage

The main.sh script will automatically read from these files:

  • Pacman packages will be installed via pacman -Sy --noconfirm
  • AUR packages will be built and installed via the install_from_aur function

Modifying Package Lists

To add or remove packages:

  1. Edit the appropriate .txt file
  2. For AUR packages, ensure the format is correct (package-name followed by space and URL)
  3. You can add comments by starting lines with # or any non-alphanumeric character
  4. Save the file - the script will automatically pick up changes on next run

Comments

You can add comments to organize your package lists:

# Essential packages
git
vim

# Development tools
gcc
make

# Optional packages (commented out)
# some-package-i-might-want-later