Linux's Modern NTFS Driver Preparing a “Hidedotfiles” Option
phoronix.com
phoronix.com
software that you can specify the install location for, so it installs a update manager at that location but then always installs the actual programs under the C drive
Microsoft decided at some point people hard drive were plenty big so who cares? Unfortunately SSDs came along and for quite awhile space was quite tight on them!
That's one of the reasons why it had a space. If you wanted to stop using the DOS APIs and get off of `PROGRA~1`, you need to handle spaces properly. Having a bunch of the standard paths (see also `My Documents`) include spaces meant that software vendors shouldn't have been able to get away with using Windows filename APIs without supporting filenames with spaces - everything would obviously break almost instantly.
Doing that, Microsoft made sure that there was no reasonable way for an ISV to claim that they either forgot to test that use-case, or weren't going to support it, when every Windows system in existence relied so heavily on paths with spaces.
You're pulling in a 400 megabytes of dependencies the second you touch cross platform GUIs, a library to automatically create and pick the right appdata folder really isn't that inconvenient at this point.
Looking at you, wget and your .hsts-something file.
I've seriously considered writing a system LD_PRELOAD that catches resolved paths and redirects them to a directory of choice.
But I think it would be easier if you instead sent MR to offending projects
In all reality, very OS has their quirks, and I see this _all_the_time_in_Windows_!
Sincerely: Hell no. Nearly everything (mostly Electron) nowadays wants to dump everything into %appdata% and it is infuriating.
I can never have enough space on C: anymore. I finally relented and bought and allocated an entire 2TB drive to just to C: on my newest machine because of "%appdata% All The Things" nonsense. C: otherwise doesn't need anymore than 100GB to house Windows and a few other system-related odds and ends.
%appdata% isn't even where All The Things(tm) should be going by default anyway, %appdata% is for storing user-specific program configuration data only. The Windows-provided default directory for program installations is C:\Program Files, and files resulting from program use should go in the program's own install directory or into an appropriate directory under the user directory (eg: My Documents) by default.
Windows allows full access to the file system and all the benefits that entails for a reason. Just ask me where I want the damn thing installed/saved rather than just shitting all over %appdata%.
Also, this is why the registry was invented, but as we all know, that's a "bad idea" (because it's an old idea, which makes it bad, because being old makes ideas badder).
I also tried using ntfs2btrfs with WinBtrfs, but ntfs2btrfs not only had a segfault in the application, but when I fixed it, it generated a corrupted btrfs filesystem that would enter read-only mode within a few minutes of having DigiKam accessing images on the btrfs storage drive.
Either you give every application special knowledge of both dotfiles and NTFS, or you give the filesystem special knowledge of dotfiles.
Hypothetically you could write a special daemon that listened for all filesystem events on NTFS filesystems and set this attribute for any created dotfile, but that's incredibly roundabout for one feature.
In the file picker and "Files" utility. "Files" already has a "Show hidden files" setting. Most applications now use a common file picker, because the file picker now has some security privileges - it can give the application the privilege to access a file otherwise not allowed.
I understand the logic of having display functionality in the file picker, but what are the chances that we can collectively convince Windows Shell32 developers that explorer.exe needs to display files prefixed with dots as hidden?
I think we're both on the same page that it's a hack, but it's a practical hack in that it avoids the need to involve unrelated third parties.
This is noot the case on NTFS (and probably other filesystems) as it has its own way to mark a file as hidden. This is a workaround to bring Linux behaviour into a non-Linux filesystem by adding the hidden flag based on the file name rather than the file attributes.
I'm sure this will fix all kinds of compatibility issues with applications using lower level APIs for file access and enumeration. It's a non-standard workaround, though, so it makes sense to put it in a mount flag.
Furthermore, the idea of hidden files seems silly to me as they are mostly used to hide dot files that should be in a directory and not carelessly tossed into the root of a users home directory.
It saddens me we pollute newer software with ancient hacks simply because no one wants to fix the root of the problem.
That said, now I use LUKS on Linux and Bitlocker on Windows, I've mostly just given up on a shared filesystem
You can opt in to having it store Linux permissions in NTFS's ACLs, and there's an option to have a file that maps between Linux and Windows user IDs to allow for interoperability.
ntfs-3g is a FUSE based driver (and not much maintained anymore), Linux now has a fully featured kernel driver with ntfs3 - which is also what TFA is about.
https://www.kernel.org/doc/html/latest/filesystems/ntfs3.htm...
Documentation for ntfs3 is a little thin on the ground.
May work on latest Windows 11 only though.
(Edit: seems to be a combination https://github.com/Microsoft/WSL/issues/873#issuecomment-425... )
Even unzipping archives with lots of small files takes forever, it is easy for a modern SSD to slow down to 5MB/s or less when trying to write out tons of small files to an NTFS partition.
NTFS is old and stable, but it is not fast by modern standards.
I.e. will the driver just automatically set the hidden flag when a new dotfile is created - or will it "pretend" the flag is set when an application is querying the attributes of a dotfile?
I would prefer the first case, as that would leave you the option to manually un-hide a dotfile of you needed to.