--- title: Advanced Settings weight: 49 --- ### Privilege Levels for Settings There are three types of settings: 1. Override settings, in "Web Console -> Custom Clients". 1. Default settings, in "Web Console -> Custom Clients". 1. User settings, in the RustDesk client. The hierarchy of privilege for these settings is as follows: `Override > User > Default`. ### Settings #### Security ##### access-mode Set the access mode (permissions) for incoming connections. **Location**: 1. **Desktop** Settings -> Security -> Permissions 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | custom,full,view | custom | `access-mode=custom` | ##### enable-keyboard Enable keyboard/mouse input for incoming connections. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable keyboard 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-keyboard=Y` | ##### enable-clipboard Enable copy and paste for the incomign connections. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable clipboard 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-clipboard=Y` | ##### enable-file-transfer Enable file copy and paster or filte transfer(session) for incoming connections. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable file transfer 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-file-transfer=Y` | ##### enable-audio Enable audio record and transfer to peer. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable audio 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-audio=Y` | ##### enable-tunnel Enable TCP tunneling. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable TCP tunneling 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-tunnel=Y` | ##### enable-remote-restart Enable restarting by the control side. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable remote restart 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-remote-restart=Y` | ##### enable-record-session Enable sessions to be recorded. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable recording session 1. **Mobile** Settings -> Share screen -> Enable recording session | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-record-session=Y` | ##### enable-block-input Enable the control side to block other users' input. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable blocking user input (Windows only) 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-block-input=Y` | ##### allow-remote-config-modification Allow the control side to change the settings in conrolled RustDesk UI. **Location**: 1. **Desktop** Settings -> Security -> Permissions -> Enable remote configuration modification 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `allow-remote-config-modification=Y` | ##### enable-lan-discovery Allows LAN peers to discover me. After LAN discovery, [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) can work if supported locally. **Location**: 1. **Desktop** Settings -> Security -> Security -> Deny LAN discovery 1. **Mobile** Settings -> Share screen -> Deny LAN discovery | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | Y | Y,N | Y | `enable-lan-discovery=Y` | ##### direct-server Enable direct IP access. **Location**: 1. **Desktop** Settings -> Security -> Security -> Enable direct IP access 1. **Mobile** Settings -> Share screen -> Direct IP access | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `direct-server=Y` | ##### direct-access-port Direct IP access port. **Location**: 1. **Desktop** Settings -> Security -> Security -> Direct IP access port (Show if "Enable direct IP access" is checked) 1. **Mobile** Settings -> Share screen -> Direct IP access | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | | 21118 | `direct-access-port=21118` | ##### whitelist Use IP Whitelisting. **Location**: 1. **Desktop** Settings -> Security -> Security -> Use IP Whitelisting 1. **Mobile** Settings -> Share screen -> Use IP Whitelisting | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | , or ip1,ip2,ip3 | , means no filter | `whitelist=,` | ##### allow-auto-disconnect & auto-disconnect-timeout Automatically close incoming sessions after a period of user inactivity. **Location**: 1. **Desktop** Settings -> Security -> Security -> Automatically close incoming sessions on user inactivity 1. **Mobile** Settings -> Share screen -> Automatically close incoming sessions on user inactivity | Option | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | :------: | | allow-auto-disconnect | N | Y,N | N | `allow-auto-disconnect=Y` | | auto-disconnect-timeout | N | Timeout in minutes | 10 | `auto-disconnect-timeout=10` | ##### allow-only-conn-window-open Only allow connection if RustDesk window is open. **Location**: 1. **Desktop** Settings -> Security -> Security -> Only allow connection if RustDesk window is open 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | Y | Y,N | N | `allow-only-conn-window-open=N` | ##### approve-mode Accept incoming connections via password or manually click. **Location**: 1. **Desktop** Settings -> Security -> Password -> Dropdown box 1. **Mobile** Share screen -> Dropdown menu on right-up corner | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | password,click,password-click | password-click | `approve-mode=password-click` | #### General ##### theme Controls the UI theme of RustDesk client. **Location**: 1. **Desktop** Settings -> General -> Theme 1. **Mobile** Settings -> Settings -> Theme | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | dark,light,system | system | `theme=system` | ##### lang Controls the language of RustDesk client. **Location**: 1. **Desktop** Settings -> General -> Luanguage 1. **Mobile** Settings -> Settings -> Luanguage | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | default,ar,bg,... | default | `lang=default` | Currently available languages are: ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko, kz, lt, lv, nb, nl, pl, pt, ro, ru, sk, sl, sq, sr, sv, th, tr, ua, vn, zh-cn, zh-tw You can check [LANGS](https://github.com/rustdesk/rustdesk/blob/master/src/lang.rs#L45) in the code for the latest language list. ##### allow-auto-record-incoming Automatically record incoming sessions. **Location**: 1. **Desktop** Settings -> General -> Recording -> Automatically record incoming sessions 1. **Mobile** Settings -> Recording -> Automatically record incoming sessions | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `allow-auto-record-incoming=N` | ##### video-save-directory The directory to save recorded videos. **Location**: 1. **Desktop** Settings -> General -> Recording -> Video save directory 1. **Mobile** Settings -> Recording Default values: 1. **MacOS** ~/Movies/**app_name** 1. **Linux** ~/Videos/**app_name** 1. **Windows** %USERPROFILE%\Videos\\**app_name** 1. **Android** /Storage/emulated/0/**app_name**/ScreenRecord **Note**: Relace **app_name** means current app name. ##### enable-confirm-closing-tabs Controls whether to show a confirm dialog before closing all remote tabs. **Location**: 1. **Desktop** Settings -> General -> Other -> Confirm before closing multiple tabs 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-confirm-closing-tabs=Y` | ##### enable-abr Enable adaptive bitrate. **Location**: 1. **Desktop** Settings -> General -> Other -> Adaptive bitrate 1. **Mobile** Settings -> Share screen -> Adaptive bitrate (beta) | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-abr=Y` | ##### allow-remove-wallpaper Remove wallpaper during incoming sessions. **Location**: 1. **Desktop** Settings -> General -> Other -> Remove wallpaper during incoming sessions 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `allow-remove-wallpaper=N` | ##### enable-open-new-connections-in-tabs Controls whether to use a new tab or a new window to open a new connection. **Location**: 1. **Desktop** Settings -> General -> Other -> Open connection in new tab 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-open-new-connections-in-tabs=Y` | ##### allow-always-software-render Always use software rendering. **Location**: 1. **Desktop** Settings -> General -> Other -> Always use software rendering 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `allow-always-software-render=N` | ##### enable-check-update Check for software update on startup. **Location**: 1. **Desktop** Settings -> General -> Other -> Check for software update on startup 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-check-update=N` | ##### allow-linux-headless Allow incoming connection if there's no displays. This option requires desktop environment, xorg server and gdm, see [PR 3902](https://github.com/rustdesk/rustdesk/pull/3902). **Location**: 1. **Desktop** Settings -> General -> Other -> Allow linux headless 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | Y | Y,N | N | `allow-linux-headless=N` | ##### enable-hwcodec Enable hardware encoding to make the picture smoother. **Location**: 1. **Desktop** 1. **Mobile** Settings -> Hardware codec | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | Y | `enable-hwcodec=Y` | ##### peer-card-ui-type Controls the view of peer cards, includes "Big tiles", "Small tiles" and "List". **Location**: 1. **Desktop** Home -> Peer panel -> Right top grid icon 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | 0,1,2 | 0 | `peer-card-ui-type=0` | **0** Big tiles **1** Small tiles **2** List ##### peer-sorting Controls the ordering of peer cards. **Location**: 1. **Desktop** Home -> Peer panel -> Right top sort icon 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Remote ID,Remote Host,Username | Remote ID | `peer-sorting=Remote ID` | ##### sync-ab-with-recent-sessions Controls whether to sync the address book with recent sessions. **Location**: 1. **Desktop** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Sync with recent sessions 1. **Mobile** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Sync with recent sessions | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `sync-ab-with-recent-sessions=N` | ##### sync-ab-tags Controls whether to sort the address book tags. **Location**: 1. **Desktop** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Sort tags 1. **Mobile** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Sort tags | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `sync-ab-tags=N` | ##### filter-ab-by-intersection Filter address book by tag intersection. **Preview**: [PR #5985](https://github.com/rustdesk/rustdesk/pull/5985) **Location**: 1. **Desktop** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Filter by intersection 1. **Mobile** Home -> Peer panel -> Address book -> Tags -> Dropdown menu -> Filter by intersection | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `filter-ab-by-intersection=N` | #### Display ##### view-only This option will set the "view-only" option for every peer after the first connection. Then the "view-only" option in each peer's settings will controls whether the connection is view-only. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> View mode 1. **Mobile** Settings -> Display settings -> Other default options -> View mode | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `view-only=Y` | ##### show-monitors-toolbar Controls whether to show monitors in toolbar. ![show-monitors-toolbar](/docs/en/self-host/client-configuration/advanced-settings/images/show-monitors-toolbar.png) **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Show monitors toolbar 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `show-monitors-toolbar=Y` | ##### collapse-toolbar Controls whether the remote toolbar is collapsed after connecting. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Collapse toolbar 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `collapse-toolbar=Y` | ##### show-remote-cursor This option will set the "show-remote-cursor" option for every peer after the first connection. Then the "show-remote-cursor" option in each peer's settings will controls whether the remote cursor is displayed in the remote control page. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Show remote cursor 1. **Mobile** Settings -> Display settings -> Other default options -> Show remote cursor | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `show-remote-cursor=N` | ##### follow-remote-cursor This option will set the "follow-remote-cursor" option for every peer after the first connection. Then the "follow-remote-cursor" option in each peer's settings will controls whether to follow the remote cursor. **Preview** [PR 7717](https://github.com/rustdesk/rustdesk/pull/7717) **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Follow remote cursor 1. **Mobile** Settings -> Display settings -> Other default options -> Follow remote cursor | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `follow-remote-cursor=Y` | ##### follow-remote-window This option will set the "follow-remote-window" option for every peer after the first connection. Then the "follow-remote-window" option in each peer's settings will controls whether to follow the remote window. **Preview** [PR 7717](https://github.com/rustdesk/rustdesk/pull/7717) **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Follow remote window focus 1. **Mobile** Settings -> Display settings -> Other default options -> Follow remote window focus | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `follow-remote-window=Y` | ##### zoom-cursor This option will set the "zoom-cursor" option for every peer after the first connection. The "zoom-cursor" option in each peer's settings will then control whether the cursor is scaled based on the current image scale. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Zoom cursor 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `zoom-cursor=Y` | ##### show-quality-monitor This option will set the "show-quality-monitor" option for every peer after the first connection. The "show-quality-monitor" option in each peer's settings will then control whether to show the quality monitor. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Show quality monitor 1. **Mobile** Settings -> Display settings -> Other default options -> Show quality monitor | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `show-quality-monitor=Y` | ##### disable-audio This option will set the "disable-audio" option for every peer after the first connection. The "disable-audio" option in each peer's settings will then control whether to play sound. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Mute 1. **Mobile** Settings -> Display settings -> Other default options -> Mute | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `disable-audio=Y` | ##### enable-file-copy-paste This option will set the "enable-file-copy-paste" option for every peer after the first connection. The "enable-file-copy-paste" option in each peer's settings will then control enable file copy and paste in connection. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Enable file copy and paste (Windows only) 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `enable-file-copy-paste=Y` | ##### disable-clipboard This option will set the "disable-clipboard" option for every peer after the first connection. The "disable-clipboard" option in each peer's settings will then control whether to enable text copy and paste. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Disable clipboard 1. **Mobile** Settings -> Display settings -> Other default options -> Disable clipboard | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `disable-clipboard=Y` | ##### lock-after-session-end This option will set the "lock-after-session-end" option for every peer after the first connection. The "lock-after-session-end" option in each peer's settings will then control whether to lock the peer machine after the session ends. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Lock after session end 1. **Mobile** Settings -> Display settings -> Other default options -> Lock after session end | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `lock-after-session-end=Y` | ##### privacy-mode This option will set the "privacy-mode" option for every peer after the first connection. The "privacy-mode" option in each peer's settings will then control whether to use privacy mode after connecting. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Privacy mode 1. **Mobile** Settings -> Display settings -> Other default options -> Privacy mode | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `privacy-mode=Y` | ##### touch-mode This option will set the "touch-mode" option for every peer after the first connection. The "touch-mode" option in each peer's settings will then control whether to use touch mode or mouse mode. **Location**: 1. **Desktop** 1. **Mobile** Settings -> Display settings -> Other default options -> Touch mode | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `touch-mode=Y` | ##### i444 This option will set the "i444" option for every peer after the first connection. The "i444" option in each peer's settings will then control whether to use true color. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> True color (4:4:4) 1. **Mobile** Settings -> Display settings -> Other default options -> True color (4:4:4) | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `i444=Y` | ##### reverse-mouse-wheel This option will set the "reverse-mouse-wheel" option for every peer after the first connection. The "reverse-mouse-wheel" option in each peer's settings will then control whether to reverse mouse wheel. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Reverse mouse wheel 1. **Mobile** Settings -> Display settings -> Other default options -> Reverse mouse wheel | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `reverse-mouse-wheel=Y` | ##### swap-left-right-mouse This option will set the "swap-left-right-mouse" option for every peer after the first connection. The "swap-left-right-mouse" option in each peer's settings will then control whether to swap left-right mouse button. **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Swap left-right mouse button 1. **Mobile** Settings -> Display settings -> Other default options -> Swap left-right mouse button | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `swap-left-right-mouse=Y` | ##### displays-as-individual-windows This option will set the "displays-as-individual-windows" option for every peer after the first connection. The "displays-as-individual-windows" option in each peer's settings will then control whether to show displays as individual windows. **Preview** [PR 5945](https://github.com/rustdesk/rustdesk/pull/5945) **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Show displays as individual windows 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `displays-as-individual-windows=Y` | ##### use-all-my-displays-for-the-remote_session This option will set the "use-all-my-displays-for-the-remote_session" option for every peer after the first connection. The "use-all-my-displays-for-the-remote_session" option in each peer's settings will then control whether to use all my displays for the remote session. **Preview** [PR 6064](https://github.com/rustdesk/rustdesk/pull/6064) **Location**: 1. **Desktop** Settings -> Display -> Other default options -> Use all my displays for the remote session 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | Y,N | N | `use-all-my-displays-for-the-remote_session=Y` | ##### view-style This option will set the "view-style" option for every peer after the first connection. The "view-style" option in each peer's settings will then control the view style. **Location**: 1. **Desktop** Settings -> Display -> Default view style 1. **Mobile** Settings -> Display settings -> Default view style | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | original,adaptive | original | `view-style=original` | ##### scroll-style This option will set the "scroll-style" option for every peer after the first connection. The "scroll-style" option in each peer's settings will then control the scroll style. **Location**: 1. **Desktop** Settings -> Display -> Default scroll style 1. **Mobile** | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | scrollauto,scrollbar | scrollauto | `scroll-style=scrollauto` | ##### image-quality This option will set the "image-quality" option for every peer after the first connection. The "image-quality" option in each peer's settings will then control the image quality. **Location**: 1. **Desktop** Settings -> Display -> Default image quality 1. **Mobile** Settings -> Display settings -> Default image quality | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | best,balanced,low,custom | balanced | `image-quality=balanced` | ##### custom-image-quality This option will set the "custom-image-quality" option for every peer after the first connection. The "custom-image-quality" option in each peer's settings will then control the image quality if "image-quality" is set to custom. **Location**: 1. **Desktop** Settings -> Display -> Default image quality -> Custom 1. **Mobile** Settings -> Display settings -> Default image quality -> Custom | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | [10.0, 2000.0] | 50.0 | `custom-image-quality=50` | ##### custom-fps This option will set the "custom-fps" option for every peer after the first connection. The "custom-fps" option in each peer's settings will then control the fps if "image-quality" is set to custom. **Location**: 1. **Desktop** Settings -> Display -> Default image quality -> Custom 1. **Mobile** Settings -> Display settings -> Default image quality -> Custom | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | [5,120] | 30 | `custom-fps=30` | ##### codec-preference This option will set the "codec-preference" option for every peer after the first connection. The "codec-preference" option in each peer's settings will then control codec for images. **Location**: 1. **Desktop** Settings -> Display -> Default codec 1. **Mobile** Settings -> Display settings -> Default codec | Install required | Values | Default | Example | | :------: | :------: | :------: | :------: | | N | auto,vp8,vp9,av1,h264,h265 | auto | `codec-preference=auto` | **CAUTION**: Options other than "vp8" and "vp9" may not work. This depends on what your machine supports.