xdg-ninja
vuizvui
xdg-ninja | vuizvui | |
---|---|---|
20 | 2 | |
2,175 | 104 | |
- | 0.0% | |
8.6 | 9.1 | |
13 days ago | 1 day ago | |
Haskell | Nix | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
xdg-ninja
-
Why not export XDG variables?
As a user, these variables make my experience simpler. I'm not going to argue that these specifications should be followed by all, because I know there are many users who are committed to dying on the hill that is their cluttered home directory. However, the existence of these variables is not a deterrent to users who do not want to use the specification, as many applications will want to use your home directory anyway. If the existence of these variables made the specification strictly followed, projects like xdg-ninja (https://github.com/b3nj5m1n/xdg-ninja) would have no reason to exist.
-
$Home, Not So Sweet $Home
Regardagin cargo (and other tools), I've had some success with following suggestions from https://github.com/b3nj5m1n/xdg-ninja
-
Weird Linux benefits, anyone with a similar experience?
It's not as bad as it used to be. And ther's even software that can help you with that: https://github.com/b3nj5m1n/xdg-ninja
-
Home directory
Check out xdg-ninja
-
Use the XDG Base Directory Specification
https://github.com/b3nj5m1n/xdg-ninja
This utility has been a lifesaver to clean up my home directory.
- xdg-ninja - A shell script which checks your $HOME for unwanted files and directories
-
Using the Same Arch Linux Installation for a Decade
Stuff like [xdg-ninja](https://github.com/b3nj5m1n/xdg-ninja) helps but... at one point my home is still a mess.
-
Will dotfiles in home directory (~) be loaded automatically
For the ones that adhere to XDG specs, there are tools that can help transition to using these XDG directories and avoid breaking programs - like XDG Ninja - but it's still a sort of manual process that doesn't cover all dotfiles and applications.
-
Dotfile Madness
There are shell scripts like xdg-ninja that can help with this:
https://github.com/b3nj5m1n/xdg-ninja
-
Clean your home folder ! discover XDG
View on GitHub
vuizvui
-
$Home, Not So Sweet $Home
For games, I think it's even worse on GNU/Linux systems, since most game developers mainly target Windows and sometimes completely ignore conventions for other platforms (possibly since some game engines have that "Build for Linux" button).
This also applies to game engines and their own conventions. For example Unity has Application::persistentDataPath[1], which uses $XDG_CONFIG_HOME (still a bit meh, since I wouldn't treat savefiles as "config", but at least some convention). However, some games tend to write those into Application::dataPath[1] (or even other random directories they see fit), which is supposed to be read-only and could possibly be outside of $HOME.
Fortunately the single one advantage of antivirus software out there seems to be that the above seems to break with some AV, so developers either tell their players to disable AV or they simply fix the issue. I made countless bug reports on this issue and so far it exclusively got fixed because of AV, so I'm using that as an argument for future reports.
While at least most of the Unity games I've packaged seem to adhere to these conventions, other games and game engines are a mixed bag and I've seen games dumping their stuff into $PWD to games writing to Windows paths (eg. /home/foo/SomeVendor\Somegame).
Patching these games is also very tedious, since some of them tend to get updates, so patching needs to be done in a way to be forward-compatible.
For example here is a patcher I wrote to get Factorio to adhere to XDG:
https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...
Here is an example for patching a Unity3d game that writes to Application::dataPath:
https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...
[1]: https://docs.unity3d.com/ScriptReference/Application-persist...
[2]: https://docs.unity3d.com/ScriptReference/Application-dataPat...
-
Firefox 66 to block automatically playing audible video and audio (2019)
This is actually very easy to patch: https://github.com/openlab-aux/vuizvui/blob/61b943d89b08959e...
Essentially it's disabling gesture activation, so if you want to allow audio you need to do this explicitly. Note however, that whenever you directly visit a video file, audio will still play but this is very rarely the case.
What are some alternatives?
plugin-xdg - Setup xdg environment on Linux.
config - Config files for some things.
HomeBrew - 🍺 The missing package manager for macOS (or Linux)
xdg-go - Go implementation of the XDG Base Directory Specification and XDG user directories
boxxy - boxxy puts bad Linux applications in a box with only their files.
nixpkgs - Nix Packages collection & NixOS
Electron - :electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS
dotfiles - Dotfiles
ld-preload-open - Library to map files or directories to another location, for use with LD_PRELOAD.
antidot - Cleans up your $HOME from those pesky dotfiles
nix-doom-emacs - doom-emacs packaged for Nix