Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/euclio/fm
Small, general purpose file manager built with GTK4.
https://github.com/euclio/fm
file-manager gtk4 relm4 rust
Last synced: about 17 hours ago
JSON representation
Small, general purpose file manager built with GTK4.
- Host: GitHub
- URL: https://github.com/euclio/fm
- Owner: euclio
- License: mit
- Created: 2021-05-15T03:41:48.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-07-31T15:45:31.000Z (4 months ago)
- Last Synced: 2024-10-10T22:13:52.692Z (about 1 month ago)
- Topics: file-manager, gtk4, relm4, rust
- Language: Rust
- Homepage:
- Size: 309 KB
- Stars: 177
- Watchers: 7
- Forks: 7
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/euclio/fm - Simple GTK4 file manager (Jump To / Linux)
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/euclio/fm - Simple GTK4 file manager (Jump To / Linux)
README
# fm
`fm` is a small, general-purpose file manager built using GTK and [Relm4].
![Screenshot](https://user-images.githubusercontent.com/1372438/164090003-20bca431-e2ef-475a-86d4-df64d10e1989.png)
The directories are visualized using [Miller columns], which enables quick
navigation throughout the hierarchy.`fm` is in the early stages of development. Manipulating important files with it
risks data loss.## Platform support
Development is currently focused on Linux, but bug reports for other platforms
are welcome.The application is known to run successfully on MacOS. Other platforms are
untested, but if you can get the system dependencies to build, `fm` should work.## Hacking
`fm` is a Rust project that utilizes [GTK 4][install-gtk],
[libpanel][install-libpanel], [GtkSourceView][install-gtksourceview], and
[libadwaita][install-libadwaita].1. First, [install Rust and Cargo][install-rust].
2. Install system dependencies.
Note that libpanel is alpha software and may not be packaged for your
system. In that case, you can build it from source, install it, and then
build `fm` with the `PKG_CONFIG_PATH` environment variable set to
`PKG_CONFIG_PATH="/path/to/libpanel/lib/pkgconfig:$PKG_CONFIG_PATH"`.#### Arch Linux
```sh
$ pacman -Syu gtk4 libadwaita libpanel-git gtksourceview5
```#### Fedora
```
$ dnf install -y gtk4 libadwaita-devel libpanel
```#### openSUSE
```sh
$ zypper in glib2-devel pango-devel gtk4-devel libadwaita-devel libpanel-devel gtksourceview5-devel libpoppler-glib-devel
```3. Build and run the application.
```sh
$ cargo run
```## License
`fm` is licensed under the MIT license.
[Miller columns]: https://en.wikipedia.org/wiki/Miller_columns
[install-rust]: https://www.rust-lang.org/tools/install
[install-gtk]: https://www.gtk.org/docs/installations/
[install-gtksourceview]: https://wiki.gnome.org/Projects/GtkSourceView
[install-libadwaita]: https://gnome.pages.gitlab.gnome.org/libadwaita/
[install-libpanel]: https://gitlab.gnome.org/chergert/libpanel
[Relm4]: https://aaronerhardt.github.io/relm4-book/book/