Gajim - 2025-08-07


  1. bullgard4

    [Debian 12, Xfce4.18] '~$ /usr/bin/gajim' answers: "No translation path available. Gajim is already running. The primary instance will handle remote commands." What remote command is suitable to start the GUI of the program?

  2. cal0pteryx

    bullgard4: Gajim is already running. You need to use either that instance or close it before opening another one

  3. zoidberg

    Hello guys, just updated to 2.3.3, how can i reach the debug console now?

  4. mesonium

    Shift + Ctrl + X (see hotkeys help dialog) or Preferences -> Advanced -> Debug Console

    👍 1
  5. zoidberg

    THX

    👍 1
  6. tester123x

    hello

  7. tester123x

    comparing ram consumption gajim vs pidgin

  8. tester123x

    gajim 659mb pidgin 90mb is this normal?

  9. cal0pteryx

    tester123x: yes

  10. bot

    lovetox pushed 1 commits to branch gajim/master imprv: OMEMOTrustManager: Add copy button and make some design improvements - https://dev.gajim.org/gajim/gajim/-/commit/e3c99ef07c4b31b601aec7d99666da12932f1e21

  11. Rebeld (jab.im)

    > gajim 659mb pidgin 90mb is this normal? Some haters are saying that Gajim is being developed in a scripting language. I don't know is this is true. I hope not. Some haters are spreading fake news, they say it's python, the script kids "programming" language.

  12. chud

    RAM consumption probably has more to do with pidgin using an outdated version or GTK.

  13. voker57

    nonsense, gtk4 does not consume more RAM

  14. chud

    It does. Example: https://forum.manjaro.org/t/pamac-gui-ram-usage/146639 Ram usage blowing up for times just between gtk3->gtk4. And pidgin is gtk2. Also, Dino consumes about as much RAM as Gajim, while not being Python.

  15. chud

    It does. Example: https://forum.manjaro.org/t/pamac-gui-ram-usage/146639 Ram usage blowing up 4 times just between gtk3->gtk4. And pidgin is gtk2. Also, Dino consumes about as much RAM as Gajim, while not being Python.

  16. voker57

    it's also written in some scripting junk

  17. lovetox

    also comparing apple with oranges, pidgin almost a text only client, like some irc client

  18. lovetox

    BUT, i definitly think there are some problems with memory managment in pygobject

  19. lovetox

    it seems impossible to release memory once its allocated

    🤣 1
  20. lovetox

    but most people that write GTK applications dont care, because almost nobody writes long running GUI applications

    🤦 1
  21. chud

    > it's also written in some scripting junk No

  22. chud

    My bad, Dino actually consumes "only" 220 megabytes.

  23. chud

    I just checked out of curiosity. Nautilus consumes 120 megabytes. It would seem to be of comparable if not greater gui complexity them chat clients.

  24. chud

    I just checked out of curiosity. Nautilus consumes 120 megabytes. It would seem to be of comparable if not greater gui complexity than chat clients.

  25. lovetox

    my Gajim consumes 215mb after ~5 hours

  26. lovetox

    its a leak problem, it will consume more, the more chats you are joined, and the more you let it running

  27. lovetox

    a file browser is typically never opened for a long time, so you will never notice leak problems

  28. de-facto

    Hey how can i have image preview in group chats? i activated all the settings for preview but they have no effect on group chats

  29. lovetox

    you click the download button and the image should show

  30. de-facto

    no i want it to show by itself

  31. de-facto

    not by clicking it each time

  32. lovetox

    thats not possible in public chats

  33. de-facto

    whtas that setting for then?

  34. gyatt

    mine is using 350mb

  35. gyatt

    better than discord imo

  36. gyatt

    or matrix

  37. lovetox

    de-facto, hm right there is a setting for that

  38. chud

    I never closed my file manager dolphin just so I can open it instantaneously. I actually come to think of it, I think your argument that most GUI programs do not run for a long time is wrong. I think I run most programs I commonly use, basically 24-7. I just don't close them to not have to restart them. This includes emacs (54 megabytes, been running for days if not weeks), dolphin (75 megabytes, likewise)

  39. lovetox

    maybe your file size limit is to low, its a setting in the same dialog

  40. chud

    Funny thing that even includes freeCAD, inarguably an order of magnitude more complex software than any chat client or file manager, and it only consumes 44 megabytes. And it's also Python!

  41. lovetox

    ok not sure how that helps us, you are free to look at the code and show me the 200 mb of things we load

  42. chud

    So it looks like it's particularly pygobject that is to blame. Also gtk itself perhaps but not that much.

  43. de-facto

    how can i make gajim to apply those settings to a groupchat? https://iili.io/Fs28tfa.png

  44. chud

    > you are free to look at the code and show me the 200 mb of things we load I think that would be the lines starting with "from gi import"

  45. gyatt

    uhhh

  46. lovetox

    de-facto, does it never preview anything, or only sometimes not

  47. de-facto

    never so far

  48. de-facto

    i want to have auto preview of images because we have a flux image generation bot in another room

  49. lovetox

    so send a image here

  50. de-facto

    it outputs links to jpegs like above the image i linked e.g. https://iili.io/Fs28tfa.png

  51. de-facto

    it shows the url, but i want ot see the image

  52. de-facto

    without clicking on it each time

  53. lovetox

    yes, send a image here

  54. de-facto

    https://iili.io/Fs28tfa.png

  55. lovetox

    works for me with the setting on

  56. lovetox

    maybe check debug logs

  57. de-facto

    but not like this https://iili.io/Fs28tfa.png

  58. de-facto

    the bot will not output only the url, its contained in text

  59. lovetox

    yes we dont preview links within text

  60. de-facto

    thats bad :(

  61. gyatt

    > > you are free to look at the code and show me the 200 mb of things we load > I think that would be the lines starting with "from gi import" how much ram does it use if theres no avatars?

  62. de-facto

    ok then that setting is useless to me and i will deactivate it

  63. gyatt

    nautilus uses 302MiB of vram and 886MiB of ram

  64. gyatt

    for me

  65. de-facto

    is there a plugin that can fix this?

  66. lovetox

    no

  67. lovetox

    we work on supporting proper media sharing xeps

  68. lovetox

    then your bot can use that to send images

  69. lovetox

    it could also simply send a text message, and then a second message with the link

  70. de-facto

    yeah its behind biboumi

  71. de-facto

    lovetox, now you making me curious, what kind of proper media sharing xeps do you have in mind for e.g. a stable diffusion bot that directly is on xmpp?

  72. cal0pteryx

    does it matter which type of bot sends images+messages?

  73. cal0pteryx

    https://xmpp.org/extensions/xep-0447.html if you're curious

  74. de-facto

    "Do not require any server components for easier deployment" <-- does that mean there would need to be a direct p2p link between the bot and each participant in the group chat?

  75. de-facto

    i see so that also includes http upload

  76. Link Mauve

    I’m profiling Gajim, and I’m surprised it spends 0.3s during startup compiling regexps on my laptop.

  77. Link Mauve

    6056 0.009 0.000 0.323 0.000 /usr/lib/python3.13/re/__init__.py:330(_compile)

  78. Link Mauve

    It’s compiling 6056 re expressions, with a mean time of 9ms per regexp.

  79. lovetox

    de-facto, no, you can set any http link as source, you dont need to upload something somewhere

  80. lovetox

    point is yo can attach many metadata, and a description

  81. de-facto

    thats actually nice

  82. lovetox

    Link Mauve, ok but how are you sure its Gajim?

  83. lovetox

    it can be any library loaded with python, and im sure python standard libs itself compile regex

  84. Link Mauve

    For sure, but Gajim does use Python’s standard libs.

  85. Link Mauve

    Also many regexps are the exact same a lot of times.

  86. Link Mauve

    It might make sense to cache at least some.

  87. lovetox

    there is a single compile statement we dont cache

  88. lovetox

    and its used once during connect

  89. Link Mauve

    Hmm… Traceback (most recent call last): (?m)^ File "/usr/lib/python3.13/site-packages/gajim/gtk/application.py", line 372, in _handle_local_options self._startup() ~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/site-packages/gajim/gtk/application.py", line 227, in _startup if not self._init_core(): ~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/site-packages/gajim/common/application.py", line 113, in _init_core app.connections[account] = Client(account) ~~~~~~^^^^^^^^^ File "/usr/lib/python3.13/site-packages/gajim/common/client.py", line 107, in __init__ self._create_client() ~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/site-packages/gajim/common/client.py", line 174, in _create_client self._client.set_lang(get_rfc5646_lang()) ^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'Client' object has no attribute 'set_lang'

  90. lovetox

    you need nbxmpp master

  91. lovetox

    if you use gajim master

  92. bot

    lovetox pushed 1 commits to branch gajim/master fix: Reactions: Correctly count when reacting to own messages - https://dev.gajim.org/gajim/gajim/-/commit/eefe12d02481abe6587759d875180d44e7a5ac42

  93. Link Mauve

    ut of the 6056 regexps being compiled during startup, only 283 are unique.

  94. Link Mauve

    So yeah, probably something to fix in Python’s modules.

  95. lovetox

    or in some other lib we use

  96. mesonium

    > BUT, i definitly think there are some problems with memory managment in pygobject Have you checked their issue tracker? They have many unsolved threads and even more sad un-reviewed PRs to fix memory leaks open for long times.

  97. Link Mauve

    Even during runtime, you still compile the "re.compile('\ufdd0|\ufdd1|\ufdd2|\ufdd3|\ufdd4|\ufdd5|\ufdd6|\ufdd7|\ufdd8|\ufdd9|\ufdda|\ufddb|\ufddc|\ufddd|\ufdde|\ufddf|\ufde0|\ufde1|\ufde2|\ufde3|\ufde4|\ufde5|\ufde6|\ufde7|\ufde8|\ufde9|\ufdea|\ufdeb|\uf)" regex multiple times.

  98. lovetox

    thats probably the emoji lib

  99. lovetox

    https://pypi.org/project/emoji/

  100. Link Mauve

    /usr/lib/python3.13/site-packages/packaging/specifiers.py is also a culprit of compiling the same regexps again and again.

  101. Link Mauve

    lovetox, no, emoji doesn’t seem to do it wrong at least.

  102. lovetox

    yeah also just checked, we also use only 2 methods from this lib

  103. Link Mauve

    Unlike nbxmpp’s get_invalid_xml_regex().

  104. lovetox

    uh yeah i didnt check nbxmpp

  105. lovetox

    meh

  106. lovetox

    its cached, the compile res is stored in a var

  107. Link Mauve

    It still gets compiled multiple times, I don’t quite understand why.

  108. lovetox

    once per Client() instance

  109. lovetox

    so on a reconnect, and if you have multiple accs

  110. lovetox

    could be better but we talk about single digit compiles

  111. Link Mauve

    Yeah.

  112. Link Mauve

    The packaging regexp though gets compiled a good hundreds of times during startup.

  113. chud

    > how much ram does it use if theres no avatars? I think the impact of a couple of dozen 64px pictures would be negligible compared to 800mb

  114. bot

    lovetox pushed 1 commits to branch python-nbxmpp/master imprv: Better cache invalid xml regex - https://dev.gajim.org/gajim/python-nbxmpp/-/commit/f9a1cb90a7d3fea2a0b63f237e2077666d6df609

  115. lovetox

    chud, couple dozen? alone in this chat > 400

  116. chud

    Are you loading them all into RAM at once?

  117. lovetox

    when we join a chat yes

  118. chud

    Like, even when the participants list isn't open?..

  119. lovetox

    or lets say when tey are requested

  120. lovetox

    we load them on request, but if you open the participant list once, then all are requested

  121. de-facto

    all the stanzas are conforming to a schema right?

  122. lovetox

    > all the stanzas are conforming to a schema right? in theory yes

  123. de-facto

    is it possible to derive at each point in time of streaming a subset of valid tokens (e.g. substrings) that could be used to constrain an llm sampler?

  124. Link Mauve

    tracemalloc doesn’t give me much of anything here.

  125. lovetox

    i dont understand that sentence, and it will not help if you rephrase it :)

  126. de-facto

    i was just wondering if it would be possible to have an llm directly talk xmpp, but have its output enforced to conform to the schema, so its always valid

  127. de-facto

    the xml from xmpp looks beautifully structured, so llms should love that

  128. Link Mauve

    Heh, 2 MiB of the memory are the emoji JSON, according to tracemalloc.

  129. lovetox

    let get rid of emoji, non essential anyway

  130. lovetox

    Gajim start for me with 170 mb, but with no chat open

  131. lovetox

    i remember back in GTK3 days, it was in the best times 100 mb at start

  132. lovetox

    but since then many features were added, many more libs pulled into

  133. Link Mauve

    Nah, 2 MiB is nothing compared to 170 MiB.

  134. Link Mauve

    It’s not worth it to remove a feature just to gain 2 MiB.

  135. lovetox

    yes obviously :)

  136. lovetox

    i dont think 200 mb is that much, 2 firefox tabs have that

  137. lovetox

    but yeah the leaks are a problem, when you let gajim run for days, it will grow

  138. chud

    > i was just wondering if it would be possible to have an llm directly talk xmpp, but have its output enforced to conform to the schema, so its always valid "When you have a hammer everything starts to look like a nail"

  139. lovetox

    im more concerned with performance then ram