Need Help Changing Shell in Garuda Linux Terminal

Hey everyone! I’m new to Garuda Linux, and I have to say I’m blown away by how awesome this distribution is so far. However, I’ve run into a little snag that I’m hoping some of you can help me overcome.

I’m loving the customization that Garuda Linux offers, but there’s one thing I haven’t been able to change: the shell in the terminal! After installing Zsh following the usual steps (sudo pacman -S zsh and then chsh -s /bin/zsh), I encountered an issue. Every time I tried to change it, it would show me this message:

Changing shell for root.
chsh: Shell change not applied.

I’m a bit lost here! Have any of you faced this issue before? Is there something specific I need to do in Garuda Linux to successfully change the shell?

Any help would be greatly appreciated! Thanks in advance!

Welcome to the Forum!! :slight_smile:

It should say Changing shell for $USER ($USER = your standard user), not root.

Are you opening the terminal window under your user or root?
Which terminal, Konsole or something else?

I’m saying Konsole cuz I assume you use KDE. For that, and many other reasons, plz post the output of your garuda-inxi from terminal prompt.

1 Like

Thank you for responding. I’m having trouble changing the shell interpreter in Garuda. I’ve tried to make the change both as root and as a regular user, using the Konsole terminal, but I always encounter the same error.

As requested, here is the output of the garuda-inxi command:

System:
Kernel: 6.9.3-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
clocksource: hpet avail: acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=319605c3-d8ae-4240-8bfd-78bf50efc600 rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.0.5 tk: Qt v: N/A info: frameworks v: 6.2.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Intel model: X79 v: V1.3 serial: <superuser required>
uuid: <superuser required> UEFI: American Megatrends v: X79GA00K
date: 12/14/2020
CPU:
Info: model: Intel Xeon E5-2640 0 bits: 64 type: MT MCP arch: Sandy Bridge
level: v2 built: 2010-12 process: Intel 32nm family: 6 model-id: 0x2D (45)
stepping: 7 microcode: 0x71A
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
L3: 15 MiB desc: 1x15 MiB
Speed (MHz): avg: 2763 high: 3000 min/max: 1200/3000 scaling:
driver: intel_cpufreq governor: performance cores: 1: 1733 2: 3000 3: 3000
4: 3000 5: 3000 6: 2737 7: 1886 8: 3000 9: 3000 10: 2801 11: 3000 12: 3000
bogomips: 60002
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA GA104 [GeForce RTX 3060] driver: nvidia v: 550.78
alternate: nouveau,nvidia_drm non-free: 550.xx+ status: current (as of
2024-04; EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
built: 2020-2023 pcie: gen: 2 speed: 5 GT/s lanes: 16 link-max: gen: 4
speed: 16 GT/s ports: active: none off: DP-1,HDMI-A-1 empty: DP-2,DP-3
bus-ID: 03:00.0 chip-ID: 10de:2487 class-ID: 0300
Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.0
compositor: kwin_wayland driver: X: loaded: nvidia unloaded: modesetting
alternate: fbdev,nouveau,nv,vesa gpu: nvidia d-rect: 3840x1080
display-ID: 0
Monitor-1: DP-1 pos: right res: 1920x1080 size: N/A modes: N/A
Monitor-2: HDMI-A-1 pos: primary,left res: 1920x1080 size: N/A modes: N/A
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: nvidia
x11: drv: zink inactive: device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.78
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3060/PCIe/SSE2
memory: 11.72 GiB display-ID: :1.0
API: Vulkan v: 1.3.279 layers: 7 device: 0 type: discrete-gpu
name: NVIDIA GeForce RTX 3060 driver: nvidia v: 550.78 device-ID: 10de:2487
surfaces: xcb,xlib,wayland
Audio:
Device-1: Intel C600/X79 series High Definition Audio driver: snd_hda_intel
v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1d20 class-ID: 0403
Device-2: NVIDIA GA104 High Definition Audio driver: snd_hda_intel
v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
speed: 16 GT/s bus-ID: 03:00.1 chip-ID: 10de:228b class-ID: 0403
API: ALSA v: k6.9.3-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.0.7 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000
bus-ID: 07:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169
v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: c000 bus-ID: 08:00.0
chip-ID: 10ec:8136 class-ID: 0200
IF: enp8s0 state: down mac: <filter>
Info: services: NetworkManager,systemd-timesyncd
Bluetooth:
Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
v: 0.8 type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-1.2:4
chip-ID: 0a12:0001 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: N/A
Drives:
Local Storage: total: 1.14 TiB used: 26.69 GiB (2.3%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Lexar model: 256GB SSD
size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: .0 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Toshiba model: DT01ACA100
size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: A8L0 scheme: GPT
Partition:
ID-1: / raw-size: 238.17 GiB size: 238.17 GiB (100.00%)
used: 26.69 GiB (11.2%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 584 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 238.17 GiB size: 238.17 GiB (100.00%)
used: 26.69 GiB (11.2%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 238.17 GiB size: 238.17 GiB (100.00%)
used: 26.69 GiB (11.2%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 238.17 GiB size: 238.17 GiB (100.00%)
used: 26.69 GiB (11.2%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 23.39 GiB used: 83 MiB (0.3%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 45.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Memory: total: 24 GiB available: 23.39 GiB used: 6.56 GiB (28.0%)
Processes: 339 Power: uptime: 46m states: freeze,standby,mem,disk
suspend: s2idle avail: shallow wakeups: 0 hibernate: platform
avail: shutdown, reboot, suspend, test_resume image: 9.31 GiB
services: org_kde_powerdevil, power-profiles-daemon, upowerd Init: systemd
v: 255 default: graphical tool: systemctl
Packages: pm: pacman pkgs: 1888 libs: 544 tools: octopi,pamac,paru
Compilers: clang: 17.0.6 gcc: 14.1.1 Shell: garuda-inxi default: fish
v: 3.7.1 running-in: konsole inxi: 3.3.34
Garuda (2.6.26-1):
System install date:     2024-06-09
Last full system update: 2024-06-09 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:

I appreciate any suggestions or solutions you can provide. Has anyone encountered this issue before or have any ideas on how to fix it?

Thank you!

FYI don’t forget to reboot.

If you change for bash, for testing and then exit, does it work?

EDIT: If you installed zsh and did not reboot, I suggest you reboot and try chsh again.

1 Like

I have restarted many times and even disabled SDDM, but I still have the same problem: only the preconfigured shell, which is fish, is shown.

Here’s what I’ve tried so far:

  1. Restarting the system multiple times.
  2. Disabling SDDM.
  3. Temporarily switching to bash using the bash command and then exiting with exit.
  4. Attempting to change the default shell with chsh -s $(which zsh) (or bash), but without success.

It seems that any changes I make are not applied, and fish continues to start as the default shell. Any other suggestions or something I might be missing?

Thanks in advance for the help.

It says this when you are trying to change the shell to whatever shell it is already set to use.

That is to say: you already successfully changed the shell with this command.

Fish is not actually set as the shell in Garuda, rather the default Konsole profile switches to Fish automatically when you open it. The shell is reported as Fish due to an environment variable in ~/.config/fish/config.fish. The “true” shell is Bash.

If you want to stop automatically switching to Fish when you open the terminal, either change that setting in the Konsole profile or make a new default profile.

2 Likes

One thing to try after you restart id go to garuda assistant an pick zsh.

if you are using konsole as a terminal. There’s one more step, go int configure konsole either the setting button at the top of the screen or hamburger menu. can also use Ctrl + Shift + ,


You can make a profile or edit the one set to default.


Change /bin/fish to /bin/zsh or bash. apply an restart the terminal

Set the profile to default if you made a new one.

*Also forgive my theme didn’t have time to swap to a different user for screenshots

1 Like

Thank you all so much for your help! Seriously, you guys are the best. Now I just need to finish the customization and I’ll be all set. If you have any additional tips for customization, that would be awesome! Thanks again. XD

Which of the post would you identify as the best solution?
This will allow people with same question to quickly find that solution when they see the thread.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.