Code Monkey home page Code Monkey logo

hyprload's Introduction

Hyprload

A Hyprland plugin manager

Important

Deprecated This plugin has been all but made obsolete by Hyprland now including hyprpm, its own plugin manager. hyprload will likely not receive additional updates, as even I have switched over to hyprpm.

Features

  • Loading plugins
  • Reloading plugins
  • Installing and updating plugins automatically
    • A unified plugin manifest format
    • Installing from git
    • Installing from local
    • Self-hosting
  • Plugin browser

Requirements

  • Hyprland >= 0.31.0
  • jq (required for checking Hyprland version)
  • polkit (required to set up Hyprland plugin env)
    • You will need an authentication agent set up. lxsession works for me.
  • cpio (required during installation for file management)

Installing

  1. Install hyprload
    • curl -sSL https://raw.githubusercontent.com/Duckonaut/hyprload/main/install.sh | bash
  2. Add this to your config to initialize hyprload
    • exec-once=$HOME/.local/share/hyprload/hyprload.sh

Setup

  1. To have hyprload manage your plugin installation, create a hyprload.toml file (by default, next to your hyprland.conf config: ~/.config/hypr/hyprload.toml
  2. Fill it out with the plugins you want. It consists of one array, named plugins, in which you can provide the installation source in various ways. Example:
plugins = [
    # Installs the plugin from https://github.com/Duckonaut/split-monitor-workspaces
    "Duckonaut/split-monitor-workspaces",
    # A more explicit definition of the git install
    { git = "https://github.com/Duckonaut/split-monitor-workspaces", branch = "main", name = "split-monitor-workspaces" },
    # Installs the same plugin from a local folder
    { local = "/home/duckonaut/repos/split-monitor-workspaces" },
]
  1. Add keybinds to the hyprload dispatcher in your hyprland.conf for the functions you want.
    • Possible values:
      • load: Loads all the plugins
      • clear: Unloads all the plugins
      • reload: Unloads then reloads all the plugins
      • install: Installs the required plugins from hyprload.toml
      • update: Updates hyprload and the required plugins from hyprload.toml
    • Example:
bind=SUPERSHIFT,R,hyprload,reload
bind=SUPERSHIFT,U,hyprload,update

Configuration

The configuration of hyprload behavior is done in hyprland.conf, like a normal plugin

Name Type Default Description
plugin:hyprload:quiet bool false Whether to hide the notifications
plugin:hyprload:debug bool false Whether to hide extra-special debug notifications
plugin:hyprload:config string ~/.config/hypr/hyprload.toml The path to your plugin requirements file
plugin:hyprload:hyprland_headers string empty The path to the Hyprland source to force using as headers.

Plugin Development

If you maintain a plugin for Hyprland, to support automatic management via hyprload.toml, you need to create a hyprload.toml manifest in the root of your repository. hyprload cannot assume the way your plugins are built.

Format

The plugin manifest needs to specify some information about the plugins in the repo. If you're familiar with TOML, it means specifying two dictionaries per plugin - PLUGIN_NAME and PLUGIN_NAME.build. The PLUGIN_NAME dictionary has basic information about the plugin like the version, the description and the author. These are not used currently, and can be omitted if you don't want to bother for now.

The PLUGIN_NAME.build dictionary is much more important, as it holds 2 important values: output, which is the path to the built plugin .so from the repo root, and steps, which holds the commands to run to build that .so. hyprload will define HYPRLAND_HEADERS while building the plugin, and guarantees the version of the headers matches the Hyprland version you're running.

It's important to note that the hyprload.toml plugin manifest can hold multiple plugins. This allows you to define a single manifest for a monorepo.

The full specification of a PLUGIN_NAME dict:

Name Type Description
description string Short description
version string Version
author string Author
authors list Can be defined instead of author
build.output string The path of the .so output
build.steps list List of commands to build the .so

Examples

Single plugin

split-monitor-workspaces

[split-monitor-workspaces]
description = "Split monitor workspaces"
version = "1.0.0"
author = "Duckonaut"

[split-monitor-workspaces.build]
output = "split-monitor-workspaces.so"
steps = [
    "make all",
]

Multiple plugins

Here's what the manifest would look like for the official plugins.

[borders-plus-plus]
description ="A plugin to add more borders to windows."
version = "1.0"
author = "Vaxry"

[borders-plus-plus.build]
output = "borders-plus-plus/borders-plus-plus.so"
steps = [
    "make -C borders-plus-plus all",
]

[csgo-vulkan-fix]
description = "A plugin to fix incorrect mouse offsets on csgo in Vulkan"
version = "1.0"
author = "Vaxry"

[csgo-vulkan-fix.build]
output = "csgo-vulkan-fix/csgo-vulkan-fix.so"
steps = [
    "make -C csgo-vulkan-fix all",
]

[hyprbars]
description = "A plugin to add title bars to windows"
version = "1.0"
author = "Vaxry"

[hyprbars.build]
output = "hyprbars/hyprbars.so"
steps = [
    "make -C hyprbars all",
]

hyprload's People

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

hyprload's Issues

Installing the official plugins

Hi, I want to install the borders-plus-plus and csgo-vulkan-fix official plugins. What would be the correct approach to using hyprload for this. I tried to add "hyprwm/hyprland-plugins" to the hyprload.toml file, but I get an error saying that there is no manifest file for hyprland-plugins.

install script not working

jq: parse error: Invalid numeric literal at line 1, column 9
jq: parse error: Invalid numeric literal at line 1, column 9
g++ -shared -o hyprload.so obj/BuildProcessDescriptor.o obj/HyprloadConfig.o obj/Hyprload.o obj/HyprloadPlugin.o obj/main.o obj/util.o -g -fPIC --no-gnu-unique -std=c++23 pkg-config --cflags pixman-1 libdrm hyprland -Iinclude -DWLR_USE_UNSTABLE
HYPRLAND_COMMIT not set. Set it to the root Hyprland directory.
make: *** [Makefile:44: check_env] Error 1

Installation error

I'm experiencing the same errors as reported here and also here

I've tried installing wlroots-git as described in one of the above issues, tried uninstalling wl-roots* and letting Hyprload provide it - all to no avail. I'm very much stuck on how to continue with this.

hyprctl version

Hyprland, built from branch main at commit 2c4a06eb547e11e818bbc94d90ecb1b32de21c21 dirty (deps: update hyprland-protocols).
Tag: v0.30.0-7-g2c4a06eb

flags: (if any)

pkg-config --cflags hyprland
-I/usr/local/include/hyprland/protocols -I/usr/local/include/hyprland/wlroots -I/usr/local/include

I do not have /usr/local/include/wlr but contents of /usr/local/include/hyprland/wlroots/wlr is

backend
interfaces
render
types
util
xwayland
backend.h
config.h
config.h.in
version.h
version.h.in
xcursor.h
xwayland.h

and the full error is

curl -sSL https://raw.githubusercontent.com/Duckonaut/hyprload/main/install.sh | bash
[1/7] Cloning hyprload to /home/longpig/.local/share/hyprload/src
Already up to date.
[2/7] Cloned hyprload source to /home/longpig/.local/share/hyprload/src
[3/7] Setting up hyprland source in /home/longpig/.local/share/hyprload/hyprland
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

M	subprojects/wlroots
HEAD is now at 2c4a06eb deps: update hyprland-protocols
[4/7] Set up hyprland source in /home/longpig/.local/share/hyprload/hyprland at commit 2c4a06eb547e11e818bbc94d90ecb1b32de21c21
[5/7] Setting up hyprland plugin environment
make: Entering directory '/home/longpig/.local/share/hyprload/hyprland'
cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja && cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
Not searching for unused variables given on the command line.
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/longpig/.local/share/hyprload/hyprland/subprojects/udis86/build
ninja: no work to do.
/usr/bin/make fixwlr
make[1]: Entering directory '/home/longpig/.local/share/hyprload/hyprland'
sed -E -i -e 's/(soversion = 12)([^032]|$)/soversion = 12032/g' subprojects/wlroots/meson.build
rm -rf ./subprojects/wlroots/build
make[1]: Leaving directory '/home/longpig/.local/share/hyprload/hyprland'
meson setup subprojects/wlroots/build subprojects/wlroots --prefix=/usr/local --buildtype=release -Dwerror=false -Dexamples=false
The Meson build system
Version: 1.2.1
Source dir: /home/longpig/.local/share/hyprload/hyprland/subprojects/wlroots
Build dir: /home/longpig/.local/share/hyprload/hyprland/subprojects/wlroots/build
Build type: native build
Project name: wlroots
Project version: 0.17.0-dev
C compiler for the host machine: cc (gcc 13.2.1 "cc (GCC) 13.2.1 20230801")
C linker for the host machine: cc ld.bfd 2.41.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES
Compiler for C supports arguments -Wendif-labels: YES
Compiler for C supports arguments -Wstrict-aliasing=2: YES
Compiler for C supports arguments -Woverflow: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Walloca: YES
Compiler for C supports arguments -Wno-missing-braces: YES
Compiler for C supports arguments -Wno-missing-field-initializers: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -fmacro-prefix-map=/prefix/to/hide=: YES
Found pkg-config: /usr/sbin/pkg-config (1.8.1)
Run-time dependency wayland-server found: YES 1.22.0
Run-time dependency libdrm found: YES 2.4.116
Run-time dependency xkbcommon found: YES 1.5.0
Run-time dependency pixman-1 found: YES 0.42.2
Library m found: YES
Library rt found: YES
Run-time dependency wayland-protocols found: YES 1.32
Found pkg-config: /usr/sbin/pkg-config (1.8.1)
Build-time dependency wayland-scanner found: YES 1.22.0
Program /usr/bin/wayland-scanner found: YES (/usr/bin/wayland-scanner)
Has header "linux/dma-buf.h" : YES
Run-time dependency egl found: YES 1.5
Run-time dependency gbm found: YES 23.1.8-arch1.1
Run-time dependency glesv2 found: YES 3.2
Program ./embed.sh found: YES (/home/longpig/.local/share/hyprload/hyprland/subprojects/wlroots/render/gles2/shaders/./embed.sh)
Run-time dependency vulkan found: YES 1.3.263
Check usable header "vulkan/vulkan.h" with dependency vulkan: YES
Program glslang found: YES (/usr/sbin/glslang)
Dependency pixman-1 found: YES 0.42.2 (cached)
Dependency gbm found: YES 23.1.8-arch1.1 (cached)
Checking for function "gbm_bo_get_fd_for_plane" with dependency gbm: YES
Run-time dependency libudev found: YES 254
Run-time dependency libseat found: YES 0.8.0
Build-time dependency hwdata found: YES 0.374
Run-time dependency libdisplay-info found: YES 0.1.1
Run-time dependency libliftoff found: YES 0.4.1
Run-time dependency libinput found: YES 1.24.0
Run-time dependency xcb found: YES 1.16
Run-time dependency xcb-dri3 found: YES 1.16
Run-time dependency xcb-present found: YES 1.16
Run-time dependency xcb-render found: YES 1.16
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-shm found: YES 1.16
Run-time dependency xcb-xfixes found: YES 1.16
Run-time dependency xcb-xinput found: YES 1.16
Run-time dependency wayland-client found: YES 1.22.0
Run-time dependency xwayland found: YES 23.2.1
Dependency xcb found: YES 1.16 (cached)
Run-time dependency xcb-composite found: YES 1.16
Run-time dependency xcb-ewmh found: YES 0.4.2
Run-time dependency xcb-icccm found: YES 0.4.2
Dependency xcb-render found: YES 1.16 (cached)
Run-time dependency xcb-res found: YES 1.16
Dependency xcb-xfixes found: YES 1.16 (cached)
Run-time dependency xcb-errors found: YES 1.0.1
Checking for function "xcb_xfixes_set_client_disconnect_mode" with dependencies xcb, xcb-composite, xcb-ewmh, xcb-icccm, xcb-render, xcb-res, xcb-xfixes, xcb-errors: YES
Configuring config.h using configuration
Configuring version.h using configuration
Configuring config.h using configuration
Build targets in project: 134

wlroots 0.17.0-dev

    drm-backend     : YES
    x11-backend     : YES
    libinput-backend: YES
    xwayland        : YES
    gles2-renderer  : YES
    vulkan-renderer : YES
    gbm-allocator   : YES
    session         : YES
    xcb-errors      : YES
    egl             : YES
    libliftoff      : YES

  User defined options
    buildtype       : release
    prefix          : /usr/local
    werror          : false
    examples        : false

Found ninja-1.11.1 at /usr/sbin/ninja
ninja -C subprojects/wlroots/build/
ninja: Entering directory `subprojects/wlroots/build/'
[316/316] Linking target libwlroots.so.12032
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja
Not searching for unused variables given on the command line.
-- Gathering git info
fatal: detected dubious ownership in repository at '/home/longpig/.local/share/hyprload/hyprland'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/longpig/.local/share/hyprload/hyprland
fatal: detected dubious ownership in repository at '/home/longpig/.local/share/hyprload/hyprland'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/longpig/.local/share/hyprload/hyprland
fatal: detected dubious ownership in repository at '/home/longpig/.local/share/hyprload/hyprland'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/longpig/.local/share/hyprload/hyprland
fatal: detected dubious ownership in repository at '/home/longpig/.local/share/hyprload/hyprland'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/longpig/.local/share/hyprload/hyprland
fatal: detected dubious ownership in repository at '/home/longpig/.local/share/hyprload/hyprland'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/longpig/.local/share/hyprload/hyprland
-- Found WaylandScanner at /usr/sbin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- XWAYLAND Enabled (NO_XWAYLAND not defined) checking deps...
-- SYSTEMD support is requested (NO_SYSTEMD not defined) checking deps...
-- Setting precompiled headers
-- Setting link libraries
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/longpig/.local/share/hyprload/hyprland/build
mkdir -p /usr/local/include/hyprland
mkdir -p /usr/local/include/hyprland/protocols
mkdir -p /usr/local/include/hyprland/wlroots
mkdir -p /usr/local/share/pkgconfig
find src -name '*.h*' -print0 | cpio --quiet -0dump /usr/local/include/hyprland
cd subprojects/wlroots/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /usr/local/include/hyprland/wlroots && cd ../../..
cd subprojects/wlroots/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump /usr/local/include/hyprland/wlroots && cd ../../../..
cp ./protocols/*-protocol.h /usr/local/include/hyprland/protocols
cp ./build/hyprland.pc /usr/local/share/pkgconfig
if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi
make: Leaving directory '/home/longpig/.local/share/hyprload/hyprland'
[6/7] Installing hyprload
make: Entering directory '/home/longpig/.local/share/hyprload/src'
Hyprland headers found.
Building with XWayland support.
g++ -c -o obj/util.o src/util.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
In file included from src/util.cpp:2:
include/globals.hpp:2: warning: "WLR_USE_UNSTABLE" redefined
    2 | #define WLR_USE_UNSTABLE
      |
<command-line>: note: this is the location of the previous definition
src/util.cpp: In function ‘void hyprload::info(const std::string&, usize)’:
src/util.cpp:77:19:   in ‘constexpr’ expansion of ‘std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>](logMessage)’
/usr/include/c++/13.2.1/bits/basic_string.h:3582:21:   in ‘constexpr’ expansion of ‘(& __rhs)->std::__cxx11::basic_string<char>::c_str()’
/usr/include/c++/13.2.1/bits/basic_string.h:2584:23:   in ‘constexpr’ expansion of ‘((const std::__cxx11::basic_string<char>*)this)->std::__cxx11::basic_string<char>::_M_data()’
src/util.cpp:77:19: error: the value of ‘logMessage’ is not usable in a constant expression
   77 |         Debug::log(LOG, (' ' + logMessage).c_str());
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/util.cpp:67:21: note: ‘logMessage’ was not declared ‘constexpr’
   67 |         std::string logMessage = "[hyprload] " + message;
      |                     ^~~~~~~~~~
src/util.cpp: In function ‘void hyprload::success(const std::string&, usize)’:
src/util.cpp:91:19:   in ‘constexpr’ expansion of ‘std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>](logMessage)’
/usr/include/c++/13.2.1/bits/basic_string.h:3582:21:   in ‘constexpr’ expansion of ‘(& __rhs)->std::__cxx11::basic_string<char>::c_str()’
/usr/include/c++/13.2.1/bits/basic_string.h:2584:23:   in ‘constexpr’ expansion of ‘((const std::__cxx11::basic_string<char>*)this)->std::__cxx11::basic_string<char>::_M_data()’
src/util.cpp:91:19: error: the value of ‘logMessage’ is not usable in a constant expression
   91 |         Debug::log(LOG, (' ' + logMessage).c_str());
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/util.cpp:81:21: note: ‘logMessage’ was not declared ‘constexpr’
   81 |         std::string logMessage = "[hyprload] " + message;
      |                     ^~~~~~~~~~
src/util.cpp: In function ‘void hyprload::error(const std::string&, usize)’:
src/util.cpp:105:19:   in ‘constexpr’ expansion of ‘std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>](logMessage)’
/usr/include/c++/13.2.1/bits/basic_string.h:3582:21:   in ‘constexpr’ expansion of ‘(& __rhs)->std::__cxx11::basic_string<char>::c_str()’
/usr/include/c++/13.2.1/bits/basic_string.h:2584:23:   in ‘constexpr’ expansion of ‘((const std::__cxx11::basic_string<char>*)this)->std::__cxx11::basic_string<char>::_M_data()’
src/util.cpp:105:19: error: the value of ‘logMessage’ is not usable in a constant expression
  105 |         Debug::log(LOG, (' ' + logMessage).c_str());
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/util.cpp:95:21: note: ‘logMessage’ was not declared ‘constexpr’
   95 |         std::string logMessage = "[hyprload] " + message;
      |                     ^~~~~~~~~~
src/util.cpp: In function ‘void hyprload::debug(const std::string&, usize)’:
src/util.cpp:119:19:   in ‘constexpr’ expansion of ‘std::operator+(_CharT, const __cxx11::basic_string<_CharT, _Traits, _Allocator>&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>](debugMessage)’
/usr/include/c++/13.2.1/bits/basic_string.h:3582:21:   in ‘constexpr’ expansion of ‘(& __rhs)->std::__cxx11::basic_string<char>::c_str()’
/usr/include/c++/13.2.1/bits/basic_string.h:2584:23:   in ‘constexpr’ expansion of ‘((const std::__cxx11::basic_string<char>*)this)->std::__cxx11::basic_string<char>::_M_data()’
src/util.cpp:119:19: error: the value of ‘debugMessage’ is not usable in a constant expression
  119 |         Debug::log(LOG, (' ' + debugMessage).c_str());
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/util.cpp:109:21: note: ‘debugMessage’ was not declared ‘constexpr’
  109 |         std::string debugMessage = "[hyprload] " + message;
      |                     ^~~~~~~~~~~~
make: *** [Makefile:62: obj/util.o] Error 1
make: Leaving directory '/home/longpig/.local/share/hyprload/src'
[7/7] Installed hyprload!

Any assistance would be greatly appreciated :)

Error when executing install script

[6/7] Installing hyprload
make: Entering directory '/home/jonas/.local/share/hyprload/src'
jq: parse error: Invalid numeric literal at line 1, column 28
jq: parse error: Invalid numeric literal at line 1, column 28
g++ -c -o obj/main.o src/main.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
HYPRLAND_COMMIT not set. Set it to the root Hyprland directory.
make: *** [Makefile:44: check_env] Error 1
make: *** Waiting for unfinished jobs....
src/main.cpp: In function ‘PLUGIN_DESCRIPTION_INFO pluginInit(void*)’:
src/main.cpp:85:69: error: ‘SCallbackInfo’ has not been declared
85 |     HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) {
|                                                                     ^~~~~~~~~~~~~
src/main.cpp:85:59: error: could not convert ‘<lambda closure object>pluginInit(void*)::<lambda(void*, int&, std::any)>()’ from ‘pluginInit(void*)::<lambda(void*, int&, std::any)>’ to ‘HOOK_CALLBACK_FN’ {aka ‘std::function<void(void*, std::any)>’}
85 |     HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) {
|                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|                                                           |
|                                                           pluginInit(void*)::<lambda(void*, int&, std::any)>
86 |         hyprload::g_pHyprload->handleTick();
|         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87 |     });
|     ~
make: *** [Makefile:62: obj/main.o] Error 1
make: Leaving directory '/home/jonas/.local/share/hyprload/src'
[7/7] Installed hyprload!

Invalid dispatcher

I'm currently at hyprland-git 0.32.3.r79 and installed hyprload as per directions. I can load, unload, update etc, but when configuring with the split-workspace commands, hyprland shows a red bar on top with the error invalid dispatcher, requested split-movetoworkspace does not exist.

So, even if it looks like the plugin has been installed ok, the commands are not recognized....

Feature Request: Enable/Disable plugins via the config file

Per our discussion on the Hyprland discord:

kcrmson — Today at 3:17 PM
oh yeah, any possibility of being able to easily disable/re-enable plugins perhaps?
EchoDuck — Today at 3:17 PM
sure, could do that
would be done via the config file
kcrmson — Today at 3:18 PM
makes good sense that way, blacklist ones you don't want to load?
EchoDuck — Today at 3:19 PM
you'd add enabled = false in the plugin def you want, it'd mean that its kept up to date but not loaded

Debug logging in executeCommand doesn't properly print command, result, or exit code

These lines don't seem to work properly:

hyprload/src/util.cpp

Lines 201 to 203 in 8a72750

Debug::log(LOG, " [hyprload] Command: %s", command.c_str());
Debug::log(LOG, " [hyprload] Exit code: %d", exit);
Debug::log(LOG, " [hyprload] Result: %s", result.c_str());

Example output in /tmp/hypr/<id>/hyprland.log while running hyprctl dispatch hyprload update:

[LOG]  [hyprload] Command: %s
[LOG]  [hyprload] Exit code: %d
[LOG]  [hyprload] Result: %s

Installation error

I am facing this error when i try to install hyprload

curl -sSL https://raw.githubusercontent.com/Duckonaut/hyprload/main/install.sh 
| bash
[1/7] Cloning hyprload to /home/shadow/.local/share/hyprload/src
Already up to date.
[2/7] Cloned hyprload source to /home/shadow/.local/share/hyprload/src
[3/7] Setting up hyprland source in /home/shadow/.local/share/hyprload/hyprland
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

HEAD is now at 7fde80f3 layers: fix wonky focus on multimon
[4/7] Set up hyprland source in /home/shadow/.local/share/hyprload/hyprland at commit 7fde80f38eefef4ec1e682947c4ae152aa0974db
[5/7] Setting up hyprland plugin environment
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ====
Authentication is needed to run `/usr/bin/make' as the super user
Authenticating as: shadow
Password: 
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ====
Error executing command as another user: Not authorized

This incident has been reported.
[6/7] Installing hyprload
make: Entering directory '/home/shadow/.local/share/hyprload/src'
Hyprland headers not available. Run `make pluginenv` in the root Hyprland directory.
make: *** [Makefile:45: check_env] Error 1
make: Leaving directory '/home/shadow/.local/share/hyprload/src'
[7/7] Installed hyprload!

i already run make pluginenv many times but still getting the same error

20230503_12h59m10s_grim

Hyprland crashing

using the git version of hyprland on arch linux and it is crashing if adding hyprload

Hyprland, built from branch main at commit 99ca26d4eb84e0071264713902e5b287fcab392e dirty (hooksystem: fix missed log include).
Tag: v0.32.3-84-g99ca26d4

flags: (if any)
debug

Hyprload not installing on Hyprland 0.31.0 (built from source)

As mentioned in #24, hyprload fails to install. I was on Hyprland 0.31.0 when I posted that issue, and I've since updated to the latest commit and still face the same issue.

Proof of Hyprland version:

hyprctl version
Hyprland, built from branch main at commit a1b138a6258b00787cea43bddc48b7caa8cca3a0 dirty ([gha] Nix: update wlroots).
Tag: v0.31.0-35-ga1b138a6

flags: (if any)
debug

Do you have any suggestions to debug the issue?


Edit:
Posting error again for visibility:

Hyprland headers found.
Building with XWayland support.
src/main.cpp: In function ‘PLUGIN_DESCRIPTION_INFO pluginInit(void*)’:
src/main.cpp:85:69: error: ‘SCallbackInfo’ has not been declared
   85 |     HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) {
      |                                                                     ^~~~~~~~~~~~~
src/main.cpp:85:59: error: could not convert ‘<lambda closure object>pluginInit(void*)::<lambda(void*, int&, std::any)>()’ from ‘pluginInit(void*)::<lambda(void*, int&, std::any)>’ to ‘HOOK_CALLBACK_FN’ {aka ‘std::function<void(void*, std::any)>’}
   85 |     HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) {
      |                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                           |
      |                                                           pluginInit(void*)::<lambda(void*, int&, std::any)>
   86 |         hyprload::g_pHyprload->handleTick();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
   87 |     });
      |     ~                                                      
make: *** [Makefile:61: obj/main.o] Error 1

Hyprland ERR log: caught exception in Debug::log: format error: invalid arg-id in format string

[ERR] caught exception in Debug::log: format error: invalid arg-id in format string
[LOG] stacktrace:
         #0 | Hyprland(_Z12getBacktracev+0x62) [0x5634283f35c2]
         #1 | /home/lisuke/hyprload/hyprload.so(_ZN5Debug3logIJEEEv8LogLevelRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_+0x4c2) [0x7f9b93b88a7c]
         #2 | /home/lisuke/hyprload/hyprload.so(_ZN8hyprload5debugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm+0x230) [0x7f9b93b83bf5]
         #3 | /home/lisuke/hyprload/hyprload.so(_ZN8hyprload8Hyprload23fetchHyprlandCommitHashB5cxx11Ev+0xfe) [0x7f9b93b4f06e]
         #4 | /home/lisuke/hyprload/hyprload.so(_ZN8hyprload8Hyprload28getCurrentHyprlandCommitHashB5cxx11Ev+0x42) [0x7f9b93b4f276]
         #5 | /home/lisuke/hyprload/hyprload.so(_ZN8hyprload8Hyprload30checkIfHyprloadFullyCompatibleEv+0x173) [0x7f9b93b4ca97]
         #6 | /home/lisuke/hyprload/hyprload.so(pluginInit+0x88b) [0x7f9b93b717d7]
         #7 | Hyprland(_ZN13CPluginSystem10loadPluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x352) [0x56342844f192]
         #8 | Hyprland(_Z14dispatchPluginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x33b) [0x5634283d28db]
         #9 | Hyprland(_Z8getReplyNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x5f4) [0x5634283d4984]
         #10 | Hyprland(_Z13hyprCtlFDTickijPv+0x189) [0x5634283d5d29]
         #11 | /usr/lib/libwayland-server.so.0(wl_event_loop_dispatch+0xa2) [0x7f9ba375cae2]
         #12 | /usr/lib/libwayland-server.so.0(wl_display_run+0x27) [0x7f9ba375d2d7]
         #13 | Hyprland(main+0x8d6) [0x563428339bf6]
         #14 | /usr/lib/libc.so.6(+0x27cd0) [0x7f9ba2c27cd0]
         #15 | /usr/lib/libc.so.6(__libc_start_main+0x8a) [0x7f9ba2c27d8a]
         #16 | Hyprland(_start+0x25) [0x56342834b775]

hyprload fails to install

Hey, Hyprland's headers are found fine. I've built hyprland from source, and when doing a fresh install of hyprload the following's thrown during step [6/7]
src/main.cpp: In function ‘PLUGIN_DESCRIPTION_INFO pluginInit(void*)’: src/main.cpp:85:69: error: ‘SCallbackInfo’ has not been declared 85 | HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) { | ^~~~~~~~~~~~~ src/main.cpp:85:59: error: could not convert ‘<lambda closure object>pluginInit(void*)::<lambda(void*, int&, std::any)>()’ from ‘pluginInit(void*)::<lambda(void*, int&, std::any)>’ to ‘HOOK_CALLBACK_FN’ {aka ‘std::function<void(void*, std::any)>’} 85 | HyprlandAPI::registerCallbackDynamic(PHANDLE, "tick", [](void*, SCallbackInfo&, std::any) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | pluginInit(void*)::<lambda(void*, int&, std::any)> 86 | hyprload::g_pHyprload->handleTick(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 87 | }); | ~ make: *** [Makefile:61: obj/main.o] Error 1

Any other steps I can take to debug? I've checked the src, but I'm not super familiar with hyprland/load's internals.

Hyprload installataion fails

[1/7] Cloning hyprload to /home/niksingh710/.local/share/hyprload/src
Already up to date.
[2/7] Cloned hyprload source to /home/niksingh710/.local/share/hyprload/src
[3/7] Setting up hyprland source in /home/niksingh710/.local/share/hyprload/hyprland
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

M       subprojects/wlroots
HEAD is now at 8531d1d7 Readme: update to mention plugins
[4/7] Set up hyprland source in /home/niksingh710/.local/share/hyprload/hyprland at commit 8531d1d7a67f6213de73466f0351a1ae709f8f4f
[5/7] Setting up hyprland plugin environment
make: Entering directory '/home/niksingh710/.local/share/hyprload/hyprland'
make protocols
make[1]: Entering directory '/home/niksingh710/.local/share/hyprload/hyprland'
make[1]: Nothing to be done for 'protocols'.
make[1]: Leaving directory '/home/niksingh710/.local/share/hyprload/hyprland'
cd subprojects/udis86 && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja && cmake --build ./build --config Release --target all -j8
/bin/sh: line 1: cmake: command not found
make: *** [Makefile:230: pluginenv] Error 127
make: Leaving directory '/home/niksingh710/.local/share/hyprload/hyprland'
[6/7] Installing hyprload
make: Entering directory '/home/niksingh710/.local/share/hyprload/src'
mkdir -p obj
g++ -c -o obj/util.o src/util.cpp -g -fPIC --no-gnu-unique -I "/usr/include/pixman-1" -I "/usr/include/libdrm" -I "/home/niksingh710/.local/share/hyprload/hyprland" -Iinclude -std=c++23
src/util.cpp:1:10: fatal error: src/SharedDefs.hpp: No such file or directory
    1 | #include "src/SharedDefs.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:35: obj/util.o] Error 1
make: Leaving directory '/home/niksingh710/.local/share/hyprload/src'
[7/7] Installed hyprload!

Failed to setup hyprland headers

Building Hyprland from source and have build the latest hyprland and hyprload. When i try to install plugins I get the error failed to setup hyprland header and dont now what to do. Does someone have some debug steps?

The installation script doesn't work

[5/7] Setting up hyprland plugin environment
make: Entering directory '/home/kira/.local/share/hyprload/include/hyprland'
/bin/sh: 1: [[: not found
make clear
make[1]: Entering directory '/home/kira/.local/share/hyprload/include/hyprland'
rm -rf build
rm -f ./protocols/*-protocol.h ./protocols/*-protocol.c
rm -rf ./subprojects/wlroots/build
make[1]: Leaving directory '/home/kira/.local/share/hyprload/include/hyprland'
make release
make[1]: Entering directory '/home/kira/.local/share/hyprload/include/hyprland'
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build -G Ninja
Not searching for unused variables given on the command line.
-- The C compiler identification is Clang 17.0.3
-- The CXX compiler identification is Clang 17.0.3
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /sbin/clang - 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: /sbin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Gathering git info
-- Found Python3: /sbin/python3.12 (found version "3.12.0") found components: Interpreter
Building itab.c/itab.h...
-- Setting up wlroots
-- Found WaylandScanner at WaylandScanner-NOTFOUND
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found PkgConfig: /sbin/pkg-config (found version "0.29.2")
CMake Error at /usr/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY
  OPENGL_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.27/Modules/FindOpenGL.cmake:545 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:104 (find_package)


-- Configuring incomplete, errors occurred!
make[1]: *** [Makefile:14: release] Error 1
make[1]: Leaving directory '/home/kira/.local/share/hyprload/include/hyprland'
make: *** [Makefile:31: all] Error 2
make: Leaving directory '/home/kira/.local/share/hyprload/include/hyprland'
[6/7] Installing hyprload
make: Entering directory '/home/kira/.local/share/hyprload/src'
g++ -c -o obj/BuildProcessDescriptor.o src/BuildProcessDescriptor.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
g++ -c -o obj/Hyprload.o src/Hyprload.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
g++ -c -o obj/HyprloadConfig.o src/HyprloadConfig.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
g++ -c -o obj/HyprloadPlugin.o src/HyprloadPlugin.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
Hyprland headers not available. Run `make all` in the root Hyprland directory.
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
Package hyprland was not found in the pkg-config search path.
Perhaps you should add the directory containing `hyprland.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hyprland' found
make: *** [Makefile:45: check_env] Error 1
make: *** Waiting for unfinished jobs....
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
g++ -c -o obj/main.o src/main.cpp -g -fPIC --no-gnu-unique -std=c++23 `pkg-config --cflags pixman-1 libdrm hyprland` -Iinclude -DWLR_USE_UNSTABLE
Package hyprland was not found in the pkg-config search path.
Perhaps you should add the directory containing `hyprland.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hyprland' found
/bin/sh: 1: g++: not found
/bin/sh: 1: g++: not found
make: *** [Makefile:62: obj/BuildProcessDescriptor.o] Error 127
make: *** [Makefile:62: obj/Hyprload.o] Error 127
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
Package hyprland was not found in the pkg-config search path.
Perhaps you should add the directory containing `hyprland.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hyprland' found
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
Package hyprland was not found in the pkg-config search path.
Perhaps you should add the directory containing `hyprland.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hyprland' found
/bin/sh: 1: g++: not found
make: *** [Makefile:62: obj/HyprloadConfig.o] Error 127
/bin/sh: 1: g++: not found
make: *** [Makefile:62: obj/HyprloadPlugin.o] Error 127
Package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
Package hyprland was not found in the pkg-config search path.
Perhaps you should add the directory containing `hyprland.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hyprland' found
/bin/sh: 1: g++: not found
make: *** [Makefile:62: obj/main.o] Error 127
make: Leaving directory '/home/kira/.local/share/hyprload/src'
[7/7] Installed hyprload!

OS: Void Linux
Hyprland: v0.32.3

Add a license

I would like to package this for NixOS (relevant issue). Unfortunately the lack of a license means that this is to be treated as unfree code, which would make using and redistributing it very hard and cumbersome. I'd would be wonderful, if you could add a Foss license, preferably a FSF approved one like the GPL or LGPL. Of course, if you intended this to be a proprietary application, you can just close the issue.

Hyprload installs but doesn't load

Hi, I installed using curl -sSL https://raw.githubusercontent.com/Duckonaut/hyprload/main/install.sh | bash, but when I want to load Hyprload it says error in loading plugin.

Also, hyprload.sh is located in $HOME/.local/share/hyprload/src/hyprload.sh, not in $HOME/.local/share/hyprload/hyprload.sh.

I'm on Arch Linux using the latest official version of Hyprland.

Please, if you need more information just tell me.

install fail wlr/backend.h: No such file

hyprload is failing to compile hyprland as the source doesnt contain backend.h and terminating comilation

/home/olivia/.local/share/hyprload/hyprland/src/helpers/../includes.hpp:36:10: fatal error: wlr/backend.h: No such file or directory
36 | #include <wlr/backend.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:36: obj/HyprloadConfig.o] Error 1
make: Leaving directory '/home/olivia/.local/share/hyprload/src'

Need error handlers

HyperLoad crashes Hyperland and there is no any info which crashes!
I think hyperload config errors mustn't crash all environment

Hyprland Crashes

Yes, the compilation was successful. However, when I try to run the $HOME/.local/share/hyprload/hyprload.sh , Hyprland crashes. (During the first launch of Hyprland, all plugins worked perfectly without any issues. )

Crash Report
-------------------------------------------- Hyprland Crash Report -------------------------------------------- Calm down, it was a misinput! MISINPUT!

Hyprland received signal 11 (Segmentation fault)

Version: f2725a374a5921903bf918fdfd8111b537cbf18f

Hyprland seems to be running with plugins. This crash might not be Hyprland's fault.
Plugins:
()

System info:
System name: Linux
Node name: elite
Release: 6.3.1-arch2-1
Version: #1 SMP PREEMPT_DYNAMIC Wed, 10 May 2023 08:54:47 +0000

GPU:
00:02.0 VGA compatible controller [0300]: Intel Corporation CometLake-H GT2 [UHD Graphics] [8086:9bc4] (rev 05) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile] [10de:1f95] (rev a1) (prog-if 00 [VGA controller])

os-release:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

Backtrace:
#0 | Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0x78e) [0x55fbd42590ee]
??
??:0
#1 | Hyprland(_Z25handleUnrecoverableSignali+0x3c) [0x55fbd41f4cdc]
??
??:0
#2 | /usr/lib/libc.so.6(+0x39ab0) [0x7f633dd62ab0]
??
??:0
#3 | /home/shadow/.local/share/hyprload/hyprload.so(_ZNKSt8_Rb_treeIN4toml2v33keyESt4pairIKS2_St10unique_ptrINS1_4nodeESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIvESaISA_EE8_M_beginEv+0xc) [0x7f632816641a]
??
??:0
#4 | /home/shadow/.local/share/hyprload/hyprload.so(ZNKSt8_Rb_treeIN4toml2v33keyESt4pairIKS2_St10unique_ptrINS1_4nodeESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIvESaISA_EE17_M_lower_bound_trISt17basic_string_viewIcSt11char_traitsIcEEvEESt23_Rb_tree_const_iteratorISA_ERKT+0x2c) [0x7f6328163ff2]
??
??:0
#5 | /home/shadow/.local/share/hyprload/hyprload.so(ZNKSt8_Rb_treeIN4toml2v33keyESt4pairIKS2_St10unique_ptrINS1_4nodeESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIvESaISA_EE10_M_find_trISt17basic_string_viewIcSt11char_traitsIcEEvEESt23_Rb_tree_const_iteratorISA_ERKT+0x33) [0x7f632816011b]
??
??:0
#6 | /home/shadow/.local/share/hyprload/hyprload.so(ZNSt8_Rb_treeIN4toml2v33keyESt4pairIKS2_St10unique_ptrINS1_4nodeESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIvESaISA_EE10_M_find_trISt17basic_string_viewIcSt11char_traitsIcEEvEESt17_Rb_tree_iteratorISA_ERKT+0x3a) [0x7f6328160062]
??
??:0
#7 | /home/shadow/.local/share/hyprload/hyprload.so(ZNSt3mapIN4toml2v33keyESt10unique_ptrINS1_4nodeESt14default_deleteIS4_EESt4lessIvESaISt4pairIKS2_S7_EEE4findISt17basic_string_viewIcSt11char_traitsIcEEEEDTcldtdtdefpT4_M_t10_M_find_trfp_EERKT+0x23) [0x7f63281584e7]
??
??:0
#8 | /home/shadow/.local/share/hyprload/hyprload.so(_ZN4toml2v35table3getESt17basic_string_viewIcSt11char_traitsIcEE+0x46) [0x7f63281479ce]
??
??:0
#9 | /home/shadow/.local/share/hyprload/hyprload.so(_ZNK4toml2v35table8containsESt17basic_string_viewIcSt11char_traitsIcEE+0x5e) [0x7f6328146e3e]
??
??:0
#10 | /home/shadow/.local/share/hyprload/hyprload.so(_ZN8hyprload6config14HyprloadConfigC1Ev+0x147) [0x7f63281449bf]
??
??:0
#11 | /home/shadow/.local/share/hyprload/hyprload.so(ZSt11make_uniqueIN8hyprload6config14HyprloadConfigEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0+0x2e) [0x7f6328199f5f]
??
??:0
#12 | /home/shadow/.local/share/hyprload/hyprload.so(pluginInit+0xa2c) [0x7f632819776e]
??
??:0
#13 | Hyprland(_ZN13CPluginSystem10loadPluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0xabb) [0x55fbd42f4e4b]
??
??:0
#14 | Hyprland(_Z14dispatchPluginNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x10f) [0x55fbd426438f]
??
??:0
#15 | Hyprland(_Z8getReplyNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x5b7) [0x55fbd42657f7]
??
??:0
#16 | Hyprland(_Z13hyprCtlFDTickijPv+0x100) [0x55fbd4266350]
??
??:0
#17 | /usr/lib/libwayland-server.so.0(wl_event_loop_dispatch+0xa2) [0x7f633e980ae2]
??
??:0
#18 | /usr/lib/libwayland-server.so.0(wl_display_run+0x27) [0x7f633e9812d7]
??
??:0
#19 | Hyprland(main+0x4b4) [0x55fbd41e6214]
??
??:0
#20 | /usr/lib/libc.so.6(+0x23850) [0x7f633dd4c850]
??
??:0
#21 | /usr/lib/libc.so.6(__libc_start_main+0x8a) [0x7f633dd4c90a]
??
??:0
#22 | Hyprland(_start+0x25) [0x55fbd41f4b85]
??
??:0

Log tail:
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 ~/.config/hypr/scripts/wall
[LOG] Process Created with pid 4858
[LOG] Executing WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 /home/shadow/.local/share/hyprload/hyprload.sh
[LOG] Process Created with pid 4861
[LOG] ApplyConfigToKeyboard for "power-button", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Power Button"
[LOG] ApplyConfigToKeyboard for "asus-wireless-radio-control", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Asus Wireless Radio Control"
[LOG] ApplyConfigToKeyboard for "video-bus", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Video Bus"
[LOG] ApplyConfigToKeyboard for "video-bus-1", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Video Bus"
[LOG] ApplyConfigToKeyboard for "power-button-1", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Power Button"
[LOG] ApplyConfigToKeyboard for "sleep-button", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Sleep Button"
[LOG] ApplyConfigToKeyboard for "asus-wmi-hotkeys", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "Asus WMI hotkeys"
[LOG] ApplyConfigToKeyboard for "at-translated-set-2-keyboard", hasconfig: 0
[LOG] Attempting to create a keymap for layout us with variant (rules: , model: , options: )
[LOG] Set the keyboard layout to us and variant to for keyboard "AT Translated Set 2 keyboard"
[LOG] Applied config to mouse elan1203:00-04f3:307a-mouse, sens 0.00
[LOG] Applied config to mouse elan1203:00-04f3:307a-touchpad, sens 0.00
[LOG] Applying monitor rule for eDP-1
[LOG] Not applying a new rule to eDP-1 because it's already applied!
[LOG] Monitor eDP-1 layers arranged: reserved: 0.000000 0.000000 0.000000 0.000000
[LOG] [hookSystem] New hook event registered: render
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Allocated texture for BGTex
[LOG] Background created for monitor eDP-1
[LOG] Shaders initialized successfully.
[wlr] [backend/drm/drm.c:748] connector eDP-1: Modesetting with 1920x1080 @ 60.002 Hz
[LOG] [hyprload] Hyprland version: {
"branch": "main",
"commit": "f2725a374a5921903bf918fdfd8111b537cbf18f",
"dirty": true,
"commit_message": "render: minor fixes to fullscreen rendering",
"flags": []
}
[LOG] [hyprload] Failed to parse config file: File could not be opened for reading

hyprlandCrashReport4796.txt

Originally posted by @shadowelite-sec in #8 (comment)

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.