UPDATING
Материал из Tkabber Wiki
Several configuration options and user interface aspects have changed since previous stable release 0.10.0:
Содержание |
Configuration options
Proxy servers
Since SOCKS4 and SOCKS5 proxy types were implemented in addition to HTTP proxy type, the whole set of connection options regarding proxy servers has been changed. This means that after upgrade the old values stored using the Customize mechanism will be lost and the same values in loginconf arrays will not be recognized any longer.
If you do not use HTTP proxy, you can skip this section because these changes will not affect you.
If your options are set using the Customize interface, write down values for options relevant to proxy server from the "Login" group of Customize settings, then after upgrade visit this group of settings, select "HTTPS" for the option ::loginconf(proxy) and then fill in the rest of relevant settings with recorded values. As usual, save each setting after you change them. Do not be fooled by the word "HTTPS" (which stands for "HTTP over SSL") — Tkabber autodetects whether the proxy server wants SSL and behaves accordingly, so "HTTPS" setting is used for both HTTP and HTTPS proxies.
If you maintain loginconf arrays in config.tcl, you should modify each array using this scheme:
- Rename variable "useproxy", if present, to just "proxy" and change its value to either "https" if "useproxy" was set to true or to "none" (yes, the word "none", do not leave it empty) if it was set to false.
- Modify existing variables in these arrays using this map:
- Rename "httpproxy" to "proxyhost".
- Rename "httpport" to "proxyport".
- Rename "httplogin" to "proxyusername".
- Rename "httppassword" to "proxypassword".
Resources to control fonts
Fonts handling has been partially reworked: the global variable font that controls chat and roster fonts has been removed and now Tkabber relies on Tk option database to manage these settings. You can override roster and chat fonts independently of each other. To do it on systems not based on X Window use Customize options described below.
The main consequence of this change is that now the fonts are taken from Tk option database and while it contains sane values you don't need to touch anything (until the update you had to tweak the font variable because it was set to font "fixed" by default). The variable font does not have any special meaning starting from this release.
The second consequence is that you are now able to set fonts for chat and roster windows separately from each other using this list as a reference:
- *font Tk option database resource sets default font for all widgets used in Tkabber.
- *Chat*Text.font Tk option database resource can be used to override font used for chat windows. This resource can be overridden by the ::ifacetk::options(font) option from the "Main Interface" group of Customize settings.
- *Roster*font Tk option database resource can be used to override font used for roster windows. This resource can be overridden by the ::ifacetk::options(roster_font) option from the "Main Interface" group of Customize settings.
Keep-alives and dead link detection
Keep-alive mechanism that was used to keep NATP devices from disconnecting idle XMPP sessions was accompanied in 0.10.0 with "XMPP ping" mechanism which also implemented dead link detection with support for disconnecting upon detection of network outage.
In version 0.11.0, the old keep-alive mechanism has been dropped, so the following two global options have no effect now:
- keep_alive
- keep_alive_interval
In order to get the same functionality, enable XMPP ping using these options in the "IQ" group of Customize settings:
- Enabling ::plugins::ping::options(ping) will make Tkabber periodically send xmpp:ping IQ request to the server.
- Set ::plugins::ping::options(timeout) option to a number of seconds Tkabber should wait for either a xmpp:ping reply or an error to arrive from the server; if there is no answer from the server during this timeout, the socket for this connection will be forcibly disconnected.
Resources to control appearance of balloon windows
Resources controlling the appearance of balloon windows have been made more generic. If you use custom Tk option database settings for balloon windows, change the relevant resources using this map:
- Change references to *Balloon.background and *Balloon.foreground resources to *Balloon*background and *Balloon*foreground, respectively.
- Change references to *Balloon*padX and *Balloon*padY resources to *Balloon.text.padX and *Balloon.text.padY, respectively.
Support for external XML parser
Support for TclXML as an external XML parser has been removed (since TclXML has anyway been unable to support partial XML processing) along with the global variable use_external_tclxml which controlled the loading of TclXML.
Now expat-based Tcl package "TDOM" is supported as an external XML parser. Its usage can be enabled by loading it manually in config.tcl using the Tcl package command, for example:
package require tdom
User interface
System tray icon mouse gestures
Mouse gestures bound to system tray (system notification area) icon have been reworked:
- Single click on it with the left mouse button now unconditionally brings the main Tkabber window to front, possibly deiconifying it first.
- Single click with the middle mouse button now unconditionally iconifies the main Tkabber window.
This differs from the previois behaviour where single click with the left mouse button on Tkabber's system tray icon toggled the iconified/visible state of the main Tkabber window.
New tab management widget
The "notebook" widget which was used to render tabs in tabbed interface mode has been replaced with a new custom widget providing the ability for multi-row placement of tabs and docking them to the left or right sides of the chat window (in addition to top or bottom docking available in pre-0.11.0 versions).
If you adjusted any specific Tk option database resources pertaining to that "notebook" widget, you have to change them keeping in mind that the new widget is just a bunch of Tk buttons (class "Button") placed in a frame (called ".nb" as before). The class name for the new widget is "ButtonBar".
So if you explicitly set, say *Notebook*font option, you have to change it to *ButtonBar*font and so on.
Window splitters
Window splitters (thin vertical and horizontal windows used to change relative sizes of windows between which a splitter is placed) have been changed to "Windows" style. This differs from previous "Motif" style which implemented explicit "grip box" on each splitter which was the only "active point" of a splitter.