profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kennylevinsen/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Kenny Levinsen kennylevinsen Levinsen Software Copenhagen, Denmark https://kl.wtf/ Most of my stuff happens over at https://sr.ht/~kennylevinsen/ these days.

emersion/basu 57

The sd-bus library, extracted from systemd

kennylevinsen/gocnc 51

CNC tool in Go

kennylevinsen/dot-desktop 14

Desktop file handler for application launchers

kennylevinsen/ecies 7

Curve25519 ECIES

kennylevinsen/dotfiles 4

My precious

kennylevinsen/five-proxy 3

Proxy for five-server

kennylevinsen/daemon 1

Golang daemon handler

kennylevinsen/fosspay 1

Donation collection for FOSS groups and individuals

kennylevinsen/g9ptools 1

9P2000 tools and examples

push eventkennylevinsen/seatd

Kenny Levinsen

commit sha 88db55f6068c1c01d85b61aa6adff0a6b2a8dce8

Bump version to 0.6.3

view details

push time in 37 minutes

created tagkennylevinsen/seatd

tag0.6.3

[mirror] Seat management daemon and library (https://sr.ht/~kennylevinsen/seatd)

created time in 37 minutes

delete branch kennylevinsen/seatd

delete branch : fixlogind

delete time in an hour

issue openedswaywm/sway

Missing frame callback after display sleep

Debug log from foot, where it appears that sway drops the ball on a frame callback leading to frozen windows. I have seen this on and off for a few months, usually after waking the system up from display sleep.

I'll try to reproduce again with debug logs from sway.

[1874203.922] wl_pointer@33.motion(704506553, 1832.347656, 1456.910156)
[1874204.029] wl_pointer@33.frame()
[1874214.160] wl_keyboard@31.leave(29647, wl_surface@3)
[1874214.311] wl_pointer@33.leave(29652, wl_surface@3)
[1874214.362] wl_pointer@33.frame()
[1874214.419] xdg_toplevel@24.configure(1918, 2158, array)
[1874214.488] xdg_surface@23.configure(29648)
[1874214.520]  -> xdg_surface@23.ack_configure(29648)
[1874214.553]  -> wl_surface@3.commit()
[1874214.695]  -> wl_surface@3.damage_buffer(2, 2114, 1914, 22)
[1874215.249]  -> wl_surface@3.frame(new id wl_callback@21)
[1874215.328]  -> wl_surface@3.set_buffer_scale(1)
[1874215.361]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[1874215.425]  -> wl_surface@3.commit()
[1874216.621] wl_buffer@22.release()
[1874226.925] wl_display@1.delete_id(21)
[1874226.996] wl_callback@21.done(704506576)
[1892373.323]  -> wl_surface@3.damage_buffer(2, 2092, 1914, 44)
[1892373.556]  -> wl_surface@3.frame(new id wl_callback@21)
[1892373.575]  -> wl_surface@3.set_buffer_scale(1)
[1892373.581]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[1892373.595]  -> wl_surface@3.commit()
[1892373.978] wl_display@1.delete_id(21)
[1892373.992] wl_buffer@22.release()
[1892373.997] wl_callback@21.done(704524723)
[1901991.241]  -> wl_surface@3.damage_buffer(2, 2092, 1914, 44)
[1901992.143]  -> wl_surface@3.frame(new id wl_callback@21)
[1901992.238]  -> wl_surface@3.set_buffer_scale(1)
[1901992.272]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[1901992.331]  -> wl_surface@3.commit()
[1901993.938] wl_display@1.delete_id(21)
[1901994.008] wl_buffer@22.release()
[1901994.042] wl_callback@21.done(704534343)
[1918460.343]  -> wl_surface@3.damage_buffer(2, 2092, 1914, 44)
[1918460.753]  -> wl_surface@3.frame(new id wl_callback@21)
[1918460.773]  -> wl_surface@3.set_buffer_scale(1)
[1918460.797]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[1918460.810]  -> wl_surface@3.commit()
[1918461.488] wl_display@1.delete_id(21)
[1918461.503] wl_buffer@22.release()
[1918461.525] wl_callback@21.done(704550810)
[1961991.302]  -> wl_surface@3.damage_buffer(2, 2092, 1914, 44)
[1961992.210]  -> wl_surface@3.frame(new id wl_callback@21) << Unserviced callback
[1961992.313]  -> wl_surface@3.set_buffer_scale(1)
[1961992.347]  -> wl_surface@3.attach(wl_buffer@22, 0, 0)
[1961992.414]  -> wl_surface@3.commit()
[1961996.885] wl_buffer@22.release()
[2756565.803] wl_keyboard@31.keymap(1, fd 16, 64381)
[2756574.276] wl_keyboard@31.repeat_info(25, 600)
[2756574.329] wl_keyboard@31.keymap(1, fd 17, 64381)
[2756582.466] wl_keyboard@31.repeat_info(25, 600)
[2756582.501] wl_keyboard@31.keymap(1, fd 19, 64381)
[2756640.805] wl_keyboard@31.repeat_info(25, 600)
[2756640.841] wl_keyboard@31.keymap(1, fd 20, 64381)
[2756648.746] wl_keyboard@31.repeat_info(25, 600)
[2756648.784] wl_keyboard@31.keymap(1, fd 21, 64381)
[2756656.925] wl_keyboard@31.repeat_info(25, 600)
[2756656.959] wl_keyboard@31.keymap(1, fd 22, 64381)
[2756664.989] wl_keyboard@31.repeat_info(25, 600)
[2756665.035] wl_keyboard@31.keymap(1, fd 23, 64381)
[2756672.888] wl_keyboard@31.repeat_info(25, 600)
[2756672.936] wl_keyboard@31.keymap(1, fd 24, 64381)
[2756681.054] wl_keyboard@31.repeat_info(25, 600)
[2756681.096] wl_keyboard@31.keymap(1, fd 25, 64381)
[2756689.232] wl_keyboard@31.repeat_info(25, 600)
[2756689.266] wl_keyboard@31.keymap(1, fd 26, 64381)
[2756697.328] wl_keyboard@31.repeat_info(25, 600)
[2756697.364] wl_keyboard@31.keymap(1, fd 27, 64381)
[2756705.521] wl_keyboard@31.repeat_info(25, 600)
[2756705.567] wl_keyboard@31.keymap(1, fd 28, 64381)
[2756713.682] wl_keyboard@31.repeat_info(25, 600)
[2756713.726] wl_keyboard@31.keymap(1, fd 29, 64381)
[2756721.824] wl_keyboard@31.repeat_info(25, 600)
[2756721.859] wl_keyboard@31.keymap(1, fd 30, 64381)
[2756730.005] wl_keyboard@31.repeat_info(25, 600)
[2756730.040] wl_keyboard@31.keymap(1, fd 31, 64381)
[2756738.275] wl_keyboard@31.repeat_info(25, 600)
[2756738.312] wl_keyboard@31.keymap(1, fd 32, 64381)
[2756746.550] wl_keyboard@31.repeat_info(25, 600)
[2756746.586] wl_keyboard@31.keymap(1, fd 33, 64381)
[2756764.736] wl_keyboard@31.repeat_info(25, 600)
[2756764.775] wl_keyboard@31.keymap(1, fd 34, 64381)
[2756773.266] wl_keyboard@31.repeat_info(25, 600)
 err: wayland.c:989: failed to read events from the Wayland socket: Broken pipe
 err: wayland.c:1393: failed to flush wayland socket: Broken pipe
 err: wayland.c:1393: failed to flush wayland socket: Broken pipe
 err: wayland.c:1393: failed to flush wayland socket: Broken pipe
warn: terminal.c:1430: slave exited with signal 1 (Hangup)
info: main.c:516: goodbye

created time in 8 hours

Pull request review commentswaywm/wlroots

render/vulkan: check vulkan-headers dependency

 else 	msg += 'Required for vulkan renderer support.' endif +vk_min_version = '1.2.182' dep_vulkan = dependency('vulkan',-	version: '>=1.2.182',+	version: '>=' + vk_min_version, 	required: 'vulkan' in renderers, 	not_found_message: '\n'.join(msg).format('vulkan') )- if not dep_vulkan.found() 	subdir_done() endif +# Vulkan headers are installed separately from the loader (which ships the+# pkg-config file)+vk_header_version = cc.get_define('VK_HEADER_VERSION',+	prefix: '#include <vulkan/vulkan_core.h>')

Hmm, what are the odds of the header version being wrong when the loader is acceptable? Considering how ugly it is to parse the version from the header file, maybe we could do with just a presence test.

emersion

comment created time in 10 hours

PullRequestReviewEvent

pull request commentswaywm/wlroots

Make seat backend optional

Hmm, headless, X11 or Wayland-only wlroots without a udev dependency might have practical merit, possibly in headless server environments. @emersion, thoughts?

That is still a bit less code, and for projects that need to review all of the code they use, it is less code to review.

There would be 98 lines of pretty log printer, and 122 lines of libseat.c, and due to no backends only one function is runnable with its only side-effect being printing errors, while the rest would immediately terminate in an assert.

As the lines of code, binary size and code complexity are barely even rounding errors for such a configuration, there is no reason for action based on such an argument.

DemiMarie

comment created time in 13 hours

issue closedswaywm/wlr-protocols

How to take a dependency on these xml files?

Hello,

I am packaging an application for Arch Linux which uses wlr-data-control, and I am not sure how to properly consume the xml file.

I need to be able to do this when I build the application,

wayland-scanner private-code wlr-data-control.xml wlr-data-control.c

In arch linux, wayland-scanner is provided by the wayland package.

There is also the wayland-protocols package, and it vends a bunch of xml files, but wlr-data-control.xml is not one of them.

The README of this package tells me that pulling from wlr-protocols is not right, e.g. "New protocols should not be submitted to wlr-protocols. Instead, submit them to wayland-protocols."

Any advice? I really don't want to just copy the xml file into the project.

closed time in 2 days

hossbeast

issue commentswaywm/wlr-protocols

How to take a dependency on these xml files?

You are supposed to just copy the XML into the project report and set up wayland-scanner in your build system.

Random examples:

  • https://github.com/swaywm/swaybg
  • https://github.com/swaywm/swayidle (The KDE idle protocol, not a wlr protocol)
  • https://git.sr.ht/~kennylevinsen/wlsunset
  • https://git.sr.ht/~emersion/kanshi
hossbeast

comment created time in 2 days

delete branch kennylevinsen/zigbee-herdsman-converters

delete branch : fix-setpoint-change-source

delete time in 3 days

PR opened Koenkk/zigbee-herdsman-converters

Fix setpoint_change_source for danfoss and popp

This entity was exposed as a binary even though it reports a string. Convert the entity to an enum instead.

+2 -2

0 comment

2 changed files

pr created time in 4 days

push eventkennylevinsen/wldash

Kenny Levinsen

commit sha d69e941ec134b892b452f7fdcf939124b3994fcf

Remove old FUNDING link

view details

push time in 4 days

create barnchkennylevinsen/zigbee-herdsman-converters

branch : fixes

created branch time in 4 days

fork kennylevinsen/zigbee-herdsman-converters

Collection of device converters to be used with zigbee-herdsman

fork in 4 days

create barnchkennylevinsen/zigbee-herdsman

branch : add-danfoss-load-balancing

created branch time in 4 days

issue commentswaywm/wlroots

libseat dependency should be optional

It's not libseat, but the session backend that needs to be made optional. The session backend has a hard dependency on libseat that does not make sense to remove.

DemiMarie

comment created time in 5 days

issue commentswaywm/swaylock

Occassional unlock without password entered

There is plenty of discussion on the matter of a lockscreen protocol. Please see https://github.com/swaywm/wlroots/issues/2706, https://github.com/swaywm/wlroots/pull/3165 and https://github.com/swaywm/sway/pull/6483.

savchenko

comment created time in 8 days

issue closedswaywm/sway

Segfault during a libseat event when closing laptop lid

Please fill out the following:

  • Sway Version:
sway version 1.6-8fa7b998 (Oct  4 2021, branch 'master')
  • Debug Log: https://paste.debian.net/hidden/10ad3fe2/

  • Configuration File: The default config from /etc/sway/config

  • Stack Trace:

Core was generated by `sway --config /etc/sway/config -d'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000558dba8b94dc in ping_handler (m=0x558dbc28a660, userdata=0x0, ret_error=0x7ffeb36941a0) at ../subprojects/seatd/libseat/backend/logind.c:79
#1  0x00007fa4b1088cf7 in ?? () from /lib/x86_64-linux-gnu/libsystemd.so.0
#2  0x0000558dba8b9ee5 in dispatch_and_execute (base=0x558dbb8f2590, timeout=0) at ../subprojects/seatd/libseat/backend/logind.c:277
#3  0x0000558dba8b72e4 in libseat_dispatch (seat=0x558dbb8f2590, timeout=0) at ../subprojects/seatd/libseat/libseat.c:116
#4  0x0000558dba85b77a in libseat_event (fd=4, mask=1, data=0x558dbb8f23a0) at ../subprojects/wlroots/backend/session/session.c:41
#5  0x00007fa4b1206b6a in wl_event_loop_dispatch (loop=0x558dbb8ebb30, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
#6  0x00007fa4b1205075 in wl_display_run (display=0x558dbb8f2210) at ../src/wayland-server.c:1364
#7  0x0000558dba7e00ba in server_run (server=0x558dba91dfa0 <server>) at ../sway/server.c:285
#8  0x0000558dba7df401 in main (argc=4, argv=0x7ffeb3694668) at ../sway/main.c:397
Stack level 0, frame at 0x7ffeb3694170:
 rip = 0x558dba8b94dc in ping_handler (../subprojects/seatd/libseat/backend/logind.c:79); saved rip = 0x7fa4b1088cf7
 called by frame at 0x7ffeb3694260
 source language c.
 Arglist at 0x7ffeb3694128, args: m=0x558dbc28a660, userdata=0x0, ret_error=0x7ffeb36941a0
 Locals at 0x7ffeb3694128, Previous frame's sp is 0x7ffeb3694170
 Saved registers:
  rbp at 0x7ffeb3694160, rip at 0x7ffeb3694168
session = 0x0
  • Description: Built sway using the most recent commits from sway, wlroots, wayland-protocols, seatd, wayland, and libxcb-render-util. I also tried building the most recent sway release, but I couldn't build it because of too many meson errors. This segfault occurs when I close the laptop lid, or when I switch ttys.

closed time in 14 days

stevenengler

issue commentswaywm/sway

Segfault during a libseat event when closing laptop lid

Closing as fixed in seatd master.

stevenengler

comment created time in 14 days

push eventkennylevinsen/seatd

Kenny Levinsen

commit sha e35c9cd02e95ec8a76bb4bb82f801a795e135bc9

logind: Set userdata for ping_handler

view details

push time in 14 days

issue commentswaywm/sway

Segfault during a libseat event when closing laptop lid

@stevenengler Could you try https://git.sr.ht/~kennylevinsen/seatd/commit/e35c9cd02e95ec8a76bb4bb82f801a795e135bc9?

stevenengler

comment created time in 15 days

create barnchkennylevinsen/seatd

branch : fixlogind

created branch time in 15 days

issue closedswaywm/wlroots

Provide move/resize helpers

It would be nice if wlroots provided a reasonable default implementation.

closed time in 15 days

DemiMarie

issue commentswaywm/wlroots

Provide move/resize helpers

Closing as there appears to be consensus against this.

DemiMarie

comment created time in 15 days

push eventswaywm/sway

Bartel Sielski

commit sha 8fa7b99859066b9098acb158d08f7a060c3bf78e

idle_inhibit: Fix tree view after changes in commit 152a559e Commit 152a559e replaced the view pointer in the inhibitor struct with a pointer to the wlr_inhibitor for application inhibitors. But this was not changed in the sway_idle_inhibit_v1_application_inhibitor_for_view function. This caused a bug in the sway tree view where the application inhibitor is always "none".

view details

push time in 15 days

PR merged swaywm/sway

idle_inhibit: Fix tree view after changes in commit 152a559e

Commit 152a559e replaced the view pointer in the inhibitor struct with a pointer to the wlr_inhibitor for application inhibitors. But this was not changed in the sway_idle_inhibit_v1_application_inhibitor_for_view function. This caused a bug in the sway tree view where the application inhibitor is always "none".

+4 -4

1 comment

1 changed file

bartelsielski

pr closed time in 15 days

push eventswaywm/wlroots

Simon Ser

commit sha 13cdb84ee8df248db3b303fd4d1c0e3e75db2794

render/allocator: use render node if available in reopen_drm_node If we aren't trying to create a dumb buffer allocator, and if the DRM device has a render node (ie, not a split render/display SoC), then we can use the render node instead of the primary node. This should allow wlroots to run under seatd when the current user doesn't have the permission to open primary nodes (logind has a quirk to allow physically logged in users to open primary nodes).

view details

push time in 15 days