Profile Configuration#

Immutablue customizes the shell environment via /etc/profile.d/25-immutablue.sh.

Location#

/etc/profile.d/25-immutablue.sh

This script runs for all users during login shell initialization.

Features#

File Descriptor Limits#

Sets the ulimit for non-root users:

ulimit -n 524288

Configurable via:

# settings.yaml
immutablue:
  profile:
    ulimit_nofile: 524288

Starship Prompt#

Enables the Starship prompt by default:

eval "$(starship init bash)"

Configurable via:

# settings.yaml
immutablue:
  profile:
    enable_starship: true

Homebrew Bash Completions#

Sources bash completions from Homebrew:

for f in /home/linuxbrew/.linuxbrew/etc/bash_completion.d/*; do
    source "${f}"
done

Configurable via:

# settings.yaml
immutablue:
  profile:
    enable_brew_bash_completions: true

fzf-git Integration#

Sources fzf-git for enhanced git operations with fzf:

source /usr/bin/fzf-git

Configurable via:

# settings.yaml
immutablue:
  profile:
    enable_sourcing_fzf_git: true

All Profile Settings#

SettingDefaultDescription
.immutablue.profile.ulimit_nofile524288Max open file descriptors
.immutablue.profile.enable_starshiptrueEnable Starship prompt
.immutablue.profile.enable_brew_bash_completionstrueEnable Homebrew completions
.immutablue.profile.enable_sourcing_fzf_gittrueEnable fzf-git integration

Customizing#

To override these settings, create a user settings file:

# ~/.config/immutablue/settings.yaml
immutablue:
  profile:
    enable_starship: false        # Disable Starship
    ulimit_nofile: 1048576        # Increase file limit

Execution Order#

Profile scripts run in alphanumeric order. The 25- prefix ensures Immutablue’s script runs:

  • After system defaults (typically 00- to 20-)
  • Before user customizations (typically 90- and above)

Checking Current Settings#

# Check if Starship is enabled
immutablue-settings .immutablue.profile.enable_starship

# Check ulimit setting
immutablue-settings .immutablue.profile.ulimit_nofile

# Check current ulimit
ulimit -n

Troubleshooting#

Starship not loading#

  1. Check if enabled:

    immutablue-settings .immutablue.profile.enable_starship
  2. Check if Starship is installed:

    which starship
  3. Ensure you’re in a bash shell:

    echo $BASH_VERSION

Completions not working#

  1. Check if enabled:

    immutablue-settings .immutablue.profile.enable_brew_bash_completions
  2. Check if Homebrew is installed:

    ls /home/linuxbrew/.linuxbrew/etc/bash_completion.d/

See Also#