Skip to content

Area selection stuck on "Loading..." #362

@mihalyr

Description

@mihalyr

Affected version

  • io.github.seadve.Kooha 2.3.1

  • Container: flatpak

  • Experimental Features: []

  • Language: en_IE.UTF-8, en_IE, en.UTF-8, en, C

  • CPU: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz

  • GPU: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630]

  • Distribution: <No such file or directory (os error 2)>

  • Desktop Session:

  • Display Server: wayland

  • GTK 4.18.6

  • Libadwaita 1.7.7

  • GStreamer 1.24.12

  • Pipewire 1.2.7

It seems distro was not recognized, but it's Fedora 42 Sericea (Atomic desktop like Silverblue, but with Sway). It's a wayland session, I have XDG_SESSION_TYPE=wayland environment variable configured.

On the board I have an Optimus configuration with Quadro P600 dedicated GPU and HDMI out and the internal UHD Graphics 630. The laptop is running in hybrid mode, but I only use the integrated graphics. I have the i915 and nouveau drivers loaded.

Currently there is an LG external monitor plugged in via HDMI cable.

Bug summary

Capturing selection does not seem to work on my setup. I click on Record, select the monitor, then the "Select Area" window appears with the text "Loading...", but it gets stuck there.

I believe this used to work for me before, but haven't used it for a while so not sure when it did break. The way it worked before was that I clicked Record, then selected the screen (clicking anywhere on the screen when the crosshair pointer showed up), then the "Select Area" would show my whole screen and I would need to select an area for recording inside that window. That used to work.

Note: I can still record the full screen, that works fine. I can select which monitor and it will record that monitor.

Steps to reproduce

  1. Open Kooha
  2. Select the "Selection" mode
  3. Click Record
  4. Click the screen with crosshair pointer
  5. "Select Area" window shows up with "Loading..." and gets stuck there

Expected behavior

The "Select Area" would display my screen and I am able to select a region for recording.

Relevant logs, screenshots, screencasts, etc.

Kooha logs
➜  ~ RUST_BACKTRACE=1 RUST_LOG=kooha=debug GST_DEBUG=3 PIPEWIRE_DEBUG=3 flatpak run io.github.seadve.Kooha
2025-10-08T15:35:19.694714Z  INFO kooha::application: Kooha (io.github.seadve.Kooha)
2025-10-08T15:35:19.694733Z  INFO kooha::application: Version: 2.3.1 ()
2025-10-08T15:35:19.694742Z  INFO kooha::application: Datadir: /app/share/kooha
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:949: FINISHME: support YUV colorspace with DRM format modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:981: FINISHME: support more multi-planar formats with DRM modifiers
2025-10-08T15:35:35.962216Z DEBUG kooha::recording: Created screencast proxy version=Ok(5) available_cursor_modes=Ok(CursorMode(HIDDEN | EMBEDDED)) available_source_types=Ok(SourceType(MONITOR))
2025-10-08T15:35:35.969465Z DEBUG kooha::recording: Selecting sources cursor_mode=CursorMode(HIDDEN) source_type=SourceType(MONITOR) is_multiple_sources=false restore_token="" persist_mode=Persistent
2025-10-08T15:35:41.300955Z DEBUG kooha::recording: Starting session window_identifier=wayland:3ac56f0a778f2abc80ed51438e4d9f78
[I][18177.355478] pw.context   | [      pipewire.c:  578 pw_init()] version 1.2.7
2025-10-08T15:35:41.366194Z DEBUG kooha::area_selector: Using gl pipeline
[I][18177.404597] pw.conf      | [          conf.c:  415 conf_load()] 0x561418a43110: loaded config '/usr/share/pipewire/client.conf' with 5 items
[I][18177.404722] pw.conf      | [          conf.c: 1143 pw_conf_section_for_each()] handle config '/usr/share/pipewire/client.conf' section 'context.properties'
[I][18177.404747] pw.context   | [       context.c:  395 pw_context_new()] 0x561418a60120: parsed 1 context.properties items
[I][18177.404802] pw.context   | [       context.c:  276 setup_data_loops()] created data loop 'data-loop.0'
[I][18177.404819] pw.context   | [       context.c:  279 setup_data_loops()] created 1 data-loops
[I][18177.405180] pw.conf      | [          conf.c: 1143 pw_conf_section_for_each()] handle config '/usr/share/pipewire/client.conf' section 'context.spa-libs'
[I][18177.405230] pw.context   | [       context.c:  488 pw_context_new()] 0x561418a60120: parsed 2 context.spa-libs items
[I][18177.405247] pw.conf      | [          conf.c: 1143 pw_conf_section_for_each()] handle config '/usr/share/pipewire/client.conf' section 'context.modules'
[I][18177.405264] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-protocol-native args:(null)
[I][18177.406733] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-protocol-native
[I][18177.406775] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-client-node args:(null)
[I][18177.407292] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-client-node
[I][18177.407321] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-client-device args:(null)
[I][18177.407571] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-client-device
[I][18177.407595] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-adapter args:(null)
[I][18177.407858] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-adapter
[I][18177.407882] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-metadata args:(null)
[I][18177.408167] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-metadata
[I][18177.408191] pw.module    | [   impl-module.c:  156 pw_context_load_module()] 0x561418a60120: name:libpipewire-module-session-manager args:(null)
[I][18177.408504] pw.conf      | [          conf.c:  611 load_module()] 0x561418a60120: loaded module libpipewire-module-session-manager
[I][18177.408529] pw.context   | [       context.c:  492 pw_context_new()] 0x561418a60120: parsed 6 context.modules items
[I][18177.408544] pw.context   | [       context.c:  497 pw_context_new()] 0x561418a60120: parsed 0 context.objects items
[I][18177.408556] pw.context   | [       context.c:  500 pw_context_new()] 0x561418a60120: parsed 0 context.exec items
[I][18177.408574] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:log.level type: value:0
[I][18177.408588] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.rate type: value:48000
[I][18177.408601] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.allowed-rates type: value:[ 48000 ]
[I][18177.408613] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.quantum type: value:1024
[I][18177.408626] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.min-quantum type: value:32
[I][18177.408638] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.max-quantum type: value:2048
[I][18177.408650] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.force-quantum type: value:0
[I][18177.408663] pw.metadata  | [ impl-metadata.c:  186 impl_set_property()] 0x561418a4bad0: add id:0 key:clock.force-rate type: value:0
[I][18177.408887] pw.conf      | [          conf.c: 1143 pw_conf_section_for_each()] handle config '/usr/share/pipewire/client.conf' section 'stream.properties'
0:00:21.713184891     2 0x7f71f0001db0 FIXME                default gstutils.c:4089:gst_element_decorate_stream_id_internal:<pipewiresrc0> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:21.713740916     2 0x7f71800062d0 FIXME              glcontext gstglcontext.c:2038:gst_gl_wrapped_context_get_config:<glwrappedcontext0> wrapped context could not retrieve config. The application may be missing a call to gst_gl_context_fill_info() or the specific platform implemention is not implemented for retrieving the config from a wrapped OpenGL context.
[I][18177.422707] pw.context   | [       context.c:  725 pw_context_acquire_loop()] 0x561418a60120: looking for name:'(null)' class:'main'
[I][18177.422758] pw.context   | [       context.c:  730 pw_context_acquire_loop()] 0x561418a60120: using main loop num-data-loops:1
[I][18177.422832] pw.node      | [     impl-node.c: 1207 check_properties()] 0x7f718002bd30: sync group '(null)'->'group.sync.0'
[I][18177.422855] pw.node      | [     impl-node.c: 1231 check_properties()] 0x7f718002bd30: async 0 -> 1
[I][18177.422930] spa.loop     | [          loop.c:  213 loop_create_queue()] 0x561418a44478 created queue 0x7f718002cff0
[I][18177.437216] spa.loop     | [          loop.c:  213 loop_create_queue()] 0x561418a44478 created queue 0x7f7188001dc0
[I][18177.438281] pw.stream    | [        stream.c:  839 parse_latency()] stream 0x561418a54810: set output latency 0.000000-0.000000 0-0 0-0
[I][18177.440218] pw.node      | [     impl-node.c:  472 node_update_state()] (kooha-101) creating -> running
[I][18177.443547] spa.loop     | [          loop.c:  213 loop_create_queue()] 0x561418a44478 created queue 0x561418a8fb30
[I][18177.443917] pw.node      | [     impl-node.c:  472 node_update_state()] (kooha-101) running -> idle
[I][18177.444215] pw.node      | [     impl-node.c:  472 node_update_state()] (kooha-101) idle -> running
2025-10-08T15:35:41.450646Z DEBUG kooha::area_selector: Pipeline changed state from `Null` -> `Ready`
2025-10-08T15:35:41.450762Z DEBUG kooha::area_selector: Pipeline changed state from `Ready` -> `Paused`
[I][18200.433651] pw.node      | [     impl-node.c:  472 node_update_state()] (kooha-101) running -> idle
[I][18200.436291] pw.node      | [     impl-node.c:  472 node_update_state()] (kooha-101) idle -> suspended
[I][18200.436541] pw.node      | [     impl-node.c: 2389 pw_impl_node_destroy()] (kooha-101) destroy
2025-10-08T15:36:04.417866Z DEBUG kooha::window: Cancelled area select loading

Stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: g_signal_emit_valist
   5: g_signal_emit
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: g_signal_emit_valist
  10: g_signal_emit
  11: <unknown>
  12: g_cclosure_marshal_VOID__BOXEDv
  13: <unknown>
  14: <unknown>
  15: g_signal_emit_valist
  16: g_signal_emit
  17: <unknown>
  18: <unknown>
  19: <unknown>
  20: <unknown>
  21: <unknown>
  22: <unknown>
  23: <unknown>
  24: <unknown>
  25: <unknown>
  26: <unknown>
  27: <unknown>
  28: <unknown>
  29: g_signal_emit_valist
  30: g_signal_emit
  31: <unknown>
  32: <unknown>
  33: <unknown>
  34: <unknown>
  35: g_main_context_iteration
  36: g_application_run
  37: <unknown>
  38: <unknown>
  39: <unknown>
  40: <unknown>
  41: __libc_start_main
  42: <unknown>
➜  ~ 
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions