← Index

Utilities

Miscellaneous scripts and tools that live at the top level or in the clamav/ directory.


System Update

bash ~/Dotfiles/update.sh

Runs a full system update: 1. sudo pacman -Syu — official repos 2. yay -Syu --answerdiff None --answerclean All --removemake — AUR packages (no prompts)

For per-package AUR updates with confirmation:

bash ~/Dotfiles/update-aur-onebyone.sh

Package Audit

bash ~/Dotfiles/setup/audit-packages.sh

Audits installed packages — useful for finding orphans or unexpected installations.


Encryption Utilities

Simple OpenSSL wrappers for encrypting/decrypting arbitrary strings. Useful for storing secrets in scripts or config files without plaintext exposure.

Encrypt

bash ~/Dotfiles/encrypt.sh "my secret text" "my-passphrase"
# Output: base64-encoded AES-256-CBC ciphertext

Decrypt

bash ~/Dotfiles/decrypt.sh "<ciphertext>" "my-passphrase"
# Output: original plaintext

Both use AES-256-CBC with PBKDF2 key derivation via OpenSSL.


Credential Storage

Initial Setup

bash ~/Dotfiles/setup-creds-missing.sh

Installs gnome-keyring and seahorse (GUI manager), then sets git's credential helper to store.

Git Credentials

git/ contains .gitconfig with:

[user]
    name  = The_miro
    email = amir@abdelbaki.eu

[credential]
    helper = store

[init]
    defaultBranch = main

[push]
    autoSetupRemote = true

The store helper writes credentials to ~/.git-credentials. For higher security, gnome-keyring intercepts this and stores the credentials in the system keyring instead of plaintext.


Zsh Plugins

bash ~/Dotfiles/zshplugins.sh

Clones (or updates) the two Oh My Zsh community plugins: - zsh-syntax-highlighting — real-time syntax colouring in the prompt - zsh-autosuggestions — fish-style history-based suggestions

These are referenced in .zshrc and active after the next shell start.


ClamAV On-Access Scanning

Full real-time antivirus scanning via ClamAV's clamonacc daemon.

Installation

bash ~/Dotfiles/clamav/install-clam-onaccess.sh

What it does: 1. Installs clamav 2. Copies clamd.conf to /etc/clamav/ 3. Installs clamav-clamonacc.service to /etc/systemd/system/ 4. Installs the sudoers entry from clamav-sudoer 5. Updates virus definitions (freshclam) 6. Enables and starts clamd + clamav-clamonacc

Key Files

File Purpose
clamav/clamd.conf Daemon configuration (30 KB, full options)
clamav/clamav-clamonacc.service systemd unit for on-access scanning
clamav/clamav-sudoer sudoers rule for ClamAV processes
clamav/virus-event.bash Handler executed when a virus is detected

Virus Event Handler

virus-event.bash is called by clamonacc when a threat is found. Customise it to send notifications, quarantine files, or alert an admin.


Shell Configuration

.zshrc

.bashrc

Minimal bash config — sets PS1, loads ~/.bash_profile if present.

Starship Prompt

starship.toml at the repo root is deployed to ~/.config/starship.toml.

Key customisations: - OS, username, directory, git, language, docker, and time segments - CyberQueer colours throughout (colour-substitution target) - Directory abbreviated to 3 levels with …/ truncation - Common directory substitutions (~/Documents📄, etc.)


Login Manager (ly)

etc-ly-config.ini is deployed to /etc/ly/config.ini during Hyprland install and kept as a colour-substitution target in apply-theme.sh.

ly is a minimal TUI display manager that runs on tty1:

systemctl enable ly@tty1

Session selection, auto-login, and timeout settings are all in the config.