Profiles: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{mininav|[[Settings]]}}
<div>[[File:Profile-settings.jpg|600px|right]]</div>
__TOC__
__TOC__
{{-}}
{{-}}
<section begin=intro />Profiles allow users to save all of settings as a profile and change them at the touch of a button. It also allows you to grant access to specific folders and network shares based on the profile being used. This is ideal for systems that have multiple users. It works much the same as setting up individual users on your home computer.<section end=intro />
<section begin=intro />Profiles allow users to save all of settings as a profile and change them at the touch of a button. It also allows you to grant access to specific folders and network shares based on the profile being used. This is ideal for systems that have multiple users. It works much the same as setting up individual users on your home computer.<section end=intro />
{{note|While profiles do allow to share the same Kodi instance with multiple users, they are not a security feature. The web interface, for example, may still allow to change the active profile without entering a password.}}




Line 15: Line 15:
All options stored in the [[userdata folder]] can be customized per profile, allowing for an amazing amount of flexibility.
All options stored in the [[userdata folder]] can be customized per profile, allowing for an amazing amount of flexibility.


{{note|There are many references to the Master Code below. See [[Settings/System#Master lock|Settings/System>Master lock]] for more information.}}
{{-}}
{{-}}
== Profile settings ==
=== General ===
[[File:Estuary_Profiles_General.jpg|500px]]
==== Show login screen on startup ====
{|
|- valign="top"
| width=120px | {{nowrap|'''Settings level:'''}}
| Basic
|- valign="top"
| '''Description:'''
| Enables or disables the login screen
|}
==== Automatic Login on startup ====
{|
|- valign="top"
| width=120px | {{nowrap|'''Settings level:'''}}
| Basic
|- valign="top"
| '''Description:'''
|  Select the profile which should be used on startup or use the 'last used profile' from the previous session
|}
Selecting Profiles from the main settings window will bring you to the screen pictured to the right. In this screen you have the following options:
;Add profile
:Add a new profile
===Profiles===
[[File:Estuary_Profiles_Profiles.jpg|500px]]
==== List of existing profiles ====
{|
|- valign="top"
| width=120px | {{nowrap|'''Settings level:'''}}
| Basic
|- valign="top"
| '''Description:'''
|  This section only shows which profiles exists and the option to add a profile, which is explained at: 'link to adding a profile'
|}


== Adding a profile ==
== Adding a profile ==


=== Add Profile ===
In order to add a profile, simply choose ''Add Profile'':


[[File:Estuary_Profiles_Adding_Profile_1.jpg|500px]]
In order to add a profile, follow the steps below
{{-}}
<br>
=== Choose profile name ===


First, you will be prompted to enter a name for your profile which name is free to choose.  
<gallery mode="packed" widths=500px heights=283px>
File:Estuary_Profiles_Adding_Profile_1.jpg| '''Step 1:''' Select "Add profile"
File:Estuary_Profiles_Adding_Profile_2.jpg| '''Step 2:''' Enter a name for the profile
File:Estuary_Profiles_Adding_Profile_3.jpg| '''Step 3:''' Select a directory for your profile at which your personalized settings will be stored.<br />'''OK''' will choose the 'default' folder which will be stored under the [[Userdata|userdata]]-folder and will have the same name as the profile name. <br />'''New folder''' will give you the option to specify a self-created folder for your profile which you need to select after a name for it was given. The folder for the profile will then be found under: userdata -> profiles -> <created folder name>
File:Estuary_Profiles_Adding_Profile_4.jpg| '''Step 4:''' Select specific profile settions which are explained below
File:Estuary_Profiles_Adding_Profile_5.jpg| '''Step 5:''' Choose to copy settings from the defaul user ot start with default settings
File:Estuary_Profiles_Adding_Profile_6.jpg| '''Step 6:''' Choose to copy media sources from the default user or start fresh.
</gallery>


[[File:Estuary_Profiles_Adding_Profile_2.jpg|500px]]
{{-}}
<br>
=== Select profile folder ===
Then, it will prompt you for your profile directory. This is where your personalized settings will be stored.
While choosing '''OK''' the default folder will be used. That will be stored under the userdata-folder and will have the same name as the profile name.
If you want to select a new folder for your profile, select '''New folder''', give it a name and then press '''OK'''. After you will be prompted to the '''Browse for folder''' window again and you need to select the created folder. The settings for the profile will then be found under: '''userdata''' -> '''<profile_name>''' -> '''<created folder name>'''
[[File:Estuary_Profiles_Adding_Profile_3.jpg|500px]]
{{-}}
<br>
=== Specific profile settings ===
=== Specific profile settings ===
The window you will see now is kind of an overview what has been done yet and will also give you an option to setup specific things.
[[File:Estuary_Profiles_Adding_Profile_4.jpg|500px]]


; Profile Name
; Profile Name
Line 136: Line 69:
<br>
<br>


[[File:Profles-delete_profile-v17.jpg|500px]]
[[File:Profles-delete_profile-v17.jpg|500px]]<br />


{{-}}
{{-}}
Line 152: Line 85:
The other way is to log-off from the current Kodi session and log-in to another profile:<br />
The other way is to log-off from the current Kodi session and log-in to another profile:<br />
<br />
<br />
 
<gallery mode="packed" widths=500px heights=283px>
[[File:Profiles-switch_profile-v17.jpg|500px]]
File:Profiles-switch_profile-v17.jpg| '''Step 1:''' Log off from the current profile
 
File:Profiles-switch_profile2-v17.jpg| ''' Step 2:''' Log in to another profile
[[File:Profiles-switch_profile2-v17.jpg|500px]]
</gallery>




Another way of switching profiles is to bind ''load profile'' to a key in [[Keymaps|keymaps.xml]] by using the [[List_of_built-in_functions|built-in function]] LoadProfile. If you only have two profiles you can use the same key to switch back and forth. e.g. LoadProfile bound to {{keypress|Y}}<br />
Another way of switching profiles is to bind ''load profile'' to a key in [[Keymaps|keymaps.xml]] by using the [[List_of_built-in_functions|built-in function]] LoadProfile. If you only have two profiles you can use the same key to switch back and forth. e.g. LoadProfile bound to {{keypress|y}}<br />


Switch from User1 to User2 (Users1's keymap.xml): <y>LoadProfile(User2)<y/><br />
Switch from User1 to User2 (Users1's keymap.xml): <y>LoadProfile(User2)<y/><br />
Line 176: Line 109:




== The profile lock preferences ==
== profiles.xml and profiles folder ==
 
For the lock preferences please see: [[Settings/Interface/Master_lock#Lock_preferences|Lock Preferences]]
 


== profiles.xml and profiles folder ==
{{cleanup}}
It is important to mention that this section exists so that users have some documentation to refer to in the event of profile related issues occur like profile corruption. This '''does not''' constitute a invitation to novice users to start messing around with said files/folders and cause inadvertent problems that would not otherwise exist.
It is important to mention that this section exists so that users have some documentation to refer to in the event of profile related issues occur like profile corruption. This '''does not''' constitute a invitation to novice users to start messing around with said files/folders and cause inadvertent problems that would not otherwise exist.


{{notice|'''Do not edit the any of the xml files''' in question unless '''indicated by a Kodi developer''' or for '''backup''' purposes only|WARNING:}}
{{notice|'''Do not edit the any of the xml files''' in question unless '''indicated by a Kodi developer''' or for '''backup''' purposes only|WARNING}}


=== profiles.xml ===


The '''master user''' (default Kodi user) depends on '''guisettings.xml''' to for '''Kodi settings''', default [[userdata]] contents and is stored inside the [[userdata]] '''folder''' {{?}}
A ''profile.xml'' file exists after the very first installation of Kodi at its userdata-folder and unless you have created additional profiles it won't have any other information as for the '''Master user''' (Kodis default user). If you create other/additional profiles, that file will be populated with additional informations about the created profile.
 
Any additional user(s) '''Kodi settings''' or data, are stored '''separately''' inside the '''main profiles folder''' within respectively profile-named folder, e.g. '''/userdata/profiles/TEST/''.
 
=== profiles.xml ===
The master user and any additionally created users information lockcodes and locked sections is stored inside '''''/userdata/profiles.xml'''''
{{see also|Settings/System#Master_lock|Media_sources#Locking}}


'''Example: Contents of profiles.xml containing masterprofile and a TEST profile. '''
The example below shows a profile.xml file containing the '''Master user''' and the user '''Test''' as an additional profile. In that case it will show that the '''Master user''' uses a lockcode which '''Test''' doesn't use. As you can see the given password is shown in plain text. So please be aware that a locked profile doesn't provide any kind of security if other users have access to the underlying file system.


profiles.xml containing all profile settings for '''Master user''' using lockcode and additional '''Test''' profile not using lockcode.
For the lock preferences and the Master lock, please visit: [[Settings/Interface/Master_lock|Settings -> Interface settings -> Master lock]]




{| class="mw-collapsible mw-collapsed wikitable"  
{| class="mw-collapsible mw-collapsed wikitable"  
|-
|-
! <big> For information on locking see:</big>
! Example profiles.xml file
|-
|-
|  
|  
Line 257: Line 180:


=== Profiles folder contents ===
=== Profiles folder contents ===
The profiles folder contains separate Kodi settings or data related to the profiles created e.g. '''/userdata/profiles/TEST/guisettings.xml'''
The profiles folder may also contain unique [[userdata]] contents depending on what settings you use, when [[Profiles#Adding a Profile|Adding a Profile]]. So dont be surprised to find this folder populated with [[userdata]] related contents (logically unique and non-transmissible to other users) in case of databases '''these are not shared''' and are unique to the user in question.


Any additional user(s) will have their own folder under '''userdata -> profiles -> <profile-name>''' which contains all informations about add-on data, databases, keymaps, thumbnails and such seperately from the ''Master user''. If you have selected "Copy default" at the steps above, the settings or media sources will be copied from the default Kodi user.
By default (no sources set neither on the master user nor on an additional profile) an additional profile folder contains similar folders as the userdata folder. For an explanation about the files and folders which are located under the <profile_name>-folder, please see: [[Userdata#UserData_folder_contents|Userdata folder contents]]
== Troubleshooting ==
<br />
'''Q: I installed skins and add-ons on the 'Master User' but I can't install it on the additional profile. Why?'''
A: Already installed skins or add-ons are marked as "disabled" under: {{button|Add-ons -> My add-ons -> <specific add-on section>}} and don't need to be installed again. After you enabled a specific add-on or a skin, those add-ons are available again and skins could be used from the {{button|Settings -> Interface settins -> Skin}} menu.


{| class="mw-collapsible mw-collapsed wikitable"
 
|-
'''Q: After I created a profile, the Kodi screen stays black if I try to load it for the first time. Why?'''
! <big>Example: Contents of profiles folder /userdata/profiles/TEST/guisettings.xml.</big>
 
|-
A: That was a bug and it's already fixed in Kodi 18 alpha versions. After you have restarted Kodi Krypton, Kodi should behave normal and should display the GUI as expected.
|
 
<syntaxhighlight lang=xml enclose="div">
=== Missing texts/different skins not loading while using profiles ===
<settings>
 
<mymusic>
{{note|This will be obsolete after the release of Kodi 18.7.}}
<playlist>
 
<repeat>false</repeat>
That's a known issue and there's a workaround for that:
<shuffle>false</shuffle>
 
</playlist>
- create a [[Autoexec.py|autoexec.py]] file at your [[Userdata|userdata]] folder and under each {{button|<profile-name>}}-folder under {{button|userdata -> profiles -> <profile-name>}} (the path to that folder differs from the OS in use)<br />
<needsupdate>0</needsupdate>
- fill each autoexec.py with the following content:
<startwindow>10501</startwindow>
 
<songinfoinvis>true</songinfoinvis>
<syntaxhighlight lang=python>
<songthumbinvis>false</songthumbinvis>
import xbmc
<defaultlibview pathversion="1" />
xbmc.executebuiltin('ReloadSkin()')
</mymusic>
<myvideos>
<startwindow>10024</startwindow>
<stackvideos>false</stackvideos>
<watchmodemovies>0</watchmodemovies>
<watchmodetvshows>0</watchmodetvshows>
<watchmodemusicvideos>0</watchmodemusicvideos>
<needsupdate>0</needsupdate>
<flatten>false</flatten>
<playlist>
<repeat>false</repeat>
<shuffle>false</shuffle>
</playlist>
<extractflags>true</extractflags>
<extractthumb>true</extractthumb>
<replacelabels>true</replacelabels>
<selectaction>1</selectaction>
</myvideos>
<viewstates>
<musicnavartists>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</musicnavartists>
<musicnavalbums>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</musicnavalbums>
<musicnavsongs>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</musicnavsongs>
<musiclastfm>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</musiclastfm>
<videonavactors>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavactors>
<videonavyears>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavyears>
<videonavgenres>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavgenres>
<videonavtitles>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavtitles>
<videonavepisodes>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavepisodes>
<videonavseasons>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavseasons>
<videonavtvshows>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavtvshows>
<videonavmusicvideos>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videonavmusicvideos>
<programs>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</programs>
<pictures>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</pictures>
<videofiles>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</videofiles>
<musicfiles>
<viewmode>0</viewmode>
<sortmethod>1</sortmethod>
<sortorder>1</sortorder>
</musicfiles>
</viewstates>
<general>
<systemtotaluptime>0</systemtotaluptime>
<addonautoupdate>true</addonautoupdate>
<addonnotifications>true</addonnotifications>
<addonforeignfilter>false</addonforeignfilter>
</general>
<defaultvideosettings>
<deinterlacemode>0</deinterlacemode>
<interlacemethod>1</interlacemethod>
<scalingmethod>1</scalingmethod>
<noisereduction>0.000000</noisereduction>
<postprocess>false</postprocess>
<sharpness>0.000000</sharpness>
<viewmode>0</viewmode>
<zoomamount>1.000000</zoomamount>
<pixelratio>1.000000</pixelratio>
<verticalshift>0.000000</verticalshift>
<volumeamplification>0.000000</volumeamplification>
<outputtoallspeakers>false</outputtoallspeakers>
<showsubtitles>true</showsubtitles>
<brightness>50.000000</brightness>
<contrast>50.000000</contrast>
<gamma>20.000000</gamma>
<audiodelay>0.000000</audiodelay>
<subtitledelay>0.000000</subtitledelay>
<autocrop>false</autocrop>
<nonlinstretch>false</nonlinstretch>
</defaultvideosettings>
<audio>
<mute>false</mute>
<fvolumelevel>1.000000</fvolumelevel>
</audio>
<resolutions />
<audiocds>
<autoaction>0</autoaction>
<bitrate>192</bitrate>
<compressionlevel>5</compressionlevel>
<ejectonrip>true</ejectonrip>
<encoder>3</encoder>
<quality>0</quality>
<recordingpath pathversion="1">select writable folder</recordingpath>
<trackpathformat>%A - %B/[%N. ][%A - ]%T</trackpathformat>  
<usecddb>true</usecddb>
</audiocds>
<audiooutput>
<ac3passthrough>true</ac3passthrough>
<audiodevice>DirectSound:{bd6dd71a-3deb-11d1-b171-00c04fc20000}</audiodevice>
<channellayout>1</channellayout>  
<dtshdpassthrough>true</dtshdpassthrough>
<dtspassthrough>true</dtspassthrough>
<guisoundmode>1</guisoundmode>
<mode>0</mode>
<multichannellpcm>true</multichannellpcm>
<normalizelevels>false</normalizelevels>
<passthroughaac>false</passthroughaac>
<passthroughdevice>default</passthroughdevice>
<stereoupmix>false</stereoupmix>
<truehdpassthrough>true</truehdpassthrough>
</audiooutput>
<cache>
<harddisk>256</harddisk>
</cache>
<cacheaudio>
<dvdrom>256</dvdrom>
<internet>256</internet>
<lan>256</lan>
</cacheaudio>
<cachedvd>
<dvdrom>2048</dvdrom>
<lan>2048</lan>
</cachedvd>
<cacheunknown>
<internet>4096</internet>
</cacheunknown>
<cachevideo>
<dvdrom>2048</dvdrom>
<internet>4096</internet>
<lan>2048</lan>
</cachevideo>
<debug>
<screenshotpath pathversion="1">select writable folder</screenshotpath>
<showloginfo>false</showloginfo>
</debug>
<dvds>
<automenu>false</automenu>
<autorun>false</autorun>
<playerregion>0</playerregion>
</dvds>
<epg>
<daystodisplay>3</daystodisplay>
<defaultguideview>3</defaultguideview>
<epgupdate>120</epgupdate>
<hidenoinfoavailable>true</hidenoinfoavailable>
<ignoredbforclient>false</ignoredbforclient>
<preventupdateswhileplayingtv>false</preventupdateswhileplayingtv>
<resetepg />
</epg>
<filelists>
<allowfiledeletion>false</allowfiledeletion>
<ignorethewhensorting>true</ignorethewhensorting>
<showaddsourcebuttons>true</showaddsourcebuttons>
<showextensions>true</showextensions>
<showhidden>false</showhidden>
<showparentdiritems>true</showparentdiritems>
</filelists>
<input>
<disablejoystickwithimon>true</disablejoystickwithimon>
<enablejoystick>true</enablejoystick>
<enablemouse>true</enablemouse>
<peripherals />
<remoteaskeyboard>false</remoteaskeyboard>
</input>
<karaoke>
<autopopupselector>false</autopopupselector>
<charset>DEFAULT</charset>
<enabled>false</enabled>
<export />
<font>arial.ttf</font>
<fontcolors>0</fontcolors>
<fontheight>36</fontheight>
<importcsv />
</karaoke>
<locale>
<audiolanguage>original</audiolanguage>
<charset>DEFAULT</charset>
<country>USA</country>
<language>english</language>
<subtitlelanguage>original</subtitlelanguage>
</locale>
<lookandfeel>
<enablerssfeeds>true</enablerssfeeds>
<font>Default</font>
<rssedit />
<skin>skin.confluence</skin>
<skincolors>SKINDEFAULT</skincolors>  
<skinsettings />
<skintheme>SKINDEFAULT</skintheme>
<skinzoom>0</skinzoom>
<soundskin>SKINDEFAULT</soundskin>
<startupwindow>1</startupwindow>
</lookandfeel>
<masterlock>
<lockcode>-</lockcode>
<maxretries>3</maxretries>
<startuplock>false</startuplock>
</masterlock>
<musicfiles>
<findremotethumbs>true</findremotethumbs>
<librarytrackformat />
<librarytrackformatright />
<nowplayingtrackformat />
<nowplayingtrackformatright />
<trackformat>[%N. ]%A - %T</trackformat>
<trackformatright>%D</trackformatright>
<usetags>true</usetags>
</musicfiles>
<musiclibrary>
<albumsscraper>metadata.album.universal</albumsscraper>  
<artistsscraper>metadata.artists.universal</artistsscraper>
<backgroundupdate>false</backgroundupdate>
<cleanup />
<downloadinfo>false</downloadinfo>
<enabled>true</enabled>
<export />
<import />
<showcompilationartists>true</showcompilationartists>
<updateonstartup>false</updateonstartup>
</musiclibrary>
<musicplayer>
<autoplaynextitem>true</autoplaynextitem>
<crossfade>0</crossfade>
<crossfadealbumtracks>true</crossfadealbumtracks>
<queuebydefault>false</queuebydefault>
<replaygainavoidclipping>false</replaygainavoidclipping>
<replaygainnogainpreamp>89</replaygainnogainpreamp>
<replaygainpreamp>89</replaygainpreamp>
<replaygaintype>1</replaygaintype>
<visualisation>visualization.milkdrop</visualisation>
</musicplayer>
<network>
<bandwidth>0</bandwidth>
<httpproxypassword />
<httpproxyport>8080</httpproxyport>
<httpproxyserver />
<httpproxyusername />
<usehttpproxy>false</usehttpproxy>
</network>
<pictures>
<displayresolution>14</displayresolution>
<generatethumbs>true</generatethumbs>
<showvideos>true</showvideos>
<useexifrotation>true</useexifrotation>
<usetags>true</usetags>
</pictures>
<powermanagement>
<displaysoff>0</displaysoff>
<shutdownstate>0</shutdownstate>
<shutdowntime>0</shutdowntime>
</powermanagement>
<pvrclient>
<menuhook />
</pvrclient>
<pvrmanager>
<backendchannelorder>true</backendchannelorder>
<channelmanager />
<channelscan />
<enabled>false</enabled>
<hideconnectionlostwarning>false</hideconnectionlostwarning>
<resetdb />
<syncchannelgroups>true</syncchannelgroups>
<usebackendchannelnumbers>false</usebackendchannelnumbers>
</pvrmanager>
<pvrmenu>
<closechannelosdonswitch>false</closechannelosdonswitch>
<hidevideolength>true</hidevideolength>
<iconpath />
<infoswitch>true</infoswitch>
<infotime>5</infotime>
<infotimeout>true</infotimeout>
<searchicons />
</pvrmenu>
<pvrparental>
<duration>300</duration>
<enabled>false</enabled>
<pin />
</pvrparental>
<pvrplayback>
<channelentrytimeout>0</channelentrytimeout>
<playminimized>true</playminimized>
<scantime>10</scantime>
<signalquality>true</signalquality>
<startlast>0</startlast>
<switchautoclose>true</switchautoclose>
</pvrplayback>
<pvrpowermanagement>
<backendidletime>15</backendidletime>
<dailywakeup>false</dailywakeup>
<dailywakeuptime>00:00:00</dailywakeuptime>
<enabled>false</enabled>
<prewakeup>15</prewakeup>
<setwakeupcmd />
</pvrpowermanagement>
<pvrrecord>
<defaultlifetime>99</defaultlifetime>
<defaultpriority>50</defaultpriority>
<instantrecordtime>120</instantrecordtime>
<marginend>10</marginend>
<marginstart>2</marginstart>
<timernotifications>true</timernotifications>
</pvrrecord>
<scrapers>
<moviesdefault>metadata.themoviedb.org</moviesdefault>
<musicvideosdefault>metadata.musicvideos.last.fm</musicvideosdefault>
<tvshowsdefault>metadata.tvdb.com</tvshowsdefault>
</scrapers>
<screensaver>
<mode>screensaver.xbmc.builtin.dim</mode>
<preview />
<settings />
<time>3</time>
<usedimonpause>true</usedimonpause>
<usemusicvisinstead>true</usemusicvisinstead>
</screensaver>
<scrobbler>
<lastfmpass />
<lastfmsubmit>false</lastfmsubmit>
<lastfmsubmitradio>false</lastfmsubmitradio>
<lastfmusername />
<librefmpass />
<librefmsubmit>false</librefmsubmit>
<librefmusername />
</scrobbler>
<services>
<airplay>false</airplay>
<airplaypassword />
<devicename>XBMC</devicename>
<esallinterfaces>false</esallinterfaces>
<escontinuousdelay>25</escontinuousdelay>
<esenabled>true</esenabled>
<esinitialdelay>750</esinitialdelay>
<esmaxclients>20</esmaxclients>
<esport>9777</esport>
<esportrange>10</esportrange>
<upnpannounce>true</upnpannounce>
<upnprenderer>false</upnprenderer>
<upnpserver>false</upnpserver>
<useairplaypassword>false</useairplaypassword>
<webserver>false</webserver>
<webserverpassword />
<webserverport>80</webserverport>
<webserverusername>xbmc</webserverusername>
<webskin>webinterface.default</webskin>
<zeroconf>false</zeroconf>
</services>
<slideshow>
<displayeffects>true</displayeffects>
<shuffle>false</shuffle>
<staytime>5</staytime>
</slideshow>
<subtitles>
<align>0</align>
<charset>DEFAULT</charset>
<color>1</color>
<custompath pathversion="1" />
<font>arial.ttf</font>
<height>28</height>
<overrideassfonts>false</overrideassfonts>
<style>1</style>
</subtitles>
<system>
<playlistspath pathversion="1">set default</playlistspath>
</system>
<videolibrary>
<actorthumbs>true</actorthumbs>
<backgroundupdate>false</backgroundupdate>
<cleanup />
<enabled>true</enabled>
<export />
<flattentvshows>1</flattentvshows>
<groupmoviesets>false</groupmoviesets>
<import />
<seasonthumbs>true</seasonthumbs>
<showunwatchedplots>true</showunwatchedplots>
<updateonstartup>false</updateonstartup>
</videolibrary>
<videoplayer>
<adjustrefreshrate>0</adjustrefreshrate>
<autoplaynextitem>false</autoplaynextitem>
<displayresolution>14</displayresolution>
<errorinaspect>0</errorinaspect>
<maxspeedadjust>5.000000</maxspeedadjust>
<pauseafterrefreshchange>0</pauseafterrefreshchange>
<rendermethod>0</rendermethod>
<resamplequality>1</resamplequality>
<stretch43>0</stretch43>
<synctype>2</synctype>
<teletextenabled>true</teletextenabled>
<teletextscale>true</teletextscale>
<usechd>true</usechd>
<usedisplayasclock>false</usedisplayasclock>
<usedxva2>false</usedxva2>
</videoplayer>
<videoscreen>
<blankdisplays>false</blankdisplays>
<fakefullscreen>false</fakefullscreen>
<guicalibration />
<resolution>-1</resolution>
<screen>0</screen>
<screenmode>DESKTOP</screenmode>
<vsync>2</vsync>
</videoscreen>
<weather>
<addon>weather.wunderground</addon>
<addonsettings />
<currentlocation>1</currentlocation>
</weather>
<window>
<height>480</height>
<width>720</width>
</window>
<skinsettings />
</settings>
</syntaxhighlight>
</syntaxhighlight>
|}
 
That will cause a skin reload at every profile switch. Depending on your hardware in use you mostly won't notice it and the texts will be visible again and/or different skins for different profiles will load fine. For some hardware, like the RPi, it will be noticeable and also might take a little while.
 


== See also ==
== See also ==

Revision as of 16:39, 5 April 2020


Profiles allow users to save all of settings as a profile and change them at the touch of a button. It also allows you to grant access to specific folders and network shares based on the profile being used. This is ideal for systems that have multiple users. It works much the same as setting up individual users on your home computer.

Note: While profiles do allow to share the same Kodi instance with multiple users, they are not a security feature. The web interface, for example, may still allow to change the active profile without entering a password.


These individual profiles allow you to customize the environment for multiple users, allowing for such functionality as:

  • Customized view settings such as skins for each user
  • The ability to lock folders, such as network shares on a per-user basis
  • Separate media libraries for each user
  • Unique RSS feeds for each user
  • Unique keymapping for each user
  • Unique network settings

All options stored in the userdata folder can be customized per profile, allowing for an amazing amount of flexibility.


Adding a profile

In order to add a profile, follow the steps below

Specific profile settings

Profile Name
The name of the profile you entered above
Profile picture
Browse to some icon you would like to select as a profile picture
Profile directory
The path to the profile directory you might have created above
Lock prefences
Allows you to lock many of your preferences. This is detailed below.
Media Info
Allows you to have separate information saved for your media, i.e. IMdB, AllMusic, etc. The options are
  • Separate - Profiles have separate media info with full control
  • Shares with Default - Shares media info with the default user with full control
  • Shares with Default (Read Only) - Shares media info with the default user, and is locked by the master code
  • Separate (Locked) - Profile has separate media info, but you can only change it by enabling master mode.


Media sources
Allows you to have separate media sources for the profiles. The options are
  • Separate - Profiles have separate media sources with full control
  • Shares with Default - Shares media sources with the default user with full control
  • Shares with Default (Read Only) - Shares media sources with the default user, and is locked by the master code
  • Separate (Locked) - Profiles have separate media sources, but you can only change them by enabling master mode.




Deleting a profile

In order to delete an unused profile, simply navigate to Settings->Profile Settings->Profiles, then navigate to the profile you want to delete and bring up the context menu using either guide on a remote or c on a normal keyboard. Then select Delete like shown in the screenshot below:

Profles-delete profile-v17.jpg


Switching profiles

Switching profiles from a currently running Kodi instance can be done in different ways:

You are able to switch a profile while navigating to the profiles-section, selecting the specific profile you want to use, bring up the context menu using either guide on a remote or c on a normal keyboard and select Load like shown in the screenshot below:

Profiles-load profile-v17.jpg

The other way is to log-off from the current Kodi session and log-in to another profile:


Another way of switching profiles is to bind load profile to a key in keymaps.xml by using the built-in function LoadProfile. If you only have two profiles you can use the same key to switch back and forth. e.g. LoadProfile bound to y

Switch from User1 to User2 (Users1's keymap.xml): <y>LoadProfile(User2)<y/>
Switch from User2 to User1 (Users2's keymap.xml): <y>LoadProfile(User1)<y/>

Keymap.xml example:

<keymap>
  <global>
    <keyboard>
      <y>LoadProfile(User2)</y>
    </keyboard>
  </global>
</keymap>



profiles.xml and profiles folder

It is important to mention that this section exists so that users have some documentation to refer to in the event of profile related issues occur like profile corruption. This does not constitute a invitation to novice users to start messing around with said files/folders and cause inadvertent problems that would not otherwise exist.

Emblem-important-yellow.png WARNING:
Do not edit the any of the xml files in question unless indicated by a Kodi developer or for backup purposes only

profiles.xml

A profile.xml file exists after the very first installation of Kodi at its userdata-folder and unless you have created additional profiles it won't have any other information as for the Master user (Kodis default user). If you create other/additional profiles, that file will be populated with additional informations about the created profile.

The example below shows a profile.xml file containing the Master user and the user Test as an additional profile. In that case it will show that the Master user uses a lockcode which Test doesn't use. As you can see the given password is shown in plain text. So please be aware that a locked profile doesn't provide any kind of security if other users have access to the underlying file system.

For the lock preferences and the Master lock, please visit: Settings -> Interface settings -> Master lock


Example profiles.xml file
<profiles>
<lastloaded>0</lastloaded> 
<useloginscreen>false</useloginscreen> 
<nextIdProfile>2</nextIdProfile> 
<profile>
<id>0</id> 
<name>Master user</name> 
<directory pathversion="1">special://masterprofile/</directory> 
<thumbnail pathversion="1" /> 
<hasdatabases>true</hasdatabases> 
<canwritedatabases>true</canwritedatabases> 
<hassources>true</hassources> 
<canwritesources>true</canwritesources> 
<lockaddonmanager>false</lockaddonmanager> 
<locksettings>false</locksettings> 
<lockfiles>false</lockfiles> 
<lockmusic>false</lockmusic> 
<lockvideo>false</lockvideo> 
<lockpictures>false</lockpictures> 
<lockprograms>false</lockprograms> 
<lockmode>1</lockmode> 
<lockcode>c4ca4238a0b923820dcc509a6f75849b</lockcode> 
<lastdate /> 
</profile>
<profile>
<id>1</id> 
<name>TEST</name> 
<directory pathversion="1">profiles/Test/</directory> 
<thumbnail pathversion="1" /> 
<hasdatabases>true</hasdatabases> 
<canwritedatabases>true</canwritedatabases> 
<hassources>true</hassources> 
<canwritesources>true</canwritesources> 
<lockaddonmanager>false</lockaddonmanager> 
<locksettings>false</locksettings> 
<lockfiles>false</lockfiles> 
<lockmusic>false</lockmusic> 
<lockvideo>false</lockvideo> 
<lockpictures>false</lockpictures> 
<lockprograms>false</lockprograms> 
<lockmode>0</lockmode> 
<lockcode>-</lockcode> 
<lastdate /> 
</profile>
</profiles>


Profiles folder contents

Any additional user(s) will have their own folder under userdata -> profiles -> <profile-name> which contains all informations about add-on data, databases, keymaps, thumbnails and such seperately from the Master user. If you have selected "Copy default" at the steps above, the settings or media sources will be copied from the default Kodi user.

By default (no sources set neither on the master user nor on an additional profile) an additional profile folder contains similar folders as the userdata folder. For an explanation about the files and folders which are located under the <profile_name>-folder, please see: Userdata folder contents


Troubleshooting


Q: I installed skins and add-ons on the 'Master User' but I can't install it on the additional profile. Why?

A: Already installed skins or add-ons are marked as "disabled" under: Add-ons -> My add-ons -> <specific add-on section> and don't need to be installed again. After you enabled a specific add-on or a skin, those add-ons are available again and skins could be used from the Settings -> Interface settins -> Skin menu.


Q: After I created a profile, the Kodi screen stays black if I try to load it for the first time. Why?

A: That was a bug and it's already fixed in Kodi 18 alpha versions. After you have restarted Kodi Krypton, Kodi should behave normal and should display the GUI as expected.

Missing texts/different skins not loading while using profiles

Note: This will be obsolete after the release of Kodi 18.7.

That's a known issue and there's a workaround for that:

- create a autoexec.py file at your userdata folder and under each <profile-name>-folder under userdata -> profiles -> <profile-name> (the path to that folder differs from the OS in use)
- fill each autoexec.py with the following content:

import xbmc
xbmc.executebuiltin('ReloadSkin()')

That will cause a skin reload at every profile switch. Depending on your hardware in use you mostly won't notice it and the texts will be visible again and/or different skins for different profiles will load fine. For some hardware, like the RPi, it will be noticeable and also might take a little while.


See also