Skip to main content

Command Line

Bluefin is designed to be used by normal people, but the command line is our passion. Therefore we invest in our command line experience, knowing that most people will never see it. Slay out.

Installing Applications

The brew application is the package manager used for installing command line applications in Bluefin.

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 we give you the option to forge your own path.

Don't cross the streams

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.

A greenfield terminal experience

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.

It comes with some fantastic CLI tools:

  • atuin for shell history
  • direnv to load and unload environment variables depending on the current directory.
  • eza as a replacement ls
  • fd for find
  • fzf for command line fuzzy finding
  • ripgrep for search
  • tealdeer for tldr
  • television - a blazing fast general-purpose fuzzy finder TUI - (tv)
  • trash-cli to manage the system trashcan. (Strongly recommended for new CLI users)
  • ugrep for grep
  • uutils as coreutils
  • yq for yaml, json, and xml processing
  • zoxide as cd

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)

image

Message of the Day and fastfetch

We prefer 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:

image

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:

image

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.

image

Of course it does

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 and zsh on the image for convenience.

Help Wanted

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:

Ptyxis → Preferences → Profiles → A Profile Setting → Edit...

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:

Ptyxis → Preferences → Profiles → A Profile Setting → Edit... → Shell → Custom Command

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.