#!/bin/sh # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Affero General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more # details. # A list of possible terminal emulators, sorted by preference TERMINALS=" alacritty termite st urxvt rxvt xterm " main() { # Handle opts while getopts ":hc" opt do case "$opt" in c) OPT_NO_HIST=1 ;; h) usage && exit 0 ;; *) printf "Invalid option passed: %s\n" "$OPTARG" >&2 ;; esac done shift $(( OPTIND - 1 )) # Unset history related environment variables if requested if [ "$OPT_NO_HIST" ] then unset HISTFILE unset HISTSIZE unset SAVEHIST export TERM_NO_HISTORY=1 fi # Check the list of possible terminal emulators, and exec the first one # that's available for terminal in $TERMINALS do command -v "$terminal" > /dev/null || continue exec "$terminal" "$@" done # No usable terminal found, print error printf "No suitable terminal emulator found. The following were tried:\n" for terminal in $TERMINALS do printf "\t%s\n" "$terminal" done exit 127 } usage() { cat <