13
13
from gi.repository import GLib, Gtk
15
from Onboard.utils import show_confirmation_dialog, Version, unicode_str
15
from Onboard.utils import show_confirmation_dialog, Version, \
16
unicode_str, XDGDirs, chmodtree
16
17
from Onboard.definitions import InputEventSourceEnum, TouchInputEnum
17
18
from Onboard.WindowUtils import Handle, DockingEdge
18
19
from Onboard.ConfigUtils import ConfigObject
251
252
self.install_dir = self._get_install_dir()
252
253
self.user_dir = self._get_user_dir()
254
# migrate old user dir ".sok" to ".onboard"
255
old_user_dir = os.path.join(os.path.expanduser("~"), ".sok")
256
user_dir = self.user_dir
257
if not os.path.exists(user_dir) and os.path.exists(old_user_dir):
258
_logger.info(_format("Migrating user directory '{}' to '{}'.", \
259
old_user_dir, user_dir))
261
copytree(old_user_dir, user_dir)
262
except OSError as ex: # python >2.5
263
_logger.error(_format("Failed to migrate user directory. ") + \
255
# migrate old user dir ".sok" or ".onboard" to XDG data home
256
if not os.path.exists(self.user_dir):
257
old_user_dir = os.path.join(os.path.expanduser("~"), ".onboard")
258
if not os.path.exists(old_user_dir):
259
old_user_dir = os.path.join(os.path.expanduser("~"), ".sok")
260
if os.path.exists(old_user_dir):
261
_logger.info(_format("Migrating user directory '{}' to '{}'.", \
262
old_user_dir, self.user_dir))
264
copytree(old_user_dir, self.user_dir)
265
chmodtree(self.user_dir, 0o700, True) # honor XDG spec
266
except OSError as ex: # python >2.5
267
_logger.error(_format("Failed to migrate user directory. ") + \
266
270
# Load system defaults (if there are any, not required).
267
271
# Used for distribution specific settings, aka branding.
268
paths = [os.path.join(self.install_dir, SYSTEM_DEFAULTS_FILENAME),
272
paths = XDGDirs.get_all_config_dirs(USER_DIR) + \
273
[os.path.join(self.install_dir, SYSTEM_DEFAULTS_FILENAME),
269
274
os.path.join("/etc/onboard", SYSTEM_DEFAULTS_FILENAME)]
270
275
self.load_system_defaults(paths)