Can't change shell to zsh

I've tried chsh , sudo pacman -S zsh garuda-zsh-config chsh -s /bin/zsh cp /etc/skel/.zshrc ~ from this post in garuda forum, chsh -s /usr/bin/zsh from this post, and sudo usermod -s /bin/zsh arafat without any benefit.

my /etc/passwd output is

   1   | root:x:0:0::/root:/bin/bash
   2   │ bin:x:1:1::/:/usr/bin/nologin
   3   │ daemon:x:2:2::/:/usr/bin/nologin
   4   │ mail:x:8:12::/var/spool/mail:/usr/bin/nologin
   5   │ ftp:x:14:11::/srv/ftp:/usr/bin/nologin
   6   │ http:x:33:33::/srv/http:/usr/bin/nologin
   7   │ nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
   8   │ dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
   9   │ systemd-journal-remote:x:982:982:systemd Journal Remote:/:/usr/bin/nologin
  10   │ systemd-network:x:981:981:systemd Network Management:/:/usr/bin/nologin
  11   │ systemd-resolve:x:980:980:systemd Resolver:/:/usr/bin/nologin
  12   │ systemd-timesync:x:979:979:systemd Time Synchronization:/:/usr/bin/nologin
  13   │ systemd-coredump:x:978:978:systemd Core Dumper:/:/usr/bin/nologin
  14   │ uuidd:x:68:68::/:/usr/bin/nologin
  15   │ avahi:x:977:977:Avahi mDNS/DNS-SD daemon:/:/usr/bin/nologin
  16   │ git:x:976:976:git daemon user:/:/usr/bin/git-shell
  17   │ polkitd:x:102:102:PolicyKit daemon:/:/usr/bin/nologin
  18   │ rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/usr/bin/nologin
  19   │ tss:x:975:975:tss user for tpm2:/:/usr/bin/nologin
  20   │ prelockd:x:974:974::/home/prelockd:/bin/false
  21   │ memavaild:x:973:973::/home/memavaild:/bin/false
  22   │ named:x:40:40:BIND DNS Server:/:/usr/bin/nologin
  23   │ brltty:x:969:969:Braille Device Daemon:/var/lib/brltty:/usr/bin/nologin
  24   │ colord:x:968:968:Color management daemon:/var/lib/colord:/usr/bin/nologin
  25   │ dnsmasq:x:967:967:dnsmasq daemon:/:/usr/bin/nologin
  26   │ geoclue:x:966:966:Geoinformation service:/var/lib/geoclue:/usr/bin/nologin
  27   │ lightdm:x:965:965:Light Display Manager:/var/lib/lightdm:/usr/bin/nologin
  28   │ nm-openconnect:x:964:964:NetworkManager OpenConnect:/:/usr/bin/nologin
  29   │ nm-openvpn:x:963:963:NetworkManager OpenVPN:/:/usr/bin/nologin
  30   │ ntp:x:87:87:Network Time Protocol:/var/lib/ntp:/bin/false
  31   │ ldap:x:439:439:LDAP Server:/var/lib/openldap:/usr/bin/nologin
  32   │ openvpn:x:962:962:OpenVPN:/:/usr/bin/nologin
  33   │ rtkit:x:133:133:RealtimeKit:/proc:/usr/bin/nologin
  34   │ stunnel:x:16:16::/var/run/stunnel:/usr/bin/nologin
  35   │ usbmux:x:140:140:usbmux user:/:/usr/bin/nologin
  36   │ arafat:x:1000:1000:Arafat H Rakib:/home/arafat:/usr/bin/zsh
  37   │ guest:x:1001:1001:Guest:/home/guest/:/bin/sh
  38   │ cups:x:209:209:cups helper user:/:/usr/bin/nologin
  39   │ saned:x:960:960:SANE daemon user:/:/usr/bin/nologin
  40   │ mysql:x:959:1003::/home/mysql:/bin/bash

As you can see, the default shell for user arafat is zsh but when i open a terminal, it is not zsh rather bash.
Please someone help me to solve this issue.
thanks in advance

if i do su - arafat it does open a zsh shell, which means as per the /etc/passwd the user arafat's default shell is zsh.
something happens when i log in. :confused:

Have you rebooted?

1 Like

You use it in one line?


sudo pacman -S zsh garuda-zsh-config
chsh -s /bin/zsh
cp /etc/skel/.zshrc ~

Do you open new terminal?

The solution in post work fine, second was root shell.

So read arch wiki.

Yes, multiple times.

I opened a new terminal, rebooted my system. without any benefit.

Read again the proper way to change shell and do it again.
Change to bash, then change to zsh.
Until you make it :grinning_face_with_smiling_eyes: .
You are probably doing something wrong.
The method is successful for everyone else :man_shrugging:

1 Like

This means it's a setting in your terminal emulator. Check its settings.


I had xfce4 and alacrity installed and they showed this behavior.
just installed kitty to verify this. BOOM kitty is starting zsh :open_mouth: :confused:

Right. So, it's in Alacritty's settings ($HOME/.config/alacritty.xml).

The only lines in that file that call bash are commented out

# Default:
#   - (macOS) /bin/bash --login
#   - (Linux/BSD) user login shell
#   - (Windows) powershell
#  program: /bin/bash
#  args:
#    - --login


what about xfce4-terminal? what about xfce4-terminal? :confused: found no settings in ~/.config/xfce4/terminal/terminalrc which specify default shell as bash :confused:

Solution is in post # 2 not in # 12.

I mark-it-solved !

1 Like

Yesterday i added exec zsh in by .bashrc but forgot about it. after removing that line and rebooting, my default shell is still bash when opening alacritty or xfce4-terminal.
Please help me solve this issue.

IIRC there is a flag on alacritty to use fish when starting. I seem to remember removing that, and it started my default which is zsh.

Check that, and make sure alacritty isn't set to always use fish, or some other shell.

Now I feel silly, @jonathon already posted about that above.