Nicotine+ stores all configuration in a central config file. Settings can be modified through the GUI preferences window or by editing the config file directly.
Configuration File Location
The configuration file location varies by platform:
Linux/Unix
~/.config/nicotine/config (XDG standard)Or legacy location: ~/.nicotine/config
Windows
%APPDATA%\nicotine\config\configTypically: C:\Users\YourName\AppData\Roaming\nicotine\config\config
Portable Mode
If a portable folder exists in the application directory: portable/data/config/config
You can specify a custom config file using the --config CLI argument.
Command Line Arguments
Override configuration settings from the command line:
# Use custom config file
nicotine --config /path/to/config
# Use alternative data folder
nicotine --user-data /path/to/data
# Start hidden in system tray
nicotine --hidden
# Bind to specific IP (useful for VPN)
nicotine --bindip 10.8.0.1
# Listen on specific port
nicotine --port 2234
# Rescan shared files
nicotine --rescan
# Run without GUI (headless mode)
nicotine --headless
Use nicotine --help to see all available command line options.
User Interface Settings
Display & Theme
Enable dark mode for the application interface: Default: False
Set the interface language (empty string uses system default): [ui]
language = "es" # Spanish
Supported: en, de, es, fr, it, pl, ru, sv, and more
Window Behavior
[ui]
width = 800
height = 600
xposition = - 1 # -1 = centered
yposition = - 1
maximized = True
Show tray icon and start hidden: [ui]
trayicon = True
startup_hidden = False
[ui]
exitdialog = 1 # 0=never, 1=on close, 2=always
Appearance
Configure tab placement for each section: [ui]
tabmain = "Top" # Main tabs
tabrooms = "Top" # Chat room tabs
tabprivate = "Top" # Private chat tabs
tabsearch = "Top" # Search tabs
Options: "Top", "Bottom", "Left", "Right"
Customize fonts for different UI elements: [ui]
globalfont = "" # Empty = system default
chatfont = "Monospace 10"
textviewfont = ""
searchfont = ""
listfont = ""
Customize chat and UI colors: [ui]
chatme = "#908E8B" # Your messages
chatremote = "" # Remote messages
chathilite = "#5288CE" # Highlights
urlcolor = "#5288CE" # URL links
useronline = "#16BB5C" # Online status
useraway = "#C9AE13" # Away status
useroffline = "#E04F5E" # Offline status
Server Settings
Connection
[server]
server = [ "server.slsknet.org" , 2242 ]
login = "your_username"
passw = "your_password"
auto_connect_startup = True
The password is stored in plain text in the config file. Ensure appropriate file permissions are set.
Auto-Away
[server]
autoaway = 15 # Minutes of inactivity before auto-away (0 = disabled)
away = False # Current away status
Chat Settings
[server]
autoreply = "" # Automatic reply when away
[server]
autojoin = [ "nicotine+" , "music" ] # Auto-join rooms
private_chatrooms = False # Enable private rooms
User Lists
[server]
userlist = [] # Buddy list
banlist = [] # Banned users
ignorelist = [] # Ignored users
ipignorelist = {} # Ignored IP addresses
ipblocklist = {} # Blocked IP addresses
Logging Settings
Chat Logging
Enable Logging
[logging]
privatechat = True # Log private messages
chatrooms = True # Log chat rooms
transfers = False # Log transfers
Log Directories
[logging]
privatelogsdir = "$ {NICOTINE_DATA_HOME} /logs/private"
roomlogsdir = "$ {NICOTINE_DATA_HOME} /logs/rooms"
transferslogsdir = "$ {NICOTINE_DATA_HOME} /logs/transfers"
Configure Timestamps
[logging]
rooms_timestamp = " %X " # Time only
private_timestamp = " %x %X " # Date and time
log_timestamp = " %x %X "
Timestamp formats follow Python’s strftime conventions: %x = date, %X = time
Debug Logging
[logging]
debug = False # Enable debug output
debugmodes = [] # Specific debug categories
debug_file_output = False # Write debug to file
debuglogsdir = "$ {NICOTINE_DATA_HOME} /logs/debug"
Debug mode significantly increases log verbosity. Only enable when troubleshooting.
Log History
[logging]
readroomlines = 200 # Lines to read from room logs on startup
readprivatelines = 200 # Lines to read from private logs
logcollapsed = True # Collapse old logs
Search Settings
Search Behavior
[searches]
maxresults = 300 # Max results per search
max_displayed_results = 2500 # Max results to display
min_search_chars = 3 # Minimum query length
enable_history = True # Save search history
private_search_results = False # Allow private results
Search Filters
[searches]
enablefilters = False
filters_visible = False
[searches]
filtercc = [] # Country code filter
filterin = [] # Include terms
filterout = [] # Exclude terms
filtersize = [] # Size range
filterbr = [] # Bitrate range
filtertype = [] # File type
filterlength = [] # Duration range
Display Options
[searches]
expand_results = "all" # "all", "none", or "user"
group_searches = "folder_grouping" # "ungrouped", "folder_grouping", "user_grouping"
Notifications
Window Notifications
[notifications]
notification_window_title = True # Flash window title
notification_tab_colors = False # Use tab colors
[notifications]
notification_popup_sound = False # Play sound
notification_popup_file = True # File completed
notification_popup_folder = True # Folder completed
notification_popup_private_message = True # Private message
notification_popup_chatroom = False # Chat room message
notification_popup_chatroom_mention = True # Room mention
notification_popup_wish = True # Wishlist match
notification_popup_queued_upload = True # Queued upload
Word Processing
Auto-Replace
[words]
replacewords = False
autoreplaced = {
"teh " : "the " ,
"youre" : "you're" ,
"jsut" : "just"
}
Censorship
[words]
censorwords = False
censored = [ "badword1" , "badword2" ]
Completion
[words]
tab = True # Tab completion
dropdown = False # Show completion dropdown
characters = 3 # Min characters for completion
roomnames = False # Complete room names
buddies = True # Complete buddy names
roomusers = True # Complete room user names
commands = True # Complete commands
Plugins
[plugins]
enable = True # Enable plugin system
enabled = [] # List of enabled plugins
Plugins extend Nicotine+ functionality. Enable only trusted plugins from the official repository.
Statistics
[statistics]
since_timestamp = 0 # Stats start time
started_downloads = 0
completed_downloads = 0
downloaded_size = 0 # Bytes
started_uploads = 0
completed_uploads = 0
uploaded_size = 0 # Bytes
Statistics are automatically tracked and persist across sessions.
Config Backup
Create a backup of your configuration:
from pynicotine.config import config
config.write_config_backup( "/path/to/backup.tar.bz2" )
Backups are stored as compressed tar archives (.tar.bz2) and include the config file.