New Features in Nicotine+

1.2.9 Release (22 September 2007)


  • Relicensed all code under GPLv3 and LGPLv3

General Changes

  • Config menu items that were in the File menu moved to the new Edit menu
  • Added credits and license note to About Nicotine dialog.
  • Disable many widgets (entries, buttons, lists) when disconnected from server
  • User tabs have right-click popup-menus in private, userinfo and userbrowse.
  • libnotify support added (patch by infinito ticket #176 ) notification-daemon, libnotify and python-notify required
  • Added a 10 second cooldown between responding to Userinfo and Usershares requests from the same user (to mitigate damage from DOS attacks and simple accidents)
  • Notification text on tabs can be colored
  • Notification icons on tabs can be disabled
  • Close buttons on tabs no longer forced to 18x18px
  • Close buttons are dynamically added and removed when toggled in settings
  • Added global unrecommendations list
  • Merged Amun-Ra's 'Country flag column in Chatroom userlists' (this is a new feature on the testing server) but works with manual IP lookups with GeoIP. This requires the 242 flag images. Additions to several server messages are used instead of GeoIP if they are available.
  • Simplified GeoIP module loading


  • Added popups to user's interests lists (search, add and remove interests)
  • Added a zoom and save popup menu to the Userinfo image.


  • Shares are precompressed, before they're sent (Nicotine will recover faster from many shares requests)
  • Unicode filenames on Win32 are now read and shared properly (should be)


  • Tooltips can be disabled
  • Settings widgets will now be colored red if their values are invalid.
  • Your client port and server-reported IP address are shown in Server Settings
  • Added an option to Shares for the Upload directory path (needs to be set) The upload directory is where your buddies 'uploads' will be saved.
  • Default colours and clear colours buttons added
  • All Notebook Tabs can be repositioned and the labels can be rotated 90⁰ under Settings->Interface->Notebook Tabs
  • Added Exaile to NowPlaying?
  • Added a config option for overriding the default language
  • URL handlers settings rearranged slightly, combo items in the handlers column
  • Rearranged the Settings tree and removed some descriptive panes
  • Added IP blocking and range blocking with * character
  • Some Entry widgets in settings replaced with SpinBoxes?
  • Userinfo settings now have size data for image
  • New options to to determine what happens when destroying the main window (show a dialog, close to tray, or quit)
  • Search is now a genuine TreeView? that supports group-by-user and has a expand/collapse all toggle when grouping is enabled.
  • Added a Clear results button
  • Added 'Download containing folder(s) to..' to the search results popup
  • Open a new socket for every outgoing search result to avoid problems with shared sockets getting closed.
  • Only close sockets of incoming search results if input/output buffers are empty. (this may still result in the transmitting sockets)
  • Added Search and Open Directory items to the uploads popup menu
  • Search results encoding improved (user's encoding, falls back to global)
  • Search results turn red when a user goes offline (configurable)
  • Added a 'multiple users' submenu to search results popup


  • Show total time elapsed and remaining in user's parent row instead of the current transfer's time elapsed and time remaining.
  • Added a maximum files-per-user limit to the upload queue
  • Added a 'Clear Failed' item to the uploads menu
  • Added 'Clear Filtered' and 'Clear Paused' to the downloads menu
  • Fixed pausing of aborted downloads after reconnecting to the server.
  • Added an 'Auto-retry Failed' checkbox to downloads (3 minute timer)
  • Added an 'Autoclear Finished' checkbox to uploads
  • Notify popups for completed files and completed directories (toggleable)
  • Added a 'multiple users' submenus


  • Whitespace is now limited to two spaces
  • Show icon, sound, speech and title notifications for "current" chat tab if the window is hidden.
  • Notify popups for buddies with "notify" enabled :)
  • Read chatroom logs (and attempt to parse them) when rejoining a room. Parsing will not work if the logs do not use the default timestamp format. Chat room and Private chat logs are in seperate sub-directories, now.
  • Threaded /aliases and /now commands (GUI no longer freezes)
  • Use the /detach and /attach chatroom commands to pop chatrooms and private chats into their own windows.
  • Text-To-Speech support added (configurable under Settings->Misc->Sounds) individual chat rooms can be disabled with the text-to-speech toggle button. Chat messages are read out, and nick mentions are announced. By default, there are commands for flite ( ) and festival ( ).
  • URL text color is configurable (doesn't effect old links after changing)
  • Timestamps are now configurable, disableable (under Settings->Chat->Logging)
  • Log files' timestamps are also configurable. Default is "%Y-%m-%d %H:%M:%S"
  • Added a help button for chatroom commands
  • Added hide/show buttons in chatrooms for userlist and status log. These buttons can be hidden by Edit->Hide chat room log and list toggles
  • Username away color-status in chat can be toggled off
  • Added Auto-Replace list (applies to all outgoing chat message text)
  • Added Censor list (applies to all chat message text)
  • A popup dialog appears after closing the last chat room while the roomlist is hidden.
  • URL's are now converted back to plain text by the URL catcher (before only %20 were converted to spaces)
  • Usernames in chat logs and private, userinfo and userbrowse tab labels are marked offline when disconnected from server
  • Ticker moved to the top-left of the chat room frame;
  • Added settings for tab completion and dropdown completion list
  • Added a completion dropdown list (gtk.EntryCompletion?) to chat entries

Bug Fixes

  • Renabled the 'if i.size is None' check which should fix some upload issues
  • Fixed a error message printed after aborting an upload directory popup
  • Fixed a major slowdown in needConfig function (was reading shares data)
  • Pressing enter in Search Filter entry boxes now works again
  • Readded "/" to pasted folder slsk:// URLs
  • Reading slsk.exe's cfg files should now work on Windows

1.2.8 Release (1st June 2007)

General Changes

  • Support for Spell Checking in chat added (libsexy and python-sexy required)
  • Other users Interests are now shown in the User Info tab, with expanders
  • Send Message added to trayicon
  • Popup Menus in Private, Chatrooms, and User Browse reorganized
  • The user-entry boxes are now buddy-list combobox entries
  • Users with PyGTK >= 2.10 will use the gtk.StatusIcon? instead of the old module.
  • Added a filemanager popup item to the self-browse menu; configurable under Settings->Advanced->Events
  • Gstreamer-Python support for sound effects added
  • Added Soulseek testing server (port 2242) to the server combobox.
  • Changed the URL Catcher's syntax. The ampersand "&" is no longer needed at the end of URL Handlers. The handler entry is now a combobox and includes a bunch of webbrowser commands.
  • Userlist Columns are hidable and hidden status is saved.
    • Right-Click on a column and select the columns you want to hide or show


  • Added a "Group by users" check box
  • Added Expand/Collapse? all toggle button to transfers
  • Added a popup dialog to the "Clear Queued" transfers buttons

Private Chat

  • Added gallows' patch for including your username in the private chat log. (ticket #161)
  • Direct private messages (currently only supported by Nicotine+ >= 1.2.8)


  • Search now has combo boxes, per-room searching and per-user searching.
  • Added Wishlist and changed remembered search tabs to only display when new search results arrive
  • Switch to newly started search tab (ticket #157)


  • gallows added userinfo image zooming via the scrollwheel (ticket #160)


  • Changed Audio Player Syntax it now uses "$" as the filename
  • Exit dialog can be disabled in Settings->UI
  • When a config option is detected as unset, print it in the log window.
  • Move Icon theme and trayicon settings to a seperate frame
  • Move sound effect and audio player settings to a seperate frame
  • Reopen Settings dialog, if a setting is not set.


  • On Win32, hyriand's multithreaded socket selector is used. This will allow a larger number of sockets to be used, thus increasing stability.
  • Added Server Message 57 (User Interests)
  • Send \r\n with userinfo description instead of just \n


  • Uploads to other Nicotine+ users work better
  • Userinfo Description does not scroll to the bottom of the window
  • Fixed a few bugs with the trayicon
  • Fixed server reconnection not actually trying to reconnect (and giving up on the first try)


  • Lithuanian translation updated
  • Euskare translation updated Release (6th March 2007)

General Changes

  • The About Nicotine+ dialog now shows the versions of Python, PyGTK and GTK+
  • Copy was added to the right-click menus in chat status and debug logs.


  • The shares scanning progress bar now disappears after scanning shares a little more frequently.
  • Fixed a bug in the way total transfer slots were calculated
  • Improved Remote-Uploading somewhat (was quite buggy with two Nicotine+ clients)
  • Fix directory name cropping in 'upload directory to' in User Browse
  • Attempted to fix the 'interrupted system call' (which sometimes are caused by gtk+ file dialogs) from stopping the networking loop.
  • Username hotspots for users who are offline or have left the room aren't disabled anymore.


  • Downloads have a metadata popup dialog with bitrate / length
  • Right-clicking when nothing is selected will select a row
  • In parent row, display the current transfer's time elapsed and time left.
  • Transfer popups work better on parent rows


  • Silvio Orta updated the Spanish translation
  • ><((((*> and ManWell? updated the French translation
  • nince78 updated the Dutch translation
  • Nicola updated the Italian translation
  • Žygimantas updated the Lithuanian translation


General Changes

  • Window size is restored on startup
  • Background color of entry boxes, text views and list views is now changeable and all lists foreground color changes with the 'list text' option.
  • Added some padding around various widgets
  • Tabs can be reordered on the fly, now (Requires PyGTK 2.10) Also, Chat Room tab positions are saved in their reordered position.
  • Per-file identation consistancy was drastically improved., and a few others were really bad.


  • Added an Import Config frame to Settings, which duplicates the functionality of nicotine-import-winconfig. User can now easily import config options from the official Windows Soulseek client's config directory. Support for importing the ignore list was also added to nicotine-import-winconfig.
  • Translux (pseudo-transparent TextViews?) is an old easter egg that is now customizable in UI Settings.
  • Transfer settings was rearranged and organized with expanders
  • Transfer settings has a new combo box for selecting which users are allowed to initiate uploading files to you. Trusted users are set in the buddy list.
  • Added several tooltips to Settings' transfer widgets in hopes of providing better explanations of some of the more complex functionality.


  • Comments in Buddy List can now be edited in-list by clicking twice on the comment column, not by double-clicking (which would open Private Chat).
  • Trusted checkbox column added to the buddy list. Trusted users are an optional selection of users to whom remote uploads can be limited.


  • Usernames in the chat room log now have hotspots associated with them, meaning they can be left-clicked on to load the same popup as you have in the users list.
  • Usernames are also colored based on Online, Away and Offline/In?-Room status. This option can be disabled in UI Settings.
  • "User is away/online/offline" messages removed from Private Chat


  • Transfers are now sub-items in a one-step tree with the user as a parent
  • QuinoX's patch, a download filter: ( ) was reworked a little and given a nice listview to add the Regular Expressions (filters) to. This feature will allow you to blacklist certain types of files, which may save you from the pointless downloading and cleanup of unwanted files.
  • Downloads and Uploads popup menus have a new item under the user submenu, "Select User's Transfers".
  • Uploads can be retried
  • The Size column now has the current file position and the total file size
  • Remotely-Initiated-Uploads will no longer be accepted if an Upload Queue Notification message has not been sent, first. This means versions of Nicotine+ earlier than 1.2.5 will not be able to initiate sending you files, no matter what your allowed uploaders is set to.

User Info

  • Stats were rearrange and the status of who is allowed to initiate uploads to the user was added.

User Browse

  • The browsetreemodels functions were disabled, and file and folder treeviews were reimplemented with code from the PyGTK2 museek client, Murmur.
  • Search now works slightly different. Queries match all files in a directory, and switch between matching directories each time.
  • Tree lines and a 'Directories' sorting header were added to the Folder Treeview
  • Upload Directories Recursive was added to Folders' Popup
  • An expand / collapse all directories button was added
  • Recursive downloads in User Browse now checks from > 100 files and displays a Warning dialog that gives you a chance to cancel downloading.


  • Search has a new popup window for displaying the metadata of search results. This popup is accessible after selecting 1 or more files and clicking on the "View Metadata of File(s)" popup menu item. From this window, you can also download file(s) or initiate browsing of the current file's user's shares.


  • Handle all peer message unpacking with an exception handler. Should make us safer from malformed data sent by users.
  • Close peer connection when userinfo's or browse's close buttons are pressed. (This is to save bandwidth)


  • ><((((*> updated the French translation
  • (._.) and Meokater updated the German translation
  • nince78 updated the Dutch translation
  • Nicola updated the Italian Translation
  • Added Finnish translation by Kalevi
  • Added Lithuanian Translation by Žygimantas
  • Added Euskare (Basque) translation by Julen of


  • Various minor bugs killed
  • Userlist selection bug fixed
  • Fixed search results from last session being placed in search result tabs in new session that match their tickets by using random tickets instead starting from 0.
  • Fixed Big memory leak with PixbufLoader? in Userinfo (call garbage collector)
  • Fixed large-file (>4GB) file scanning and shares browsing issue


Interface Changes

  • Added a GUI for new built-in NowPlaying? scripts and new /now command to use them. Supported players: Amarok, Rhythmbox, BMPx, XMMS/Infopipe, MPD/mpc. An 'other' player option also exists.
  • Added /buddy, /rem, unbuddy commands to Private Chat and Chat Rooms.
  • The Userinfo Picture file chooser now displays a preview of the image
  • Private Chat does not allow you to send messages while offline. New disconnected and reconnected messages appear in the chat log. Another new message is displayed if you were sent messages while offline.
  • Users' Shares lists can be saved to disk and then reloaded them, for ease and speed. On *nix, these files will be stored in ~/.nicotine/usershares/
  • Display shares-scanning errors in the Log Window
  • Added Titlebar messages on Private Chat and nick mention in Chat Rooms
  • Disabled: Urgency Hint on highlight (Titlebar flashes, or WM tries to get your attention) Doesn't work very well, disabled for now.
  • Popup a warning message if the Guide cannot be found
  • Added 'Copy all' menu item to Room Status logs and the debug log
  • Also added icons to the Clear log and the Remove Dislike menu items
  • Enlarged number entry boxes in Transfer Settings
  • Added thread protection to File/Directory? Chooser (was getting freezes)


  • Search's Close button also "ignores" the search, like the X button the tab.
  • Fixed bug in "Download file(s) to..." causing the path to be corrupted.


  • Use a safer method to save the config file. Create '', move old 'config' to 'config.old', rename '' to 'config' (from 1.1.0pre1)


  • Added 4 nicotine-plus-??px.png icons 16px, 32px, 64px and 96px.
  • nicotine.desktop and nicotine-plus-32px.png are installed to $PREFIX/share/applications and $PREFIX/share/pixmaps


  • Added elaborate Unicode filename-reading hack. This should allow non-latin files/directories to be added to the shares. (Since this feature breaks in Linux, Windows detection is used throughout the filescanner converting strings to unicode and back.
  • Always load dbhash module on Windows


  • Re-enable Server Ping (120 sec) and Timeout for Connection Close (120 sec)
  • Spoof warning now includes the IP and port of the user sending the message.

Tray Icon

  • Hacked apart Systraywin32 from Gajim to work with Nicotine+ on Windows requires pywin32 which you can download from here.
  • Fixed a bug with the Trayicon intially being icon-less


  • Hungarian translation updated (djbaloo)
  • Portuguese-Brazilian translation finished (SuicideSolution)
  • Slovak Translation Updated (Jozef)


  • Made TrayIcon not attempt to load on 'win32' operating systems
  • Fixed trayicon bug that caused error messages everytime the Settings window's Apply or Okay button was pressed when the trayicon isn't loaded. (reported by renu_mulitiplus)
  • Fixed displaying your own Userinfo image on Windows.
  • Replace the characters ?, ", :, >, <, |, and * with an underscore _ on Windows, to avoid filesystem errors. (Reported by theorem21)
  • Made the Directory Chooser start with the predefined directory set.


General Changes

  • Made columns reorderable (temporarily, they return to the default order after a restart)
  • Made the encodings Comboboxes give location or language details in a separate column.
  • Made all the popup menus have GTK stock icons.
  • Made most of the Main Menu items have icons.
  • Added three new menu options under help: Offline Nicotine Plus Guide, the Nicotine-Plus Trac and the Nicotine Plus Sourceforge Project websites.
  • Added the NicotinePlusGuide? to, so it will be installed
  • Set Firefox as the default http:// URL handler
  • Replaced "pure text" percent column with a CellRendererProgress? column in the Downloads and Uploads transfer lists.
  • Added option to UI Settings to show/hide the transfer buttons.
  • Added expander to glade2py, so it can now be used.
  • Rearranged the new user entry/buttons to the top left of their tabs, added spacing inside tabs.
  • Added more stock GTK icons to Settings and Userinfo, among other places.
  • Added confirmation exit popup dialog when quitting with the window manager.
  • Made the main window's minimum size to be 500x500 px


  • Fixed a typo in that caused some transfers to get stuck in the Initializing state, even though transfers still work.
  • Fixed the Chatrooms tab hilite bug (reported by Offhand, xrc)

Tray Icon

  • Made the Tray Icon's popup menu disable menu options based on connection status. Also simplified it's code to match the way Nicotine normally creates menus.
  • Made Trayicon toggleable while running from the UI settings or at startup with --enable-trayicon, -t and --disable-trayicon, -d


  • Made /search commands modify the search history
  • Added 'clear search history' button to search
  • Shortened Search tab length and added a label containing the full query next to the "Enable filters" checkbox.


  • Notifications: Now testing 'flite' support, a text-to-speech engine. This may or may not be removed. The option is 'speechenabled'
  • Moved Icon theme and Sound theme settings inside separate expanders.
  • Notifications: Added a sound effect, room_nick.ogg, for nick-mention in chatrooms (when not in that room) and a separate sound effect, private.ogg, for when a private message arrives, and you are not in that tab. Sound options are found in the UI settings, and separate sound theme directories and audio players can be selected, as well. Ogg files are installed into $PREFIX/share/nicotine/$THEMEDIR/


  • Added support for sending and receiving Soulseek peer message 52, Upload Queue Notification, which allows users to notify upload recipients that they are attempting to send a file. Also, a log message is printed when a user attempts to send you file(s) and an automatic is sent if they aren't allowed to.
  • Add a Bool to the GetUserStatus? message received from the server, for privileges. If 1, add user to list of privileged users.
  • Added SendUploadSpeed? (121) message which replaced SendSpeed? (34) a long time ago. Thanks to sierracat for the info, and to slack---line for testing.
  • Modified CheckVersion? function to allow for milli ( X.X.X.X ) versioning.

1.2.4 and

  • Added new translations for Hungarian (djbaloo) and Slovak (Josef Riha)
  • Made Buddylist toggleable between it's own tab and pane on the right side of chatrooms
  • Rearranged tabs to the top of the window
  • Rearranged Browse Share's progress bar as in Ziabice's patch
  • Added a Font selector for chat messages under Settings->UI->Interface (47th_Ronin's request)
  • Made Nicotine's shares builder ignore ALL dot-files and dot-directories (such as the ~/.nicotine/ directory) for security reasons. (Izaak's idea)
  • Warn if home directory is being shared. (Izaak's idea)
  • Added the First in, First out queue from jat's evil cocaine patch (without any of the other features)
  • Added gtk stock icons to many buttons
  • Added user entry boxes in Private Chat, User info, and User browse
  • Added new birdy icons which replace the little people icons
  • Added a theme selector to Settings->UI->Interface->Icon Theme Directory. If any of the theme icons exist in this directory, they'll be used instead of the built-in images.
  • Made Copy URL popup menu options use the ctrl-c/ctrl-v clipboard, as well as the middle-click one
  • Split big Download/Upload? Popup menus into submenus


  • Added Abort, Retry, Ban, Clear Queued, and Clear Finished/Aborted? buttons to the downloads and uploads tabs.
  • Made lists' rows use the alternating color pattern.
  • Changed all the icons. Most of the new icons are modified from Mark James' Silk icon set:
  • Fixed other users sending Private Message causing the tab to be switched to their message.
  • Fixed erroneously translated internal strings that caused queued downloads to fail.


  • Double-clicking on users now starts Private Chats
  • Added a TrayIcon (If the Python module is compiled and installed, and your system supports it, an icon with a right-click menu will appear in your system tray )
  • Added Buddy-Only Shares (If enabled, buddies will recieve a different set of shares than normal users)
  • Added Speed, Files and Dirs to userinfo
  • Made more strings translatable


  • Added a bunch of Hotkeys to the menus
  • Added a Mode menu for (Chat Rooms, Private Chat, Transfers, etc)
  • Added letter commands to Downloads and Uploads: A Aborts Transfers, R retries downloads, Delete Aborts, Clears and Deletes downloads, but just Aborts and Clears uploads. The letter P opens the popup menu, where more hotkeys are accessable.


  • Added a Send to Player popup menu item, allowing you to issue a command on any file you're downloading, uploading or have in your shares. The command is configurable under Settings->Events->Audio Player command.


  • Use new Room and Buddy Server search messages, instead of using hundreds of Peer search messages.
  • Added messages for when someone Browses you or views your User Info, so you can see when people are interested.
  • Added an optional client version message that currently only works with Nicotine >= 1.2.0 and Mucous >= 0.7.10. This can be disabled under Settings->Server->Enable CTCP-like messages.


  • Password is now starred, like: * for greater over-the-shoulder security.
  • Added a Give Privileges dialog to the popup menus, allowing you to give other users your Soulseek Privileges you received by sending a donation to
  • Made the Upload-files dialog a Combobox, which includes your buddies in it.


  • Added Remote Uploads (accessable by browsing yourself, and using the popup menu to upload) and Remote Downloads.
  • Removed Ping-of-Ban (Soulseek Admins have warned that excessive pings to the server will get users banned after a while)
  • Added a GTK2 File Selector that allows for easier directory-tree climbing, and drive selecting on Win32.
Last modified 9 years ago Last modified on 22/09/2007 11:19:58