Giter Site home page Giter Site logo

lxqt / pcmanfm-qt Goto Github PK

View Code? Open in Web Editor NEW
406.0 42.0 113.0 11.01 MB

File manager and desktop icon manager (Qt port of PCManFM and libfm)

Home Page: https://lxqt-project.org

License: GNU General Public License v2.0

CMake 1.30% C++ 98.33% Roff 0.31% Shell 0.06%

pcmanfm-qt's Introduction

PCManFM-Qt

Overview

PCManFM-Qt is a Qt-based file manager which uses GLib for file management. It was started as the Qt port of PCManFM, the file manager of LXDE.

PCManFM-Qt is used by LXQt for handling the desktop. Nevertheless, it can also be used independently of LXQt and with any desktop environment, whether under X11 or under Wayland.

PCManFM-Qt is licensed under the terms of the GPLv2 or any later version. See file LICENSE for its full text.

Installation

Compiling source code

The build dependencies are CMake, lxqt-build-tools, libfm-qt, and layer-shell-qt (for the desktop support under Wayland).

GVFS is an optional dependency. It provides important functionalities like Trash support.

Code configuration is handled by CMake. CMake variable CMAKE_INSTALL_PREFIX has to be set to /usr on most operating systems. Depending on the way library paths are dealt with on 64bit systems, variables like CMAKE_INSTALL_LIBDIR may have to be set as well.

To build run make, to install make install, which accepts the variable DESTDIR as usual.

Binary packages

Official binary packages are available in Arch Linux, Debian, Fedora and openSUSE (Leap and Tumbleweed) and most other distributions.

Usage

The file manager functionality should be self-explanatory. For advanced functionalities, see the wiki.

Handling of the desktop deserves some notes:

To handle the desktop, the binary pcmanfm-qt has to be launched with the --desktop option. Optionally, --profile can be used for loading and saving settings specific to certain session types, like different desktop environments. In an LXQt session, PCManFM-Qt is launched as an LXQt Module.

The desktop can be configured by the dialog "Desktop Preferences". Technically, it corresponds to launching pcmanfm-qt with the option --desktop-pref. It is available in LXQt desktop's context menu and included as the "Desktop" item in the Preferences sub-menu of LXQt Panel's main menu as well as the "LXQt Settings" section of Configuration Center.

All (command-line) options are explained in detail in man 1 pcmanfm-qt.

Development

Issues should go to the tracker of PCManFM-Qt at https://github.com/lxqt/pcmanfm-qt/issues.

Translation

Translations can be done in LXQt-Weblate

Translation status

pcmanfm-qt's People

Contributors

agaida avatar atalanttore avatar ayhanyalcinsoy avatar dglent avatar eltonfabricio10 avatar fat-zer avatar helixbot avatar ito32bit avatar jleclanche avatar luis-pereira avatar lxqtbot avatar mbouzada avatar micrococo avatar npmiller avatar p-bo avatar palinek avatar paulolieuthier avatar pcman avatar philippwiesemann avatar pjotr123 avatar rbuj avatar rimasx avatar safaalfulaij avatar scootergrisen avatar smarquespt avatar stefonarch avatar tsujan avatar ufleisch avatar welaq avatar zoli111 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pcmanfm-qt's Issues

desktop mode: all screens use the same widget

I use 2 monitor (xrandr/nvidia) setup.

pcmanfm-qt loads its "desktop manager" for both screens (which is fine) but unfortunately both screens contain content of "Desktop" directory. It would be great to have an opportunity to have some configuration there.

Something like:

  • set the directory for this screen
  • do not use any file manager on screen X

.desktop file warning

After installing pcmanfm-qt every update of the desktop database (via update-desktop-database) prints this warning:

Warning in file "/usr/share/applications/pcmanfm-qt.desktop": usage of MIME type "x-directory/normal" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)

MTP support

MTP support is very much wanted to go along with automount

Unnecessary error message when ejecting a USB drive

I am not sure if this is bug, a feature request or an error in my environment.

When I plug in a USB memory stick, it is directly usable in pcmanfm-qt. I use gvfs to support this action. When I click on the eject button while the same drive is selected, it unmounts the USB memory stick and then throws the following error.

"The specified directory /run/media/user/label is not valid".

usb-eject

If this is not a bug and not a problem in my environment, I suggest to implement a feature to prevent this. My idea In pseudo-code:

if (eject button == pressed) {
if (current selected drive == ejected_drive) {
select user home drive
}
unmount requested drive
}

What is the suggested way to prevent this error message?

network browsing does not work at all

Location: Network. There I have many icons of correctly discovered network devices.

When I click to any of icon, new window with local filesystem root (/) is opened.

It does not matter if network device is FTP, SMB, AFP, or SSH (probably) device.

it does not launch executables

I'm in /usr/bin, scrolled to eg. lxqt-config. But the binary does not launch by double click or by context menu open

workaround: open a terminal (F4) and launch it from it.

Go back to home folder after unmounting a device

When a device is unmounted/ejected, the current behavior of the selected item on the left is to stay on the just unmounted drive (for example for a partition) or move one up in the list when the device does not exist anymore (for example a USB memory stick). is to close pcmanfm-qt completely.

By this behaviour the selected item ends most of the time up on a non-mounted drive/device, which is unlikely the user is looking for. In my opinion, the most likely the user will continue working from is his home folder.

Therefore, in this feature request I ask to change the selected item to the user home folder after a unmount action.

Below some screenshots of my system to clarify my feature request.

Current before USB unmount
before usb unmount

Current after USB unmount
after usb unmount

Current before partition unmount
before_part_unmount

Current after partition unmount
after part unmount

This feature request will probably also fix the issue of the outdated drive information in the window title and the address bar.
outdated window title

Avoid modal dialogs

Currently, AppChooserDialog, AboutDialog, and some of other dialogs are modal and blocks other windows. This causes some usability problems and need to be fixed.

Ctrl+A command causes several problems

Hello,
Whenever I press ctrl+a, 2 item in a folder is shown as 10 item in the statusbar.Besides when I try to copy them to somewhere else pcmanfm tries to copy it five times to the destination folder.Thank you for all that great software, keep up the good work.

'Show Hidden' is not remembered after exit

I must manually enable 'Show Hidden' each time I start the app. This setting should be remembered, or an option placed in Preferences.

App version: 0.7.0+bzr220+201405220902~ubuntu14.04.1 , 64-bit

Unsupported Places Visible

I do not use for example GVFS and do not have a cdrom drive. Yet pcmanfm-qt will still show many "unsupported" Places links

Links should automatically not show if they are not supported
i.e.

Network. Desktop, Computer, and cdrom

Single instance is broken if run with "root" user

Current IPC using dbus implementation does not work when pcmanfm-qt is executed simutaneously by different users in the same desktop session.
Need to find a better way for single instance handling.

BookMarks should be icon compliant

Booksmarks are all currently the default folder icon, they should instead use special folder icons, if needed, i.e. "Downloads folder" "Images Folder" "Music Folder" etc.

Looks like the code is somewhere in libfm-qt gonna try to work on it myself.. but still getting up to speed

activation by single click

I cannot activate Preferences "Behavior/Open files with single click" checkbox. It's always disabled.

FYI: Also - we have lxqt settings for single/double click; handled in lxqtsettings.cpp LxQtTheme::qss

multiple files copying

pcmanfm-qt is unable to copy multiple selected files or directories popping an error that the files do not exist.

Allow openbox or other window manager on window manager to display middle click menu when drawing wallpaper

I want the functionality in the gtk version of pcmanfm when it draws the wallpaper to still allow the middle click to be shown to the window manager. Since pcmanfm only uses right click for changing wallpaper or adding items. Also lets you quickly manage windows open or fast way to add new desktop in openbox without opening obconf.

If I make pcmanfm-qt stop drawing the wallpaper the menu opens fine.

unable to compile pcmanfm.cpp

Building CXX object pcmanfm/CMakeFiles/pcmanfm-qt.dir/pcmanfm.cpp.o
cd /builddir/build/BUILD/pcmanfm-qt-152.47e57c1/build/pcmanfm && /usr/bin/c++   -DLIBFM_QT_API=Q_DECL_IMPORT -DPCMANFM_DATA_DIR=\"/usr/share/pcmanfm-qt\" -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_NO_KEYWORDS -O2 -Wa,--compress-debug-sections -gdwarf-4 -fvar-tracking-assignments -frecord-gcc-switches -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4  -fPIC -O3 -DNDEBUG -isystem /usr/lib/qt4/include -isystem /usr/lib/qt4/include/QtGui -isystem /usr/lib/qt4/include/QtDBus -isystem /usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtDesigner -I/usr/lib/qt4/include/QtDeclarative -I/usr/lib/qt4/include/QtScriptTools -I/usr/lib/qt4/include/QtXml -I/usr/lib/qt4/include/QtSql -I/usr/lib/qt4/include/QtOpenGL -I/usr/lib/qt4/include/QtMultimedia -I/usr/lib/qt4/include/QtNetwork -I/usr/lib/qt4/include/QtXmlPatterns -I/usr/lib/qt4/include/QtHelp -I/usr/lib/qt4/include/QtUiTools -I/usr/lib/qt4/include/QtTest -I/usr/lib/qt4/include/QtScript -I/usr/lib/qt4/include/QtSvg -I/usr/lib/qt4/include/Qt3Support -I/usr/lib/qt4/mkspecs/default -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/builddir/build/BUILD/pcmanfm-qt-152.47e57c1/build/pcmanfm -I/builddir/build/BUILD/pcmanfm-qt-152.47e57c1/pcmanfm -I/builddir/build/BUILD/pcmanfm-qt-152.47e57c1/libfm-qt    -o CMakeFiles/pcmanfm-qt.dir/pcmanfm.cpp.o -c /builddir/build/BUILD/pcmanfm-qt-152.47e57c1/pcmanfm/pcmanfm.cpp
/builddir/build/BUILD/pcmanfm-qt-152.47e57c1/pcmanfm/pcmanfm.cpp:3:30: fatal error: libfm-qt/libfmqt.h: No such file or directory
make[2]: *** [pcmanfm/CMakeFiles/pcmanfm-qt.dir/pcmanfm.cpp.o] Error 1

I see libfm-qt in the includes path with the command, so I've been a bit confused.

Crash when closing a window

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff620880d in g_type_check_instance () from /usr/lib/libgobject-2.0.so.0
(gdb) bt
#0  0x00007ffff620880d in g_type_check_instance () from /usr/lib/libgobject-2.0.so.0
#1  0x00007ffff61fe614 in g_signal_handlers_disconnect_matched () from /usr/lib/libgobject-2.0.so.0
#2  0x00007ffff595b369 in Fm::PlacesModel::~PlacesModel() () from /usr/lib/libfm-qt.so.0.0.0
#3  0x00007ffff595b3d8 in Fm::PlacesModel::~PlacesModel() () from /usr/lib/libfm-qt.so.0.0.0
#4  0x00007ffff7a8bbf8 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#5  0x00007ffff6e61c77 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#6  0x00007ffff5959189 in Fm::PlacesView::~PlacesView() () from /usr/lib/libfm-qt.so.0.0.0
#7  0x00007ffff59591be in Fm::PlacesView::~PlacesView() () from /usr/lib/libfm-qt.so.0.0.0
#8  0x00007ffff7a8bbf8 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#9  0x00007ffff6e61c77 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#10 0x00007ffff59411f9 in Fm::SidePane::~SidePane() () from /usr/lib/libfm-qt.so.0.0.0
#11 0x00007ffff594122e in Fm::SidePane::~SidePane() () from /usr/lib/libfm-qt.so.0.0.0
#12 0x00007ffff7a8bbf8 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#13 0x00007ffff6e61c77 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#14 0x00007ffff7255cb9 in QSplitter::~QSplitter() () from /usr/lib/libQtGui.so.4
#15 0x00007ffff7a8bbf8 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#16 0x00007ffff6e61c77 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#17 0x00007ffff6e61f89 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#18 0x00007ffff7a8bbf8 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#19 0x00007ffff6e61c77 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#20 0x000000000041982a in _start ()

unexpected opening to new window

I'm in computer:/// (/ of filesystem), so I see 2 icons of HDDs:
"File System" and "Hitachi ..."

When I activate the icon (doubleclick/open) the / is opened in new window instead of the current one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.