regolith-linux/regolith-i3

Additional config file that does not get overriden by updates

Opened this issue · 9 comments

Pretty much the title. I put my config on ~/.config/i3-regolith and then I noticed that the file got rewritten with an update. Is there an intended way for me to put my config so that whatever I've specified there overrides conflicting defaults, if any?

I'm sorry to hear that you lost your i3 config file @stoyicker 😞 . Regolith is written to avoid that, but perhaps there is a bug. Out of curiosity, how long had it been since you updated, if you recall?

At this point, when an i3 config file update occurs, a new file is written with the package version in the filename. This means that you'll need to merge any custom changes into the new file upon update, but hopefully this also means existing config files are never altered by an update.

So, to answer your question, by design this should never occur since the Xresources feature release last week.

It's fine, I had it on a repo :P Anyway I see what's up now, it seems I was wrong. Indeed the behavior is as you describe, but having a different file being used every time seems a bit awkward, doesn't it? From what I can see on the current solution, I'm thinking of using .xinitrc and a bit of regex to get my config merged into whatever file is being used, but this feels rather shaky, and considering that probably everyone is going to want to have their own config, maybe there should be a better, 'built-in' way so to speak to support this. What do you think?

Yeah, I see your point. Because theme information is extracted from i3 into Xresources, I'm hoping that the i3 config file in Regolith stabilizes so that this is a rarely occurring event. For a better understanding, are your customizations mostly keybindings, visual changes, or something else?

I have keybinding additions, removals and changes, focus_follows_mouse and mouse_warp, and added an exec.

I'd like to second this issue. In the past I could have sworn the config file was located in ~/.config/i3-regolith/config, however now this file doesn't appear to be honored.
I have used i3 for a good year and only have seen my config file being nuked since switching to regolith. (to my recollection at least)
I have a handful of customizations such as:
Key bindings
Focus following mouse
Exec
Different terminal
Adjustments to account for Dvorak
Font size
Gap removal
Bottom bar updates (can't remember where I even did that...great...i3blocks?)

...etc
At this point even making changes to the config file don't appear to be being honored so I'm sort of...screwed, barely able to use anything which is a really frustrating experience to run into when rebooting.

Currently (aside from files I know are mine) I have the following:
~/.config/i3-regolith/
config
config-flag-1.28-1ubuntu1ppa1
config-4.16-1ubuntu18ppa10
config-flag-1.2.15
ftue-flag-4.16-1ubuntu18ppa10

Any tips on how to revert and prevent my system from being messed up in the future?

Apparently the active file is now ~/.config/i3-regolith/config-4.16-1ubuntu18ppa10
Aside from having to copy and update all my changes, how in the world do I switch back to just using... "config" instead of said mile-long filename?

Hi @grahamPegNetwork , sorry that recent changes to Regolith have caused you confusion. Yes, this has been a recent change as an update to using Xresources for color definitions introduced a breaking change to how i3 workspace names are defined. Lacking an obvious way of prompting the user to manually merge changes into the new file format, I elected to have i3 launch with a fresh config file to ensure that any existing user config files were not corrupted or deleted. There is some more information here: https://regolith-linux.org/configuring.html#migration-guide

Regarding your request to revert to the old functionality, to directly make the change you can modify /usr/bin/i3-gnome-flashback script to refer to any config you like. Keep in mind however that future updates to the regolith-gnome-flashback package will overwrite your change.

Your desire to keep your config file in one place and not have to worry about Regolith changing things under the hood is valid and sane. I'm thinking about the best way of allowing the ability to "pin" the config file to ensure it's never changed, even at the expense of regressions that come from breaking changes down the road. I'll update this ticket when I have a better strategy than modifying i3-gnome-flashback.

Adding the field regolith.policy.update with a value of false into ~/.Xresources should prevent subsequent updates to your i3 config file, but it will still reference the version of the file with the i3 package version. Note again this may cause weird behavior if breaking changes are introduced into an i3 config file update.