v3.1.2
DXSBash is a shell enhancement suite designed for developers, system administrators, and Linux power users. It provides a consistent, feature-rich experience across multiple shells, combining productivity tools, visual improvements, and optimized workflows.
Tested extensively on Debian 13. Please test on any system and send e-mail with detailed info with results, bugs, etc...
For a comprehensive list of all available commands and aliases in DXSBash, see the Commands Reference.
Or discover commands live in your shell:
aliases # interactive fzf picker with a preview pane (if fzf is installed)
aliases git # plain grep by substring; pipe-friendlyWith fzf available, aliases (no args) opens a fuzzy-filter list; the
preview pane shows the full definition of the selected alias or function.
Without fzf — or when stdout is piped/redirected — it prints a plain sorted
listing.
Ctrl+R- Search command history with fuzzy matchingCtrl+F- Launch interactive directory navigatorAlt+C- Change to selected directory via fuzzy finder
- Debian 13 (extensively tested)
- Limited support still for Debian 12
- Arch Linux (moderately tested)
- Ubuntu 20.04+ (limited tested)
- Administrative privileges (sudo mostly)
git clone --depth=1 https://github.com/digitalxs/dxsbash.git
cd dxsbash
chmod +x setup.sh
./setup.shThe installer provides an interactive experience:
- Shows an Install / Repair / Uninstall menu
- Detects your Linux distribution automatically
- Lets you choose your preferred shell (Bash, Zsh, or Fish)
- Installs all required dependencies
- Configures your chosen shell with enhanced features
- Sets up visual elements and productivity tools
- Configures KDE terminal Konsole and Yakuake profiles and defaults
./setup.sh --install --shell bash --yes # end-to-end, no prompts
DXSBASH_SHELL=zsh ./setup.sh --install --yes # same via env var
./setup.sh --install --dry-run # show plan without changesAll output is mirrored to ~/.dxsbash/logs/install-YYYYMMDD-HHMMSS.log.
If DXSBash is already installed, the installer suggests dxsbash-repair
instead of reinstalling — use --yes to force a reinstall anyway.
Update to the latest version:
update-dxsbashIf symlinks or helper commands break after a system update or partial install, re-link everything without touching your settings or history:
dxsbash-repair # interactive; auto-detects your shell
dxsbash-repair --dry-run # preview changes
dxsbash-repair --deps # also reinstall missing dependenciesTune DXSBash interactively without hand-editing rc files:
dxsbash-configThe menu lets you change:
- Default text editor (
$EDITOR/$VISUAL) - Shell history sizes (
HISTSIZE,HISTFILESIZE) - Prompt style (Starship vs. built-in custom)
- Starship theme (DXS, Tokyo Night, Gruvbox Rainbow, Catppuccin, …)
- Fastfetch on startup (on/off)
- Reset everything to defaults
Changes are written to ~/.dxsbash/user.conf and take effect in new shell
sessions (or after source ~/.bashrc / source ~/.zshrc).
.bashrc- Enhanced Bash configuration.zshrc- Zsh configuration with pluginsconfig.fish- Fish shell configuration
- Starship - Cross-shell prompt with rich information
- Zoxide - Smarter directory navigation
- FZF - Fuzzy finder for files and history
- Fastfetch - Optimized system information display
- FiraCode Nerd Font - Programming font with ligatures and icons
Ctrl+R- Search command history with fuzzy matchingCtrl+F- Launch interactive directory navigatorAlt+C- Change to selected directory via fuzzy finder
update- Update system packagesinstall [package]- Install packages with updateswhatsmyip- Show internal and external IP addresses
extract <file>- Extract any archive type automaticallymkdirg <dir>- Create and navigate to directorycpg <src> <dest>- Copy and go to destinationmvg <src> <dest>- Move and go to destination
..,...,....- Go up 1, 2, or 3 directoriesbd- Go back to previous directoryup <n>- Go up n directories
gs- Git statusga- Git addgc- Git commitgp- Git pushgl- Git loggb- Git branchgco- Git checkout
DXSBash installs and uses the following software packages to enhance the Linux terminal experience and DXSBash would not be possible without them:
| Software | Description | Project Link |
|---|---|---|
| Bash | GNU Bourne Again Shell | gnu.org/software/bash |
| Zsh | Z Shell | zsh.org |
| Fish | Friendly Interactive Shell | fishshell.com |
| Software | Description | Project Link |
|---|---|---|
| Starship | Cross-shell prompt | starship.rs |
| Zoxide | Smart directory navigation | github.com/ajeetdsouza/zoxide |
| FZF | Fuzzy finder | github.com/junegunn/fzf |
| Fastfetch | System information display | github.com/fastfetch-cli/fastfetch |
| Bat/Batcat | Improved cat command | github.com/sharkdp/bat |
| Ripgrep | Fast text search | github.com/BurntSushi/ripgrep |
| Tree | Directory visualization | mama.indstate.edu/users/ice/tree |
| Multitail | Enhanced log viewing | vanheusden.com/multitail |
| Software | Description | Project Link |
|---|---|---|
| FiraCode Nerd Font | Programming font with ligatures and icons | github.com/ryanoasis/nerd-fonts |
| Software | Description | Project Link |
|---|---|---|
| Oh My Zsh | Zsh framework | ohmyz.sh |
| zsh-autosuggestions | Command suggestions for Zsh | github.com/zsh-users/zsh-autosuggestions |
| zsh-syntax-highlighting | Syntax highlighting for Zsh | github.com/zsh-users/zsh-syntax-highlighting |
| Fisher | Plugin manager for Fish | github.com/jorgebucaran/fisher |
| fzf.fish | FZF integration for Fish | github.com/PatrickF1/fzf.fish |
| Tide | Fish prompt | github.com/IlanCosman/tide |
| Software | Description | Project Link |
|---|---|---|
| Git | Version control system | git-scm.com |
| Neovim | Text editor | neovim.io |
| Nano | Simple text editor | nano-editor.org |
| Joe | Text editor | joe-editor.sourceforge.net |
| Software | Description | Project Link |
|---|---|---|
| Nala | APT frontend | github.com/volitank/nala |
| Trash-cli | Safer alternative to rm | github.com/andreafrancia/trash-cli |
| Curl | URL transfer tool | curl.se |
| Wget | File retrieval tool | gnu.org/software/wget |
| Unzip | Archive extraction | infozip.sourceforge.net/UnZip.html |
| Pwgen | Password generator | sourceforge.net/projects/pwgen |
| Powerline | Status line | github.com/powerline/powerline |
| Plocate | Fast file search | plocate.sesse.net |
| Fontconfig | Font management | freedesktop.org/wiki/Software/fontconfig |
| Bash-completion | Improved shell completion | github.com/scop/bash-completion |
| Software | Description | Project Link |
|---|---|---|
| Nmcli | Network management CLI | developer.gnome.org/NetworkManager/stable/nmcli.html |
| Netstat | Network statistics | net-tools.sourceforge.net |
| Software | Description | Project Link |
|---|---|---|
| XDotool | X11 automation tool | github.com/jordansissel/xdotool |
| XClip | Clipboard management | github.com/astrand/xclip |
| Software | Description | Project Link |
|---|---|---|
| Docker | Container platform | docker.com |
| Docker Compose | Multi-container Docker | docs.docker.com/compose |
| Kubectl | Kubernetes CLI | kubernetes.io/docs/reference/kubectl |
| Software | Description | Project Link |
|---|---|---|
| DNF | Fedora package manager | dnf.readthedocs.io |
| Zypper | SUSE package manager | en.opensuse.org/Portal:Zypper |
| Pacman | Arch package manager | archlinux.org/pacman |
| Emerge | Gentoo package manager | wiki.gentoo.org/wiki/Portage |
| XBPS | Void Linux package manager | voidlinux.org/usage/xbps |
| Nix | NixOS package manager | nixos.org/manual/nix |
| Yay/Paru | AUR helpers | github.com/Jguer/yay / github.com/Morganamilo/paru |
| Software | Description | Project Link |
|---|---|---|
| Konsole | KDE terminal | konsole.kde.org |
| Yakuake | KDE drop-down terminal | kde.org/applications/system/org.kde.yakuake |
| Kitty | GPU-accelerated terminal | sw.kovidgoyal.net/kitty |
You can customize your environment even more by editing:
- Shell configuration:
.bashrc,.zshrc, or~/.config/fish/config.fish - Edit aliases:
.bash_aliases - Prompt:
~/.config/starship.toml - System info:
~/.config/fastfetch/config.jsonc
- Linux-specific Commands: Some commands (like netstat-based aliases) might not work correctly on all Linux distributions or might have different output formats.
- X11-dependent Features: Commands like clickpaste rely on X11 utilities (xdotool) which won't work in Wayland or headless environments.
- Hardware-dependent Commands: The cpu function assumes a specific format in /proc/stat, which might not be consistent across all Linux kernels.
- Terminal-specific Features: The Konsole and Yakuake configurations might not translate well to other terminal emulators.
Full uninstall — backs up your current configs, removes all DXSBash files,
restores Debian 13 defaults from /etc/skel/, and optionally reverts your
login shell to bash:
dxsbash-uninstall # interactive
dxsbash-uninstall --dry-run # preview only
dxsbash-uninstall --yes # non-interactive
dxsbash-uninstall --keep-repo # keep ~/linuxtoolbox/dxsbash
dxsbash-uninstall --no-restore # skip /etc/skel restoreOr, to only revert shell rc files to defaults without removing the repo:
sudo reset-shell-profile [username]You can also reach these from the installer menu:
./setup.sh # interactive menu: Install / Repair / Uninstall
./setup.sh --repair
./setup.sh --uninstallDXSBash was successfully compatibility tested with:
- Debian 13
- Konsole 25.04.2
- Yakuake 25.04.0
- XFce Terminal 1.0.4 (Need to change font settings to Firacode Nerd Font Regular)
- Kitty 0.26.5
If you find DXSBash valuable for your workflow, consider supporting its development:
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- GitHub: digitalxs/dxsbash
- Email: luis@digitalxs.ca
- Website: https://digitalxs.ca

