Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not working on newer versions #46

Closed
DRAGONTOS opened this issue Nov 26, 2023 · 14 comments
Closed

Not working on newer versions #46

DRAGONTOS opened this issue Nov 26, 2023 · 14 comments

Comments

@DRAGONTOS
Copy link

The plugin is not working in the new Git version. Errors pop up when I try to open something in a special workspace, and the layout is broken. When I attempt to create a tab, it doesn't do anything.
image

@outfoxxed
Copy link
Owner

Special workspaces

See #25. I currently don't use them so I haven't really done much with them. This might get fixed by me, it might not.

When I attempt to create a tab, it doesn't do anything.

I'm currently running a version a few weeks old so compatibility probably broke again. I'll update and see.

@DRAGONTOS
Copy link
Author

So, it broke when they added the commit:
hyprwm/Hyprland@2ebfd0c
I'm currently using my own fork without the new update to wlroot 0.18.0, and the code that broke it was the new matrix stuff in src/helpers/Monitor.cpp. I do not know why that would break it, but it did.

@q234rty
Copy link
Contributor

q234rty commented Nov 27, 2023

For me hyprland seems to outright crash with this plugin in newer git versions. I'm not sure who's fault it is but a coredump is attached.

rogram terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	     return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                                                                                                                           
[Current thread is 1 (Thread 0x7f94ba08c200 (LWP 1897))]
(gdb) bt full
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007f94baeac8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f94bae5c668 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f94bae444b8 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {0, 0, 0, 0, 140273631887368, 140726840888344, 140276771818784, 0, 140276767850496, 140726840888040, 140276771817280, 140276771817168, 140276771817184, 94479640782464, 11197572838228197120, 18446744073709550872}}, sa_flags = 11, sa_restorer = 0x55edc0c95530}
#4  0x000055edc08898ed in handleUnrecoverableSignal(int) (sig=11) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/Compositor.cpp:34
#5  0x00007f94bae5c710 in <signal handler called> () at /usr/lib/libc.so.6
#6  renderGradientTo(CTexture&, CColor const&) (tex=..., grad=...) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/render/decorations/CHyprGroupBarDecoration.cpp:242
        bufferSize = <error reading variable: Cannot access memory at address 0x30>
        CAIROSURFACE = <optimized out>
        CAIRO = <optimized out>
        pattern = <optimized out>
        DATA = <optimized out>
#7  0x000055edc09c6337 in refreshGroupBarGradients() () at /usr/include/c++/13.2.1/bits/stl_vector.h:1125
        PGROUPCOLACTIVE = 0x55edc0c955e8
        PGROUPCOLINACTIVE = 0x55edc0c95708
        PGROUPCOLACTIVELOCKED = 0x55edc0c95828
        PGROUPCOLINACTIVELOCKED = 0x55edc0c95948
#8  0x000055edc08ef5dc in CConfigManager::loadConfigLoadVars() (this=this@entry=0x55edc0c93f00) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/config/ConfigManager.cpp:1677
        mainConfigPath = "/home/q234rty/.config/hypr/hyprland.conf"
        configPath = "/home/q234rty/.config/hypr"
        ifs = {<std::basic_istream<char, std::char_traits<char> >> = {<std::basic_ios<char, std::char_traits<char> >> = {<std::ios_base> = {_vptr.ios_base = 0x7f94bb26fd68 <vtable for std::basic_ifstream<char, std::char_traits<char> >+64>, static boolalpha = std::_S_boolalpha, static dec = std::_S_dec, static fixed = std::_S_fixed, static hex = std::_S_hex, static internal = std::_S_internal, static left = std::_S_left, static oct = std::_S_oct, static right = std::_S_right, static scientific = std::_S_scientific, static showbase = std::_S_showbase, static showpoint = std::_S_showpoint, static showpos = std::_S_showpos, static skipws = std::_S_skipws, static unitbuf = std::_S_unitbuf, static uppercase = std::_S_uppercase, static adjustfield = std::_S_adjustfield, static basefield = std::_S_basefield, static floatfield = std::_S_floatfield, static badbit = std::_S_badbit, static eofbit = std::_S_eofbit, static failbit = std::_S_failbit, static goodbit = std::_S_goodbit, static app = std::_S_app, static ate = std::_S_ate, static binary = std::_S_bin, static in = std::_S_in, static out = std::_S_out, static trunc = std::_S_trunc, static __noreplace = std::_S_noreplace, static beg = std::_S_beg, static cur = std::_S_cur, static end = std::_S_end, _M_precision = 6, _M_width = 0, _M_flags = 4098, _M_exception = std::_S_goodbit, _M_streambuf_state = 6, _M_callbacks = 0x0, _M_word_zero = {_M_pword = 0x0, _M_iword = 0}, _M_local_word = {{_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 0}}, _M_word_size = 8, _M_word = 0x7ffd855c9890, _M_ios_locale = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0x7f94bb278d20 <(anonymous namespace)::c_locale_impl>}}, _M_tie = 0x0, _M_fill = 0 '\000', _M_fill_init = false, _M_streambuf = 0x7ffd855c9760, _M_ctype = 0x7f94bb278740 <(anonymous namespace)::ctype_c>, _M_num_put = 0x7f94bb2786d0 <(anonymous namespace)::num_put_c>, _M_num_get = 0x7f94bb2786e0 <(anonymous namespace)::num_get_c>}, _vptr.basic_istream = 0x7f94bb26fd40 <vtable for std::basic_ifstream<char, std::char_traits<char> >+24>, _M_gcount = 0}, _M_filebuf = {<std::basic_streambuf<char, std::char_traits<char> >> = {_vptr.basic_streambuf = 0x7f94bb26fc48 <vtable for std::basic_filebuf<char, std::char_traits<char> >+16>, _M_in_beg = 0x0, _M_in_cur = 0x0, _M_in_end = 0x0, _M_out_beg = 0x0, _M_out_cur = 0x0, _M_out_end = 0x0, _M_buf_locale = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0x7f94bb278d20 <(anonymous namespace)::c_locale_impl>}}, _M_lock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, _M_file = {_M_cfile = 0x0, _M_cfile_created = true}, _M_mode = 0, _M_state_beg = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}}, _M_state_cur = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}}, _M_state_last = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}}, _M_buf = 0x0, _M_buf_size = 8192, _M_buf_allocated = false, _M_reading = false, _M_writing = false, _M_pback = 0 '\000', _M_pback_cur_save = 0x0, _M_pback_end_save = 0x0, _M_pback_init = false, _M_codecvt = 0x7f94bb2786b0 <(anonymous namespace)::codecvt_c>, _M_ext_buf = 0x0, _M_ext_buf_size = 0, _M_ext_next = 0x0, _M_ext_end = 0x0}}
        line = ""
        linenum = <optimized out>
        PEVENTVEC = 0x55edc0ca0580
        PEVENTVEC = 0x55edc0c8ed50
#9  0x000055edc08ef9ff in CConfigManager::tick() (this=0x55edc0c93f00) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/config/ConfigManager.cpp:1753
        CONFIGPATH = "/home/q234rty/.config/hypr/hyprland.conf"
--Type <RET> for more, q to quit, c to continue without paging--c
        parse = <optimized out>
#10 0x000055edc08fc542 in CConfigManager::handlePluginLoads() (this=0x55edc0c93f00) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/config/ConfigManager.cpp:2306
        pluginsChanged = true
        failedPlugins = std::vector of length 0, capacity 0
#11 0x000055edc08919e8 in CCompositor::initManagers(eManagersInitStage) (this=<optimized out>, stage=<optimized out>) at /usr/src/debug/hyprland-hidpi-xprop-git/hyprland/src/Compositor.cpp:441
#12 0x000055edc087292e in main(int, char**) (argc=1, argv=0x7ffd855ca098) at /usr/include/c++/13.2.1/bits/unique_ptr.h:199
        cmd = "/usr/bin/Hyprland"
        configPath = ""
        ignoreSudo = <optimized out>
        args = std::vector of length 0, capacity 0
➜ q234rty ~ hyprctl version
Hyprland, built from branch main at commit 99ca26d4eb84e0071264713902e5b287fcab392e dirty (hooksystem: fix missed log include).
Tag: v0.32.3-84-g99ca26d4

flags: (if any)
debug

@DRAGONTOS
Copy link
Author

Interesting. Have you set the plugin configuration options?

@q234rty
Copy link
Contributor

q234rty commented Nov 27, 2023

No, my hy3 section is empty.

@DRAGONTOS
Copy link
Author

Ow, okay that's why it doesn't work you need:

plugin {
  hy3 {
    # disable gaps when only one window is onscreen
    no_gaps_when_only = <bool> # default: false

    # policy controlling what happens when a node is removed from a group,
    # leaving only a group
    # 0 = remove the nested group
    # 1 = keep the nested group
    # 2 = keep the nested group only if its parent is a tab group
    node_collapse_policy = <int> # default: 2

    # offset from group split direction when only one window is in a group
    group_inset = <int> # default: 10

    # if a tab group will automatically be created for the first window spawned in a workspace
    tab_first_window = <bool>

    # tab group settings
    tabs {
      # height of the tab bar
      height = <int> # default: 15

      # padding between the tab bar and its focused node
      padding = <int> # default: 5

      # the tab bar should animate in/out from the top instead of below the window
      from_top = <bool> # default: false

      # rounding of tab bar corners
      rounding = <int> # default: 3

      # render the window title on the bar
      render_text = <bool> # default: true

      # font to render the window title with
      text_font = <string> # default: Sans

      # height of the window title
      text_height = <int> # default: 8

      # left padding of the window title
      text_padding = <int> # default: 3

      # active tab bar segment color
      col.active = <color> # default: 0xff32b4ff

      # urgent tab bar segment color
      col.urgent = <color> # default: 0xffff4f4f

      # inactive tab bar segment color
      col.inactive = <color> # default: 0x80808080

      # active tab bar text color
      col.text.active = <color> # default: 0xff000000

      # urgent tab bar text color
      col.text.urgent = <color> # default: 0xff000000

      # inactive tab bar text color
      col.text.inactive = <color> # default: 0xff000000
    }

    # autotiling settings
    autotile {
      # enable autotile
      enable = <bool> # default: false

      # make autotile-created groups ephemeral
      ephemeral_groups = <bool> # default: true

      # if a window would be squished smaller than this width, a vertical split will be created
      # -1 = never automatically split vertically
      # 0 = always automatically split vertically
      # <number> = pixel height to split at
      trigger_width = <int> # default: 0

      # if a window would be squished smaller than this height, a horizontal split will be created
      # -1 = never automatically split horizontally
      # 0 = always automatically split horizontally
      # <number> = pixel height to split at
      trigger_height = <int> # default: 0
     
      # a space or comma separated list of workspace ids where autotile should be enabled
      # it's possible to create an exception rule by prefixing the definition with "not:"
      # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
      # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
      workspaces = <string> # default: all
    }
  }
}

@q234rty
Copy link
Contributor

q234rty commented Nov 27, 2023

As far as I understand there are defaults for all of those and the exact same config was working before I updated hyprland. (And yes, I did rebuild hy3 after the update.)

@outfoxxed
Copy link
Owner

Yeah you don't need any definitions. I can't look into this atm but I'll look tomorrow. I need to make a pr to hyprpaper before it will build on my system.

@DRAGONTOS
Copy link
Author

It should, yeah, but a friend of mine also forgot to set the options, and that also made it not work.

@DRAGONTOS
Copy link
Author

Oh, wait. So, you are running the newest version of Hyprland? Because if so, then the plugin just doesn't work, even if you can get it to load.

@outfoxxed
Copy link
Owner

@q234rty repro'd what's probably your crash and reported upstream at hyprwm/Hyprland#3985

@q234rty
Copy link
Contributor

q234rty commented Nov 29, 2023

For the record, hy3 now works for me with hyprwm/Hyprland@b80c72c

@outfoxxed
Copy link
Owner

@DRAGONTOS does your problem still happen?

@Makesesama
Copy link

Had the same problem. Works again for me. Thanks for creating this ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants