Gajim - 2025-04-18


  1. luna

    curious, will Gajim have any plans for parsing xmpp: URIs especially for account invites?

    šŸ‘ 1
  2. Kris

    > curious, will Gajim have any plans for parsing xmpp: URIs especially for account invites? šŸ‘

  3. lissine

    https://dev.gajim.org/gajim/gajim/-/issues/11745

  4. Kris

    Ok do the plan is there at least šŸ˜…

  5. Kris

    Ok so the plan is there at least šŸ˜…

  6. Kris

    Does Dino support this?

  7. Kris

    Hmm apparently not

  8. lissine

    No https://github.com/dino/dino/issues/232

  9. Kris

    Ugh, very stale issue 😢

  10. luna

    > https://dev.gajim.org/gajim/gajim/-/issues/11745 Huh, there has been no further activity whatsoever? But anyone can still contribute to that issue? :o

  11. Kris

    Well, if there was no plan to add that someone woukd have probably closed the issue by now.

  12. Kris

    Well, if there was no plan to add that someone would have probably closed the issue by now.

  13. moparisthebest

    who closes issues ? gajim has 240 open and dino has 530 :)

  14. dln9mobster

    How do I select several - but not all - messages in one conversation and delete them all at once?

  15. lovetox

    moparisthebest: hm and over 10.000 closed?

    šŸ‘ 1
  16. egnun

    Good morning folks, I saw that there is a feature block contact ("Kontakt sperren"). I was wondering, is there also a way to unblock contacts?

  17. lovetox

    egnun: check the accounts advanced menu

  18. lovetox

    Does message menu select messages then delete not work?

  19. lovetox

    dln9mobster: Does message menu select messages then delete not work?

  20. nigel

    >> I was asking because of how fast you translated it 😁 > ah, no i'm just a strange person and I read lot of XMPP dev channels :D ā¤

  21. moparisthebest

    > moparisthebest: hm and over 10.000 closed? šŸ‘

  22. killathegoat

    Hello all

    🌊 2
  23. jonas’

    is it known that gajim re-orders messages sometimes?

  24. jonas’

    poezio shows me a different order for messages in a MUC than gajim.

  25. jonas’

    this has caused quite the confusion right now.

    šŸ‘ 1
  26. maximus

    hello, I've noticed that after a while that gajim is running in the background, the tray icon suddendly disappears even though the application is still running

  27. maximus

    and you have to close and reopen to make it appear again

  28. maximus

    is it a known issue?

  29. lovetox

    jonas’, depends but yeah this can happen in multiple scenarios

  30. lovetox

    if you compare side by side clients

  31. emru

    maximus, sounds like GTK4

  32. maximus

    emru, you think it's a gtk issue?

  33. lovetox

    no GTK4 does not provide a tray icon anymore

  34. maximus

    oh ok

  35. lovetox

    so its either a issue with the app that draws the draw icon

  36. emru

    but if you had for a moment, and then it disappears, I think it's something different

  37. lovetox

    or some problem with the dbus connection in gajim which should show in the logs

  38. maximus

    I use waybar btw

  39. jonas’

    lovetox, okay, why? MUC has a fixed message order, why does gajim reorder messages?

  40. Link Mauve

    jonas’, one reason I could think of is 0203 delays, another is 0308.

  41. jonas’

    Link Mauve, neither was the case (delays are shown by poezio differently, right?) and the message wasn't edited.

  42. Link Mauve

    Indeed.

  43. lovetox

    jonas’, we sort by timestamp

  44. jonas’

    with which precision?

  45. lovetox

    its a integer

  46. jonas’

    that doesn't answer the question :D

  47. lovetox

    depending on the server

  48. jonas’

    what does the server have to do with that?

  49. lovetox

    because it decides the precision

  50. jonas’

    where does the timestamp come from, then?

  51. lovetox

    i can come from the server or the users machine

  52. jonas’

    normal message stanzas don't have timestamps

  53. jonas’

    and when it comes from the users machine, which precision do you use?

  54. lovetox

    whatever the machine gives us, usually ms

  55. jonas’

    so those messages must've arrived in the same millisecond to be reordered?

  56. lovetox

    thats impossible

  57. lovetox

    because message processing takes more then 1 ms

  58. jonas’

    does gajim store the original, unaltered message XML somewhere?

  59. jonas’

    oh

  60. jonas’

    wait

  61. jonas’

    I got those from MAM

  62. jonas’

    right

  63. jonas’

    so the MAM likely has second precision

  64. jonas’

    and gajim does nothing to disambiguate

  65. jonas’

    are there plans to fix that?

  66. lovetox

    why are you assuming that

  67. jonas’

    assuming what?

  68. lovetox

    what you just said 2 sentences ago

  69. jonas’

    that gajim does nothing to disambiguate?

  70. lovetox

    yes

  71. jonas’

    well because the order I see in poezio differs from the order I see in gajim.

  72. jonas’

    (and the order other people see also differs from what I see in gajim)

  73. lovetox

    yes still assumptions

  74. jonas’

    alright, what *does* gajim do to disambiguate?

  75. lovetox

    it sorts by time and insertion order in the database

  76. lovetox

    but your theory is easy to test, create a muc on the server, send 2 messages in the same second (should be easy) watch MAM stanzas flow in

  77. jonas’

    which column contains the insertion order? I only see `timestamp`.

  78. jonas’

    (in the `message` table)

  79. Timestamp

    i just got pinged, lmao

    😁 1
  80. jonas’

    sorry for that :D

  81. lovetox

    the column "pk"

  82. jonas’

    that's the rowid

  83. jonas’

    in sqlite

  84. jonas’

    without AUTOINCREMENT, sqlite may reuse rowids

  85. jonas’

    (that the pk got mapped to the rowid can be confirmed by looking at the output of `select rowid, pk from message where rowid != pk limit 10;` and `select rowid, pk from message limit 10;` (where it shows `pk` as column header for both). and the claim that without AUTOINCREMENT, things may get reused is noted here https://sqlite.org/autoinc.html )

  86. jonas’

    so apologies for my assumption there, I didn't expect to fall into the rowid rabbithole today.

  87. jonas’

    gotta run for lunch now, see you later.

  88. lovetox

    ok before i read into that, it would be interesting what this query returns on your machine

  89. nigel

    hmm, Gajim 2.1.0 (Arch Linux) doesn't want to remove account or a server that doesnt exist anymore, and Disabling the Account first doesnt work; it switches it back on when my back is turned. Removed an account that does exist just fine. Just a heads up, think I'll nuke it and pave over

  90. lovetox

    nigel, bevor you pave over, please check the debug logs and send me what it says once you try to disable the account

  91. nigel

    can do.

  92. lovetox

    disabling an account should have nothing to do with the fact if this account is sable to connect or not

  93. nigel

    umm, never done that before haha

  94. mrdoctorwho

    seems like pasting files to the gajim window with ctrl+v is not working anymore

  95. lovetox

    preferences -> advanced -> enable debug logs, and restart

    ā¤ļø 1
  96. mrdoctorwho

    (gajim:56192): Gtk-WARNING **: 11:28:54.082: Trying to measure GtkGrid 0x562fa8769f50 for height of 260, but it needs at least 1339 Traceback (most recent call last): File "/home/gajim/gajim/.venv/lib/python3.13/site-packages/gajim/gtk/message_actions_box.py", line 884, in _on_clipboard_read_value_finished file_list = clipboard.read_value_finish(result) gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Invalid transfer (9)

  97. nigel

    oh ffs.... as soonas debugging turnde on, ti worked nistantly.

  98. nigel

    oh ffs.... as soonas debugging turnde on, it worked instantly.

  99. nigel

    oh ffs.... as soon as I turned debugging on, it worked instantly.

  100. nigel

    I had restarted client several times and it still would not disable nor remove.

  101. nigel

    debugging on, restarted, account, Remove, succesful instantly.

  102. lovetox

    mrdoctorwho, no idea what that error means but on first glance i would say thats not a problem in Gajim

  103. mrdoctorwho

    lovetox, the same file can be pasted to chrome, but not in gajim for some reason

  104. mrdoctorwho

    I also upgraded my distro release, maybe that could be the cause though

  105. nigel

    > preferences -> advanced -> enable debug logs, and restart DM sent with log file, in case it is useful. Thanks.

  106. Link Mauve

    Weird that it would use DBus for transfers, I would expect Wayland to be used instead.

  107. lovetox

    mrdoctorwho, are you using flatpak?

  108. lovetox

    We request a file type Gdk.FileList

  109. lovetox

    docs says, Gdk will try to convert content if it does not fit the type, i assume something fails there

  110. mrdoctorwho

    lovetox, no, but gajim is running under a different user, plus using xwayland, which likely does not have access anywhere and dbus is not running there. Although the file I'm pasting has the 777 access. I recall it was working just yesterday, but today I upgraded both fedora release and gajim

  111. lovetox

    we didnt change anything on the code for a long time

  112. lovetox

    access denied seems to hint to a problem with permissions

  113. mrdoctorwho

    lovetox, could you maybe suggest where to look? As I said, the file has 777 permissions, plus the same file can be pasted into chrome without any issues

  114. mrdoctorwho

    chrome is running under a different user as well

  115. mrdoctorwho

    so there is the user A which has copied the file, then there are users G and C (running gajim & chrome). Gajim can't retrieve the file, but Chrome can

  116. lovetox

    no sorry, i have no clue about linux internals regarding how clipboards operate

  117. lovetox

    all we do is call a API from GLib Clipboard.read_async()

  118. lovetox

    and the error tells us that we are not allowed to read the clipboard for whatever reason

  119. cal0pteryx

    I'll add a fix to catch the error (same for pasted text)

  120. lovetox

    cal0pteryx, in case of exception please also print a debug log what the content of mime_types is

    šŸ‘ 1
  121. mrdoctorwho

    if you copy the file to clipboard under the gajim user, it works fine

  122. jonas’

    lovetox, https://paste.debian.net/hidden/1a8d7598/

  123. lovetox

    i dont understand the query, it says that row_id = pk if we dont use autoincrement

  124. lovetox

    so what sense would it make to select row_id != pk?

  125. jonas’

    it was meant to prove that

  126. jonas’

    it was meant to prove exactly that

  127. lovetox

    it return no results, and thats what we would expect here

  128. jonas’

    I wanted to make sure that the table indeed uses rowid for pk

  129. jonas’

    before making the claim that this might be a problem without AUTOINCREMENT

  130. jonas’

    (having burned by unfounded claims before today :-))

  131. jonas’

    (having been burned by unfounded claims before today :-))

  132. lovetox

    i read a bit into it, and you are right rowids can be reused, but the way they would be reused is not a problem for our sort algo

  133. lovetox

    the standard row id picking is still incremental from the max row id in the current table

  134. lovetox

    and thats whats important

  135. lovetox

    its just that when you remove the last 100 rows, it reuses these 100 row ids, but again still incremental

  136. lovetox

    with the only exception from that rule if you go over MAX ROW ID

  137. lovetox

    which is a number so big that you would need to pull all messages from all xmpp servers in the history of humanity

  138. jonas’

    that seems correct

  139. jonas’

    makes me scratch my head as to what went wrong here

  140. jonas’

    the rowid of the first message is larger than the rowid of the second message.

  141. jonas’ joins with a fresh account to sniff the exact order of MAM responses somehow

  142. lovetox

    which would tell us that we received the first message later, and its indeed not the first message

  143. jonas’

    is there some kind of gajim XML console?

  144. lovetox

    yes, under View menu

  145. jonas’

    ah, the protocol tab in the debug console, thanks

  146. lovetox

    and do the 2 messages have the same timestamp in the database?

  147. jonas’

    yes

  148. jonas’

    so

  149. jonas’

    the MAM response indeed has the wrong order

  150. jonas’

    I rest my case and stand confused.

  151. lovetox

    did you type the messages and send it, maybe its time to question that information

  152. jonas’

    I don't understand that question

  153. lovetox

    did you send the messages yourself? as you are so sure about the correct order

  154. jonas’

    no

  155. jonas’

    but three other clients agree on the order

  156. jonas’

    it's just my gajim from mam which disagrees

  157. lovetox

    so the other clients might received the message live

  158. lovetox

    which is still weird, that the server would insert it with a different order into the database

  159. lovetox

    but as said should be easy to reproduce, sending messages in the same second can be done by a human

  160. mesonium

    jonas’: my Gajim, Dino and Conversations show the same order of the confusing two messages fwiw. First 2.jpg and then 1.jpg All fetched from mam

  161. jonas’

    lovetox, if that was indeed the reason and not some complicating circumstance. in any case, gajim is doing nothing wrong here. Thanks for the patience.

    šŸ‘ 2
  162. wildegim

    Hello everyone. I just joined this group because I have a question about Gajim. If I upload a file on an XMPP server in a private chat encrypted with OMEMO, is the file name encrypted (or changed) as well?

  163. lissine

    jonas', FYI prosody 13 supports sub-second precision timestamps

  164. lovetox

    wildegim, no, filename stays the same

  165. lovetox

    and is not encrypted

  166. wildegim

    > wildegim, no, filename stays the same Ok thanks. Maybe an option to at least randomize the name would be a good idea šŸ¤” Has it ever been explored as far as you know?

  167. lovetox

    there are better long term solutions

  168. wildegim

    > wildegim, no, filename stays the same Ok thanks. Maybe an option to at least randomize the name would be a good idea? šŸ¤” Has it ever been explored as far as you know?

  169. wildegim

    > there are better long term solutions Which ones? šŸ¤”

  170. lovetox

    randomizing the filename will be part of the long term solution, but right now we cannot send the original filename with the message, which means its lost

  171. lovetox

    someday we will be able to send that, and then you can have both things, random filenames on the server, but real filename in your client

  172. wildegim

    > someday we will be able to send that, and then you can have both things, random filenames on the server, but real filename in your client This is much better than randomization only... Does this require a support from the XMPP standard or only from the client?

  173. lissine

    > someday we will be able to send that, and then you can have both things, random filenames on the server, but real filename in your client Will this be a new spec (based on XEP-0454 or entirely new) or is it already specced?

  174. wildegim

    It seems like that the relevant pull request has been closed: https://dev.gajim.org/gajim/gajim/-/merge_requests/588

  175. EXWM-user

    Hi, has anybody experience with EXWM here? I am experiencing issues after updating to gajim 2.0 (and later) regarding the send-key functionality of EXWM. It looks to me like the user interface toolkit GTK 4 and EXWM are not interacting well. The issue is that I cannot send control keys, e. g. CTRL-C, to gajim anymore. It worked well before gajim 2.0 and it still works with other applications like firefox. Any hints highly welcome! Thanks.

  176. lissine

    wildegim: randomizing the filename will keep it a secret from the server, but will also keep it a secret from the receiver. A better thing would be to randomize the file name, and send the original filename omemo-encrypted in the upload's metadata

  177. lissine

    Though I'm not sure if this has been proposed as a protocol extension yet.

  178. lissine

    Randomizing the filename can be a good intermediary step for now.

  179. EXWM-user

    Talking about this: https://github.com/emacs-exwm/exwm/wiki#simulation-keys

  180. wildegim

    > wildegim: randomizing the filename will keep it a secret from the server, but will also keep it a secret from the receiver. > A better thing would be to randomize the file name, and send the original filename omemo-encrypted in the upload's metadata Yes, I have understood this. I noticed now that the pull request I linked does only half of the job. I would propose to open a full issue on the Gitlab to discuss on this, because I believe this feature is of utmost importance, since I notice that uploading a file on a server, exposes it via HTTP to *everyone*.

  181. wildegim

    Which normally is not a problem if it is encrypted and the encryption key is not present, but if the filename reveals its content (e.g. a popular image on the internet, "political-party-A-manifesto.pdf" and so on) encryption becomes useless.

  182. Link Mauve

    wildegim, everyone who knows the URL, which should be only you and the recipient(s) and the server admin who can do a ls in the right directory.

  183. Link Mauve

    That’s far from everyone.

  184. lovetox

    EXWM-user, as i understand it this happens before the toolkit gets it, as it translates some keys before sending it to the window

  185. egnun

    > egnun: check the accounts advanced menu lovetox: Thanks. The list ist empty. Also Dino didn't show the contact as blocked.

  186. lovetox

    egnun, then the contact is not blocked.

  187. lovetox

    EXWM-user, maybe check other GTK4 applications, to see if it affects other apps as well

  188. egnun

    Ah, but if I try to block a contact again, it now gives me the warning again.

  189. lovetox

    and after you block it, and reopen the dialog, the address does not show up in the blocking list?

  190. EXWM-user

    lovetox: Thanks. Yes, it uses xcb:SendEvent to simulate a key. The thing is, that this worked with gajim < 2.0 and stopped working with gajim >= 2.0. And the suspicious change is about using GTK 4.

  191. wildegim

    > That’s far from everyone. But by knowing the URL everyone can check. If the server has a security vulnerability that allows for directory enumeration users are screwed. For instance, conversations.im saves all files sent by a user under a directory called <username> and the link has the structure share.conversations.im/<username>/randomstring/<filename>. If I, as an attacker, can somehow do an ls -R I can see every file uploaded by <username> with cleartext filenames.

  192. EXWM-user

    lovetox: Good idea. I will try that.

  193. wildegim

    > That’s far from everyone. But by knowing the URL everyone can check. If the server has a security vulnerability that allows for directory enumeration users' privacy is at stake. For instance, conversations.im saves all files sent by a user under a directory called <username> and the link has the structure share.conversations.im/<username>/randomstring/<filename>. If I, as an attacker, can somehow do an ls -R I can see every file uploaded by <username> with cleartext filenames.

  194. lovetox

    wildegim, yes using a random file name is better security

  195. lovetox

    but using the real one is better user experience right now

  196. lissine

    Maybe use a random filename for encrypted uploads, and the original filename for unencrypted ones.

  197. wildegim

    lovetox, since the final idea is to have both (i.e. the server seeing a random name and the user the right one), would it be a good idea to open an issue to track efforts in implementing this?

  198. lovetox

    https://dev.gajim.org/gajim/gajim/-/issues/11470

  199. lovetox

    there is already an issue

  200. hannibal

    I get a Gtk-WARNING when hovering the edited icon ``` > Failed to set text 'Message corrected. Original message: > That’s far from everyone. But by knowing the URL everyone can check. If the server has a security vulnerability that allows for directory enumeration users are screwed. For instance, conversations.im saves all files sent by a user under a directory called <username> and the link has the structure share.conversations.im/<username>/randomstring/<filename>. If I, as an attacker, can somehow do an ls -R I can see every file uploaded by <username> with cleartext filenames.' from markup due to error parsing markup: Error on line 5 char 46: Element ā€œmarkupā€ was closed, but the currently open element is ā€œusernameā€ ```

  201. wildegim

    > https://dev.gajim.org/gajim/gajim/-/issues/11470 Wow, thanks 😊

  202. bot

    lovetox pushed 1 commits to branch gajim/master fix: Chat: Don’t fail in some cases to show correction/error tooltip - https://dev.gajim.org/gajim/gajim/-/commit/d0ae74a0b2f77c07f9a426546fb7fd9df547e5de

  203. lovetox

    fixed hannibal

  204. hannibal

    thanks

  205. luna

    question regarding creation of group chats in Gajim: is there a way where you have a group chat that has this: 1) people, who aren't part of the server in which the group chat is based in, wishing to join inside need to be invited by a member of said server 2) the group chat is however visible for anyone that is a member of said server and even is visible to them for them to join?

  206. lovetox

    1) if your server federates with other servers it does not matter where a groupchat is, and yes you can configure a groupchat to be invite only

  207. lissine

    luna: that's solved on the server side

  208. lovetox

    2) there is a global groupchat search in Gajim, some clients offer you to search your home server for groupchats, but they still need to be invited

  209. luna

    ohhh, so like, I can't have more finer grained control regarding who gets in?

  210. lovetox

    no, just invite only or public

  211. luna

    dang, but yeah

  212. lissine

    luna: you could make the group invite-only, add everyone in your server to the group, and allow them to invite other users

  213. lissine

    But once users from other servers join, you can't prevent them from inviting other users

  214. lissine

    you could write a prosody module that allows you to restrict group invites to the group's admins. Then you can make all your server's users admins in the group, and you'll have the desired behavior

  215. luna

    oh huh

  216. lissine

    you could write a prosody module that allows you to restrict the group invites permission to the group's admins. Then you can make all your server's users admins in the group, and you'll have the desired behavior

  217. luna

    but isn't that kinda a hack?

  218. luna

    have there been XMPP proposals to expand more upon permissions regarding chat?

  219. lovetox

    your "permission only for people on my server" is not a use case i ever heard

  220. lovetox

    people invite other people into groupchats and manage them on their own

  221. lovetox

    they should not need to care on which server another user is registered

  222. luna

    I mean, I'm big into having much more customization but fair

  223. luna

    because I'm mostly worried about moderation if I have a public chat that is listed

  224. luna

    in that area, are there even like, moderation bots for that, or similar?

  225. lovetox

    what does a moderation bot do?

  226. luna

    filter out any messages containing inappropriate words? spammers?

  227. lovetox

    servers have anti spam measures, like limits on how much you can send

  228. lovetox

    but yeah, if you operate a big chat, you need people to moderate it

  229. lovetox

    like any community

  230. luna

    i mean, isn't that exactly also good, having a bot on top of moderators?

  231. lovetox

    nobody stops you from writing a bot

  232. luna

    okay... but are there any, if someone has already implemented them?

  233. lovetox

    maybe, im not aware of any

  234. lovetox

    i think you overthinking stuff a bit, think about that if you manage to get a groupchat that has so many users that something needs to be automated

  235. lovetox

    this is a groupchat with 400 people, and we never had the need for a moderation bot

  236. luna

    ah fair, i prolly don't need it if i don't have many people in the gc

  237. luna

    as long as they are chill so yeah!!

  238. lovetox

    you are in luck, xmpp is not that popular that you need to fear that many people join your chat :d

    ā¤ 3
  239. luna

    oh dam, yeah!!

  240. luna

    but yup, I usually always think first with security and privacy in mind before anything else

  241. luna

    as you can see that c:

  242. luna

    thank you for letting me know in case!!

  243. toastal

    RE rejoining room issue: I enabled `mod_private` in Ejabberd & everything seems to work now. Very strange.

  244. lovetox

    toastal, i fixed a bug recently that can lead to not joining rooms after standby

  245. toastal

    Neat

  246. toastal

    Also neat: hello, world from Cheogram from Sailfish OS’s AndroidApp Support

    šŸ‘‹ 1
  247. jamie

    I recently noticed that typing a few letters of a user who is in the chat and hitting tab no longer auto completes their usernames (instead I get a tab character). Any suggestions on how to debug this problem?

  248. moparisthebest

    jamie: its removed in 2.0

  249. cal0pteryx

    jamie, try "@"

  250. moparisthebest

    Now you have to @ like the bad systems, slack etc

  251. jamie

    ahhhh. I see - thank you!

  252. dln9mobster

    > dln9mobster: Does message menu select messages then delete not work? It does, but no option to delete appears, and pressing the deletion key also does nothing. Deletion option appears only when I select only one message.

  253. lovetox

    in the message menu, it says "Delete messages locally"

  254. lovetox

    ah yeah

  255. lovetox

    hm seems we didnt implement multiple delete yet

  256. lovetox

    do you really want to delete specific messages, or everything?

  257. lovetox

    we have a option for everything

  258. EXWM-user

    lovetox: You are right. It looks like my issue is a thing between exwm and gtk4 in general. Because I could reproduce it with another gtk4 application and not just gajim. I will file a bug for exwm. Thanks a lot!

  259. dln9mobster

    > do you really want to delete specific messages, or everything? Well, sometimes all messages (but without deleting the conversation), and sometimes a number of messages, but not all.

  260. lovetox

    all messages, you can do in the chat settings

  261. lovetox

    multiple message delete is on the feature list

  262. nigel

    > you are in luck, xmpp is not that popular that you need to fear that many people join your chat :d ā¤

  263. nigel

    > Also neat: hello, world from Cheogram from Sailfish OS’s AndroidApp Support šŸ‘‹

  264. bot

    lovetox pushed 1 commits to branch python-nbxmpp/master change: Retraction: Rewrite parsing code - https://dev.gajim.org/gajim/python-nbxmpp/-/commit/b9d6b25c55ec437294a998291da3018f7eca8957

  265. bot

    lovetox pushed 1 commits to branch gajim/master cq: Message: Add type annotations - https://dev.gajim.org/gajim/gajim/-/commit/1550705a99c23717fb736e6d3103a4dde0a2e036