Where do you set the environmental variables? If they are set and read AFTER the other applications started with the old value, then they will off course write into ~/.cache. Does it work, if you put the variables into "~/.bash_profile"?
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I don't use bash. As there is no way to fix bash leaving dotfiles in home lol.
I use zsh with $ZDOTDIR
set to $XDG_CONFIG_HOME/zsh
and there my .zprofile
contains my environment variables that I posted. zsh is my login shell so they get applied once I login.
But you made a good point, I will test defining XDG_CACHE_HOME in /etc/profile just to see if that fixes the issue.
There is also a dedicated "/etc/environment" , but that is systemwide for all users (not sure if this applies to root too). But that is the first in the chain, in case you want test it. Therefore it does not know any variables like $HOME, only hardcoded values.
Edit: Also maybe there are programs that does not respect XDG and have hardcoded paths to ~/.cache. And I am not sure if ~/ has the same value as XDG.
Also maybe there are programs that does not respect XDG and have hardcoded paths to ~/.cache.
That's what I'm thinking, and it seems that program is all wayland compositors for some reason, there is likely a hardcoded path to ~/.cache
what else could be making a ~/.cache/mesa_shader_cache
directory when logging in that doesn't happen on X11?
I made sure XDG_CACHE_HOME was set before starting sway and it still happens: https://lemmy.ml/post/16201068/11319192
Mesa contains the graphics driver in the Kernel. So maybe this is run very early. Theoretically you could do a workaround and remove that directory with each start, but that's an ugly solution. Does Steam start with your login session? Maybe Proton is creating the cache.
No steam doesn't run when starting. The same programs when I start i3 which does not have this issue are the same programs that start when I start sway, as sway uses my i3 configuration.
I've also tested hyprland and cosmic and both of those have that issue as well.
Worth mentioning that when I'm on x11 ~/.cache
never gets created, even when I run apps that use mesa.
I have no ideas left. Also explored a little bit web searches about this topic, but couldn't find anything useful. Sorry, this reply is even less useful.^^
Wanna know something? I've been trying for about 5 months to fix this issue without success. I appreciate the help.
I haven't bothered to report this because A) I don't know who to report this to as I'm not sure what is creating the directory, and B) I've already reported other issues I've run into when using sway that were just ignored.
I know the feeling. Sometimes I have such little things that bugs me for months, sometimes without a resolution. For the reporting stuff, you could just start discussions and ask if its is even related and if you should create an issue. At least if there is a place for.
Now that I think, I just remembered a program that helps with cleaning the home folder: https://github.com/b3nj5m1n/xdg-ninja
I have good news, looks like this issue actually just sway only issue, it just happened that on archlinux all the other wayland compositors also have this issue lol. https://lemmy.ml/post/16201068/11320955
Now I know who to report this to.
Alright, here is an update.
before starting sway: https://i.imgur.com/ZcePiEa.jpeg
after starting sway: https://i.imgur.com/TocM2dC.jpeg
You're using Arch? That's an Arch specific issue, I switched to KISS Linux and don't have that anymore (I use XDG_CACHE_DIR=~/.var/cache
). Also it's only Sway, Hyprland and River don't have that issue for example. Maybe try building Sway from source?
I cannot believe you were right. It is a arch only issue for hyprland.
I'm on artix linux since a few days ago, but I did not test hyprland on artix yet. I had only tested sway because I had a similar issue with xfce4 apps creating a ~/.config
dir, which actually turned out to be a dbus issue which does not happen on artix because they don't use dbus-broker
.
Indeed hyprland does not create the ~/.cache
directory, but it does create a .dbus
directory instead (something that sway doesn't do 🤔). So I basically just moved forward and backwards at the same time lol.
Btw don't tell me you use ~/.var/cache
because flatpak hardcodes ~/.var
like I cannot do that, I would not accept such defeat lol.
THANK YOU SO MUCH, I have been stuck with this issue for months, now I know where the problem is at least.
Out of curiosity, how did you fix Firefox/Steam dot files?
I think ~/.dbus/
wasn't really used by Hyprland, as far as I remember I just told Hyprland to remove the directory on startup, but it's been a while since I used Hyprland. Or maybe try River?
Thanks for the suggestion, but I really want to stick to something like i3, which I think the only thing that is close is sway (and sway is not a perfect drop in replacement for i3 btw).
https://github.com/swaywm/sway/issues/8000
https://github.com/swaywm/sway/issues/8001
https://github.com/swaywm/sway/issues/8002
Actually not even i3 is perfect for me, I had to fork it to apply a patch that they haven't applied: https://github.com/i3/i3/pull/5521
A few months ago I really tried to switch to hyprland, it all ended with my wasting my time reading the documentation on how to assign workspaces to monitors for hyprland to tell me that the feature was deprecated 💀
Another issue that I had with hyprland is that I could not move a floating window between displays using the move left/right
as those moved the window to the right/left of the display instead of a left/right direction.
I also use i3msg to do some mildly complex actions, which I really couldn't figure out how to do with hyprland, like this one:
https://github.com/Samueru-sama/dotfiles/blob/main/.local/config/i3/config
set $EXC exec --no-startup-id
set $ADUNST dunstify -r 33 -t 1500
set $RX1 i3-msg '[class="Brave" instance="^(?i)(?!web.telegram.org__k)(?!discord.com__app)(?!web.whatsapp.com).*"] focus'
$BIND $MOD+F1 $EXC $RX1 && $ADUNST "Brave" || ( brave & $ADUNST "Launching Brave" )
Which basically the same keybind either focuses or launches the web-browser, but does not focus on the PWA instances of the web browser as for that I use a different keybind.
Another bigger issue that I need to solve as well is that it seems it isn't possible to do "xrandr --setmonitor extended
in wayland, as I use that with my 3 monitors to play some games. (it sets the 3 displays as one).