I’m a i3 user that has been trying to migrate to sway.

I use it with these environment variables:

export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/var/state"
export XDG_CONFIG_HOME="$HOME/.local/config"
export XDG_CACHE_HOME="$HOME/.local/var/cache"

Which gives me a clean home with only ~/.local for my dotfiles.

And issue that I’ve noticed that I haven’t been able to fix is that every time that I start sway, hyprland and also the alpha of cosmic is that I get a new ~/.cache directory created in my home that contains a mesa_shader_cache directory.

Btw in the middle of writing this post I just ran into another bug, thunar for some reason decided to steal my key presses from the web browser, and even though I had the browser window focused as I have sway configured to change the border color of the window with focus, thunar was like nope wtf.

Thank you all for the help, ended up opening a bug report at sway: https://github.com/swaywm/sway/issues/8191

  • jasonfuchs
    link
    fedilink
    arrow-up
    3
    ·
    1 month ago

    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?

    • SamueruOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 month ago

      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.

      • jasonfuchs
        link
        fedilink
        arrow-up
        2
        ·
        1 month ago

        Out of curiosity, how did you fix Firefox/Steam dot files?

      • jasonfuchs
        link
        fedilink
        arrow-up
        1
        ·
        1 month ago

        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?

        • SamueruOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 month ago

          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).