Skip to content
Search Fedora

    Browse this documentation

    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.

    Ptyxis, the bash login shell and the preinstalled tmux, layered

    Terminal window
    echo $SHELL
    bash --version | head -1
    rpm -q ptyxis gnome-terminal tmux zsh fish
    /bin/bash
    GNU bash, version 5.3.15(1)-release (x86_64-redhat-linux-gnu)
    ptyxis-50.1-6.fc45.x86_64
    package gnome-terminal is not installed
    tmux-3.7c-1.fc45.x86_64
    package zsh is not installed
    package fish is not installed
    ItemActual state on F45 Workstation
    Terminal emulatorPtyxis 50.1
    GNOME Terminalnot installed
    Login shellbash 5.3.15
    tmuxpreinstalled, 3.7c
    zsh / fishnot installed
    Terminal window
    dnf list --available zsh fish kitty alacritty
    PackageVersion
    zsh5.9.2
    fish4.6.0
    kitty0.48.2
    alacritty0.17.0

    Installing zsh does not change your shell:

    Terminal window
    sudo dnf install zsh
    chsh -s /usr/bin/zsh

    chsh changes the login shell, so it takes effect on your next login.

    Terminal window
    tmux new -s work # start a session named work
    tmux ls # list sessions
    tmux attach -t work # reattach
    tmux kill-session -t work

    The default prefix is Ctrl + b:

    ActionKeys
    split horizontallyCtrl+b then %
    split verticallyCtrl+b then "
    move between panesCtrl+b then an arrow key
    detachCtrl+b then d

    After detaching the session keeps running, which is why tmux survives dropped SSH connections.

    ~/.tmux.conf:

    Terminal window
    set -g mouse on
    set -g base-index 1
    setw -g pane-base-index 1
    set -g history-limit 50000
    set -g escape-time 10

    Reload it:

    Terminal window
    tmux source-file ~/.tmux.conf
    • mouse on enables scrolling and mouse selection
    • base-index 1 numbers windows and panes from 1
    • escape-time 10 removes the Esc delay that annoys vim users

    Append to ~/.bashrc:

    Terminal window
    HISTSIZE=100000
    HISTFILESIZE=200000
    HISTCONTROL=ignoreboth
    shopt -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.

    SymptomCause
    chsh had no effectyou did not log in again
    Ctrl+b does nothing inside tmuxthe prefix is captured by a nested program; change prefix in ~/.tmux.conf
    Chinese renders as boxesthe terminal font has no CJK glyphs
    processes die when the terminal closesthey were not running inside tmux
    gnome-terminal not foundF45 ships Ptyxis; dnf install gnome-terminal if you want the old one