I am running a Linux system and need help with configuration, setup, and administration tasks. Please assist me following Linux best practices and respecting system defaults.
- Distribution: Omarchy Linux (Arch-based)
- Window Manager: Hyprland
- Home Directory: /home/jorge
- Working Directory: Check with
pwd
before making assumptions
- Push file changes via chezmoi after modifications
- NEVER modify system files without explicit permission
- Respect the separation between system defaults and user customization
- Check for existing configurations before creating new ones
- Follow the principle of least privilege - Use sudo only when necessary
- Document all changes made to the system
- User-specific configs in
~/.config/
(preferred) - User home directory dotfiles
~/.*
(legacy) - System-wide configs in
/etc/
(requires sudo, avoid when possible) - Default configs in
/usr/share/
(NEVER modify)
-
Investigate current state:
# Check if configuration already exists ls -la ~/.config/[application]/ find ~ -name "*[application]*" -type f 2>/dev/null # Look for example/default files find /usr/share -name "*[application]*" -type f 2>/dev/null find /etc -name "*[application]*" -type f 2>/dev/null
-
Test changes:
- Make incremental changes
- Test after each change
- Have a rollback plan
- Check if available in distribution's package manager first
- Use AUR (for Arch-based) as second option
- Manual installation as last resort
- Document installation method for future updates
# System services (requires sudo)
systemctl status/start/stop/enable/disable [service]
# User services (no sudo needed)
systemctl --user status/start/stop/enable/disable [service]
- Use proper format (YAML, TOML, JSON, INI) as expected by application
- Include comments explaining customizations
- Keep original structure intact
- Use includes/sources when possible instead of modifying main files
# Session-wide (preferred)
~/.config/environment.d/*.conf
# Shell-specific
~/.bashrc or ~/.zshrc
# System-wide (avoid)
/etc/environment
When asking for help, I'll provide:
- What I want to accomplish
- Any specific constraints or preferences
- What I've already tried (if applicable)
Example requests:
- "Help me configure [application] properly"
- "I need to set up [service] to start automatically"
- "Show me how to install and configure [tool]"
- "Debug why [application] isn't working"
- "Optimize [system component] for better performance"
- Check file permissions after creating/modifying configs
- Verify syntax before applying configuration changes
- Keep a session open when modifying network/SSH configs
- Test commands with
echo
or--dry-run
first when available - Use version control for important configs
- Run commands with sudo unless absolutely necessary
- Pipe curl/wget directly to bash without reviewing
- Modify files in /usr/ or /boot/ without explicit need
- Delete files without understanding their purpose
- Disable security features without good reason
When something isn't working:
-
Check logs:
journalctl -xe # System logs journalctl --user -xe # User logs journalctl -u [service] -f # Follow specific service
-
Verify permissions:
ls -la [file] namei -l [path]
-
Check processes:
ps aux | grep [process] systemctl status [service]
-
Test configuration:
[application] --config-test [application] -t
# Distribution info
cat /etc/os-release
uname -a
# Hardware info
lscpu
lsmem
lsblk
lspci
lsusb
# Network info
ip addr
ss -tulpn
nmcli device status
# Disk usage
df -h
du -sh /*
# Running services
systemctl list-units --state=running
systemctl --user list-units --state=running
# Package management (Arch-based)
pacman -Q # List installed packages
pacman -Qs [search] # Search installed packages
pacman -Ss [search] # Search available packages
htop or btop # Interactive process viewer
iostat -x 1 # I/O statistics
vmstat 1 # Virtual memory statistics
My dotfiles are managed with chezmoi and backed up to GitHub at jorgemanrubia/dotfiles
.
Always push changes using chezmoi after file modifications:
chezmoi re-add && cd $(chezmoi source-path) && git add . && git commit -m "Your commit message" && git push
This applies to:
- Editing configuration files
- Creating new configuration files
- Deleting configuration files
- Modifying CLAUDE.md itself
- Any file operation in tracked directories
Replace "Your commit message" with a description of your changes.
After making changes:
- Document what was changed and why
- Note any dependencies or requirements
- Include rollback procedures
- Save relevant commands for future reference
- Commit configuration changes to dotfiles repo if applicable
- Prefer simple solutions over complex ones
- Use native tools when possible
- Follow distribution-specific conventions
- Test in a safe environment when possible
- Ask for clarification if requirements are unclear
Please help me with my Linux system configuration and administration tasks following these guidelines.