README.md
1# QtFM 6.2
2
3Lightweight desktop independent Qt file manager for Linux, FreeBSD, NetBSD, OpenBSD and macOS.
4
5 * XDG integration
6 * Customizable interface
7 * Powerful custom command system
8 * Customizable key bindings
9 * Drag & drop functionality
10 * Tabs support
11 * Removable storage support
12 * System tray daemon (``qtfm-tray(1)``)
13 * Show available storage/optical devices in system tray
14 * Auto mount (and open) storage/optical devices when added *(not default)*
15 * Auto play CD/DVD *(not default)*
16 * Extensive thumbnail support
17 * Supports image formats through ``ImageMagick``
18 * Supports PDF and related documents
19 * Supports video formats through ``FFmpeg``
20 * Supports embedded images in media files
21
22## Default shortcuts
23
24| Action | Shortcut |
25|:---------------------------:|:-----------:|
26| New Window | [ctrl+n] |
27| Open Tab | [ctrl+t] |
28| Close Tab | [ctrl+w] |
29| Copy Action | [ctrl+c] |
30| Paste Action | [ctrl+v] |
31| Up Action | [alt+up] |
32| Back Action | [backspace] |
33| Toggle Show Hidden Files | [ctrl+h] |
34| Move to Trash | [del] |
35| Delete | [shift+del] |
36| Open Terminal | [F1] |
37| Quit/Close | [ctrl+q] |
38| Rename Action | [F2] |
39| Zoom Out | [ctrl+-] |
40| Zoom In | [ctrl++] |
41| Focus Path | [ctrl+l] |
42| Toggle Icon View | [F3] |
43| Toggle Detail View | [F4] |
44| Refresh View | [F5] |
45| Drag and Drop Move Modifier | [shift] |
46| Drag and Drop Copy Modifier | [ctrl] |
47| Drag and Drop Ask Action | [alt] |
48
49All shortcuts can be modified.
50
51## Build
52
53Download the latest [release](https://github.com/rodlie/qtfm/releases), then make sure you have the required dependencies.
54
55* Requires [Qt](http://qt.io) 5.2+ (5.6.3/5.9.7/5.12.x recommended)
56 * libQt5Widgets
57 * libQt5Gui
58 * libQt5Concurrent
59 * libQt5DBus
60 * libQt5Core
61* Requires [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/)
62* Requires [adwaita-icon-theme](https://github.com/GNOME/adwaita-icon-theme) or similar
63* Requires [libinotify](https://github.com/libinotify-kqueue/libinotify-kqueue) *if using BSD/macOS*
64* Recommended [udisks](https://www.freedesktop.org/wiki/Software/udisks/)/[bsdisks](https://www.freshports.org/sysutils/bsdisks/) at run-time
65* Recommended [ImageMagick (Magick++)](http://imagemagick.org) 6.9/7.x for improved thumbnail support
66 * libMagick++
67 * libMagickWand
68 * libMagickCore
69* Recommended [FFmpeg](https://ffmpeg.org) 3+ for video/audio thumbnails/coverart
70 * libavdevice
71 * libswscale
72 * libavformat
73 * libavcodec
74 * libavutil
75
76Download and extract:
77```
78tar xvf qtfm-6.2.x.tar.gz
79cd qtfm-6.2.x
80```
81
82Or use git:
83```
84git clone -b 6.2 https://github.com/rodlie/qtfm
85cd qtfm
86```
87
88Build options:
89
90 * ``CONFIG+=with_magick`` : This will enable ``ImageMagick`` support.
91 * ``MAGICK_PC=`` : Custom ``Magick++`` pkg-config .pc file.
92 * ``CONFIG+=oldmagick`` : If you have ``ImageMagick`` older than 6.9 *(Ubuntu)*.
93 * ``CONFIG+=with_ffmpeg`` : This will enable FFmpeg support *(**NOTE!** requires ImageMagick)*.
94 * ``CONFIG+=no_tray`` : This will disable ``qtfm-tray`` (``no_dbus`` will also disable this feature).
95 * ``CONFIG+=no_dbus`` : This will disable D-Bus session and ``udisks`` features in (lib)QtFM, ``qtfm-tray`` will also not be built.
96 * ``CONFIG+=with_includes`` : Install library includes and pkg-config
97 * ``CONFIG+=sharedlib`` : Force shared library.
98 * ``PREFIX=`` : Install prefix, where things are installed when running ``make install``
99 * ``DOCDIR=`` : Location for documentation (default is ``PREFIX/share/doc``)
100 * ``MANDIR=`` : Location for man pages (default is ``PREFIX/share/man``)
101 * ``XDGDIR=`` : Location of XDG (default is ``/etc/xdg`` or ``PREFIX/etc/xdg``)
102 * ``LIBDIR=`` : Library location (default is ``$PREFIX/lib$LIBSUFFIX``), only used if shared library is enabled
103
104Doing a normal build:
105```
106mkdir build && cd build
107qmake ..
108make
109```
110
111You can run the binary ``bin/qtfm`` or install to ``/usr/local``:
112```
113sudo make install
114```
115
116## Packaging
117
118Same as above, but you should use ``PREFIX=`` and ``INSTALL_ROOT=``.
119
120Example:
121
122```
123qmake PREFIX=/usr CONFIG+=with_magick CONFIG+=with_ffmpeg ..
124make -jX
125make INSTALL_ROOT=<package> install
126```
127