Command Line
Bluefin is designed to be used by normal people, but the command line is our passion. Therefore we invest in the command line experience, knowing that most people will never see it. Slay out.
Installing Applications
brew (Also known as Homebrew) is the package manager used for installing command line applications.
Note that the cask functionality in homebrew is macOS specific and non functional in Bluefin, Flatpak is used instead. Other package management tools like uv, pixi, asdf, and mise are available and work perfectly fine when installed via homebrew. Package managers inside of package managers ... hey look it was like that when we got here, this one isn't our fault! They do work great though, and some users may prefer those tools, so you have the option to forge your own path.
Generally speaking, if you need a tool or utility, use homebrew. If you need a library and dependencies for development work, use a container. This keeps everything nice and clean.
bluefin-cli
ujust bluefin-cli will install Bluefin's opt-in command line experience using modern tools with great features that make us more efficient. It is designed to be turned on and off.
We love our command line tools. This is intended to be a rendition of what a brand new terminal experience would look like with modern tooling. The traditional tooling is always a toggle away. Keep up with the cool kids without sacrificing your "known good" kit.
The following applications are installed when you run ujust bluefin-cli:
| Name | Description |
|---|---|
| atuin | Improved shell history for zsh, bash, fish and nushell |
| bat | Clone of cat(1) with syntax highlighting and Git integration |
| bash-preexec | Bash preexec and precmd functions à la Zsh |
| bbrew | TUI for Homebrew package management |
| chezmoi | Manage your dotfiles across multiple diverse machines, securely |
| direnv | Load/unload environment variables based on $PWD |
| dysk | Get information on your mounted disks |
| eza | Modern, maintained replacement for ls |
| fd | Simple, fast and user-friendly alternative to find |
| gh | GitHub command-line tool |
| glab | Open-source GitLab command-line tool |
| rg | Search tool like grep and The Silver Searcher (ripgrep) |
| starship | Cross-shell prompt for astronauts |
| shellcheck | Static analysis and lint tool, for (ba)sh scripts |
| stress-ng | Stress test a computer system in various selectable ways |
| tealdeer | Very fast implementation of tldr in Rust |
| trash-cli | Command-line interface to the freedesktop.org trashcan |
| television | General purpose fuzzy finder TUI |
| uutils-coreutils | Cross-platform Rust rewrite of the GNU coreutils |
| ugrep | Ultra fast grep with query UI, fuzzy search, archive search, and more |
| yq | Process YAML, JSON, XML, CSV and properties documents from the CLI |
| zoxide | Shell extension to navigate your filesystem faster |
The community may add new tools over time, re-running ujust bluefin-cli will pull in the new tools.
What greatness have I been missing? Being set in my old, tired ways.
-- Bill Childers (Probably, this quote is made up)
Bold Brew
Bold Brew is included as a text based user interface (TUI) to Brew. This application features full package management for homebrew in a nice nerdy interface:
Message of the Day and fastfetch
The project prefers to have functional bling that is slick but it must also serve a purpose. New terminals (Ctrl+Alt+Enter) display a message of the day with some basic information:
The bluefin-dx:beta line is the name of the OS image, and is a good way to remind yourself if you're on a pinned image as well as a quick reference to common commands. You can toggle it on and off with ujust toggle-user-motd. Note that the Tip rotates regularly in order to spread useful tips to the community.
We love to flex our machines and software. Run fastfetch:
This screen will show you hardware information, as well as your username, machine name, and kernel version. Each Bluefin image has a "Forged On" date, commemorating the initial installation of the machine.
Note that the terminal color scheme will automatically match your desktop accent color. Restart your terminal after setting the color for the setting to apply.
Terminal Configuration
Changing the default terminal shell
Bluefin uses bash by default but also ships with fish (Donate) and zsh on the image for convenience.
The Bluefin team lacks expertise in both fish and zsh, contributions to help us reach feature parity would be welcome and appreciated!
Bluefin ships Ptyxis as the default terminal. It shows up as Terminal in the menu. It is strongly recommended that you change your shell via the terminal emulator instead of system-wide. Click on the Terminal settings and edit your profile:
Then select "Use Custom Command" and then add the shell you want to use. /usr/bin/fish and /usr/bin/zsh are both included on the image:
Using bluefin-cli with alternate shells
You can enable bluefin-cli for fish or zsh by pre-pending an override to the $SHELL variable to the command with:
SHELL=fish ujust bluefin-cli
SHELL=zsh ujust bluefin-cli
# Or do it all at once from bash with
ujust bluefin-cli && SHELL=fish ujust bluefin-cli && SHELL=zsh ujust bluefin-cli
Fonts
Homebrew is also used for installing fonts, browse this page and install your favorite fonts. They will be copied into ~/.local/share/fonts
- Microsoft Fonts: Follow these instructions to install Office fonts if you need them. You can skip the homebrew installation instructions since it is installed already.