Note
This app is currently not actively maintained as I am focused on other projects. I do plan on either picking it up or exploring similar concepts in the future, so I will not archive the repository but I will probably not fix any active issues or accept pull requests for the time being.
Warning
This project is currently in BETA. You can try it out at your own risk, but be aware that things might break, it might have annoyances, DATA LOSS may occur and it may kill your cat.
For now, I recommend only trying it if you have a recent backup of your files.
The problem is that current methods for tagging files are OS-, file system- or application-specific and not portable.
The app was primarily built as a proof of concept for a non-hierarchical file manager whose storage can still be conveniently browsed via conventional file managers.
It is also a playground for design ideas like file extension badges or a symbolic grid view.
Hyperplane stores its 'tags' (called categories) on disk as regular directories.
File A tagged 'Pictures', 'Art' and 'Animals' would be stored at /Pictures/Art/Animals/
on disk.
File B tagged 'Videos' and 'Art' would be stored at /Videos/Art/
.
When filtering for files tagged 'Art' however, both of these would show up.
The app keeps track of the list of categories in a .hyperplane
file at the root of the Hyperplane directory. (Which is $HOME
by default, but can be changed with the $HYPHOME
environment variable.)
https://en.wikipedia.org/wiki/Hyperplane
It is subject to change.
The project is currently in beta. Most features work, but user experience still needs refinement.
If you want to test without risking data loss, please set the $HYPHOME
environment variable to point to somewhere inside ~/.var/app/page.kramo.Hyperplane.Devel/
and remove the app's --filesystem=host
access.
You can download the latest beta from the Releases page or the latest in-development version from here.
You will need the GNOME Nightly runtime installed to be able to test the app.
Please report any and all issues you find!
UX suggestions and missing feature reports are also welcome, even if it seems obvious.
If you want to help with code or design, please reach out or file an issue before making a pull request. That being said, I appreciate any help!
git clone https://github.com/kra-mo/hyperplane.git
cd hyperplane
meson setup build
ninja -C build install
All code is auto-formatted with Black and linted with Pylint. Imports are sorted by isort.
VSCode extensions are available for all of these and you can set them up with the following settings.json
configuration:
"python.formatting.provider": "none",
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
},
"isort.args":["--profile", "black"],
For other code editors, you can install them via pip
and invoke them from the command line.
Strings are not final yet, I will set up translations closer to an initial release.
The project follows the GNOME Code of Conduct.
See CODE_OF_CONDUCT.md.