[Solved] Xfce terminal mess up

I opened the terminal and found that Fastfetch wasn’t displayed.

I went into settings apps:xfce4-terminal:preferences [Xfce Docs], checked run a custom command instead of my shell, and pasted in /usr/bin/fastfetch.

I closed the terminal and reopened it only to find the terminal opening for a split second, showing the Fastfetch details, and then closing.

Is there any way of preventing the terminal’s near instantaneous closure, or have I wrecked it?

System:
  Kernel: 6.6.14-2-lts arch: x86_64 bits: 64 compiler: gcc v: 13.2.1 clocksource: hpet
    available: acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-lts
    root=UUID=f60f6675-0606-42d7-9815-e0fbe7be0409 rw rootflags=subvol=@ quiet
    resume=UUID=d807950b-e01b-4ea5-b73f-d50f5ae401e3 loglevel=3 ibt=off
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm v: 4.18.0 vt: 7
    dm: LightDM v: 1.32.0 Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: VivoBook_ASUSLaptop X513UA_M513UA v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: X513UA v: 1.0 serial: <superuser required> UEFI: American Megatrends LLC.
    v: X513UA.312 date: 04/26/2022
Battery:
  ID-1: BAT0 charge: 15.8 Wh (45.8%) condition: 34.5/42.1 Wh (82.0%) power: 12.6 W volts: 11.8
    min: 11.8 model: ASUSTeK ASUS Battery type: Li-ion serial: N/A status: discharging cycles: 704
CPU:
  Info: model: AMD Ryzen 5 5500U with Radeon Graphics bits: 64 type: MT MCP arch: Zen 2 gen: 3
    level: v3 note: check built: 2020-22 process: TSMC n7 (7nm) family: 0x17 (23)
    model-id: 0x68 (104) stepping: 1 microcode: 0x8608103
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache: L1: 384 KiB
    desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB L3: 8 MiB desc: 2x4 MiB
  Speed (MHz): avg: 1872 high: 2692 min/max: 400/4056 scaling: driver: amd-pstate-epp
    governor: powersave cores: 1: 2082 2: 2395 3: 1624 4: 1368 5: 1545 6: 1418 7: 1384 8: 1347
    9: 2041 10: 1914 11: 2665 12: 2692 bogomips: 50320
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: AMD Lucienne vendor: ASUSTeK driver: amdgpu v: kernel arch: GCN-5 code: Vega
    process: GF 14nm built: 2017-20 pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:164c
    class-ID: 0300 temp: 39.0 C
  Device-2: Quanta USB2.0 HD UVC WebCam driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 3-3:3 chip-ID: 0408:30d4 class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.11 compositor: xfwm v: 4.18.0 driver: X: loaded: amdgpu
    unloaded: modesetting alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22") s-diag: 582mm (22.93")
  Monitor-1: eDP-1 mapped: eDP model: Samsung 0x4161 built: 2020 res: 1920x1080 hz: 60 dpi: 142
    gamma: 1.2 size: 344x194mm (13.54x7.64") diag: 395mm (15.5") ratio: 16:9 modes: max: 1920x1080
    min: 640x480
  API: Vulkan v: 1.3.276 layers: 5 device: 0 type: integrated-gpu name: AMD Radeon Graphics
    (RADV RENOIR) driver: mesa radv v: 23.3.4-arch1.2 device-ID: 1002:164c surfaces: xcb,xlib
    device: 1 type: cpu name: llvmpipe (LLVM 16.0.6 256 bits) driver: mesa llvmpipe
    v: 23.3.4-arch1.2 (LLVM 16.0.6) device-ID: 10005:0000 surfaces: xcb,xlib
  API: OpenGL Message: Unable to show GL data. glxinfo is missing.
Audio:
  Device-1: AMD Renoir Radeon 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: 1002:1637
    class-ID: 0403
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: ASUSTeK driver: N/A
    alternate: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci,
    snd_rpl_pci_acp6x, snd_pci_ps, snd_sof_amd_renoir, snd_sof_amd_rembrandt, snd_sof_amd_vangogh
    pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s bus-ID: 03:00.5
    chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h/19h HD Audio vendor: ASUSTeK 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.6 chip-ID: 1022:15e3
    class-ID: 0403
  API: ALSA v: k6.6.14-2-lts status: kernel-api tools: N/A
  Server-1: PipeWire v: 1.0.1 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: Intel Wi-Fi 6 AX210/AX211/AX411 160MHz driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:2725 class-ID: 0280
  IF: wlp1s0 state: down mac: <filter>
  IF-ID-1: enp3s0f3u2 state: up speed: 150 Mbps duplex: half mac: <filter>
Bluetooth:
  Device-1: Intel AX210 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
    mode: 1.1 bus-ID: 3-2:2 chip-ID: 8087:0032 class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 2 state: down bt-service: enabled,running rfk-block:
    hardware: no software: yes address: <filter> bt-v: 5.3 lmp-v: 12 status: discoverable: no
    pairing: no
Drives:
  Local Storage: total: 476.94 GiB used: 8.02 GiB (1.7%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: MZVLQ512HALU-00000 size: 476.94 GiB
    block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: FXV7101Q temp: 32.9 C scheme: GPT
Partition:
  ID-1: / raw-size: 156.25 GiB size: 156.25 GiB (100.00%) used: 7.35 GiB (4.7%) fs: btrfs
    dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%) used: 584 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 312.18 GiB size: 312.18 GiB (100.00%) used: 686.7 MiB (0.2%) fs: btrfs
    dev: /dev/nvme0n1p4 maj-min: 259:4
  ID-4: /var/log raw-size: 156.25 GiB size: 156.25 GiB (100.00%) used: 7.35 GiB (4.7%) fs: btrfs
    dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 156.25 GiB size: 156.25 GiB (100.00%) used: 7.35 GiB (4.7%) fs: btrfs
    dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 8 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/nvme0n1p3
    maj-min: 259:3
  ID-2: swap-2 type: zram size: 7.15 GiB used: 0 KiB (0.0%) priority: 100 comp: zstd
    avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 42.5 C mobo: N/A gpu: amdgpu temp: 40.0 C
  Fan Speeds (rpm): cpu: 0
Info:
  Processes: 360 Uptime: 18m wakeups: 0 Memory: total: 8 GiB note: est. available: 7.15 GiB
  used: 2.61 GiB (36.5%) Init: systemd v: 255 default: graphical tool: systemctl Compilers:
  gcc: 13.2.1 Packages: pm: pacman pkgs: 1268 libs: 394 tools: paru Client: shell wrapper
  v: 5.2.26-release inxi: 3.3.31
Garuda (2.6.22-1):
  System install date:     2024-01-29
  Last full system update: 2024-02-01
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       No/Undetected
  Failed units:            

Edit: Problem solved (I hope)

I dug through my system until I came across /home/colin/.config/xfce4/xfconf/xfce-perchannel-xml/

It contained the line /usr/bin/fastfetch so I backed up the file and deleted the offending line.

My terminal now seems to be working OK again - phew :cold_sweat:

I won’t be doing that trick again.

I think the custom command part should be remodified to your preferred shell

e.g

/usr/bin/bash

or

/usr/bin/fish

e.t.c
I suppose its closing after startup since its doing what its already been told to do, only open fastfetch.
Anway, glad you solved it.

Thanks for the info.

Does anyone know the correct command that opens Fastfetch when the terminal is opened?

fastfetch

1 Like

@Colin if you want to use the Fish shell, you are on the right track but the custom command should be /bin/fish. That should switch you to Fish when you open the terminal.

The missing piece here is the XFCE spin doesn’t have the garuda-fish-config package installed by default. Installing it will give you the familiar settings like shell aliases and the Fastfetch splash.

sudo pacman -S garuda-fish-config 

Afterward, I’m not sure but you may need to copy the config out of /etc/skel, or click to reset the Fish config in Garuda Assistant.

2 Likes

I installed garuda-fish-config then went into Garuda Assistant and changed the shell from bash to fish. and rebooted.

When I restarted the terminal I was directed to a help page which left me confused. I checked out /etc/skel and can see that this is what controls things, but I wasn’t sure what to do with it.

Would it be possible for the maintainer of Xfce to sort this so that anyone who downloads it has it working correctly by default?

Hmm, that’s not quite what I meant. Setting the shell with a custom command should be enough.

There is an option to reset the Fish config in there somewhere, or you can grab the config manually.

sudo cp /etc/skel/.config/fish/config.fish ~/.config/fish/config.fish

Me too. :sweat_smile:

What is the help page? What does it say?

1 Like

@BluishHumility you’re a genius :nerd_face:

Here’s my terminal when I open it now…

Huge thanks!

Could this be made standard for Garuda Xfce?

Actually, this suggestion has come up before. The XFCE maintainer has decided to keep Bash as the default shell, partly because that is what they prefer and partly because there is a desire to keep the spin simple; installing all the available bells and whistles runs somewhat contrary to this minimalist approach. My understanding is the Fish shell is perceived as an unneeded fanciness.

However, about a month ago they agreed to let us add garuda-fish-config to the default package set for XFCE:

Bash will remain the default shell for XFCE, but with this package Fish and all the related configs will be already set up on the back of a fresh install. All the user will need to do is change the shell to Fish, either as a system shell or with a custom command in the terminal.

Unfortunately the ISO you installed from was built before this commit, so you kind of had to do it the manual way. When the next XFCE ISO is released, there should be significantly less setup required.

3 Likes

As a suggestion, would it be possible to have a check box next to the default shell setting in the Garuda Manager, and when the fish shell is selected and the box is checked then Fastfetch is displayed in the terminal? If the box isn’t checked then Fastfetch isn’t shown in the terminal.

There are a few issues with this suggestion, but if I were to boil it down to its essence I would say the suggestion is essentially an XY problem. Just to clarify a few points:

Changing the default shell in Garuda Assistant runs chsh, which changes the login shell. You do not need to do this to change the shell you are using in your terminal. Most of the Garuda spins use Bash as the login shell but switch to Fish in the terminal using a custom command.

If running Fastfetch were tied to using Fish as the login shell, most users would not get it when they launch a terminal because the default for all spins is to use Bash as the login shell.

What determines if Fastfetch is shown or not when the terminal is opened is whether or not a call to Fastfetch is present in the shell config. For Bash, this config is ~/.bashrc (by the way, the default .bashrc file for Garuda Linux does not include a call to Fastfetch), and for Fish the config is ~/.config/fish/config.fish.

For people who want Fastfetch to run automatically when they open a new terminal, they can add the call into the relevant file, and for people who don’t, they can remove the call or comment it out.

In this way, it is just a small piece of maintenance for the user to manage on their own if their preference does not align with the default. In my opinion adding a utility to Garuda Assistant to try to toggle these two or three lines in the shell config on or off is probably more work than it is worth.

2 Likes

Thanks for the reply.

This was simply a thought that crossed my mind when you gave me the solution to my issue.

I’ll add your solution to my Xfce setup guide if that’s OK.

Yes, I think it is a worthy addition to the setup guide! For the setup guide I would recommend adding Fish as a custom command in the terminal instead of changing the shell.

To summarize:

  • Check if garuda-fish-config is installed (pacman -Qs garuda-fish-config). This will depend on when the ISO was built. If it is not, install it and then copy the Fish config from /etc/skel/.config/fish/config.fish to ~/.config/fish/config.fish (you can skip this if it is already installed).
  • Add a custom command to the terminal to switch to Fish when the terminal is launched (/usr/bin/fish).
1 Like

Got it. Will add later.

:saluting_face:

I have added it and some other stuff to the guide. Please could you check to see if I’ve made any errors.

1 Like

You forgot the custom command part I think.
Also since it’s a customisation guide, shouldn’t it be in “showcase” or “FAQs and tutorials”?

I’m not sure what this is.

You’re probably correct. I had no idea where to post it.

1 Like

This

1 Like

Thanks for the reply. I was sure it didn’t look right, but I was too cross-eyed to see where (it was really late).

Hopefully it is now corrected.

2 Likes

I moved it to FAQ and Tutorials
I think that’s the right place??

2 Likes