Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get rid of remaining dotfile clutter in ~/ #7

Open
10 of 17 tasks
ayekat opened this issue Jan 8, 2017 · 12 comments
Open
10 of 17 tasks

Get rid of remaining dotfile clutter in ~/ #7

ayekat opened this issue Jan 8, 2017 · 12 comments

Comments

@ayekat
Copy link
Task lists! Give feedback
Owner

@ayekat ayekat commented Jan 8, 2017

This is the "hard resistance" of hidden files that still remain in my home directory, and for which there is no trivial solution listed in this Arch Wiki article:

  • .adobe: Created by flashplugin [FIXED] Flash is dead, see [comments below][c:mozilla]
  • .android: Created by adb (Android Debug Bridge) [FIXED] See comments below
  • .anthy: Created by anthy (Japanese IM) (bug report) [UNLIKELY] Project appears dead
  • .asoundrc.disabled: Ugly hack for changing ALSA soundcard [FIXED] See comments below
  • .ivy2: Created by sbt (Scala Build Tool) [FIXED] See 3e7375f
  • .macromedia: Created by flashplugin [FIXED] Flash is dead, see [comments below][c:mozilla]
  • .mailcap: Created/used by claws-mail and mutt [FIXED] for mutt (5a22d78) but [???] for Claws-Mail
  • .mono: Created by keepass (note: keepass also creates $XDG_CONFIG_HOME/.mono, with other content) [???]
  • .mozilla: Created by firefox (and thunderbird) (bug report)
  • .pki: Created by NSS (firefox and QtWebEngine) [UNLIKELY] Mozilla "standard"
  • .rnd: Created by OpenSSL [FIXED] See b604d50
  • .sbt: Created by sbt (Scala Build Tool) [FIXED except for ~/.sbt/preloaded [FIXED]] See 3e7375f
  • .sqlite_history: Created by sqlite, cannot be configured (discussion) [UNLIKELY] Devs refuse to fix it (but may be open for patches) [FIXED] (upstream)
  • .ssr: Created by simplescreenrecorder (Qt4) [???]
  • .thumbnails: Created by file browsers like Thunar [???]
  • .uim.d: Created by UIM [FIXED] Switched to iBus
  • .w3m: Created by w3m (appears hardcoded) [???]

Some of them are not essential and can be occasionally purged with dotbloat, but some others (.anthy, .mailcap, .pki and .ssh) are permanently required, and thus more annoying.

Explicitly not listed

The following 3 directories are not listed because either applying the XDG base directory specification to them does not make any sense, or because we need to put application data at least somewhere:

  • .local: Contains all the application files, neatly organised and inspired by the Linux FHS
  • .pam_environment: Bootstrap ("chicken-or-egg") issue, as it is the very first thing that sets environment variables, at login (some people are trying it nevertheless: [1])
  • .ssh: Bootstrap ("chicken-or-egg") issue, because it is the very first thing that is checked for SSH logins (i.e. before a login even happens) (some people are trying it nevertheless: [2])
@ayekat ayekat added the Bug label Jan 8, 2017
@ayekat
Copy link
Owner Author

@ayekat ayekat commented Jan 19, 2017

For the ones where it is hardcoded, using a wrapper script with an LD_PRELOAD for file system accesses a FUSE filesystem might be a way...—need to investigate on that.

@ayekat
Copy link
Owner Author

@ayekat ayekat commented Feb 9, 2017

OK, there is no real one-size-fits-it-all solution:

  • FUSE—even if it stores files and directories in the right locations—would make them appear in the home directory, nevertheless, which kind of defeats the initial purpose of keeping the home directory clean.
  • LD_PRELOAD is software-specific, and we might as well just fix the upstream code. Of course, if upstream refuses patches, we'll need to use LD_PRELOAD either way.

Besides, .rnd has been relocated with the RANDFILE variable. Let's see if OpenSSL puts it in the right location—marking as fixed for the moment.

For quite a few on that list, I will not search for a solution, but simply stop using them (e.g. .mozilla, .adobe, .macromedia, .mono) (e.g. I've made quite a successful transition from dwb to qutebrowser two weeks ago).

@ayekat
Copy link
Owner Author

@ayekat ayekat commented Apr 11, 2017

For .asoundrc, it appears to be possible to use environment variables for setting the default sound card. This might be handy for temporarily setting a sound card when watching a film while hooked up to the 5.1 sound card (rather than keeping around a "disabled" configuration file that clutters our home directory).

--edit--
It works—in my particular case, it's simply

$ ALSA_CARD=Device mpv path/to/some/video.mkv

and it uses my external 5.1 sound card.

ayekat added a commit to ayekat/utils that referenced this issue Apr 11, 2017
.asoundrc is about to be next, after I've solved
ayekat/dotfiles#7.
@ayekat
Copy link
Owner Author

@ayekat ayekat commented May 5, 2017

Commit 0524cad moves ~/.mozilla into $XDG_DATA_HOME by setting a different $HOME.

It's an ugly hack, but it works for me™, so I'm ticking it off as solved either way.

Also, after uninstalling flashplugin, .adobe and .macromedia no longer seem to be created, so I'm marking it as "solved". I assume that they would also appear in $XDG_DATA_HOME/mozilla.

@ayekat
Copy link
Owner Author

@ayekat ayekat commented Feb 19, 2019

Concerning ~/.pki, I just stumbed over https://bugzilla.mozilla.org/show_bug.cgi?id=818686.

If this gets implemented by Mozilla, there is a chance that Chrome/Chromium (and thus qutebrowser) will follow.

This would also be a bit of "milestone" in that all dotfiles/dotfolders we care about would be finally gone (with the exception of ~/.anthy, which is unlikely to ever disappear, because the project is dead). The rest can be periodically nuked by dotbloat.

@goll72
Copy link

@goll72 goll72 commented Sep 15, 2020

It is possible to change the location of ~/.android, you just have to export the ANDROID_SDK_ROOT, ANDROID_EMULATOR_HOME and ANDROID_SDK_HOME variables, setting them to where you want your adb data directory to be. I set up mine to be in ~/.local/share/android

@ayekat
Copy link
Owner Author

@ayekat ayekat commented Sep 15, 2020

Hi, thanks for the input!
I haven't tested it (it's been a while since I played around with Android for the last time), but I trust you it works :-)

@goll72
Copy link

@goll72 goll72 commented Oct 1, 2020

I noticed that some programs will use the adb daemon without using the environment variables that are setup (one example is DroidCam OBS). So it doesn't solve anything (for the ones using those programs).

@Tomodoro
Copy link

@Tomodoro Tomodoro commented Nov 28, 2020

Now simplescreenrecorder reads XDG_CONFIG_HOME.
More details on its commit, it will be part of the next release.

@ayekat
Copy link
Owner Author

@ayekat ayekat commented Nov 29, 2020

Ah, good to know, thanks. 🙂

It's a bit unfortunate that $XDG_CONFIG_HOME/simplescreenrecorder must exist beforehand, but I guess this is already better than nothing.

@guihkx
Copy link

@guihkx guihkx commented Jan 12, 2021

It is possible to change the location of ~/.android, you just have to export the ANDROID_SDK_ROOT, ANDROID_EMULATOR_HOME and ANDROID_SDK_HOME variables, setting them to where you want your adb data directory to be. I set up mine to be in ~/.local/share/android

That won't work. At least not for adb, see:

https://cs.android.com/android/platform/superproject/+/affbb260bf7d410faa89a789c29f786dbc170df6:packages/modules/adb/adb_utils.cpp;l=312

The path is hardcoded to "$HOME/.android", unfortunately.

@guihkx
Copy link

@guihkx guihkx commented Jan 12, 2021

Regarding the .pki directory, Firefox doesn't use it anymore (unless it already exists):

https://hg.mozilla.org/projects/nss/rev/da45424cb9a0b4d8e45e5040e2e3b574d994e254

Chromium-based browsers and apps, however, still do:

https://bugs.chromium.org/p/chromium/issues/detail?id=1038587

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants