You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.0 KiB
145 lines
4.0 KiB
/* |
|
* GreeterConfig.js |
|
* |
|
* Copyright © 2016 Antergos Developers <dev@antergos.com> |
|
* |
|
* This file is part of lightdm-webkit2-greeter. |
|
* |
|
* lightdm-webkit2-greeter is free software; you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License as published by |
|
* the Free Software Foundation; either version 3 of the License, or |
|
* (at your option) any later version. |
|
* |
|
* lightdm-webkit2-greeter is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
* GNU General Public License for more details. |
|
* |
|
* The following additional terms are in effect as per Section 7 of the license: |
|
* |
|
* The preservation of all legal notices and author attributions in |
|
* the material or in the Appropriate Legal Notices displayed |
|
* by works containing it is required. |
|
* |
|
* You should have received a copy of the GNU General Public License |
|
* along with lightdm-webkit2-greeter; If not, see <http://www.gnu.org/licenses/>. |
|
*/ |
|
|
|
|
|
let _branding = null, |
|
_greeter = null; |
|
|
|
|
|
/** |
|
* Provides theme authors with a way to retrieve values from the greeter's config |
|
* file located at `/etc/lightdm/lightdm-webkit2-greeter.conf`. The greeter will |
|
* create an instance of this class when it starts. The instance can be accessed |
|
* with the global variable: `greeter_config`. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class GreeterConfig { |
|
/** |
|
* Holds keys/values from the `branding` section of the config file. |
|
* |
|
* @type {Object} branding |
|
* {String} branding.background_images |
|
* {String} branding.logo |
|
* {String} branding.user_image |
|
* |
|
* @readonly |
|
*/ |
|
get branding() { |
|
let props = ['background_images', 'logo', 'user_image']; |
|
|
|
if ( null === _branding ) { |
|
props.forEach( prop => _branding[prop] = this.get_str( 'branding', prop ) ); |
|
} |
|
|
|
return _branding; |
|
} |
|
|
|
/** |
|
* Holds keys/values from the `greeter` section of the config file. |
|
* |
|
* @type {Object} greeter |
|
* {Boolean} greeter.debug_mode |
|
* {Boolean} greeter.secure_mode |
|
* {Number} greeter.screensaver_timeout |
|
* {String} greeter.time_format |
|
* {String} greeter.time_language |
|
* {String} greeter.webkit_theme |
|
* |
|
* @readonly |
|
*/ |
|
get greeter() { |
|
let bools = ['debug_mode', 'secure_mode'], |
|
strings = ['time_format', 'time_language', 'webkit_theme']; |
|
|
|
if ( null === _greeter ) { |
|
_greeter = {}; |
|
_greeter.screensaver_timeout = this.get_num( 'greeter', 'screensaver_timeout' ); |
|
|
|
bools.forEach( prop => _greeter[prop] = this.get_bool( 'greeter', prop ) ); |
|
strings.forEach( prop => _greeter[prop] = this.get_str( 'greeter', prop ) ); |
|
} |
|
|
|
return _greeter; |
|
} |
|
|
|
/** |
|
* Returns the value of `key` from the `config_section` of the greeter's config file. |
|
* |
|
* @deprecated Access config sections directly as properties of this object instead. |
|
* |
|
* @arg {String} config_section |
|
* @arg {String} key |
|
* |
|
* @returns {Boolean} Config value for `key`. |
|
*/ |
|
get_bool( config_section, key ) { |
|
return __GreeterConfig.get_bool( config_section, key ); |
|
} |
|
|
|
/** |
|
* Returns the value of `key` from the `config_section` of the greeter's config file. |
|
* |
|
* @deprecated Access config sections directly as properties of this object instead. |
|
* |
|
* @arg {String} config_section |
|
* @arg {String} key |
|
* |
|
* @returns {Number} Config value for `key`. |
|
*/ |
|
get_num( config_section, key ) { |
|
return __GreeterConfig.get_num( config_section, key ); |
|
} |
|
|
|
/** |
|
* Returns the value of `key` from the `config_section` of the greeter's config file. |
|
* |
|
* @deprecated Access config sections directly as properties of this object instead. |
|
* |
|
* @arg {String} config_section |
|
* @arg {String} key |
|
* |
|
* @returns {String} Config value for `key`. |
|
*/ |
|
get_str( config_section, key ) { |
|
return __GreeterConfig.get_str( config_section, key ); |
|
} |
|
} |
|
|
|
|
|
/** |
|
* @memberOf window |
|
* @type {LightDM.GreeterConfig} |
|
*/ |
|
window.greeter_config = new GreeterConfig(); |
|
|
|
|
|
/** |
|
* @deprecated |
|
* @type {LightDM.GreeterConfig} |
|
*/ |
|
window.config = window.greeter_config;
|
|
|