Terminals and shells on Fedora 45: Ptyxis plus bash, with tmux already installed
The terminal stack on Fedora 45 Workstation is not what most people remember. Measure it before configuring anything.
What is installed
Section titled “What is installed”echo $SHELLbash --version | head -1rpm -q ptyxis gnome-terminal tmux zsh fish/bin/bashGNU bash, version 5.3.15(1)-release (x86_64-redhat-linux-gnu)ptyxis-50.1-6.fc45.x86_64package gnome-terminal is not installedtmux-3.7c-1.fc45.x86_64package zsh is not installedpackage fish is not installed| Item | Actual state on F45 Workstation |
|---|---|
| Terminal emulator | Ptyxis 50.1 |
| GNOME Terminal | not installed |
| Login shell | bash 5.3.15 |
| tmux | preinstalled, 3.7c |
| zsh / fish | not installed |
Other options in the repository
Section titled “Other options in the repository”dnf list --available zsh fish kitty alacritty| Package | Version |
|---|---|
zsh | 5.9.2 |
fish | 4.6.0 |
kitty | 0.48.2 |
alacritty | 0.17.0 |
Installing zsh does not change your shell:
sudo dnf install zshchsh -s /usr/bin/zshchsh changes the login shell, so it takes effect on your next login.
tmux: already there
Section titled “tmux: already there”tmux new -s work # start a session named worktmux ls # list sessionstmux attach -t work # reattachtmux kill-session -t workThe default prefix is Ctrl + b:
| Action | Keys |
|---|---|
| split horizontally | Ctrl+b then % |
| split vertically | Ctrl+b then " |
| move between panes | Ctrl+b then an arrow key |
| detach | Ctrl+b then d |
After detaching the session keeps running, which is why tmux survives dropped SSH connections.
A configuration that covers the basics
Section titled “A configuration that covers the basics”~/.tmux.conf:
set -g mouse onset -g base-index 1setw -g pane-base-index 1set -g history-limit 50000set -g escape-time 10Reload it:
tmux source-file ~/.tmux.confmouse onenables scrolling and mouse selectionbase-index 1numbers windows and panes from 1escape-time 10removes the Esc delay that annoys vim users
bash settings worth having
Section titled “bash settings worth having”Append to ~/.bashrc:
HISTSIZE=100000HISTFILESIZE=200000HISTCONTROL=ignorebothshopt -s histappend
bind "set completion-ignore-case on"
alias ll='ls -alF'alias gs='git status -sb'shopt -s histappend matters: without it, several open terminals overwrite each other’s history.
Common traps
Section titled “Common traps”| Symptom | Cause |
|---|---|
chsh had no effect | you did not log in again |
Ctrl+b does nothing inside tmux | the prefix is captured by a nested program; change prefix in ~/.tmux.conf |
| Chinese renders as boxes | the terminal font has no CJK glyphs |
| processes die when the terminal closes | they were not running inside tmux |
gnome-terminal not found | F45 ships Ptyxis; dnf install gnome-terminal if you want the old one |
Related pages
Section titled “Related pages”- Chinese input — prerequisite for typing Chinese in a terminal
- Editors — vim, neovim and graphical editors
- SSH and keys — remote sessions pair well with tmux
- Official: tmux wiki