EDIT:

I solved the problem by creating the file somewhere editable and creating a link to the file under /home/curious_dolphin/.config/MangoHud, which enables me to configure MangoHud in a text file without using Goverlay. Credit to @j4k3@lemmy.world for the tip. Thanks to all who chimed in.

ORIGINAL POST:

I’m having a hard time configuring MangoHud on Bazzite. I’ve perused MangoHud’s GitHub and Bazzite’s documentation, but I’m stuck because once I’ve created MangoHud.conf, I cannot edit it despite double checking the file permissions. When I attempt to save my changes, it says “Error opening file /home/curious_dolphin/.config/MangoHud/MangoHud.conf: Read-only file system.” I get that I’m on an immutable distro, so this is by design, but in this case, how do I configure MangoHud? I’d like to do this without using Goverlay if possible.

Steps to reproduce the issue:

  • In Bazzite, open up the file browser, browse to /home/curious_dolphin/.config/, and create the MangoHud directory.
  • In the file browser, enter the new MangoHud directory and create the MangoHud config file by right clicking and selecting New Document > MangoHud.conf.
  • Right click the new .conf file and select “Open With Text Editor.”
  • Make desired edits in the text editor.
  • Hit Ctrl+S to save my changes.

Result:

“Error opening file: Read-only file system”

I’ve checked the file permissions. -rw-r--r--. 1 curious_dolphin curious_dolphin 9671 Feb 20 12:22 ./.config/MangoHud/MangoHud.conf.

Can anyone point me in the right direction? Thanks!

  • just_another_person@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    If it’s immutable, then…nowhere? You need userspace mounts to reference if you want to load anything from a disk, so… your home directory.

  • j4k3@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Not at all familiar with your setup… In general, you need to know where there is a directory that is outside of the non mutable distro stuff, then just create a link in the current directory to the file that is elsewhere.

    Android is like this and uses SELinux to enforce context access to files. It has been several years since I hacked around with that stuff, but I think …/downloads and …/data are the two directories that Android allows files access for read and write but not execute. Of course, that is not directly helpful here, but the abstract ideas might point you somewhere useful.

    It may also be helpful to have a look at the script that installed the app in the first place. That likely will lead you to how the file was created in the first place. That script knew how to write to the directory. I did silverblue around F2x. This is how I figured out a lot of it; using install scripts when documentation was sparse.

    • curious_dolphin@slrpnk.netOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      Thanks for the tip to create a link to the file that is elsewhere. This works for me. I’m now able to configure MangoHud in a text file without using Goverlay.

  • somethingsomethingidk@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 days ago

    Idk that much about bazzite, but I’ve been running silverblue/kinote for awhile. /home shouldn’t be read only. Same for /etc and /var. Can you create any files in $HOME OR $HOME/.config/ ?

    • curious_dolphin@slrpnk.netOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      Can you create any files in $HOME OR $HOME/.config/ ?

      Yes - I can create (and later edit) files under /home/curious_dolphin, even under /home/curious_dolphin/.config, but for some reason once I’ve created a file under /home/curious_dolphin/.config/MangoHud, I cannot edit it even though the file and its parent directory appear to have the same permissions as the other files that I can edit.

      In other words, after creating test.txt under /home/curious_dolphin/.config/MangoHud, I cannot edit it:

      curious_dolphin@bazzite:~$ ls -la ./.config/MangoHud/
      total 20
      drwxr-xr-x. 1 curious_dolphin curious_dolphin   42 Feb 20 14:46 .
      drwxr-xr-x. 1 curious_dolphin curious_dolphin  552 Feb 20 14:47 ..
      -rw-r--r--. 1 curious_dolphin curious_dolphin 9671 Feb 20 12:22 MangoHud.conf
      -rw-r--r--. 1 curious_dolphin curious_dolphin    5 Feb 20 14:46 test.txt
      

      However, after creating test.txt under /home/curious_dolphin/.config, I can edit it:

      curious_dolphin@bazzite:~$ ls -la ./.config
      total 44
      drwxr-xr-x. 1 curious_dolphin curious_dolphin  552 Feb 20 14:47 .
      drwx------. 1 curious_dolphin curious_dolphin  460 Feb 20 14:41 ..
      drwxr-xr-x. 1 curious_dolphin curious_dolphin   42 Feb 20 14:46 MangoHud
      -rw-r--r--. 1 curious_dolphin curious_dolphin   10 Feb 20 14:47 test.txt
      
  • notanapple@lemm.ee
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    1 day ago

    You are supposed to use /var/home/user instead of /home/user in your paths, scripts, etc (or /var/$HOME). Im not certain on the why but iirc its because on immutable systems only /var is writable so anything writable has to be under it.

    • curious_dolphin@slrpnk.netOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      22 hours ago

      Thanks for chiming in. I’ve confirmed creating the file in the file browser under “Home > .config > MangoHud” places the file in /var/home/curious_dolphin/.config/MangoHud, so I’m still scratching my head as to why I’m unable to edit the document after the initial save. As a workaround, I’ve placed the config file in my top level home folder (aka /var/home/curious_dolphin) w/ a link to it from /var/home/curious_dolphin/.config/MangoHud where the app expects, and this seems to be working as desired.