So, does garuda not like it when I add .local/bin to the $PATH?

New to garuda. .localbin doesn’t seem to be in the path, so I added it in my bash config. Applications don’t register it (I need them to notice, specifically, apps installed via pipx, which go there) so I went one step further and added it to /etc/environment. And…

in function 'fish_command_not_found' with arguments 'pacman -Fq /usr/bin/sed'
called on line 1 of file /usr/share/doc/find-the-command/ftc.fish
/usr/share/doc/find-the-command/ftc.fish (line 124):
pacman $args "/usr/bin/$cmd" 2>/dev/null
^~~~~^
in function '_cnf_command_packages' with arguments 'sed'
called on line 1 of file /usr/share/doc/find-the-command/ftc.fish
in command substitution
called on line 201 of file /usr/share/doc/find-the-command/ftc.fish
in function 'fish_command_not_found' with arguments 'sed -n /^DBPath\[\[:space:\]\]\*=/\{s/^\[^=\]\*=\[\[:space:\]\]\*\\\(.\*\[^\[:space:\]\]\\\)\[\[:space:\]\]\*/\\1/p\;q\} /etc/pacman.conf'
called on line 1 of file /usr/share/doc/find-the-command/ftc.fish
/usr/share/doc/find-the-command/ftc.fish (line 3): The call stack limit has been exceeded. Do you have an accidental infinite loop?

Fish don’t like it none. It’s a lot longer but it’s all fish plugins complaining about “infinite loops”, I’m guessing path nested in itself?

So what’s the deal? Is there any way to add it to the path that won’t break the terminal?

Perfunctionary inxie as it seems to be a requirement.

System:
Kernel: 6.13.8-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=cce5385e-0cf2-4742-a89a-7d10987a6e10 rw rootflags=subvol=@
quiet resume=UUID=36341f06-6529-4c99-af3f-48c6178bfdce loglevel=3 ibt=off
Desktop: KDE Plasma v: 6 tk: Qt v: N/A wm: kwin_x11 vt: 2 dm: SDDM
Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: ASUSTeK model: PRIME A320M-K v: Rev X.0x
serial: <superuser required> part-nu: SKU uuid: <superuser required>
UEFI: American Megatrends v: 6232 date: 09/29/2024
CPU:
Info: model: AMD Ryzen 3 3200G with Radeon Vega Graphics bits: 64 type: MCP
arch: Zen/Zen+ note: check gen: 1 level: v3 note: check built: 2019
process: GF 12nm family: 0x17 (23) model-id: 0x18 (24) stepping: 1
microcode: 0x8108109
Topology: cpus: 1x dies: 1 clusters: 1 cores: 4 smt: <unsupported> cache:
L1: 384 KiB desc: d-4x32 KiB; i-4x64 KiB L2: 2 MiB desc: 4x512 KiB L3: 4 MiB
desc: 1x4 MiB
Speed (MHz): avg: 2110 min/max: 1400/3600 boost: enabled scaling:
driver: acpi-cpufreq governor: schedutil cores: 1: 2110 2: 2110 3: 2110
4: 2110 bogomips: 28801
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
Vulnerabilities: <filter>
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Picasso/Raven 2 [Radeon Vega
Series / Radeon Mobile Series] 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 ports: active: DP-1,HDMI-A-1 empty: none
bus-ID: 08:00.0 chip-ID: 1002:15d8 class-ID: 0300 temp: 47.0 C
Display: x11 server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6
compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 3286x1080 s-dpi: 96 s-size: 867x285mm (34.13x11.22")
s-diag: 913mm (35.93")
Monitor-1: DP-1 mapped: DisplayPort-0 pos: bottom-r
model: LG (GoldStar) E1942 serial: <filter> built: 2012 res: mode: 1366x768
hz: 60 scale: 100% (1) dpi: 85 gamma: 1.2 size: 410x230mm (16.14x9.06")
diag: 470mm (18.5") ratio: 16:9 modes: max: 1366x768 min: 720x400
Monitor-2: HDMI-A-1 mapped: HDMI-A-0 pos: primary,top-left
model: LG (GoldStar) FULL HD serial: <filter> built: 2024 res:
mode: 1920x1080 hz: 75 scale: 100% (1) dpi: 102 gamma: 1.2
size: 480x270mm (18.9x10.63") diag: 551mm (21.7") ratio: 16:9 modes:
max: 1920x1080 min: 720x400
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi x11:
drv: radeonsi inactive: wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.2-arch1.2
glx-v: 1.4 direct-render: yes renderer: AMD Radeon Vega 8 Graphics
(radeonsi raven ACO DRM 3.61 6.13.8-zen1-1-zen) device-ID: 1002:15d8
memory: 1.95 GiB unified: no
API: Vulkan v: 1.4.309 layers: 9 device: 0 type: integrated-gpu name: AMD
Radeon Vega 8 Graphics (RADV RAVEN) driver: N/A device-ID: 1002:15d8
surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe (LLVM 19.1.7 256
bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP
Audio vendor: ASUSTeK PRIME B450M-A driver: snd_hda_intel v: kernel pcie:
gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 08:00.1 chip-ID: 1002:15de
class-ID: 0403
Device-2: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
vendor: ASUSTeK PRIME B450M-A driver: snd_hda_intel v: kernel pcie: gen: 3
speed: 8 GT/s lanes: 16 bus-ID: 08:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-3: Generalplus USB Audio Device
driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 3-3:2 chip-ID: 1b3f:2008 class-ID: 0300
API: ALSA v: k6.13.8-zen1-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 1.4.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: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK RTL8111H driver: r8169 v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 05:00.0 chip-ID: 10ec:8168
class-ID: 0200
IF: enp5s0 state: up speed: 1000 Mbps duplex: full 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: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-5:2
chip-ID: 0a12:0001 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.0
lmp-v: 9 status: discoverable: no pairing: no class-ID: 6c0104
Drives:
Local Storage: total: 8.21 TiB used: 6.35 TiB (77.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: TeamGroup model: TM8FPW001T
size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: ERFM11.0 temp: 44.9 C
scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Western Digital
model: WD40PURZ-85AKKY0 size: 3.64 TiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
fw-rev: 0B80 scheme: GPT
ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST4000NM0035-1V4107
size: 3.64 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: TN05 scheme: GPT
Partition:
ID-1: / raw-size: 938.66 GiB size: 938.66 GiB (100.00%)
used: 101.39 GiB (10.8%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 938.66 GiB size: 938.66 GiB (100.00%)
used: 101.39 GiB (10.8%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 938.66 GiB size: 938.66 GiB (100.00%)
used: 101.39 GiB (10.8%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 938.66 GiB size: 938.66 GiB (100.00%)
used: 101.39 GiB (10.8%) 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: zram size: 13.55 GiB used: 5.84 GiB (43.1%)
priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842
max-streams: 4 dev: /dev/zram0
ID-2: swap-2 type: partition size: 14.91 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
System Temperatures: cpu: 56.8 C mobo: N/A gpu: amdgpu temp: 56.0 C
Fan Speeds (rpm): N/A
Info:
Memory: total: 16 GiB note: est. available: 13.55 GiB used: 8.72 GiB (64.4%)
Processes: 347 Power: uptime: 13h 5m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 5.41 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
tool: systemctl
Packages: pm: pacman pkgs: 1991 libs: 447 tools: octopi,paru pm: flatpak
pkgs: 0 Compilers: clang: 19.1.7 gcc: 14.2.1 Shell: garuda-inxi
default: fish v: 4.0.1 running-in: konsole inxi: 3.3.37
Garuda (2.7.2-1):
System install date:     2025-03-26
Last full system update: 2025-03-27 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:

Hi

im not sure if i got you right but to this part here:

(I need them to notice, specifically, apps installed via pipx, which go there) so I went one step further and added it to /etc/environment. And…

did you mean this ?

Yep. And adding export PATH=~/.local/bin:$PATH to .profile, or /etc/environment freaks out the default shell.

okay? What do you mean with it freaks out the default shell ? which actions you did?

did install these fresh with pipx

cowsay -t hello
_____
| hello |
=====
\
\
^__^
(oo)\_______
(__)\       )\/\
||----w |
||     ||

╭─duke@duke in ~ took 0s
╰─λ pycowsay hello

-----
< hello >
-----
\   ^__^
\  (oo)\_______
(__)\       )\/\
||----w |
||     ||

I already said what, it makes every plugin used by the default shell spit out infinite loop errors.

If you are using Fish, it should be already added to PATH unless you took these lines out of your Fish config: garuda-fish-config/config.fish · main · Garuda Linux 🦅 / PKGBUILDs · GitLab

I would not do that, it should be fairly easy to set up in the shell without setting this system-wide. Also you do not use export in /etc/environment, you just set the values of the variables directly. And you cannot use the $PATH variable (or any other shell variable expansion) inside the /etc/environment file.

Try setting your system back as it was, and let’s first of all take a look at what the PATH actually is.

echo $PATH
1 Like

I already have .local/bin in the shell’s path. I’m trying to make it systemwide so that, for example, mpv sees yt-dlp installed through pip.

If you want to add ~/.local/bin to PATH system-wide by adding it to /etc/environment, you need to set it explicitly without using shell variables.

For example:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/Duendelnexistente/.local/bin"

But in general, you should not be adding system-wide settings that depend on things you are keeping in your user’s home directory.

An easier and cleaner solution would be to add a symlink to /usr/local/bin, which is already on PATH and is generally a more appropriate place to keep custom binaries you want to be accessible system-wide.

sudo ln -s ~/.local/bin/yt-dlp /usr/local/bin/yt-dlp
3 Likes

Yes its like BluishHumility says.

Its how you installed pipx correctly for using systemwide and adding the path correctly.

i did it a bit others on my kde with the terminal. ive downloaded a video and started also the video over the terminal without issues.

╰─λ mpv /home/duke/In\ ********\ \[OFFICIAL\ MUSIC\ VIDEO\]\ \[******].webm
Resuming playback. This behavior can be disabled with --no-resume-playback.
● Video  --vid=1               (vp9 1920x1080 23.9793 fps) [default]
● Audio  --aid=1  --alang=eng  (opus 2ch 48000 Hz) [default]
Cannot load libcuda.so.1
Using hardware decoding (vaapi).
AO: [pipewire] 48000Hz stereo 2ch floatp
VO: [gpu] 1920x1080 vaapi[nv12]
Saving state.
AV: 00:00:11 / 00:05:02 (4%) A-V:  0.000
Exiting... (Quit)

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