Gajim - 2023-07-10


  1. Aayush

    https://j.404.city:5443/share/c94f5d232fee00bd04e8de2d23203d71d871c0eb/90ivMcBWL8QFbVROa3rGIt08PVSZaxSTFGetX2f4/briar-desktop-1.png

  2. Aayush

    Can I have my chat window like this?

  3. Aayush

    Sender and receiver separated?

  4. kurion

    > Sender and receiver separated? are you referring to the view of the inbox?

  5. Aayush

    yes

  6. kurion

    not doable in current release.

  7. Aayush

    How about a plugin?

  8. kurion

    That view is quite helpful to the eye, indeed.

  9. Aayush

    For one to one chat it's good to have this.

  10. lovetox

    Maybe if your screen is that little

  11. lovetox

    Otherwise not that nice

  12. kurion

    » Maybe if your screen is that little specially if you give the app half the screen on a standard laptop.

  13. kurion

    Some people prefer to use chatting apps that way, giving it half the screen, and doing something else on the other half.

  14. kurion

    If, by chance, my contact's and my avatar color is the same and/or we both have nicks starting with the same letter, it feels like it would be better if the inbox had that "split".

  15. molestia

    ho

  16. molestia

    yo

  17. 2006

    After upgrading to version 1.8.0, switching dialogs began to occur with a greater delay.

  18. 2006

    The earlier version opened faster, and 1.8.0 I have this problem on Windows/ Linux distro.

  19. kurion

    2006: This is due to a design overhaul in Gajim. The UI is richer now. So it takes a bit more time.

  20. 2006

    :/

  21. kurion

    2006: I'm also sad about the lag.

  22. 2006

    kurion, It seems to help to create a group, and communicate in it as in a dialogue

  23. ☭Mike Yellow

    Have you experienced such a situation? An occupant keep joining and exiting a room at a frequency about every four seconds? They are Gajim users.

  24. lovetox

    no, sounds weird

  25. lovetox

    maybe ask the user to supply logs

  26. lovetox

    i can only imagine the server does weird stuff and gajim is in some join leave loop

  27. lovetox

    what also could be, that the users server disconnects his client

  28. lovetox

    then gajim would reconnect and join again all mucs

  29. ☭Mike Yellow

    I will try to investigate it by myself.

  30. pinkolik

    hello guys. how do i open links of type xmpp:jid?omemo-sid in gajim to verify omemo fingerprint?

  31. pinkolik

    or scan qr code

  32. opal

    sounds like a feature request pinkolik :D

  33. opal

    i dont think the omemo plugin intercepts that yet

  34. opal

    nor off the top of my head do i know how that would be implemented, if i were to have a best guess i would say the xmpp: uri scheme isnt even passed to any plugins at all but im not sure

  35. opal

    im open for surprises

  36. pinkolik

    Ah, okay then. Well, I guess it would be a nice feature, because manual fingerprint comparison is prone to human errors

  37. opal

    agreed

  38. kurion

    Does the ChatBox in UI architecture refer to the inbox ListBox containing MessageRows?

  39. kurion

    Does the `ChatBox` in UI architecture refer to the inbox `ListBox`containing `MessageRows`?

  40. kurion

    I need to add some `key-press-event` signal handling to the ListBox that is the inbox. Which class/file should I target?

  41. lovetox

    there is no chatBox

  42. lovetox

    or where do you read that?

  43. lovetox

    do you know gtk-inspector?

  44. lovetox

    in this app you can see a treeview of all widgets, and this might give you a better idea of what contains what

  45. kurion

    the second pic here has a ChatBox. https://dev.gajim.org/gajim/gajim/-/wikis/development/UIArchitecture

  46. kurion

    > do you know gtk-inspector? no, unfortunately. I'll search for it.

  47. lovetox

    https://share.hoerist.com/philipp/AgnH7kW4SafiqPOi/1ddccc74-fa62-4993-9a10-11b4d56df290.png

  48. lovetox

    its now a ChatStack

  49. lovetox

    and no its a Gtk.Stack, that contains again pages,

  50. lovetox

    the listbox that contains the messages is the ConversationView

  51. kurion

    I've enabled gtk-inspector. The idea behind it is amazing.

  52. lovetox

    and every widget that is named gajim+...

  53. lovetox

    is a class in Gajim code, which you most likely find in a file named the same

  54. kurion

    A mention of gtk-inspector in the Gajim development wiki would be great.

  55. cal0pteryx

    At least for Windows it is :) https://dev.gajim.org/gajim/gajim/-/blob/master/win/README.md#gtkinspector

  56. kurion

    Great, thanks. I think gtk-inspector deserves a mention on the development wiki home page.

  57. kurion

    It is quite a time saving tool for new contributors.

  58. cal0pteryx

    I'll see that I add it in a more prominent place

  59. kurion

    cal0pteryx: Thank you for your consideration

  60. kurion

    I placed a `print` call inside the `__init__` method of ConversationView so that I can see if a new `ListBox` gets created every time I switch chats or start a new one. To my surprise, that print is executed only once. Am I missing something? Is "Model-View kind of programming" at play here?

  61. kurion

    I am still getting familiar with Gtk. So pardon my noobness.

  62. cal0pteryx

    kurion: the conversation view is only created once. MessageRows are added/removed during chat switching

  63. cal0pteryx

    Which are Gtk.ListRows

  64. cal0pteryx

    The code of those rows resides in the ./rows sub folder

  65. kurion

    Oh, okay. Thanks for the clarification. Now I can see how there can be only one ListBox for many chats.

  66. cal0pteryx

    Pre 1.5 there were multiple converdation views, which resulted in bad performace. It's already much better now, where we minimized the count of widgets displayed at once

  67. kurion

    I am wondering, performance wise, which approach is better? 1. having one ListBox per chat 2. current implementation involving adding/removing MessageRows on the fly.

  68. kurion

    I just hit the enter key and found out that you already guessed the question I was going to ask and answered that.

  69. kurion is surprised at cal0pteryx's mind reading.

  70. kurion

    So, if I add a `key-press-event` handler for `self._listbox` at ConversationVIew it is going to work for any currently displayed chat inbox, right?

  71. kurion

    So, if I add a `key-press-event` handler for `self._listbox` at ConversationVIew, it is going to work for any currently displayed chat inbox, right?

  72. lovetox

    yes

  73. lovetox

    there is a bad design i gtk3 with the css engine

  74. lovetox

    css rules are evaluated also for widgets which are not on screen

  75. lovetox

    meaning the more widget you have in your application the slower it gets on css changes

  76. lovetox

    and there is this nice feature called "backdrop"

  77. kurion

    > meaning the more widget you have in your application the slower it gets on css changes That sounds like a real bad bottleneck.

  78. lovetox

    meaning if you unfocus the application, everything gets the backdrop class, and DEs make it so the application colors get dimmer so that you see a difference between an app that is focused

  79. lovetox

    meaning everytime you switch to another application, all widgets have to be css styled

  80. lovetox

    this can get as bad, that you wait multiple seconds until your system focuses another application, because it works on appying backdrop css classes to everythin

  81. lovetox

    of course there is no way to disable backdrop, GNOME devs simply say, they provide a feature, no theme creator needs to use backdrop

  82. lovetox

    of course all gtk themes out there use backdrop

  83. kurion

    Is Gtk4 and Adwaita going to solve this performance issue?

  84. lovetox

    actually no idea. at least they introduced a ListView, thats basically a ListBox which creates widgets on the fly as you scroll

  85. lovetox

    in comparison to the listbox, which creates all widgets, it doesnt matter if they are on screen or not

  86. lovetox

    but i really tend to having a framework where i know all limitations

  87. lovetox

    then switching to gtk4, and discover every months some new limitation

  88. lovetox

    than switching to gtk4, and discover every months some new limitation

  89. kurion

    I second this. Breaking changes cause a lot of headache.

  90. kurion

    Also, I am curious, is the problematic styling implementation an inherent issue with using CSS for desktop apps or is it bad decisions on Gtk's side?

  91. lovetox

    no idea, the reason why css has to be considered for every widget, is that css can have something like margin, padding, border size etc

  92. lovetox

    basically you can change the size of the widget with css

  93. kurion

    I think Qt also uses CSS. Are things the same there?

  94. lovetox

    if one widget changes its size, another widget is impacted

  95. lovetox

    so they need to calc all css for everything to get the size of everything

  96. lovetox

    kurion, no idea, i only ever used gtk3

  97. lovetox

    but you run only into this problems if you have really advanced apps

  98. lovetox

    or lets say bigger apps with lots of UI elements

  99. lovetox

    because of course for example the chat switch case

  100. lovetox

    is blazing fast if you simply have loaded all chats, just hide them

  101. lovetox

    but we changed everything to on demand loading, to get down the widget count

  102. lovetox

    and also the memory goes down of course with it

  103. lovetox

    at the cost of some loading time :)

  104. kurion

    Aha, I get it now.

  105. kurion

    By the way, lovetox, are you using Nemo now?

  106. kurion

    Nemo, the file manager.

  107. lovetox

    yes, im happy till now

  108. kurion

    Good to know.

  109. kurion

    Does Gtk3 have toasts?

  110. kurion

    Toasts enhances UX by showing short contextual feedbacks after actions.

  111. kurion

    Toasts enhances UX by showing short contextual feedbacks on actions.

  112. kurion

    Toasts enhance UX by showing short contextual feedbacks on actions.

  113. kurion

    I thought of a use case for toasts. When `Copy Text` is clicked after selecting some messages, a short toast showing "Copied" (like when the copy button is clicked on Github) would be nice.

  114. kurion

    I added this method to `message.py` to have fast access to common actions that can be done to a MessageRow https://conference.gajim.org:5281/pastebin/b0aed35c-2413-4032-a306-ce72430e86e5

  115. kurion

    I too, feel bad about `_chat_page` in line `chat_stack = app.window._chat_page.get_chat_stack()`. But don't know what's the best way to achieve my desired behavior.

  116. kurion

    The pastebin link seems inaccessible at the moment.

  117. kurion

    So I am pasting the code again: https://conference.gajim.org:5281/pastebin/3f696de8-938e-4d83-b2e0-53fa28b9f7a8

  118. kurion

    Unfortunately, this link too, is not working, https://conference.gajim.org:5281/pastebin/7342700c-0e24-43fe-a923-6b7790bd76ad

  119. kurion

    I guess I'll have to forget formatting for this time.

  120. kurion

    def _on_key_press_event(self, https://conference.gajim.org:5281/pastebin/56d33841-39dd-4071-8cbd-72ce17251e95

  121. kurion

    no gajim pastebin link seem to be working for now.

  122. kurion

    Can you see the code?

  123. kurion

    here is a zerobin link https://zerobin.org/?ed46d5cdad29d809#Aatfck7kXDqJDvVEgvxeCxscEvq93RqT8nhQTk3wniRf

  124. kurion

    Sorry, for the "spamming" above. I was trying to access the Gajim paste service with TOR and it didn't work. The links are accessible with Firefox.

  125. lovetox

    Gtk has not toasts build in

  126. lovetox

    but it can probably be done

  127. lovetox

    either with a overlay where you simply show and hide a widget

  128. lovetox

    you can add some css transitions to make the showing hiding fancy

  129. lovetox

    gtk4 has them

  130. lovetox

    you could simply look how they did it

  131. lovetox

    but as i see it it is simply a widget in a overlay

  132. lovetox

    we basically have this with the groupchat state widget

  133. lovetox

    which is shown when you join a groupchat

  134. lovetox

    think this a bit smaller, and i guess you have what you need

  135. lovetox

    altough for what would you use it

  136. lovetox

    copy text seems useful

  137. lovetox

    but other than that?

  138. kurion

    I was thinking for my blind friend. These non-notification feedbacks would be helpful for him on various occasions.

  139. kurion

    Looking forward to some suggestions on this piece of code: https://conference.gajim.org:5281/pastebin/7342700c-0e24-43fe-a923-6b7790bd76ad

  140. kurion

    I too, feel bad about `_chat_page` in line `chat_stack = app.window._chat_page.get_chat_stack()`. But don't know what's the best way to achieve my desired behavior.

  141. lovetox

    yes thats bad :D

  142. lovetox

    you are supposed to use actions

  143. lovetox

    there should be a quote action registered

  144. lovetox

    grep for "app.app.activate_action"

  145. jstein

    kurion, is profanity https://profanity-im.github.io for blind users perhaps a better option than a GUI? It is command line driven. So you have all functions on hotkeys and commands and plaintext.

  146. EmleyMoor

    Running Gajim 1.7.3 as supplied in Debian bookworm. ne IRC channel I'm on (through biboumi) is alerting me with a sound, every message. This is not what I want but I can't see why it is happening. Can someone please guide me?

  147. fjklp

    EmleyMoor: Gajim > Preferences > Notifications > Play Sounds

  148. fjklp

    you can either turn off all sound notifications there or go into the settings there to adjust which events produce sounds

  149. fjklp

    hmm, now that I look at it it seems like I haven't been getting sounds I should

  150. EmleyMoor

    That doesn't tell me why this *one* channel is triggering it

  151. EmleyMoor

    I am happy with the settings as is, it's just that it's getting triggered unexpectedly

  152. fjklp

    is this a 1 to 1 chat?

  153. kurion

    jstein: Thanks for your suggestion. I tried out profanity, thinking nothing can be more friendly to a screen reader than a text only interface. But most times, on every update, orca tends to read all the text on the terminal, not only the updated part.

  154. kurion

    jstein: Thanks for your suggestion. I tried out profanity, thinking nothing can be more friendly to a screen reader than a text only interface. But most times, on every update or a new event, orca tends to read all the text on the terminal, not only the updated part.