Coder Social home page Coder Social logo

gtkcord4's Introduction

Dissent logo

Dissent


Go Report Card Packaging status GitHub download count Flathub download count SourceForge download count Nightly release status Stable release status Latest release

(formerly gtkcord4)

Screenshot 3
Screenshot 3 Screenshot 1 Screenshot 2 Screenshot 4

Installation

Dependencies

Dissent needs GTK4, gobject-introspection, and optionally libcanberra. If compiling, then the library headers are also required.

Pre-built Binary

Dissent's CI automatically builds each release for Linux x86_64 and aarch64. See the Releases page for the binaries.

Distribution Packages

Dissent is available in the following distributions:

Packaging status

Flatpak

Dissent is available on Flathub:

Flathub Version

Download on Flathub

Compiling

You need Go 1.18+ for this step.

To compile from scratch, run

go install -v libdb.so/dissent@latest

Logging In

To log into Dissent, you need to get your user token:

  1. Open the Discord web app in your browser and log in.
  2. Press F12 to open the Inspector.
  3. Go to the Network tab then press F5 to refresh the page.
  4. In the 'Filter URLs' text box, search discord api.
  5. Click on any HTTP message entry and inspect its message headers. Under the 'Request Headers' section, search for the Authorization header.
  6. Copy its value (the token) into the Token field, then click Login.

Warning

Logging in using username/email and password is strongly discouraged. This method is untested and may cause your account to be banned! Prefer using the token method above.

Note

Using an unofficial client at all is against Discord's Terms of Service and may cause your account to be banned! Use at your own risk!

gtkcord4's People

Contributors

amydevs avatar bertob avatar bitals avatar diamondburned avatar maxrdz avatar tfuxu avatar thatonecalculator avatar txtsd avatar urandom2 avatar vxlerieuwu 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtkcord4's Issues

Prebuilt binary not remembering logins [Manjaro/Phosh/Pinephone]

My first github issue post so please pull me up on any etiquette issues.

Launching the prebuilt binary results in the following error from the terminal
2022/05/14 11:52:15 failed to read user.css: open /home/manjaro/.config/gtkcord4/user.css: no such file or directory

Binary has all permissions.
Making a blank user.css file satisfies the requirement and sees the message go away, but the file is never populated with anything.

Main window freezing randomly

Description

When gtkcord4 runs for a long while, it might freeze up the main window. Very rarely, it will freeze up seconds after the program has started. This happens seemingly randomly.

If the inspector debugger window is open, then that window will continue to work fine. When going to the top-level GtkApplicationWindow then unticking and reticking the visible checkbox, the window will re-open and continue to operate normally.

This might be relevant to the window's occasional hangs when it loads a channel. The hangs seem to appear very randomly. Though it might also not be related.

When terminating the process with a SIGQUIT, the stack trace indicates that the goroutines are operating as normal. This is confirmed by the fact that, when Ctrl+C is pressed, Go is able to dispatch an IdleSource that disconnects from Discord gracefully and terminate the program with a status 0.

When the window hangs, one will observe that the process will consistently hog up 100% of a core. This possibly indicates that the main thread is spinning rapidly. Further investigation in gdb yields the following:

  • Of all the GSources, the Wayland GSources don't get dispatched.
    • If the debug window receives events (e.g. the user focuses on it), then Wayland GSources can be observed in gdb.
    • We can also observe that g_main_context_iterate is called rapidly, but the number of FDs for listening is often 0 when the window freezes (n_fds = 0).
      • This is not what happens when it does not freeze. There are always at least 2 FDs.
  • Regular GSources, such as those from IdleAdd (GIdleSource), still work normally.

Environment

  • Wayfire (version?) + Wayland
  • GTK4 (version?)
  • NixOS

Reproducing

No known way to reliably reproduce this.

Error while trying to launch gtkcord4

When running ./gtkcord4, I get following error:

2022/04/28 16:32:14 failed to read user.css: open /home/mariowala/.config/gtkcord4/user.css: no such file or directory
2022/04/28 16:32:14 note: account not found from driver: key not found
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x2a0 pc=0x7f5aad509d8b]

runtime stack:
runtime.throw({0x555d8ece2969?, 0x0?})
	runtime/panic.go:992 +0x71
runtime.sigpanic()
	runtime/signal_unix.go:802 +0x3a9

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x555d8ec178a0, 0xc00014d908)
	runtime/cgocall.go:157 +0x5c fp=0xc00014d8e0 sp=0xc00014d8a8 pc=0x555d8d9e5bdc
github.com/diamondburned/gotk4/pkg/gtk/v4._Cfunc_gtk_widget_show(0x7f5ac82702b0)
	_cgo_gotypes.go:53255 +0x45 fp=0xc00014d908 sp=0xc00014d8e0 pc=0x555d8dec0165
github.com/diamondburned/gotk4/pkg/gtk/v4.(*Widget).Show.func1(0xc0004f6180?)
	github.com/diamondburned/gotk4/[email protected]/gtk/v4/gtkwidget.go:6031 +0x3a fp=0xc00014d940 sp=0xc00014d908 pc=0x555d8e037f3a
github.com/diamondburned/gotk4/pkg/gtk/v4.(*Widget).Show(0xc00035e070)
	github.com/diamondburned/gotk4/[email protected]/gtk/v4/gtkwidget.go:6031 +0x45 fp=0xc00014d958 sp=0xc00014d940 pc=0x555d8e037ec5
main.(*manager).activate(0xc0000d6618, {0x555d8f357d48?, 0xc000114e00})
	github.com/diamondburned/gtkcord4/main.go:59 +0x9e fp=0xc00014d980 sp=0xc00014d958 pc=0x555d8ebd277e
main.main.func1()
	github.com/diamondburned/gtkcord4/main.go:31 +0x2e fp=0xc00014d9a8 sp=0xc00014d980 pc=0x555d8ebd262e
github.com/diamondburned/gotk4/pkg/gio/v2._gotk4_gio2_Application_ConnectActivate(0x555d8d9e6206?, 0xc0000021a0?)
	github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:592 +0x74 fp=0xc00014d9f0 sp=0xc00014d9a8 pc=0x555d8db95a74
_cgoexp_60a35a354f58__gotk4_gio2_Application_ConnectActivate(0x7f5ae7509190?)
	_cgo_gotypes.go:29276 +0x25 fp=0xc00014da10 sp=0xc00014d9f0 pc=0x555d8dc89d85
runtime.cgocallbackg1(0x555d8dc89d60, 0xc00014dbc8?, 0x0)
	runtime/cgocall.go:314 +0x2ca fp=0xc00014dae0 sp=0xc00014da10 pc=0x555d8d9e610a
runtime.cgocallbackg(0xc0000021a0?, 0x300000002?, 0xc0000021a0?)
	runtime/cgocall.go:233 +0x109 fp=0xc00014db70 sp=0xc00014dae0 pc=0x555d8d9e5d89
runtime.cgocallbackg(0x555d8dc89d60, 0x7f5ae75096d0, 0x0)
	<autogenerated>:1 +0x31 fp=0xc00014db98 sp=0xc00014db70 pc=0x555d8da49331
runtime.cgocallback(0x555d8d9e5c05, 0x555d8ec3b010, 0xc00014dc28)
	runtime/asm_amd64.s:971 +0xb3 fp=0xc00014dbc0 sp=0xc00014db98 pc=0x555d8da46d73
runtime.systemstack_switch()
	runtime/asm_amd64.s:436 fp=0xc00014dbc8 sp=0xc00014dbc0 pc=0x555d8da44d20
runtime.cgocall(0x555d8ec3b010, 0xc00014dc28)
	runtime/cgocall.go:167 +0x85 fp=0xc00014dc00 sp=0xc00014dbc8 pc=0x555d8d9e5c05
github.com/diamondburned/gotk4/pkg/gio/v2._Cfunc_g_application_run(0x555d90c1a290, 0x1, 0x7f5ac8002440)
	_cgo_gotypes.go:5616 +0x50 fp=0xc00014dc28 sp=0xc00014dc00 pc=0x555d8db40f90
github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run.func3(0xc0000db0f0?, 0x8?, 0x7f5ac8002440?)
	github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x71 fp=0xc00014dc70 sp=0xc00014dc28 pc=0x555d8db992f1
github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run(0xc0000d6630, {0xc0001921f0?, 0x1, 0x1})
	github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x1d8 fp=0xc00014dd30 sp=0xc00014dc70 pc=0x555d8db991d8
github.com/diamondburned/gotkit/app.(*Application).Run(0xc00011e780, {0x555d8f357d80, 0xc00019e000}, {0xc0001921f0, 0x1, 0x1})
	github.com/diamondburned/[email protected]/app/app.go:237 +0x189 fp=0xc00014dd90 sp=0xc00014dd30 pc=0x555d8e2681c9
github.com/diamondburned/gotkit/app.(*Application).RunMain(0x555d8f35a6e0?, {0x555d8f357d80?, 0xc00019e000?})
	github.com/diamondburned/[email protected]/app/app.go:242 +0x38 fp=0xc00014ddd0 sp=0xc00014dd90 pc=0x555d8e268358
main.main()
	github.com/diamondburned/gtkcord4/main.go:32 +0x1fd fp=0xc00014df80 sp=0xc00014ddd0 pc=0x555d8ebd25dd
runtime.main()
	runtime/proc.go:250 +0x213 fp=0xc00014dfe0 sp=0xc00014df80 pc=0x555d8da18eb3
runtime.goexit()
	runtime/asm_amd64.s:1571 +0x1 fp=0xc00014dfe8 sp=0xc00014dfe0 pc=0x555d8da46fc1

goroutine 7 [syscall]:
os/signal.signal_recv()
	runtime/sigqueue.go:151 +0x2f
os/signal.loop()
	os/signal/signal_unix.go:23 +0x19
created by os/signal.Notify.func1.1
	os/signal/signal.go:151 +0x2a

goroutine 5 [chan receive]:
github.com/diamondburned/gotkit/gtkutil/aggressivegc.init.0.func1()
	github.com/diamondburned/[email protected]/gtkutil/aggressivegc/aggressivegc.go:17 +0x65
created by github.com/diamondburned/gotkit/gtkutil/aggressivegc.init.0
	github.com/diamondburned/[email protected]/gtkutil/aggressivegc/aggressivegc.go:16 +0x25

goroutine 8 [select]:
os/signal.NotifyContext.func1()
	os/signal/signal.go:288 +0x70
created by os/signal.NotifyContext
	os/signal/signal.go:287 +0x165

goroutine 9 [chan receive]:
github.com/diamondburned/gotkit/app.(*Application).Run.func1()
	github.com/diamondburned/[email protected]/app/app.go:233 +0x36
created by github.com/diamondburned/gotkit/app.(*Application).Run
	github.com/diamondburned/[email protected]/app/app.go:232 +0x165

goroutine 24 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ae4c8b7d8, 0x72)
	runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc000096380?, 0xc00033cf60?, 0x0)
	internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).ReadMsg(0xc000096380, {0xc00033cf60, 0x10, 0x10}, {0xc00026c620, 0x1000, 0x1000}, 0x4?)
	internal/poll/fd_unix.go:304 +0x31c
net.(*netFD).readMsg(0xc000096380, {0xc00033cf60?, 0xc00015af60?, 0xc00033cf4c?}, {0xc00026c620?, 0xc00033ce66?, 0xc00033ce60?}, 0xc00033ce5c?)
	net/fd_posix.go:78 +0x37
net.(*UnixConn).readMsg(0xc00009a000, {0xc00033cf60?, 0xc00015cb50?, 0x555d8f351908?}, {0xc00026c620?, 0x555d8f359c90?, 0x555d90aaafb8?})
	net/unixsock_posix.go:115 +0x4f
net.(*UnixConn).ReadMsgUnix(0xc00009a000, {0xc00033cf60?, 0xc00012ddb8?, 0x555d8d9ef6e5?}, {0xc00026c620?, 0x555d8da7206b?, 0x555d8f359c90?})
	net/unixsock.go:143 +0x3c
github.com/godbus/dbus/v5.(*oobReader).Read(0xc00026c600, {0xc00033cf60?, 0xc00012dde0?, 0x555d8d9efa47?})
	github.com/godbus/dbus/[email protected]/transport_unix.go:21 +0x45
io.ReadAtLeast({0x555d8f351ea8, 0xc00026c600}, {0xc00033cf60, 0x10, 0x10}, 0x10)
	io/io.go:331 +0x9a
io.ReadFull(...)
	io/io.go:350
github.com/godbus/dbus/v5.(*unixTransport).ReadMessage(0xc00007e000)
	github.com/godbus/dbus/[email protected]/transport_unix.go:91 +0x11e
github.com/godbus/dbus/v5.(*Conn).inWorker(0xc00032a000)
	github.com/godbus/dbus/[email protected]/conn.go:389 +0x48
created by github.com/godbus/dbus/v5.(*Conn).Auth
	github.com/godbus/dbus/[email protected]/auth.go:118 +0x98d

goroutine 23 [chan receive]:
github.com/godbus/dbus/v5.newConn.func1()
	github.com/godbus/dbus/[email protected]/conn.go:288 +0x32
created by github.com/godbus/dbus/v5.newConn
	github.com/godbus/dbus/[email protected]/conn.go:287 +0x176

Windows version

Hi, any plan for windows version?
or is it possible at all?

Crash on aarch64 mobile devices [Droidian + Phosh]

I spent a couple days finding an aarch64 discord client that wasn't a web app, and when I did try gtkcord4 out, it worked perfectly for me on a mobile form factor. However, after a reboot, the app now crashes when I try to hide a channel list by tapping on the conversation below with the following error that I was absolutely unable to copy or debug off my terminal :\

image

OS details:
Droidian bookworm (Mobian-halium)
4.4.302 kernel
libgtk-4 v4.6.2

Pasting images in.

In a few screenshot apps, you can copy the screenshot to your clipboard, and then paste it into discord. In gtkcord4 you cant. It just makes a mysterious clipboard file.

Hide blocked messages

gtkcord4 should hide blocked messages. The Preferences dialog should list blocked users and have unblock buttons.

Blocks on #30.

Embeds stretch the window out

Seems to be related to embeds. Possibly because when no data is received, the black image stretches across the window. Maybe start with a 0 size.

Voice Chat?

Finally got Gtkcord4 installed thanks to the binary, Its fine as it is (besides the missing servers) but I noticed there where no voice. Will you be adding them in a future update or...?

Installation error

> go build
# pkg-config --cflags  -- glib-2.0 gobject-introspection-1.0
Package gobject-introspection-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gobject-introspection-1.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gobject-introspection-1.0', required by 'virtual:world', not found
pkg-config: exit status 1

ArchLinux, go latest

Homebrew Package

I've created a homebrew package for gtkcord4. Homebrew is a package manager for macos, and at this point the defacto one. Currently I have a github action that checks for new version's once a week. I'm interested in donating the package to you so that you can update it in CI / whenever new versions are released / on demand.

Updating this package means updating the url and hash (the version is inferred from the url). I can help in automating updates if u have an existing ci workflow (it seems u dont). My goal is to get updates quicker by integrating this into ur workflow.

AppImage packaging

./gtkcord4: error while loading shared libraries: libgtk-4.so.1: cannot open shared object file: No such file or directory

an appimage would allow anybody to use and test the application no matter if they're using LTS distrobutions such as linux mint which use ubuntu 20.04 repositories

Does not compile: missing go.sum entries

Tried to compile from main

I get this error:
λ go build                                                                                              
internal/gtkcord/state.go:15:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/api (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/dbus.go:3:8: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/discord (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/state.go:17:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/gateway (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/window/login/component.go:8:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/session (imported by github.com/diamondburned/gtkcord4/internal/gtkcord/window/login); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord/window/login
internal/gtkcord/state.go:18:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/state (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/state.go:19:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/utils/httputil/httpdriver (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/message/view.go:13:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/utils/sendpart (imported by github.com/diamondburned/gtkcord4/internal/gtkcord/message); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord/message
internal/gtkcord/state.go:20:2: missing go.sum entry for module providing package github.com/diamondburned/arikawa/v3/utils/ws (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/state.go:24:2: missing go.sum entry for module providing package github.com/diamondburned/ningen/v3 (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/state.go:25:2: missing go.sum entry for module providing package github.com/diamondburned/ningen/v3/discordmd (imported by github.com/diamondburned/gtkcord4/internal/gtkcord); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord
internal/gtkcord/sidebar/channels/channels.go:16:2: missing go.sum entry for module providing package github.com/diamondburned/ningen/v3/states/read (imported by github.com/diamondburned/gtkcord4/internal/gtkcord/sidebar); to add:
	go get github.com/diamondburned/gtkcord4/internal/gtkcord/sidebar

No such file or directory

The following text appeared on first launch. I think the directory needs to be created before caching.
2022/05/22 22:23:00 imgutil: Failed to open file “/home/USERNAME/.cache/gtkcord4/img2/x1VjTNnNfgL8kLixF3iFEjRT_yo=”: No such file or directory

[Question] How to install GTK4 ?

Hello,

The README says :

gtkcord4 needs GTK4

It would be nice to also explain how to install it, starting with apt package names.

Thanks

Dark mode theme not gen

(sorry my gramatical errors i aren't american native so...)

I make an manual installation with git clone - I tried make with the README file, but i can't execute the files and find the folders.
The gtkcord still open normally, but the "user.css" its not generate too. I tried to copy a config.css of gtkcord3 and some similar files.
Aparently its all right with performance, just the colors is fixed in lightmode, and its little disturbing.
anyone knows how to fix that or make a custom theme for this?

Error while loading shared libraries

./gtkcord4: error while loading shared libraries: libgtk-4.so.1: cannot open shared object file: No such file or directory

Downloaded binaries and then tried to ./gtkcord4 after doas chmod +x gtkcord4
Debian 11 on XFCE4

Cannot Compile on Fedora 36

GTKCoord4 doesn't compile with the instructions provided in README. It claimed to have grabbed all these when I ran it the first time.

$ go version
...
go version go1.18.3 linux/amd64

$ go install -v github.com/diamondburned/gtkcord4@latest
...
github.com/diamondburned/gotk4/pkg/core/gerror
github.com/diamondburned/gotk4/pkg/cairo
github.com/diamondburned/gotk4/pkg/graphene
# pkg-config --cflags  -- glib-2.0 gobject-introspection-1.0
Package gobject-introspection-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gobject-introspection-1.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gobject-introspection-1.0', required by 'virtual:world', not found
pkg-config: exit status 1
# pkg-config --cflags  -- graphene-gobject-1.0 graphene-1.0
Package graphene-gobject-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `graphene-gobject-1.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'graphene-gobject-1.0', required by 'virtual:world', not found
Package 'graphene-1.0', required by 'virtual:world', not found
pkg-config: exit status 1
# pkg-config --cflags  -- cairo cairo-gobject gobject-2.0
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cairo', required by 'virtual:world', not found
Package 'cairo-gobject', required by 'virtual:world', not found
pkg-config: exit status 1

Originally posted by @TriVoxel in #39 (comment)

libsecret

Would be nice if gtkcord4 implemented libsecret for storing auth data.

Preferences menu?

Is there a hidden menu for options? If not, how do you change theme?

Remembering login session when logging in with username/password?

Currently gtkcord4 does not remember your username/password or the resulting token. Looking at https://github.com/diamondburned/gtkcord4/blob/main/internal/gtkcord/window/login/component.go, only loginToken() calls SecretDriver().Set(), and loginEmail() does not.

Can the code be changed to remember to remember the generated token (and possibly username/password though not 2FA code, in case the token expires)?

(Is this something straightforward enough for me to contribute a PR, or is it architecturally complex enough for you to do it yourself?)

Build error for user on AUR

https://aur.archlinux.org/packages/gtkcord4-git#comment-862101

Here's a link to the comment. It says

I'm having a weird build issue with this. Whenever I try to install the package, it fails to build and gives me this message:

Package gobject-introspection-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gobject-introspection-1.0.pc' to the PKG_CONFIG_PATH environment variable Package 'gobject-introspection-1.0', required by 'virtual:world', not found pkg-config: exit status 1

I dunno if this is a dependency issue or what.

build constraints exclude all go files

I am currently attempting to build this for PostmarketOS (which I believe is based off of Alpine Linux) and I keep running into multiple issues stating that various packages' build constraints exclude all go files in X.
Here is the exact output I receive when attempting to compile:

$ go build
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/adaptive
	imports github.com/diamondburned/gotk4/pkg/gdk/v4: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gdk/v4
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/adaptive
	imports github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gdkpixbuf/v2
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/gotkit/app
	imports github.com/diamondburned/gotk4/pkg/gio/v2: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gio/v2
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/adaptive
	imports github.com/diamondburned/gotk4/pkg/glib/v2: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/glib/v2
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/adaptive
	imports github.com/diamondburned/gotk4/pkg/gtk/v4: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gtk/v4
package github.com/diamondburned/gtkcord4
	imports github.com/diamondburned/adaptive
	imports github.com/diamondburned/gotk4/pkg/pango: build constraints exclude all Go files in /go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/pango

Server icons and profile pictures not loading

Using latest release from 10 days ago. All my servers appear as the fallback initials instead of loading the server icons. Inside the servers, nobody's profile pictures appear either. Only default discord pfp users shows up. I get an error like this when I open a folder of servers:

2022/07/09 20:26:24 imgutil: Failed to open file “/home/person/.cache/gtkcord4/img2/7bvOBReA8XHMj6akgEbbsYRl=”: No such file or directory
2022/07/09 20:26:24 imgutil: Failed to open file “/home/person/.cache/gtkcord4/img2/0S6Z9qfAx_9coqk7xGjjev6A=”: No such file or directory
2022/07/09 20:26:24 imgutil: Failed to open file “/home/person/.cache/gtkcord4/img2/S6y8vqFIe_yC2Hl0vcp1oxYkt=”: No such file or directory
2022/07/09 20:26:24 imgutil: Failed to open file “/home/person/.cache/gtkcord4/img2/ByKjTXlvHT6mjNH_O4W65NOE=”: No such file or directory
2022/07/09 20:26:24 imgutil: Failed to open file “/home/person/.cache/gtkcord4/img2/PIGFuVe2B1iEWuVruCnqSroI=”: No such file or directory
...

This could have something to do with all my servers being organized in folders.
Screenshot from 2022-07-09 20-29-10
Screenshot from 2022-07-09 20-30-35
PFP issue:
Screenshot from 2022-07-09 21-02-09

gtkcord4 randomly freezes (traces to present_popup)

(gdb) bt
#0  0x00007ffff6ff45d9 in poll () from /nix/store/mhhlymrg2m70r8h94cwhv2d7a0c8l7g6-glibc-2.34-210/lib/libc.so.6
#1  0x00007ffff681f67c in wl_display_dispatch_queue () from /nix/store/44hmz0z4zajjzkf1dxzvnhs12hfg0nka-wayland-1.21.0/lib/libwayland-client.so.0
#2  0x00007ffff7bf84e3 in gdk_wayland_surface_present_popup () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#3  0x00007ffff79d23de in present_popup () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#4  0x00007ffff79d26a8 in surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#5  0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#6  0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#7  0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#8  0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#9  0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#10 0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#11 0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#12 0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#13 0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#14 0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#15 0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#16 0x00007ffff7abd8cc in parent_surface_transform_changed_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#17 0x00007ffff7abd860 in sync_widget_surface_transform () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#18 0x00007ffff7ac0b91 in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#19 0x00007ffff7ab1b3f in gtk_viewport_size_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#20 0x00007ffff7ac0d4f in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#21 0x00007ffff79fece1 in gtk_scrolled_window_allocate_child () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#22 0x00007ffff79ff1a7 in gtk_scrolled_window_size_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#23 0x00007ffff7ac0d4f in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#24 0x00007ffff78d2401 in gtk_box_layout_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#25 0x00007ffff7ac0bfe in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#26 0x00007ffff78d2401 in gtk_box_layout_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#27 0x00007ffff7ac0bfe in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#28 0x00007ffff78b2477 in gtk_bin_layout_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#29 0x00007ffff7ac0bfe in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#30 0x00007ffff7ac0d4f in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#31 0x00007ffff78d2401 in gtk_box_layout_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#32 0x00007ffff7ac0bfe in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#33 0x00007ffff79c6d8b in gtk_overlay_layout_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#34 0x00007ffff7ac0bfe in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#35 0x00007ffff7a2810b in gtk_stack_size_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#36 0x00007ffff7ac0d4f in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#37 0x00007ffff7ad0378 in gtk_window_size_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#38 0x00007ffff7ac0d4f in gtk_widget_allocate () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#39 0x00007ffff7acbcef in gtk_window_native_layout () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#40 0x00007ffff79f556b in surface_layout_cb () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#41 0x00007ffff7bb1b9a in _gdk_marshal_VOID__INT_INTv () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#42 0x00007ffff729b849 in _g_closure_invoke_va () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#43 0x00007ffff72b4153 in g_signal_emit_valist () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#44 0x00007ffff72b441f in g_signal_emit () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#45 0x00007ffff729b61f in g_closure_invoke () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#46 0x00007ffff72ad637 in signal_emit_unlocked_R () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#47 0x00007ffff72b3e71 in g_signal_emit_valist () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--c
#48 0x00007ffff72b441f in g_signal_emit () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgobject-2.0.so.0
#49 0x00007ffff7bcbaa3 in gdk_frame_clock_paint_idle () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#50 0x00007ffff7bcbc47 in gdk_frame_clock_flush_idle () from /nix/store/pz1j360zwynsadb4jldxq8wqnxnkipi4-gtk4-4.7.1/lib/libgtk-4.so.1
#51 0x00007ffff71a2874 in g_timeout_dispatch () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libglib-2.0.so.0
#52 0x00007ffff71a1d04 in g_main_context_dispatch () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libglib-2.0.so.0
#53 0x00007ffff71a20a8 in g_main_context_iterate.constprop () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libglib-2.0.so.0
#54 0x00007ffff71a215f in g_main_context_iteration () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libglib-2.0.so.0
#55 0x00007ffff73c671d in g_application_run () from /nix/store/38ychklifhkvfjzgqr1i97916cmiwdhj-glib-2.72.3/lib/libgio-2.0.so.0
#56 0x0000000001857fee in _cgo_60a35a354f58_Cfunc_g_application_run (v=0xc00058fae0) at /tmp/go-build/cgo-gcc-prolog:453
#57 0x00000000005d6f84 in runtime.asmcgocall () at /nix/store/va8n177r49nyk49y3s5fm9m1bgmjxcsm-go-1.18/share/go/src/runtime/asm_amd64.s:821
#58 0x000000c0004cdba0 in ?? ()
#59 0x00007fffaaffcb40 in ?? ()
#60 0x00000000005b1173 in runtime.newproc.func1 () at /nix/store/va8n177r49nyk49y3s5fm9m1bgmjxcsm-go-1.18/share/go/src/runtime/proc.go:4062
#61 0x00000000005d5109 in runtime.systemstack () at /nix/store/va8n177r49nyk49y3s5fm9m1bgmjxcsm-go-1.18/share/go/src/runtime/asm_amd64.s:469
#62 0x00007fffaaffd640 in ?? ()
#63 0x0000000000800000 in ?? ()
#64 0x0000000000000000 in ?? ()

special characters in names are not escaped

causes UI to freeze
it was another issue that caused freezing, this causes the text to simply not display

2022/06/03 07:36:48 Warning: Gtk: Failed to set text '<b>beatrix<33</b> <span alpha="75%" size="small">Today at 07:23:08 AM</span>' from markup due to error parsing markup: Error on line 1 char 24: “33<” is not a valid name
2022/06/03 07:36:48 Warning: Gtk: Failed to set text '<b>beatrix<33</b> <span alpha="75%" size="small">Today at 07:11:35 AM</span>' from markup due to error parsing markup: Error on line 1 char 24: “33<” is not a valid name
2022/06/03 07:36:48 Warning: Gtk: Failed to set text '<b>beatrix<33</b> <span alpha="75%" size="small">Today at 07:11:08 AM</span>' from markup due to error parsing markup: Error on line 1 char 24: “33<” is not a valid name

[Request] Flatpak package

A Flatpak package would be nice and ease the installation process.
Thanks for all the great work on gtk+golang!!

Does not show all Servers that I am part of

I just compiled this and logged in using my token and here is what I see on the left panel:
Screenshot from 2022-04-16 21-01-14

while this is what I see on the WebClient:
discord-normal

So there are two Servers missing (sadly, the first of the bunch is the most crucial one for me :/)

Crashing with "gsk_gl_command_queue_create_render_target: assertion failed"

upon downloading the aarch64 linux version on my pinephone running arch linux arm i get this error

2022/08/11 23:43:53 failed to read user.css: open /home/spagett/.config/gtkcord4/user.css: no such file or directory
2022/08/11 23:43:53 note: account not found from driver: key not found
2022/08/11 23:43:53 Warning: Gtk: GtkGizmo 0xffff5c1253f0 (progress) reported min width -2, but sizes must be >= 0
**
Gsk:ERROR:../gtk/gsk/gl/gskglcommandqueue.c:1276:gsk_gl_command_queue_create_render_target: assertion failed (glCheckFramebufferStatus (GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE): (0x00008cd6 == 0x00008cd5)
Bail out! Gsk:ERROR:../gtk/gsk/gl/gskglcommandqueue.c:1276:gsk_gl_command_queue_create_render_target: assertion failed (glCheckFramebufferStatus (GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE): (0x00008cd6 == 0x00008cd5)
SIGABRT: abort
PC=0xffff95cc2790 m=3 sigcode=18446744073709551610
signal arrived during cgo execution

goroutine 1 [syscall]:
runtime.cgocall(0x1797ae8, 0x400054bac8)
	runtime/cgocall.go:157 +0x54 fp=0x400054ba90 sp=0x400054ba50 pc=0x5787a4
github.com/diamondburned/gotk4/pkg/gio/v2._Cfunc_g_application_run(0x42c7f290, 0x1, 0xffff5c002790)
	_cgo_gotypes.go:5619 +0x3c fp=0x400054bac0 sp=0x400054ba90 pc=0x6c209c
github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run.func3(0x40002c2070?, 0xa?, 0xffff5c002790?)
	github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x78 fp=0x400054bb10 sp=0x400054bac0 pc=0x705938
github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run(0x40005816f8, {0x40001101f0?, 0x1, 0x1})
	github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x184 fp=0x400054bbd0 sp=0x400054bb10 pc=0x705854
github.com/diamondburned/gotkit/app.(*Application).Run(0x40001dc200, {0x40001101f0, 0x1, 0x1})
	github.com/diamondburned/[email protected]/app/app.go:235 +0x164 fp=0x400054bc30 sp=0x400054bbd0 pc=0xd229d4
github.com/diamondburned/gotkit/app.(*Application).RunMain(0x1e53f60?)
	github.com/diamondburned/[email protected]/app/app.go:240 +0x44 fp=0x400054bc60 sp=0x400054bc30 pc=0xd22b44
main.main()
	github.com/diamondburned/gtkcord4/main.go:47 +0x594 fp=0x400054bf70 sp=0x400054bc60 pc=0x17295f4
runtime.main()
	runtime/proc.go:250 +0x258 fp=0x400054bfd0 sp=0x400054bf70 pc=0x5aac08
runtime.goexit()
	runtime/asm_arm64.s:1259 +0x4 fp=0x400054bfd0 sp=0x400054bfd0 pc=0x5d8e74

goroutine 22 [chan receive]:
github.com/diamondburned/gotkit/gtkutil/aggressivegc.init.0.func1()
	github.com/diamondburned/[email protected]/gtkutil/aggressivegc/aggressivegc.go:17 +0x58
created by github.com/diamondburned/gotkit/gtkutil/aggressivegc.init.0
	github.com/diamondburned/[email protected]/gtkutil/aggressivegc/aggressivegc.go:16 +0x28

goroutine 38 [syscall]:
os/signal.signal_recv()
	runtime/sigqueue.go:151 +0x34
os/signal.loop()
	os/signal/signal_unix.go:23 +0x20
created by os/signal.Notify.func1.1
	os/signal/signal.go:151 +0x30

goroutine 39 [select]:
os/signal.NotifyContext.func1()
	os/signal/signal.go:288 +0x6c
created by os/signal.NotifyContext
	os/signal/signal.go:287 +0x184

goroutine 40 [chan receive]:
github.com/diamondburned/gotkit/app.(*Application).Run.func1()
	github.com/diamondburned/[email protected]/app/app.go:231 +0x3c
created by github.com/diamondburned/gotkit/app.(*Application).Run
	github.com/diamondburned/[email protected]/app/app.go:230 +0x148

goroutine 26 [chan receive]:
github.com/godbus/dbus/v5.newConn.func1()
	github.com/godbus/dbus/[email protected]/conn.go:288 +0x3c
created by github.com/godbus/dbus/v5.newConn
	github.com/godbus/dbus/[email protected]/conn.go:287 +0x19c

goroutine 27 [IO wait]:
internal/poll.runtime_pollWait(0xffff69ea8998, 0x72)
	runtime/netpoll.go:302 +0xa4
internal/poll.(*pollDesc).wait(0x40001dc280?, 0x40001cc920?, 0x0)
	internal/poll/fd_poll_runtime.go:83 +0x2c
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).ReadMsg(0x40001dc280, {0x40001cc920, 0x10, 0x10}, {0x40000e7320, 0x1000, 0x1000}, 0x4?)
	internal/poll/fd_unix.go:304 +0x218
net.(*netFD).readMsg(0x40001dc280, {0x40001cc920?, 0x400023c500?, 0x40002422f8?}, {0x40000e7320?, 0x40002365a0?, 0x40001cc90c?}, 0x40001cc824?)
	net/fd_posix.go:78 +0x30
net.(*UnixConn).readMsg(0x40001f5fb8, {0x40001cc920?, 0x357a758?, 0x1?}, {0x40000e7320?, 0x400023c500?, 0x1e4abc8?})
	net/unixsock_posix.go:115 +0x38
net.(*UnixConn).ReadMsgUnix(0x40001f5fb8, {0x40001cc920?, 0x40?, 0x3714d50?}, {0x40000e7320?, 0x5813e0?, 0x4000215d28?})
	net/unixsock.go:143 +0x34
github.com/godbus/dbus/v5.(*oobReader).Read(0x40000e7300, {0x40001cc920?, 0x4000215da8?, 0x166f0c4?})
	github.com/godbus/dbus/[email protected]/transport_unix.go:21 +0x40
io.ReadAtLeast({0x1e4b148, 0x40000e7300}, {0x40001cc920, 0x10, 0x10}, 0x10)
	io/io.go:331 +0xac
io.ReadFull(...)
	io/io.go:350
github.com/godbus/dbus/v5.(*unixTransport).ReadMessage(0x40005817a0)
	github.com/godbus/dbus/[email protected]/transport_unix.go:91 +0x110
github.com/godbus/dbus/v5.(*Conn).inWorker(0x4000390690)
	github.com/godbus/dbus/[email protected]/conn.go:389 +0x44
created by github.com/godbus/dbus/v5.(*Conn).Auth
	github.com/godbus/dbus/[email protected]/auth.go:118 +0x748

r0      0x0
r1      0x15cdb5
r2      0x6
r3      0xffff6aeedf60
r4      0xffff96fffa48
r5      0xffff5c1be720
r6      0xa0aaf938b5195e35
r7      0x6b74672f2e2e3a52
r8      0x83
r9      0x3664633830303030
r10     0x30307830203d3d20
r11     0x29356463383030
r12     0x2820737574617453
r13     0x454d4152465f4c47
r14     0x2029524546465542
r15     0x52465f4c47203d3d
r16     0x0
r17     0x0
r18     0x4
r19     0x15cdb5
r20     0xffff6aeedf60
r21     0x6
r22     0xffff95fdb020
r23     0xffff6aeebdb8
r24     0xffff96c6b620
r25     0x2600
r26     0x2600
r27     0xffff5c1a48d0
r28     0xffff6aeec150
r29     0xffff6aeebb10
lr      0xffff95cc277c
sp      0xffff6aeebb10
pc      0xffff95cc2790
fault   0x0

[Request] Publish the app on Flathub

HI, i like a lot this app and how's developing, so when it gets to a more stable release, is it possible to be published on flathub?. thank you

Cannot find gdk_device_get_timestamp

I have tried running the prebuilt binary and building from source but both fail due to gdk_device_get_timestamp not being available, even though it has been available since 4.2

I have manually installed GTK4 using the following command

sudo apt-get install libgtk-4-bin libgtk-4-common libgtk-4-dev libgtk-4-doc

As well as built and installed the latest gtk 4.7.0 using these instructions https://docs.gtk.org/gtk4/building.html

Neither of these solutions fixed the error in my case. I am running Ubuntu 21.04

Errors

Prebuilt:

~/software/gtkcord4
/home/jon/software/gtkcord4: symbol lookup error: /home/jon/software/gtkcord4: undefined symbol: gdk_device_get_timestamp

From source:

go install -v github.com/diamondburned/gtkcord4@latest
github.com/diamondburned/gotk4/pkg/gdk/v4
# github.com/diamondburned/gotk4/pkg/gdk/v4
../../../go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gdk/v4/gdkdevice.go:582:10: could not determine kind of name for C.gdk_device_get_timestamp

Swiping on channel list with touchscreen results in selection

When swiping on the channel list with a touchscreen device, the application will first select & load the child the swipe first started over, then start scrolling the tree. This is undesirable on lower-spec devices, where channel loading takes a number of seconds to finish before the application becomes responsive again.

Windows version

Is it possible to make a windows version? I do not use Linux anymore, and I really like Gtkcord becouse it is very good.
It would be great if there was a windows version. I hope you will respond on my message. Thank you.

feature request: add a way to send multi-line messages on a mobile keyboard

currently as far as i can tell, there isn't a way to create a newline with the default on-screen keyboard present in phosh (this may not be the case in other mobile UIs).
i recognize that — without access to a way to create custom keyboards — this may be a difficult feature to implement; however, it would probably be not too hard to hack something together (like using a combination of ctrl+return to create a newline, as — at least phosh — provides a terminal keyboard with an available ctrl character). this of course may not be desired though, so feel free to take this request as you please

GTKCord hanging occasionally: pixman_region32_init_rect: Invalid rectangle passed [Pinephone/Manjaro/Phosh]

Program fires up and works as expected approx 50% of the time.
When logged in, after selecting a channel and retracting the channel list, the following gets returned as well as a complete hang of the program (requires killing of the process)

2022/05/16 12:56:35 Warning: Gsk: Unrecognized renderer "ngl". Try GSK_RENDERER=help
2022/05/16 12:56:35 Warning: Gtk: GtkGizmo 0xffff8014a3f0 (progress) reported min width -2, but sizes must be >= 0
2022/05/16 12:56:38 connected: READY
2022/05/16 12:56:53 load channel 213077219424206858
2022/05/16 12:56:53 Discord API: GET /api/v9/channels/213077219424206858/messages
2022/05/16 12:56:54 guild 77710284621357056 requested 3 members
2022/05/16 12:56:55 guild 77710284621357056 requested 1 members
2022/05/16 12:56:56 Warning: Gdk: Compositor doesn't support moving popups, relying on remapping
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

2022/05/16 12:56:56 Critical: Gdk: gdk_surface_ensure_egl_surface: assertion 'priv->egl_native_window != NULL' failed
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

Rebooting seems to sometimes fix this, but if the program is closed and reopened, the error occurs again.

Happy to help out however I can but my knowledge and experience is entry-level and may need guidance.

View freezes until resize

When switching channels (i.e., in the StorageTech server), the loading animation plays, then freezes until the window is resized. I assume this is related to the content of the channel.

Example:
Example of behavior

go4.org/unsafe/assume-no-moving-gc hasn't been updated to assert that it's safe against the go1.19 runtime

Attempting to install gtkcord4-git-r95.8ff24dc-1 from the AUR met me with this error upon launching:

panic: Something in this program imports go4.org/unsafe/assume-no-moving-gc to declare that it assumes a non-moving garbage collector, but your version of go4.org/unsafe/assume-no-moving-gc hasn't been updated to assert that it's safe against the go1.19 runtime. If you want to risk it, run with environment variable ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.19 set. Notably, if go1.19 adds a moving garbage collector, this program is unsafe to use.

goroutine 1 [running]:
go4.org/unsafe/assume-no-moving-gc.init.0()
go4.org/unsafe/[email protected]/untested.go:25 +0x1f4

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.