3

I've been using Bash for a long time on Fedora with Gnome, and recently switched to Arch Linux, Plasma and ZSH. I set up zsh, file, used chsh -s $(which zsh), and it works. However, every time I run Konsole bash runs automatically, and I have to manually call zsh. This is what I do know:

echo $SHELL returns /bin/bash

cat /etc/passwd | grep $LOGNAME shows my shells as /usr/bin/zsh

When I log in on a tty (no graphical), ZSH runs by default.

Update 1: The "Preferences/Configure/General" tab does not have a "Command" option, and there is no GUI option in User settings that has to do with my shell.

2
  • Did you restart KDE since changing your shell?
    – jordanm
    Commented Mar 21, 2019 at 1:05
  • Just now, and now it worked perfectly.
    – Jordan
    Commented Mar 22, 2019 at 23:50

2 Answers 2

2

See Settings>Configure Konsole>Profiles.

Edit the relevant profile and change the Command field.

1

The way I see, KDE and Konsole should respect the default option. To enforce that you can use this little script:

$ sudo vi /usr/local/bin/shell.sh

#!/bin/sh

PSHELL=$(getent passwd $USER|cut -d: -f7)

eval "$PSHELL"

Allow it to run with:

$ sudo chmod +x /usr/local/bin/shell.sh

Then go to your Konsole profile

Settings>Configure Konsole>Profiles>Edit Profile>General Tab>Command

Change /bin/bash to /usr/local/bin/shell.sh

From now on, if you use chsh -s /bin/someshell, Konsole will respect your choice.

To see the shells available to you use:

cat /etc/shells

Sample output:

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/bin/zsh
/usr/bin/zsh

Note 1: it is not recommended to add shell.sh in /etc/shells. Let it be just for Konsole config.

Note 2: You can save it in a different folder if you prefer. For example, if you have only one user, a good place would be ~/bin/shell.sh and now you don't even need sudo.

2
  • great idea, but it appears not to propagate the "login" attribute, which is conveyed by setting argv[0] to start with a '-'. Commented Oct 24, 2022 at 19:47
  • "konsole" is a KDE application, and I don't think it can be used as login shell.
    – DrBeco
    Commented Jun 27, 2023 at 23:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .