Skip to content

[Package]: quickshell #27888

@Welpyes

Description

@Welpyes

Why is it worth to add this package?

Cool widget framework for creating desktop shells in x11.

Home page URL

https://quickshell.org/

Source code URL

https://github.com/quickshell-mirror/quickshell

Packaging policy acknowledgement

  • The project is actively developed.

  • The project has existing packages and is "well known".

  • Licensed under an open source license.

  • Not available through a language package manager: cargo, cpan, dotnet tool, gem, npm, pip, etc.

  • Not taking up too much disk space (< 100MiB per architecture, exceptions can be made)

  • Not duplicating the functionality of existing packages.

  • Not serving hacking, malware, phishing, spamming, spying, ddos functionality.

  • I certify that I have read Termux Packaging Policy and understand that my request will be denied if it is found lacking.

Additional information

I have compiled it thanks to the help of owokitty from the termux org and havent ran into non user error , error as of this moment.

how to build(very vague):
compile cli11:

https://github.com/CLIUtils/CLI11.git
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$PREFIX -DCLI11_BUILD_TESTS=OFF

install quickshell deps(probably incomplete):

pkg i libglvnd-dev mesa-dev qt6-qt5compat qt6-qtbase-gtk-platformtheme qt6-qtbase qt6-qtcharts qt6-qtdeclarative qt6-qtimageformats qt6-qtlanguageserver qt6-qtmultimedia qt6-qtnetworkauth qt6-qtsvg qt6-qttools qt6-qttranslations qt6-qtwebsockets qt6-shadertools

patch it using the file owokitty provided:

git apply patch.diff

heres the patch

diff --git a/src/core/logging.cpp b/src/core/logging.cpp
index 5c809f6..01004c0 100644
--- a/src/core/logging.cpp
+++ b/src/core/logging.cpp
@@ -27,6 +27,8 @@
 #include <qtmetamacros.h>
 #include <qtypes.h>
 #include <sys/mman.h>
+#include <sys/syscall.h>
+#include <unistd.h>
 #include <sys/sendfile.h>
 
 #include "instanceinfo.hpp"
@@ -296,6 +298,8 @@ void LoggingThreadProxy::initInThread() {
 
 void LoggingThreadProxy::initFs() { this->logging->initFs(); }
 
+#define memfd_create(name,flags) syscall(SYS_memfd_create,name,flags)
+
 void ThreadLogging::init() {
 	auto logMfd = memfd_create("quickshell:logs", 0);
 
diff --git a/src/core/paths.cpp b/src/core/paths.cpp
index 55beb87..dbc3229 100644
--- a/src/core/paths.cpp
+++ b/src/core/paths.cpp
@@ -64,7 +64,7 @@ QDir* QsPaths::baseRunDir() {
 	if (this->baseRunState == DirState::Unknown) {
 		auto runtimeDir = qEnvironmentVariable("XDG_RUNTIME_DIR");
 		if (runtimeDir.isEmpty()) {
-			runtimeDir = QString("/run/user/$1").arg(getuid());
+			runtimeDir = QString("/data/data/com.termux/files/usr/var/run/user/$1").arg(getuid());
 			qCInfo(logPaths) << "XDG_RUNTIME_DIR was not set, defaulting to" << runtimeDir;
 		}
 

then build with:
note using multiple jobs for compile makes it fail for some reason, so use -j1

mkdir build
cd build
cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCRASH_REPORTER=OFF -DSERVICE_POLKIT=OFF -DUSE_JEMALLOC=OFF -DSERVICE_PAM=OFF -DCMAKE_INSTALL_PREFIX=$PREFIX
make
make install

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions