Gajim - 2020-02-15

  1. mrdoctorwho for some reason recent gajim version windows take a long time to render
  2. mrdoctorwho when you maximize them, it might take a good 5 seconds to complete
  3. mrdoctorwho I have more than enough RAM and a fine CPU, plus NVME SSD
  4. lovetox can you test with a portable 1.1.3 installation
  5. lovetox if its the same?
  6. mrdoctorwho lovetox, I'm using kinda portable one, cloned from git. Is it considered portable?
  7. lovetox i mean install the portable installer from
  8. mrdoctorwho lovetox, I assume there are portable versions only for windows, isn't that right?
  9. lovetox ah ok sorry you talked about windows
  10. lovetox and i thought you mean the operating system
  11. mrdoctorwho sorry for confusing you
  12. lovetox yeah i run git master here on ubuntu 19.10, dont have that problem
  13. lovetox anything in the console?
  14. lovetox what window manager do you use?
  15. mrdoctorwho I thought it's somehow KWin-releated, but I'm also using awesome wm at work and it has the same problem
  16. mrdoctorwho KWin currently
  17. mrdoctorwho let me run it in debug mode
  18. lovetox hm maybe play with Gajim window modes
  19. lovetox im using single window mode here
  20. mrdoctorwho I restarted gajim and it renders faster now
  21. mrdoctorwho but still slower than chrome for example
  22. mrdoctorwho it has a weird effect actually
  23. mrdoctorwho like it's being redrawn from scratch
  24. mrdoctorwho the second I unminimize it it firstly appears as a blank window without widgets
  25. mrdoctorwho then the other widgets appear
  26. mrdoctorwho then the widgets appear
  27. mrdoctorwho it's almost non-seen
  28. mrdoctorwho I had detached roster mode on, now I enabled single window mode
  29. lovetox and it happens with any window? try for example the Account window
  30. mrdoctorwho lovetox, accounts and preferences are slow to draw too
  31. lovetox yeah, and you say after a restart its better?
  32. mrdoctorwho yes
  33. mrdoctorwho also I played around with window modes and this happened
  34. mrdoctorwho
  35. mrdoctorwho input box has disappeared
  36. mrdoctorwho also there's an empty window opens if you press "delete account"
  37. mrdoctorwho Traceback (most recent call last):
  38. mrdoctorwho with this log
  39. lovetox i dont think a recent change in Gajim did this mrdoctorwho
  40. mrdoctorwho lovetox: what could it be?
  41. lovetox mrdoctorwho, maybe try to run gajim with python3 -m cProfile -s cumtime ./
  42. mrdoctorwho Sure
  43. lovetox maybe it gives a clue what is really slow
  44. asterix hannibal: I created the flatpakref file, and build the omemo plugin. Tell me if it's ok. If it is, I'll build the other plugins
  45. asterix Hi lovetox, I have public_room_sync_threshold set to 30. I just connected to Gajim room after several days away. I just have todays logs in history window ... I missed something?
  46. lovetox you edited the default value
  47. lovetox which is only set on first join
  48. lovetox you have to edit the specific value for that room
  49. lovetox hm
  50. lovetox no its a global setting indeed
  51. lovetox are you sure the server supports MAM?
  52. lovetox check the room info page
  53. asterix it contain archiving
  54. lovetox hm
  55. lovetox no its the default
  56. lovetox its the default that is set if there is no sync threshold set by you
  57. lovetox and sync threshold per room is saved in logs.db
  58. lovetox and you can set sync threshold in the chat menu
  59. lovetox and if you need more options than the ones provided there
  60. lovetox then check threshold_options in ACE
  61. lovetox but after modifing this i would restart
  62. asterix ho ok, thanks
  63. lovetox then you join a room and set the threshold for that room via the chat menu
  64. lovetox and i would set the default back to 1 day
  65. lovetox because that means we request 30 days on join of a public room
  66. lovetox *first join
  67. lovetox and i would argue on first join thats rarley what you want
  68. asterix yep ok I see. I didn't know there was a per room option. I looked in rooms -> room_jid but couldn't find it. There is a reason it's in logs.db instead of there?
  69. lovetox yes, we also need to store other info about the muc, like last timestamp, last mam id which i consider related to the logs db, because they reflect the state of th e logs.db, so they are saved there
  70. lovetox when i added sync threshold i wanted a single point where i get all infos needed to request mam
  71. lovetox so i didnt want to query the database and afterwards the config
  72. asterix ok. That souds strange to find a config option in the database, but ok
  73. lovetox thats why there is the chat menu
  74. lovetox there should be no need to edit that value directly
  75. lovetox but yeah lines are blurry
  76. asterix no, menu is enough I agree
  77. lovetox also the config backend is not that good for the per options
  78. lovetox what i would need is to know if a user ever set an option or not
  79. lovetox but if a room for example is joined, all config values for that room are created
  80. lovetox so afterwards i cant determine anymore if the user set the threshold to 1, or if he never set it and its still on default
  81. lovetox this of course we could circumvent with even more config values but ..
  82. asterix Why do tyou need to know it has changed. When we join a room, we use the default and that's it
  83. lovetox yes, but that means you can only change the default for future rooms
  84. lovetox say you have default 1, join 10 rooms
  85. lovetox now they all have a sync threshold of 1
  86. lovetox then you think 1 is stupid default, lets make it 3
  87. lovetox then you have to go through every room option and change it
  88. lovetox because i cant know if the user set the threshold or if it was generated from the default on first join
  89. lovetox and only for threshold i would say, not that bad
  90. lovetox but we want to have much more per room options
  91. lovetox like chatstates, receipts, markers etc etc
  92. lovetox and even for contacts
  93. lovetox and if you have 100 contacts, and you change the default to not send chatstates
  94. lovetox i would expect as a user, that gajim takes that default for every contact where i never explicitly set that
  95. asterix we cuold tune the config backend to be able to point to a global option as default value
  96. asterix in ACE we show the default value, but it's only stored if we edit it
  97. lovetox yeah of course not a unfixable problem :)
  98. lovetox another point i have is, does it have a benefit that we save it as a textfile?
  99. lovetox storing configs in sqlite, does not mean we cant provide a ACE interface to edit every value
  100. lovetox but i would mean, we dont have to write the whole textfile to disk on every change
  101. lovetox i think sqlite is much more efficient for that
  102. lovetox but its really not a high priority for me to change anything on that right now
  103. lovetox it works as it is for now, not perfect but good enough so people dont complain :D
  104. lovetox and setting every option per contact is a luxury anyway
  105. asterix it's easier to edit, a simple txt editor is enough. we don't save that file that much, do we?
  106. lovetox we dont save on every change, we save 0,5 seconds after change
  107. lovetox so we catch sometimes more than one change in the save
  108. lovetox and yes depends on what you store
  109. lovetox if its really something the user changes, a option it does not matter
  110. lovetox if we save stuff like last_timestamp which is edited on every received message
  111. lovetox it does matter
  112. asterix one Gajim is configured, this file is quite never changed
  113. asterix yep, indeed
  114. lovetox there are still stuff like msgwin-x-position in there
  115. lovetox but we edit this only on quitting
  116. lovetox thought we edit this on every move of a window
  117. lovetox which would be bad
  118. hannibal asterix: I can install and enable the omemo plugin