Git Product home page Git Product logo

iwgtk's Introduction

About

iwgtk is a wireless networking GUI for Linux. It is a front-end for iwd (iNet Wireless Daemon), with supported functionality similar to that of iwctl. Features include viewing and connecting to available networks, managing known networks, provisioning new networks via WPS or Wi-Fi Easy Connect, and an indicator (tray) icon displaying connection status and signal strength.

Screenshot

Usage

Launch the application window: iwgtk

Launch the indicator daemon: iwgtk -i

Autostarting

The most common use case for iwgtk is to start the indicator daemon every time you log into your desktop. If your desktop environment supports the XDG autostart standard, this should happen automatically due to the iwgtk-indicator.desktop file which is placed in /etc/xdg/autostart/ during installation.

A systemd unit file to start the indicator daemon is also provided. If your distro uses systemd and your desktop environment supports systemd's graphical-session.target unit, then iwgtk can be started at the beginning of every desktop session by enabling the iwgtk.service unit.

Configuration

Icon colors and other options can be customized by editing the application's configuration file. The system-wide configuration file is located at $(sysconfdir)/iwgtk.conf. $(sysconfdir) is usually either /etc or /usr/local/etc, depending on your build-time prefix setting. iwgtk.conf can be copied to ~/.config/iwgtk.conf if desired, in which case the system-wide configuration file will be ignored. For further instructions, please see man 5 iwgtk and refer to the comments in iwgtk.conf.

Dependencies

Runtime dependencies

  • iwd (>= 1.29)
  • gtk4 (>= 4.6)
  • libqrencode
  • adwaita-icon-theme (or an equivalent icon package)

Build dependencies

  • meson (>= 0.60.0)
  • scdoc

Installation

To build iwgtk and install to /usr/local, run:

meson setup build
cd build
meson compile
sudo meson install

To install to /usr instead of /usr/local, replace meson setup build with:

meson setup --prefix=/usr build

Troubleshooting

The indicator icon doesn't show up

iwgtk's icon should show up on any system tray which supports the StatusNotifierItem API. If your tray only supports the older XEmbed API, then a compatibility layer such as snixembed is required.

The following trays support StatusNotifierItem:

  • KDE Plasma
  • swaybar
  • xfce4-panel (must be built with the optional libdbusmenu-gtk3 dependency)

The following trays only support XEmbed, and require a compatibility layer:

  • AwesomeWM
  • i3bar

iwgtk and iwctl only work with superuser privileges

As of iwd 1.23, membership in either the netdev or wheel group is required to control iwd:

# usermod -a -G netdev YOUR_USER_ACCOUNT

If no netdev group exists on your system, then you'll need to create it prior to running the above usermod command:

# groupadd netdev

License

Copyright 2020-2023 Jesse Lentz [email protected] and contributors (see below)

iwgtk is licensed under the GPL version 3 or later.

The application icon is from the wifi states collection by i cons from the Noun Project. This icon is licensed under the Creative Commons BY license.

Contributors

  • Jove Yu
  • Jaron Viëtor (Thulinma)
  • tinywrkb
  • Érico Nogueira Rolim
  • VaguePenguin
  • Andrew Benson
  • Alex Piechowski (grepsedawk)
  • Luigi Baldoni

iwgtk's People

Contributors

abenson avatar buhtz avatar ericonr avatar grepsedawk avatar j-lentz avatar joveyu avatar lgbaldoni avatar thulinma avatar tinywrkb avatar vaguepenguin avatar

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  avatar  avatar

iwgtk's Issues

add button to restart iwd service

Noticed that sometimes when my laptop goes to sleep and wakes up it can't connect from iwgtk or even from the termainal. On/Off the devices doesn't work. Need to restart the iwd service. Would it be possible to add a button to restart iwd service?

Heap-use-after-free when iwgtk is built with address sanitizer

==3513==ERROR: AddressSanitizer: heap-use-after-free on address 0x50b000e4af10 at pc 0x573391645ad5 bp 0x7fffa4610fc0 sp 0x7fffa4610fb0
WRITE of size 8 at 0x50b000e4af10 thread T0
    #0 0x573391645ad4 in get_networks_callback ../src/station.c:248
    #1 0x799b82c98203  (/usr/lib/libgio-2.0.so.0+0xa1203) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #2 0x799b82c9c04c  (/usr/lib/libgio-2.0.so.0+0xa504c) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #3 0x799b82d0685d  (/usr/lib/libgio-2.0.so.0+0x10f85d) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #4 0x799b82c98203  (/usr/lib/libgio-2.0.so.0+0xa1203) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #5 0x799b82c9c04c  (/usr/lib/libgio-2.0.so.0+0xa504c) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #6 0x799b82cf3322  (/usr/lib/libgio-2.0.so.0+0xfc322) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #7 0x799b82c98203  (/usr/lib/libgio-2.0.so.0+0xa1203) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #8 0x799b82c9823c  (/usr/lib/libgio-2.0.so.0+0xa123c) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #9 0x799b82b04198  (/usr/lib/libglib-2.0.so.0+0x5a198) (BuildId: 0a2311dfbbc6c215dc36f4b6bdd2b4b6fbae55a2)
    #10 0x799b82b633be  (/usr/lib/libglib-2.0.so.0+0xb93be) (BuildId: 0a2311dfbbc6c215dc36f4b6bdd2b4b6fbae55a2)
    #11 0x799b82b03711 in g_main_context_iteration (/usr/lib/libglib-2.0.so.0+0x59711) (BuildId: 0a2311dfbbc6c215dc36f4b6bdd2b4b6fbae55a2)
    #12 0x799b82ccded5 in g_application_run (/usr/lib/libgio-2.0.so.0+0xd6ed5) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)
    #13 0x57339163ab19 in main ../src/main.c:383
    #14 0x799b8226bccf  (/usr/lib/libc.so.6+0x25ccf) (BuildId: 6542915cee3354fbcf2b3ac5542201faec43b5c9)
    #15 0x799b8226bd89 in __libc_start_main (/usr/lib/libc.so.6+0x25d89) (BuildId: 6542915cee3354fbcf2b3ac5542201faec43b5c9)
    #16 0x5733916241d4 in _start (/tmp/iwgtk/build/iwgtk+0x4f1d4) (BuildId: 1b5ffd51efdd2169551697d435154118067c721a)

0x50b000e4af10 is located 32 bytes inside of 112-byte region [0x50b000e4aef0,0x50b000e4af60)
freed by thread T0 here:
    #0 0x799b83b60db2 in __interceptor_free /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:52
    #1 0x573391644bdf in station_remove ../src/station.c:168
    #2 0x57339164b0ee in window_rm ../src/window.c:141
    #3 0x799b82a5972f in g_closure_invoke (/usr/lib/libgobject-2.0.so.0+0x1172f) (BuildId: 07955ee77badb86b616058d9836aa9e60e197c83)

previously allocated by thread T0 here:
    #0 0x799b83b62359 in __interceptor_malloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x799b82b09902 in g_malloc (/usr/lib/libglib-2.0.so.0+0x5f902) (BuildId: 0a2311dfbbc6c215dc36f4b6bdd2b4b6fbae55a2)
    #2 0x57339164c939 in window_add_object ../src/window.c:298
    #3 0x57339164be0c in interface_add ../src/window.c:218
    #4 0x57339164bba0 in object_iterate_interfaces ../src/window.c:203
    #5 0x57339164b9f6 in add_all_dbus_objects ../src/window.c:181
    #6 0x57339164ad72 in window_launch ../src/window.c:133
    #7 0x573391636ffb in indicator_activate ../src/indicator.c:345
    #8 0x57339163f27a in sni_method_call ../src/sni.c:375
    #9 0x799b82cf11e7  (/usr/lib/libgio-2.0.so.0+0xfa1e7) (BuildId: 5aeeb7987aa98785847f671a8e964b9e31a76850)

SUMMARY: AddressSanitizer: heap-use-after-free ../src/station.c:248 in get_networks_callback
Shadow bytes around the buggy address:
  0x50b000e4ac80: fd fd fd fa fa fa fa fa fa fa fa fa fd fd fd fd
  0x50b000e4ad00: fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa
  0x50b000e4ad80: fa fa fd fd fd fd fd fd fd fd fd fd fd fd fd fa
  0x50b000e4ae00: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
  0x50b000e4ae80: fd fd fd fd fd fa fa fa fa fa fa fa fa fa fd fd
=>0x50b000e4af00: fd fd[fd]fd fd fd fd fd fd fd fd fd fa fa fa fa
  0x50b000e4af80: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
  0x50b000e4b000: fd fa fa fa fa fa fa fa fa fa fd fd fd fd fd fd
  0x50b000e4b080: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
  0x50b000e4b100: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
  0x50b000e4b180: fa fa fa fa fa fa fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==3513==ABORTING

Steps to reproduce:
meson setup build -Db_sanitize=address,undefined --buildtype=debug
cd build && meson compile
./iwgtk -i
immediately begin clicking on the tray icon. After long enough clicking, (anywhere from 5-30 seconds), this trace should show.

The segfault caused by lack of membership in netdev or wheel group

Only starts in root privileges. When running as regular non-root user:

$ iwgtk

(iwgtk:26654): GLib-WARNING **: 01:19:34.761: GError set over the top of a previous GError or uninitialized memory.
This indicates a bug in someone's code. You must ensure an error is NULL before it's set.
The overwriting error message was: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules; type="method_call", sender=":1.174" (uid=60139 pid=26654 comm="iwgtk") interface="org.freedesktop.DBus.ObjectManager" member="GetManagedObjects" error name="(unset)" requested_reply="0" destination=":1.10" (uid=0 pid=328 comm="/usr/lib/iwd/iwd")
Error creating GDBusObjectManager: 
Segmentation fault (core dumped)

When running as root:

# iwgtk

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.745: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.745: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.745: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.745: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.745: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.746: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.746: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.755: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.755: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.789: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.791: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.792: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

(iwgtk:27036): GLib-GIO-CRITICAL **: 01:31:25.847: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed

And evetually:

nov   20 01:19:34 ebook dbus-daemon[327]: [system] Rejected send message, 2 matched rules; type="method_call", sender=":1.174" (uid=60139 pid=26654 comm="iwgtk") interface="org.>
nov   20 01:19:34 ebook audit[26654]: ANOM_ABEND auid=60139 uid=60139 gid=60139 ses=2 pid=26654 comm="iwgtk" exe="/usr/bin/iwgtk" sig=11 res=1
nov   20 01:19:34 ebook kernel: traps: iwgtk[26654] general protection fault ip:7f406b4e482b sp:7ffe5d968c40 error:0 in libglib-2.0.so.0.7400.1[7f406b4af000+93000]
nov   20 01:19:34 ebook kernel: audit: type=1701 audit(1668899974.756:212): auid=60139 uid=60139 gid=60139 ses=2 pid=26654 comm="iwgtk" exe="/usr/bin/iwgtk" sig=11 res=1
nov   20 01:19:35 ebook systemd-coredump[26669]: [🡕] Process 26654 (iwgtk) of user 60139 dumped core.
                                                     
                                                     Stack trace of thread 26654:
                                                     #0  0x00007f406b4e482b n/a (libglib-2.0.so.0 + 0x5282b)
                                                     #1  0x00007f406b4e79b0 g_main_context_dispatch (libglib-2.0.so.0 + 0x559b0)
                                                     #2  0x00007f406b53e279 n/a (libglib-2.0.so.0 + 0xac279)
                                                     #3  0x00007f406b4e6132 g_main_context_iteration (libglib-2.0.so.0 + 0x54132)
                                                     #4  0x00007f406b7100ce g_application_run (libgio-2.0.so.0 + 0xde0ce)
                                                     #5  0x00005612754a6171 n/a (iwgtk + 0x7171)
                                                     #6  0x00007f406b2ce290 n/a (libc.so.6 + 0x23290)
                                                     #7  0x00007f406b2ce34a __libc_start_main (libc.so.6 + 0x2334a)
                                                     #8  0x00005612754a61b5 n/a (iwgtk + 0x71b5)
                                                     
                                                     Stack trace of thread 26656:
                                                     #0  0x00007f406b4e2188 n/a (libglib-2.0.so.0 + 0x50188)
                                                     #1  0x00007f406b4e4830 n/a (libglib-2.0.so.0 + 0x52830)
                                                     #2  0x00007f406b4e79b0 g_main_context_dispatch (libglib-2.0.so.0 + 0x559b0)
                                                     #3  0x00007f406b53e279 n/a (libglib-2.0.so.0 + 0xac279)
                                                     #4  0x00007f406b4e6ddf g_main_loop_run (libglib-2.0.so.0 + 0x54ddf)
                                                     #5  0x00007f406b73c33c n/a (libgio-2.0.so.0 + 0x10a33c)
                                                     #6  0x00007f406b514e05 n/a (libglib-2.0.so.0 + 0x82e05)
                                                     #7  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #8  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26666:
                                                     #0  0x00007f406b32e4b6 n/a (libc.so.6 + 0x834b6)
                                                     #1  0x00007f406b330cd0 pthread_cond_wait (libc.so.6 + 0x85cd0)
                                                     #2  0x00007f404df0799e n/a (iris_dri.so + 0x10799e)
                                                     #3  0x00007f404debaf8c n/a (iris_dri.so + 0xbaf8c)
                                                     #4  0x00007f404df078cc n/a (iris_dri.so + 0x1078cc)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26662:
                                                     #0  0x00007f406b32e4b6 n/a (libc.so.6 + 0x834b6)
                                                     #1  0x00007f406b330cd0 pthread_cond_wait (libc.so.6 + 0x85cd0)
                                                     #2  0x00007f404df0799e n/a (iris_dri.so + 0x10799e)
                                                     #3  0x00007f404debaf8c n/a (iris_dri.so + 0xbaf8c)
                                                     #4  0x00007f404df078cc n/a (iris_dri.so + 0x1078cc)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26663:
                                                     #0  0x00007f406b32e4b6 n/a (libc.so.6 + 0x834b6)
                                                     #1  0x00007f406b330cd0 pthread_cond_wait (libc.so.6 + 0x85cd0)
                                                     #2  0x00007f404df0799e n/a (iris_dri.so + 0x10799e)
                                                     #3  0x00007f404debaf8c n/a (iris_dri.so + 0xbaf8c)
                                                     #4  0x00007f404df078cc n/a (iris_dri.so + 0x1078cc)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26655:
                                                     #0  0x00007f406b3a60bf __poll (libc.so.6 + 0xfb0bf)
                                                     #1  0x00007f406b53e1df n/a (libglib-2.0.so.0 + 0xac1df)
                                                     #2  0x00007f406b4e6132 g_main_context_iteration (libglib-2.0.so.0 + 0x54132)
                                                     #3  0x00007f406b4e6182 n/a (libglib-2.0.so.0 + 0x54182)
                                                     #4  0x00007f406b514e05 n/a (libglib-2.0.so.0 + 0x82e05)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26664:
                                                     #0  0x00007f406b32e4b6 n/a (libc.so.6 + 0x834b6)
                                                     #1  0x00007f406b330cd0 pthread_cond_wait (libc.so.6 + 0x85cd0)
                                                     #2  0x00007f404df0799e n/a (iris_dri.so + 0x10799e)
                                                     #3  0x00007f404debaf8c n/a (iris_dri.so + 0xbaf8c)
                                                     #4  0x00007f404df078cc n/a (iris_dri.so + 0x1078cc)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26667:
                                                     #0  0x00007f406b3ab7fd syscall (libc.so.6 + 0x1007fd)
                                                     #1  0x00007f406b537ad7 g_cond_wait_until (libglib-2.0.so.0 + 0xa5ad7)
                                                     #2  0x00007f406b4b5893 n/a (libglib-2.0.so.0 + 0x23893)
                                                     #3  0x00007f406b51a6cb n/a (libglib-2.0.so.0 + 0x886cb)
                                                     #4  0x00007f406b514e05 n/a (libglib-2.0.so.0 + 0x82e05)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     
                                                     Stack trace of thread 26665:
                                                     #0  0x00007f406b32e4b6 n/a (libc.so.6 + 0x834b6)
                                                     #1  0x00007f406b330cd0 pthread_cond_wait (libc.so.6 + 0x85cd0)
                                                     #2  0x00007f404df0799e n/a (iris_dri.so + 0x10799e)
                                                     #3  0x00007f404debaf8c n/a (iris_dri.so + 0xbaf8c)
                                                     #4  0x00007f404df078cc n/a (iris_dri.so + 0x1078cc)
                                                     #5  0x00007f406b3318fd n/a (libc.so.6 + 0x868fd)
                                                     #6  0x00007f406b3b3a60 n/a (libc.so.6 + 0x108a60)
                                                     ELF object binary architecture: AMD x86-64

# iwgtk -i
Bus name 'org.kde.StatusNotifierItem-26992-1' has been lost

Status icon is not visible.

$ yay -Qi iwgtk
Name            : iwgtk
Version         : 0.8-2
...

Archlinux
XFCE4 4.16.1-3

$ uname -a
Linux ebook 6.0.8-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 10 Nov 2022 21:14:24 +0000 x86_64 GNU/Linux

Indicator icons not showing up

I'm creating an AUR package for Archlinux for this (it's nice, btw) and it compiles and runs just fine, but:

  1. I don't see a tray icon
  2. When I run 'iwgtk -i' there are no indicators (I assume you mean there should be something in the tray?)

I'm running i3wm on xorg, so I do have a notification area (system tray).

Systemtray has no icon

i have a empty space in my systemtray and i can click on it, but there is no icon. adwaita-icon-theme is installed.
I have a minimal arch install and use dwm. Am i missing something?

error: unknown type name ‘uint8_t’;

Not entirely sure why this builds on some platforms but not others, for me it seems to be missing an include:

make -j1
glib-compile-resources --target=src/icons.h --sourcedir=icons --generate-header icons.gresource.xml
gcc -c pkg-config --cflags gtk+-3.0 -O3 -o main.o src/main.c
In file included from src/iwgtk.h:118,
from src/main.c:20:
src/agent.h:40:34: error: unknown type name ‘uint8_t’; did you mean ‘u_int8_t’?
40 | void request_dialog(Agent *data, uint8_t request_type);
| ^~~~~~~
| u_int8_t
make: *** [Makefile:29: main.o] Error 1

Request: hide text in password field

Hi there,

if it not's planned yet, I have a simple request regarding the password field while connecting to a network.
At the moment the password is seen in plain text. Eventually changing it to dots or asterisks and adding a button/icon next to the field (e.g. eye, slashed eye) to show / hide the password in plain text would be a nice feature.

BR

Indicator click issue

Latest iwgtk from AUR.

Clicking on iwgtk indicator opens main window, another click closes it, but only if main window is currently focused.

If window is not focused, minimized, etc. then indicator click opens new duplicate, which isn't logical and is kind of confusing.

Undefined reference to 'gtk_symbolic_paintable_snapshot_symbolic'

I have the needed packages installed
Full sterr:
/usr/bin/ld: icon.o: in function "symbolic_icon_get_snapshot": icon.c: (.text+@xed): undefined reference to 'GTK_SYMBOLIC_PAINTABLE' /usr/bin/ld: icon.c:(.text+@xlld): undefined reference to 'gtk_symbolic_paintable_snapshot_symbolic' collect2: error: ld returned 1 exit status make: *** [Makefile:26: iwgtk] Error 1

Uname -a:
Linux fedora-34 5.10.90-l.fc32.x86_64 #1 SMP Thu Jan 13 20:46:58 CET 2022 x86_64 x86_64 x86_64 GNU/Linux

Can't connect to EAP network

OS: Arch latest; hardware: Thinkpad T420 (Intel Corporation Centrino Advanced-N 6205); window manager: i3-gaps
I'm trying to connect to my school's EAP access point and nothing happens upon clicking the Connect button next to the EAP network. The behavior I expected was for it to provide feedback saying the EAP network was unreachable or provide a way for me to input my access credentials.

Thanks in advance for any help.

High GPU memory usage

According to nvidia-smi, iwgtk is currently using 460MB of my GPU memory. That's a lot, and I don't see why this should be using GPU memory at all.

It seems like every time I open the window from tray and then close it again it consumes another ~30MB, and it just keeps climbing when I open and close it repeatedly (e.g. by spam-clicking the tray icon). Clearly a memory leak somewhere.

Then again, why is this using GPU memory in the first place? Is that some kind of requirement for GTK apps or something?

Using:

  • Arch Linux (latest as of yesterday)
  • i3 4.21.1
  • Xorg (xorg-server) 21.1.4-1
  • iwgtk 0.8

hidden wifi

Hi,
How do I connect to a hidden wifi network, using iwgtk?
Could you add the steps to the Readme?
Thx

Tray icon shows up and crashes on Fedora 37 / Gnome 43

I'm using the AppIndicator and KStatusNotifierItem Support extension on Fedora 37 / Gnome 43. The extension works itself works fine, all other apps have no problem showing a tray icon, however, the iwgtk icon only shows up briefly before automatically exiting. I don't see any error messages. The full version of the app works just fine though, so it's only the tray icon that's having the issue.

Any ideas what could be wrong, or any logs that I can submit which might help?

Adwaita Theme Dark mode not working

something happened in the latest pull from master but now I no longer get any gtk themes or dark mode
I have a few other gtk4 apps and they seem to theme just fine, this is the only one

let me know what other details you need, I'm running standard Adwaita default with dark mode enabled

Tray icon does not display on i3wm (i3status tray)

When running iwgtk -i, no tray icon appears.
I do have other tray icons like bluetooth and pulse applets running fine, so it's not an overall i3 tray issue

I can provide any other information, and I'm even willing to hop on a call to help debug this if you'd like

Segmentation fault after disconnecting from network

This only happened once, after clicking "Disconnect", and I haven't been able to reproduce it.

(iwgtk:23485): GLib-GIO-CRITICAL **: 06:45:31.028: g_dbus_proxy_get_cached_property: assertion 'G_IS_DBUS_PROXY (proxy)' failed

(iwgtk:23485): GLib-CRITICAL **: 06:45:31.028: g_variant_get_string: assertion 'value != NULL' failed

(iwgtk:23485): GLib-GObject-WARNING **: 06:45:31.028: invalid uninstantiatable type '<invalid>' in cast to 'GtkLabel'

(iwgtk:23485): Gtk-CRITICAL **: 06:45:31.028: gtk_label_set_text: assertion 'GTK_IS_LABEL (self)' failed

(iwgtk:23485): GLib-CRITICAL **: 06:45:31.028: g_variant_unref: assertion 'value != NULL' failed

(iwgtk:23485): GLib-GIO-CRITICAL **: 06:45:31.029: g_dbus_proxy_get_cached_property: assertion 'G_IS_DBUS_PROXY (proxy)' failed

(iwgtk:23485): GLib-CRITICAL **: 06:45:31.029: g_variant_get_string: assertion 'value != NULL' failed
Segmentation fault (core dumped)

My suspicion is that these errors were generated in network_set(), which implies that network_set() had been called on a freed Network object. I'm not exactly sure how that could happen, but perhaps clearing the network table as each network proxy goes down (as opposed to when the "scanning" property changes) might be more robust.

No indicator icons in XFCE on Void Linux

I run iwgtk -i and do not see indicator icons appearing in the system tray (Status Tray plugin) of the XFCE 4.16 panel. I believe the XFCE tray supports the Status Notifier API.

Window not set as floating

The iwgtk window is not set as a floating window, so on a tiling window manager it expands to fill the container instead of floating above it. Since this would seem to be meant to be a utility window, I think it should be floating above other windows by default.

release request... lol

Sorry, could you do a release to include the new tray icon functionality? Or provide a git AUR package?

Thank you! Keep up the good work 👍

known networks, can't get back to main view

hey,
just found a quick problem. if you click known networks,
there is no way to get back to the main network list. there is no back button.
you have to click on quit & reopen iwgtk.

use gtk theme icon

i use iwgtk indicator instead of network-manager, but icons is not match my gtk theme

can you help replace icon in gtk3-icon-browser, it match all gtk theme

image
image

How to totally uninstall iwgtk

How do I totally uninstall (purge) iwgtk from my linux (debian) system?
Before installing it I could connect to hidden networks.
But, now "network-manager" complains about iwd not supporting hidden networks...

Valid D-Bus interface name

The interface name should be changed from application.iwgtk to something like com.github.j_lentz.iwgtk.

D-Bus spec: Valid Names

...
Interface names should start with the reversed DNS domain name of the author of the interface (in lower-case), like interface names in Java. It is conventional for the rest of the interface name to consist of words run together, with initial capital letters on all words ("CamelCase"). Several levels of hierarchy can be used. It is also a good idea to include the major version of the interface in the name, and increment it if incompatible changes are made; this way, a single object can implement several versions of an interface in parallel, if necessary.
...

systemd - could this be mentioned in the main README?

Hi there,

I found this on reddit, and managed to compile iwgtk. The GUI told me that there is no
iwd daemon running.

I tried to compile iwd from here:

https://git.kernel.org/pub/scm/network/wireless/iwd.git/

Unfortunately it seems to depend on systemd; tried --disable-systemd to no avail.

If this is correct this means that iwgtk also requires systemd implicitely (since iwd
needs it). Could you perhaps mention this if you intend to update the main
README? (And perhaps also add a screenshot or two to the main README if
you find the time to update that.)

Clearly mentioning the systemd dependency may help, as folks who avoid systemd
don't run into that frustrating "systemd-only" part that iwd requires (I tried --disable-systemd
but that did not help. May be that this is due to dbus, or perhaps my system is messed
up due to unrelated errors made)

checking D-Bus bus services directory... /usr/share/dbus-1/system-services
checking systemd unit directory... Package systemd was not found in the pkg-config search path.
Perhaps you should add the directory containing `systemd.pc'
to the PKG_CONFIG_PATH environment variable
No package 'systemd' found

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.