Giter VIP home page Giter VIP logo

liblxqt's Introduction

liblxqt

Overview

liblxqt represents the core library of LXQt providing essential functionality needed by nearly all of its components.

Installation

Sources

Its runtime dependencies are libxss, KWindowSystem, qtbase, and libqtxdg. Additional build dependencies are CMake, lxqt-build-tools and optionally Git to pull latest VCS checkouts.

Code configuration is handled by CMake. CMake variable CMAKE_INSTALL_PREFIX will normally have to be set to /usr, 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 variable DESTDIR as usual.

Binary packages

The library is provided by all major Linux distributions like Arch Linux, Debian, Fedora and openSUSE. Just use your package manager to search for string liblxqt.

Translation

Translations can be done in LXQt-Weblate

Translation status

liblxqt's People

Contributors

agaida avatar amoskvin avatar ayhanyalcinsoy avatar dglent avatar eltonfabricio10 avatar fat-zer avatar jleclanche avatar kuzmas avatar luis-pereira avatar lxqtbot avatar mbouzada avatar mgerstner avatar p-bo avatar paiiou avatar palinek avatar paulolieuthier avatar pcman avatar pvanek avatar scootergrisen avatar selairi avatar smarquespt avatar sokoloffa avatar stefonarch avatar surlykke avatar tsimonq2 avatar tsujan avatar weblate avatar welaq avatar yarons 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

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

liblxqt's Issues

2nd and farther submenu level automatically disappear not usable

Expected Behavior

Any opened menu remains open until you select another submenu or click outside of the menu tree.

This is standard behaviour in MS WIndows.

Current Behavior

Whenever the mouse moves outside of the 2nd or higher menu level, everything is closed except for the first menu level.

This is especially frustrating with the "LXQt Settings" where it is not unlikely that the mouse moves outside the expanded (sub)menus before reaching the final menu.

Also, it is inconsistent that the first menu remains available and doesn't also close.

This also applies to PCmanFM-Qt menues.

20230125 180803_rectangle_564x458

Possible Solution

Keep all expanded (sub)menus open until the user chooses another submenu or clicks somewhere outside the menu tree.

Steps to Reproduce (for bugs)
  1. Click LXQt app menu
  2. Choose "Preferences"
  3. Choose "LXQt Setting"
  4. Moving to the newly opened submenu with the mouse through the empty space that is not underlying any submenu
System Information
  • PcManFm-qt version: 1.1.0
  • Distribution & Version: Lubuntu 22.10
  • Qt Version: 5.15.6
  • liblxqt Version: ?

debian build issue with X11_Xss_LIB

Building LXQt on debian I stumpled into this:

-- Building liblxqt with Qt 5.15.2
-- 
-- liblxqt version: 0.17.0
-- 
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
X11_Xss_LIB (ADVANCED)
    linked by target "lxqt" in directory /home/stef/git/lxqt/liblxqt

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

< --->

  • Distribution & Version: debian 11 bullseye, git checkout
  • Qt Version: 5.15.2
  • libqtxdg Version: latest git
  • lxqt-build-tools Version: latest git

lxqt-session dumped core after upgrade to qt 5.15.10

Arch Linux
linux 6.4.1.arch1-1
qt5-base 5.15.10+kde+r130-1
libqtxdg 3.11.0-2
lxqt-build-tools 0.13.0-1
lxqt-session 1.3.0-3

 Process 658 (lxqt-session) of user 1000 dumped core.

 Stack trace of thread 658:
 #0  0x00007f418b53ce05 n/a (libQt5Gui.so.5 + 0x13ce05)
 #1  0x00007f418b549e66 _ZN15QGuiApplication4fontEv (libQt5Gui.so.5 + 0x149e66)
 #2  0x00007f418b5f4a54 _ZN5QFontC1Ev (libQt5Gui.so.5 + 0x1f4a54)
 #3  0x00007f418c6bec43 _ZN17LXQtPlatformThemeC2Ev (libqtlxqt.so + 0x10c43)
 #4  0x00007f418c6bed4b n/a (libqtlxqt.so + 0x10d4b)
 #5  0x00007f418b5342e7 _ZN21QPlatformThemeFactory6createERK7QStringS2_ (libQt5Gui.so.5 + 0x1342e7)
 #6  0x00007f418b53e769 _ZN22QGuiApplicationPrivate25createPlatformIntegrationEv (libQt5Gui.so.5 + 0x13e769)
 #7  0x00007f418b53fa99 _ZN22QGuiApplicationPrivate21createEventDispatcherEv (libQt5Gui.so.5 + 0x13fa99)
 #8  0x00007f418b09b215 _ZN23QCoreApplicationPrivate4initEv (libQt5Core.so.5 + 0x29b215)
 #9  0x00007f418b53fb46 _ZN22QGuiApplicationPrivate4initEv (libQt5Gui.so.5 + 0x13fb46)
 #10 0x00007f418bd75b9e _ZN19QApplicationPrivate4initEv (libQt5Widgets.so.5 + 0x175b9e)
 #11 0x00007f418c67e048 _ZN4LXQt11ApplicationC1ERiPPc (liblxqt.so.1 + 0x27048)
 #12 0x000055c4ae67c07e n/a (lxqt-session + 0xb07e)
 #13 0x00007f418a839850 n/a (libc.so.6 + 0x23850)
 #14 0x00007f418a83990a __libc_start_main (libc.so.6 + 0x2390a)
 #15 0x000055c4ae67ce35 _start (lxqt-session + 0xbe35)

 Stack trace of thread 669:
 #0  0x00007f418a913c0f __poll (libc.so.6 + 0xfdc0f)
 #1  0x00007f418ad6da9f n/a (libglib-2.0.so.0 + 0xb7a9f)
 #2  0x00007f418ad0e032 g_main_context_iteration (libglib-2.0.so.0 + 0x58032)
 #3  0x00007f418b0ea5cc _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2ea5cc)
 #4  0x00007f418b09a484 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x29a484)
 #5  0x00007f418aef72b6 _ZN7QThread4execEv (libQt5Core.so.5 + 0xf72b6)
 #6  0x00007f418c3a8a9a n/a (libQt5DBus.so.5 + 0x18a9a)
 #7  0x00007f418aef34da n/a (libQt5Core.so.5 + 0xf34da)
 #8  0x00007f418a89d44b n/a (libc.so.6 + 0x8744b)
 #9  0x00007f418a920e40 n/a (libc.so.6 + 0x10ae40)
 ELF object binary architecture: AMD x86-64

LXQT themes not picked up

The themes provided by lxqt-common from /usr/share/lxqt (or /usr/local/share/lxqt depending on the prefix) are not detected, the only error during lxqt-config-appearance start is:

Theme: Cannot open file for reading: "/lxqt-config-appearance.qss"

I noticed that liblxqt still contains reference to razort-qt like this:

QDir dir(QString("%1/razor/themes/%2").arg(path, themeName));

or

QDir dir(QString("%1/razor/themes").arg(path));

in lxqtsettings.cpp

Several files in liblxqt (mostly backlight-related code) is under GPL-2+, which cannot be converted to LGPL-2.1+

See https://github.com/search?q=repo%3Alxqt%2Fliblxqt+%22gnu+general+public+license%22&type=code

liblxqt appears to be mostly under the LGPL-2.1+ license. However, there are several source code files (which can be seen in the above search query) that are licensed under GPL-2+. This means that liblxqt is effectively a GPL-2+ program, despite what the repository's license indicates, and that all software that links with it is also bound by GPL-2+.

It may be helpful to point this out so that no proprietary software attempts to use liblxqt. Alternatively, if this is unintentional, the GPL-2+ files should probably be relicensed.

LxqtPower does not work with systemd provider

LxqtPower is not using the systemd provider because it can't get in touch with it via the dbus system.
You can say the error in the journal logged as:

QDBusMarshaller: cannot add an invalid QVariant
QDBusConnection: error: could not send message to service "org.freedesktop.login1" path "/org/freedesktop/login1" interface "org.freedesktop.login1.Manager" member "CanHibernate": Marshalling failed: Variant containing QVariant::Invalid passed in arguments
Dbus error **************************
Error name "org.freedesktop.DBus.Error.Failed"
Error msg "Marshalling failed: Variant containing QVariant::Invalid passed in arguments"

Expected Behavior

LxqtPower can use also systemd provider

Current Behavior

It can't because of the failing communication

Possible Solution

Pull request #275 should fix this

System Information
  • Distribution & Version: Arch Linux
  • Kernel: 5.10.x
  • Qt Version: 5.15.x
  • libqtxdg Version: 0.16

Restoring of cache settings (SettingsCache::loadToSettings) is not reliable

SettingsCache::loadToSettings() restores the current values but if new keys have been added to the setting, it couldn't remove them.

Because of the internal cache used by Qt itself, using QSettings::clear() at the beginning of SettingsCache::loadToSettings() won't have any effect, even if QSettings::sync() comes after it.

I've encountered the problems caused by Qt's internal cache in one of my apps; they are very annoying. But GLib's Key-value file parser is completely reliable. So, I propose that we use it instead of QSettings in SettingsCache.

Context: I encountered the problem while fixing lxqt/lxqt#1513 (the reset button).

Annoying error message when locking screen

Expected Behavior

When the screen is locked correctly, no error message should be shown.

Current Behavior

An error message is shown with xscreensaver after unlocking the screen.

Possible Solution

Do we lock the screen twice?!

Steps to Reproduce (for bugs)
  1. Install xscreensaver and start it.
  2. Check LXQt Session Settings โ†’ Basic Settings โ†’ Lock screen before suspending/hibernating.
  3. Log out and log in.
  4. Close the lid of your laptop to suspend it (or suspend it in any way).
  5. Open the lid (= resume). The system will be resumed and you could unlock the screen.

Then, after unlocking the screen, you'll see this dialog:

xscreensaver_error

This is redundant because the screen was locked and unlocked correctly.

Context

See lxqt/lxqt#1803 (comment)

System Information
  • Distribution & Version:
  • Kernel:
  • Qt Version:
  • libqtxdg Version:
  • lxqt-build-tools Version:
  • Package version:

FTBFS with Old KDE Frameworks

When building 1.4 on a 22.04 system, which has KDE Frameworks 5.92, it FTBFS because in fae2576 the minimum was bumped to 5.101.

We're going to revert this commit for now, just in our Backports branch, but could we consider a conditional, in case some other systems use old Frameworks?

Thanks.

lxqt-backlight: Discrepancy in reading and writing of brightness

lxqt-backlight gets the brightness value from /sys/class/backlight/*/actual_brightness instead of /sys/class/backlight/*/brightness and then proceeds to write the processed actual_brightness into brightness. (Not like you have the permission to write into actual_brightness anyway...)

This is fine actually, but amdgpu_bl0 returns the raw brightness value (0-65536) for actual_brightness while brightness accepts only values between zero to max_brightness which is 255. When lxqt-backlight writes the processed actual_brightness to brightness, the brightness gets ramped up to 100% as the processed raw values are often in the range of 10000 to 20000, which get clamped to 255 when written to brightness.

Interestingly, this behaviour is not observed when one sets a brightness value directly - it only occurs when one increases or decreases the brightness through lxqt-config-brightness -i/-d. lxqt-config-brightness -s 20 and pkexec lxqt-backlight_backend 20 % does what one would expect: setting the brightness value to 20% of the maximum. This is because both of them do level / 100 * max_brightness instead of actual_brightness and hence is not affected by the bug.

Expected Behavior

The brightness value should be obtained from /sys/class/backlight/*/brightness.

Current Behavior

The brightness value is obtained from /sys/class/backlight/*/actual_brightness.

Possible Solution

For raw drivers, read from brightness instead of actual_brightness. I'm not sure about the other driver types.

Steps to Reproduce (for bugs)

1. Have a laptop with an integrated AMD GPU. Raven Ridge (Vega 7) in my case.
2a. Attempt to increase/decrease the brightness value, and blind your eyes. (lxqt-config-brightness)
2b. Attempt to increase/decrease the brightness value, and nothing happens. (lxqt-backlight_backend)
(lxqt-backlight_backend includes a check for value < max_value before writing to brightness)

System Information
  • Distribution & Version: Arch Linux (rolling)
  • Kernel: 5.7.8
  • Qt Version: 5.15.0-4
  • libqtxdg Version: 3.5.0
  • lxqt-build-tools Version: N/A
  • liblxqt version: 0.15.1-1

Memory leak in backlight driver

Sorry, I din not realize that I was in lxqt repository and I pushed this:
00a3949

Backlight doesn't delete the backlight driver after use and it builds a new one.

Expected Behavior

Change the backlight.
After 60 seconds backlight driver is deleted.

Current Behavior

Backlight driver doesn't be deleted and new one is build.

Possible Solution

The solution is close the stream to backlight driver.
Sorry, I din not realize that I was in lxqt repo and I pushed the solution:
00a3949
I was thinking that I was pushing to my own repo.

Steps to Reproduce (for bugs)
  1. Open qps to check backlight driver
  2. Change the backlight (lxqt-config-brightness) for several minutes.
  3. Check qps and there are lots of backlight drivers
Context
System Information
  • Distribution & Version:
  • Kernel:
  • Qt Version:
  • libqtxdg Version: 0.14
  • lxqt-build-tools Version:
  • Package version:

Building fails in debian

Expected Behavior

liblxqt should build

Current Behavior

it doesn't

Here is the log:


-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Building liblxqt with Qt 5.15.2
-- 
-- liblxqt version: 0.17.0
-- 
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
X11_Xss_LIB (ADVANCED)
    linked by target "lxqt" in directory /home/debian/lxqt/liblxqt

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

I must also mention that I have libxss1 installed. The system runs Debian Sid

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.