LxQt Appointment Notifier -Menu Item Editor


#1

I have created an Appointment Notifier for the LxQt desktop. Does LxQt have a desktop menu item editor to allow the application to be added to the main menu? The code is on github at https://github.com/crispinalan/lxqt-appointment-notifier and at the moment I have put up suggested sh and desktop files for launching the application.


(Pedram Pourang) #2

Great :slight_smile:

LXQt isn’t different from other DEs in this respect. You need to add a suitable desktop file to your project and put it in /usr/share/applications ($$PREFIX/share/applications in the pro file) with installation.

EDIT: See this for an example: https://github.com/tsujan/FeatherPad/blob/c2780a1729d3aa3603c4d54700a050549ad20f9c/featherpad/featherpad.pro#L123


#3

Dear Pedram,

Thank you for your reply. I had started to look into using linuxdeployqt for deployment but ran into the issue “Please run on a system with a glibc version no newer than what comes with the oldest still-supported mainstream distribution, which currently is glibc 2.20”. This is widely discussed in the forum post below.

On Debian I checked the libc6 (glibc) version:

aptitude versions libc6 i 2.28-10

which above 2.20 and so abandoned using linuxdeployqt.

Following on from what said in your reply I have created a minimal desktop file called appointmentnotifier.desktop (see below) and copied it into the /usr/share/applications directory


[Desktop Entry] Type=Application Name=Appointment Notifier Comment=Keeps track of appointments Icon=ApplicationNotifier Exec=ApplicationNotifier Categories=Application;


I have then added to following to the .pro file

isEmpty(PREFIX) { PREFIX = /usr/share/applications }

Have I understood this correctly? What are the next steps for deploying (installing) the binary and database?


(Pedram Pourang) #4

No, that won’t work.

You could find a complete example of doing these things with a pro file in FeatherPad’s pro file, whose link I added above and add here again: https://github.com/tsujan/FeatherPad/blob/c2780a1729d3aa3603c4d54700a050549ad20f9c/featherpad/featherpad.pro#L123


(Pedram Pourang) #5

As for " linuxdeployqt", I don’t use and don’t recommend such tools.


(Alf Gaida) #6

@crispinalan - deployment is hard in a few ways - there are a few things to consider:

  • how should my package deployed:
    • Appimage
    • Flatpak
    • Snap
    • Source only
    • Distributions
  • Is my build system really a clever choice?
  • What about lose ends like missed translations, esp:
    • desktop file translation
    • Application translation

Second thing is that the very most linux users don’t compile their stuff themself, these days are (fortunately) long gone. And @tsujan is right :stuck_out_tongue: So it will boil down to deployment via distributions and one or more container formats i guess.


(Pedram Pourang) #7

I completely agree. That’s the correct and safest Linux way, IMO.


(Alf Gaida) #8

And also important - sorry, forgot about first hand:

  • How to promote?
  • If i use the LXQt namespace - would i meet the LXQt formal standards and so on
  • How to gather the needed knowledge?
  • How to collaborate with the people who has the needed knowledge?

This should lead to the question: When my project is a bit more mature and it is for LXQt mostly, why not join these guys? :smiley:


#9

Thanks all for your replies. At the moment deployment is “source code only” with a shell script to run the binary build and a desktop file to run he shell script. I know this is weak but it launches the app on my Lubuntu and Debian LXQt desktop systems. This is how I am launching all the Qt apps that I have written for myself (see screenshots). I will take a more detailed look at the featherpad.pro file and see if I understand it. To be honest I am not following what is going on with it at the moment and I have not found anything particularly helpful in my web searches. Yes I am finding out that deployment is hard.

![lauching-


(Alf Gaida) #10

Well, to be honest: deployment is a permanent pain in the a** - and should be done by distribution maintainers, not by developers - with my Debian Maintainer hat on. So there will be the time when one ask himself: Do i really want to dive deep into the crap? Most of the time the answer should be a clear NO! Solution: Teamwork.


#11

If this dialogue wasn’t meant for ‘user’ input then please discard (!!).

Having had the ‘joy’ of setting up a server wanting to use Snap (snapd and lxd as the container system)

I still have the necessity of removing said (IMO) blight from my system (its a fairly long and not very simple process to remove

(ie rm -r is NOT your friend)) I would ask that you please not use the snap miasma as a primary distribution channel.

I have and will continue to refuse to give any entity the rite to manipulate my system(s) for their

pleasure or profit (Longer explanation available is required.)

Regards


#12

Thanks. I copied my minimal appointment.desktop file (on github) to /usr/share/applications so that the shell launcher now appears in the Accessories menu on Lubuntu. Point taken, I will focus on code development as I know there is much to do on the application after my Sprint on Sunday to get it up and running.


#13

Thinking again about the comment “would i meet the LXQt formal standards and so on” I guess I could drop the dependence on lxqt-notificationd and liblxqt.so and use a more generic way of coding desktop notifications so that the app was not tied into any formal standards which I was not aware of.


(Alf Gaida) #14

There is nothing bad about developing for LXQt - and a Notifier as the first step to our own small PIM is great. But formal standards means also: Not only use liblxqt and maybe libqtxdg - both are great :smiley:

You can see this eventually better in pcmanfm-qt - it is a main part of LXQt but can also be used outside of LXQt. This will lead to some questions: How to take over the system Design, iconsets etc - those things are easy if a application use the lxqt-session and the lxqt-platform-plugin - much things to learn, sure. And in these cases it is fine if people with knowledge can help - that what i would like to say with formal standards.


(Alf Gaida) #15

The problem with using components tied to a certain desktop environment: Things will not run that easy on different environments - if you are fine with (ok, the name lxqt-notifier say so) - cool, go ahead.

I guess @tsujan can write more and better about these things.


(Pedram Pourang) #16

IMHO, dependencies should be added only if really needed. For example, if an app just wants to notify something, it shouldn’t depend on lxqt-notificationd. Or there is no need for a text editor to depend on libfm-qt. However, an image editor may depend on libfm-qt for showing/making thumbnails. And so on.


(Stefano) #17

I liked what I saw, and it could have one thing I miss in LXQt at the moment: the possibility to add period of times, calendar like (example “Holidays march 10th-march-24th”). I used Korganizer but when it managed non to start anymore I switched to Kalendar, which is very rudimental but does what I need, but has bugs and isn’t maintained. Unfortunately I cannot code, but only express wishes :wink:

Question: the binary has to run always to work? I guess so. It could move to systray/statusnotifier on close.


#18

“ liked what I saw, and it could have one thing I miss in LXQt at the moment: the possibility to add period of times, calendar like (example “Holidays march 10th-march-24th”)”

I really like the LXQt desktop but I felt it was missing a utility to allow a user to set appointments and reminders with desktop notifications. Hence my attempt at developing a simple utility to do this. The Gnome desktop integrates closely with Evolution which allows calendar events and reminders to be set but I couldn’t see anything like this with LXQt.

“I used Korganizer but when it managed non to start anymore I switched to Kalendar, which is very rudimental but does what I need, but has bugs and isn’t maintained”.

Interesting. It take a lot of time developing and maintaining software.

“Unfortunately I cannot code, but only express wishes”…. “the binary has to run always to work?”

The code should be easy to build and run. You need to install qt5 and qt-creator using your package manager. So with Lubuntu (or Debian as su) it would be

sudo apt install build-essential

sudo apt install qt5-default

sudo apt install qtcreator

Then open Qt Creator and set up a kit which is the compiler/linker you use to build applications. There are many articles on the web which show how to do this if you need them. Once this is done then download the AppointmentNotifier application from github and then open the AppointmentNotifier.pro file with Qt Creator and build and run the project. That should work. Look for the build directory which contains the binary if you want to make the shell and desktop files discussed in this thread.


#19

Yes it would make sense to join a team working on an LXQt PIM (Personal Information Manager) and integrate efforts. What is link for this? What is the process of joining such a development team? If not, the source code is freely available on my gibhub page and can be used if this is helpful.


#20

“As for " linuxdeployqt", I don’t use and don’t recommend such tools.”

The only reason I started to look into this (creating an AppImage) was because of the LearnQtGuide deployment course (Learn how to deploy your Qt applications on Linux). See