本文整理汇总了Python中xdg.DesktopEntry.DesktopEntry.set方法的典型用法代码示例。如果您正苦于以下问题:Python DesktopEntry.set方法的具体用法?Python DesktopEntry.set怎么用?Python DesktopEntry.set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xdg.DesktopEntry.DesktopEntry
的用法示例。
在下文中一共展示了DesktopEntry.set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: newStarter
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def newStarter(self, path, newstart):
myitem = DesktopEntry(path)
myitem.set("Name", newstart.Name)
myitem.set("Exec", newstart.Exec)
myitem.set("Comment", newstart.Comment)
myitem.set("Type", "Application")
myitem.set("Version", "1.0")
myitem.set("X-GNOME-Autostart-enabled", newstart.Autostart)
# Scrive il file .desktop
myitem.write()
示例2: set_autostart
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def set_autostart(self, enable):
if not os.path.exists(self.autostart_desktop):
if os.path.exists(self.sys_autostart_desktop):
os.system("mkdir -p %s" % os.path.dirname(self.autostart_desktop))
os.system("cp %s %s" % (self.sys_autostart_desktop, self.autostart_desktop))
else:
return False
desktop_entry = DesktopEntry(self.autostart_desktop)
if desktop_entry.getHidden() == enable:
hidden_word = "false" if enable else "true"
desktop_entry.set("Hidden", hidden_word)
desktop_entry.write()
示例3: enabled_toggled
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def enabled_toggled(self, cell, path, model):
iter = model.get_iter((int(path),))
active = model.get_value(iter, COLUMN_ACTIVE)
path = model.get_value(iter, COLUMN_PATH)
if self.is_defaultitem(path):
shutil.copy(path, self.userdir)
path = os.path.join(self.userdir, os.path.basename(path))
desktopentry = DesktopEntry(path)
desktopentry.set("X-GNOME-Autostart-enabled", "false")
desktopentry.write()
model.set(iter, COLUMN_PATH, path)
else:
if active:
desktopentry = DesktopEntry(path)
desktopentry.set("X-GNOME-Autostart-enabled", "false")
desktopentry.write()
else:
if self.is_in_systemdir(path):
os.remove(path)
path = os.path.join(self.get_systemdir(path), os.path.basename(path))
model.set(iter, COLUMN_PATH, path)
else:
desktopentry = DesktopEntry(path)
desktopentry.set("X-GNOME-Autostart-enabled", "true")
desktopentry.set("Hidden", "false")
desktopentry.write()
active = not active
model.set(iter, COLUMN_ACTIVE, active)
示例4: _create_autostarter
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def _create_autostarter(self):
autostart_file = self._get_autostart_file_path()
autostart_dir = os.path.dirname(autostart_file)
if not os.path.isdir(autostart_dir):
#create autostart dir
try:
os.mkdir(autostart_dir)
except DirectoryCreationError as e:
print("Creation of autostart dir failed, please make it yourself: {}".format(autostart_dir))
raise e
if not os.path.isfile(autostart_file):
# create autostart entry
starter_item = DesktopEntry(autostart_file)
starter_item.set('Name', 'f.lux indicator applet')
# Use the user's shell to start 'fluxgui', in case
# 'fluxgui' is not installed on a standard system path. We
# use 'sh' to start the users '/etc/passwd' shell via
# '$SHELL', so that this will still work if the user
# changes their shell after the
# 'autostart/fluxgui.desktop' file is created.
#
# See PR #89 for an alternative approach:
#
# https://github.com/xflux-gui/fluxgui/pull/89
#
# The escaping of the 'Exec' field is described in
#
# https://developer.gnome.org/desktop-entry-spec/#exec-variables.
starter_item.set('Exec', r'sh -c "\\"\\$SHELL\\" -c fluxgui"')
starter_item.set('Icon', 'fluxgui')
starter_item.set('X-GNOME-Autostart-enabled', 'true')
starter_item.write()
self.autostart = True
示例5: on_remove_item
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def on_remove_item(self, widget, treeview):
model, iter = treeview.get_selection().get_selected()
if iter:
path = model.get_value(iter, COLUMN_PATH)
if path[1:4] == "etc":
shutil.copy(path, treeview.userdir)
desktopentry = DesktopEntry(os.path.join(treeview.userdir, os.path.basename(path)))
else:
desktopentry = DesktopEntry(path)
desktopentry.set("Hidden", "true")
desktopentry.set("X-GNOME-Autostart-enabled", "false")
desktopentry.write()
treeview.update_items(all = self.show_all_button.get_active(), comment = self.show_comment_button.get_active())
示例6: _update_autostart_flag
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def _update_autostart_flag(self):
if self._desktop == 'unknown':
# No se puede autostartear :(
return
desktop_compartir = DesktopEntry(
os.path.join(BaseDirectory.save_config_path('autostart'),
'compartir.desktop')
)
if self._desktop == 'mate':
desktop_compartir.set(
'X-MATE-Autostart-enabled',
'true' if self.compartir.autostart else 'false'
)
desktop_compartir.write()
示例7: test_write_file
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def test_write_file(self):
de = DesktopEntry()
de.parse(self.test_file)
de.removeKey("Name")
de.addGroup("Hallo")
de.set("key", "value", "Hallo")
new_file = os.path.join(self.tmpdir, "test.desktop")
de.write(new_file, trusted=True)
with io.open(new_file, encoding='utf-8') as f:
contents = f.read()
assert "[Hallo]" in contents, contents
assert re.search("key\s*=\s*value", contents), contents
# This is missing the Name key, and has an unknown Hallo group, so it
# shouldn't validate.
new_entry = DesktopEntry(new_file)
self.assertRaises(ValidationError, new_entry.validate)
示例8: on_edit_item
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def on_edit_item(self, widget, treeview):
model, iter = treeview.get_selection().get_selected()
if iter:
path = model.get_value(iter, COLUMN_PATH)
if path[1:4] == "etc":
shutil.copy(path, treeview.userdir)
path = os.path.join(treeview.userdir, os.path.basename(path))
dialog = AutoStartDialog(DesktopEntry(path), widget.get_toplevel())
if dialog.run() == gtk.RESPONSE_OK:
name = dialog.pm_name.get_text()
cmd = dialog.pm_cmd.get_text()
if not name:
ErrorDialog(_("The name of the startup program cannot be empty")).launch()
elif not cmd:
ErrorDialog(_("Text was empty (or contained only whitespace)")).launch()
else:
desktopentry = DesktopEntry(path)
desktopentry.set("Name", name, locale = True)
desktopentry.set("Exec", cmd)
desktopentry.set("Comment", dialog.pm_comment.get_text(), locale = True)
desktopentry.write()
treeview.update_items(all = self.show_all_button.get_active(), comment = self.show_comment_button.get_active())
dialog.destroy()
return
dialog.destroy()
示例9: create_autostarter
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def create_autostarter(self):
"""Adds an entry to the autostart directory to start fluxgui on
startup."""
autostart_file = self._get_autostart_file_path()
autostart_dir = os.path.dirname(autostart_file)
if not os.path.isdir(autostart_dir):
# Create autostart directory.
try:
os.mkdir(autostart_dir)
except OSError:
print ('creation of autostart dir failed, please make it '
'yourself: %s') % autostart_dir
self.exit()
if not os.path.isfile(autostart_file):
#create autostart entry
starter_item = DesktopEntry(autostart_file)
starter_item.set('Name', 'f.lux indicator applet')
starter_item.set('Exec', 'fluxgui')
starter_item.set('Icon', 'fluxgui')
starter_item.set('X-GNOME-Autostart-enabled', 'true')
starter_item.write()
示例10: _create_desktop_file_from_command
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def _create_desktop_file_from_command(self, command):
basename = os.path.basename(command)
path = os.path.expanduser('~/.local/share/applications/%s.desktop' % basename)
desktop = DesktopEntry()
desktop.addGroup('Desktop Entry')
desktop.set('Type', 'Application')
desktop.set('Version', '1.0')
desktop.set('Terminal', 'false')
desktop.set('Exec', command)
desktop.set('Name', basename)
desktop.set('X-Ubuntu-Tweak', 'true')
desktop.write(path)
return '%s.desktop' % basename
示例11: Autostart
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
class Autostart(gobject.GObject):
__gsignals__ = {
'changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_BOOLEAN,)),
}
def __init__(self):
gobject.GObject.__init__(self)
self.config = Config.Config(tgcm.country_support)
# Determine the path for XDG autostart dirs
self.autofile_name = 'tgcm-%s.desktop' % tgcm.country_support
self.user_autodir = None
for foo in BaseDirectory.load_config_paths('autostart'):
if foo.startswith(os.path.expanduser('~')):
self.user_autodir = foo
else:
self.system_autodir = foo
self.__create_desktop_entry_if_necessary()
# Listen to file changes
myfile = gio.File(self.user_autofile)
self.desktopentry_monitor = myfile.monitor_file()
self.desktopentry_monitor.connect('changed', self.on_desktopentry_changed)
def __create_desktop_entry_if_necessary(self):
# Create user autostart dir if it does not exists
if self.user_autodir is None:
self.user_autodir = BaseDirectory.save_config_path('autostart')
# It it does not exists an autostart file for TGCM in userdir,
# create a copy from the global one
self.user_autofile = os.path.join(self.user_autodir, self.autofile_name)
if not os.path.exists(self.user_autofile):
autofile_path = os.path.join(self.system_autodir, self.autofile_name)
shutil.copy(autofile_path, self.user_autofile)
# Honor 'launch-startup' policy in regional-info.xml file
self.desktopentry = DesktopEntry(self.user_autofile)
is_autostart = self.config.check_policy('launch-startup')
self.set_enabled(is_autostart)
else:
self.desktopentry = DesktopEntry(self.user_autofile)
def is_enabled(self):
self.__create_desktop_entry_if_necessary()
# Check if the DesktopEntry object has an autostart attribute
if self.desktopentry.hasKey('X-GNOME-Autostart-enabled'):
is_autostart = self.desktopentry.get('X-GNOME-Autostart-enabled', \
type='boolean')
else:
is_autostart = True
if self.desktopentry.hasKey('Hidden'):
is_shown = not self.desktopentry.get('Hidden', type='boolean')
else:
is_shown = True
return is_shown and is_autostart
def set_enabled(self, value):
self.__create_desktop_entry_if_necessary()
value = str(value).lower()
self.desktopentry.set('X-GNOME-Autostart-enabled', value)
self.desktopentry.removeKey('Hidden')
self.desktopentry.write()
def on_desktopentry_changed(self, monitor, myfile, other_file, event):
if event == gio.FILE_MONITOR_EVENT_DELETED:
self.__create_desktop_entry_if_necessary()
is_enabled = self.is_enabled()
self.emit('changed', is_enabled)
示例12: on_add_item
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def on_add_item(self, widget, treeview):
dialog = AutoStartDialog(parent = widget.get_toplevel())
if dialog.run() == gtk.RESPONSE_OK:
name = dialog.pm_name.get_text()
cmd = dialog.pm_cmd.get_text()
if not name:
ErrorDialog(_("The name of the startup program cannot be empty")).launch()
elif not cmd:
ErrorDialog(_("Text was empty (or contained only whitespace)")).launch()
else:
path = os.path.join(treeview.userdir, os.path.basename(cmd) + ".desktop")
desktopentry = DesktopEntry(path)
desktopentry.set("Name", dialog.pm_name.get_text())
desktopentry.set("Exec", dialog.pm_cmd.get_text())
desktopentry.set("Comment", dialog.pm_comment.get_text())
desktopentry.set("Type", "Application")
desktopentry.set("Version", "1.0")
desktopentry.set("X-GNOME-Autostart-enabled", "true")
desktopentry.write()
treeview.update_items(all = self.show_all_button.get_active(), comment = self.show_comment_button.get_active())
dialog.destroy()
return
dialog.destroy()
示例13: Mapping
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
class Mapping(object):
"""
An object representation of a wiican mapping.
A wiican mapping must be located in a single directory containing a file
with the wminput code, a file containing the metadata (name, description,
author, version) and an optional icon file.
"""
# Mandatory filename for the metadata file
info_filename = "info.desktop"
# Mandatory filename for the wminput config file
mapping_filename = "mapping.wminput"
def __init__(self, path=None):
"""
Builds a mapping object.
Parameters:
path - scans the path for building a mapping object if the needed files
where found. If None it builds an empty mapping. If some of the
needed files wasn't found it tries to build a mapping with the
found info.
The Mapping.info_filename and Mapping.mapping_filename class attributes
marks the requiered filenames for the metadata file and wminput config file
respectively.
The Mapping.mapping_filename file must contain wminput config file code
The Mapping.info_filename follows XDG DesktopEntry syntax.
The Mapping.info_filename contains the source of the optional associated
icon. If no icon found or no icon directive it falls back to default
icon.
There are three posibilities for icon setting:
- An absolute path where the icon it's stored
- Icon filename if it's stored in the same dir as Mapping.info_filename
- Theme-icon-name for auto-getting the icon from the icon theme
"""
self.__path = path
# Getting freedesktop definition file
self.__info = DesktopEntry()
if path and os.path.exists(os.path.join(path, Mapping.info_filename)):
self.__info.parse(os.path.join(path, Mapping.info_filename))
else:
self.__info.new(self.info_filename)
self.__info.set("Type", "Wiican Mapping")
# Getting wminput mapping file
if path and os.path.exists(os.path.join(path, Mapping.mapping_filename)):
mapping_fp = open(os.path.join(path, Mapping.mapping_filename), "r")
self.__mapping = mapping_fp.read()
mapping_fp.close()
else:
self.__mapping = ""
# Getting icon file path
icon_name = self.__info.getIcon()
if path and icon_name in os.listdir(path): # Icon included
self.set_icon(os.path.join(path, icon_name))
elif getIconPath(icon_name): # Theme icon
self.set_icon(getIconPath(icon_name))
else: # Default icon
self.set_icon(ICON_DEFAULT)
def get_path(self):
"""Returns the absolute path where the wiican mapping it's saved.
It returns None if the mapping it's not saved yet"""
return self.__path
def get_name(self):
"""Gets the name of the mapping"""
return self.__info.getName()
def set_name(self, name):
"""Sets the name for the mapping"""
self.__info.set("Name", name)
self.__info.set("Name", name, locale=True)
def get_comment(self):
"""Gets the descriptional comment"""
return self.__info.getComment()
def set_comment(self, comment):
"""Sets the descriptional comment for the mapping"""
self.__info.set("Comment", comment)
self.__info.set("Comment", comment, locale=True)
def get_icon(self):
#.........这里部分代码省略.........
示例14: TranslationCatalog
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
language = translation.replace(".po","")
self.languages[language] = polib.pofile(os.path.join(source_dir, translation))
catalog = TranslationCatalog("./po/vera-control-center-module-updates")
# Search for desktop files
desktop_files = []
for directory, dirnames, filenames in os.walk("."):
for file_ in filenames:
if file_.endswith(".desktop"):
entry = DesktopEntry(os.path.join(directory, file_))
for key in ("Name", "Comment", "Keywords"):
try:
source = entry.get(key)
except:
continue
for lang, obj in TranslationCatalog.languages.items():
found = obj.find(source)
if found and found.msgstr != "":
# xdg's IniFile supports the locale= keyword,
# but it supports only a boolean value. The locale
# is hardcoded to the one of the current system.
# We workaround this by specifying the right key
# right now.
entry.set("%s[%s]" % (key, lang), found.msgstr)
entry.write()
开发者ID:semplice,项目名称:vera-control-center-module-updates,代码行数:32,代码来源:dump_translations_to_desktopentries.py
示例15: on_add_new_custom_dialog_response
# 需要导入模块: from xdg.DesktopEntry import DesktopEntry [as 别名]
# 或者: from xdg.DesktopEntry.DesktopEntry import set [as 别名]
def on_add_new_custom_dialog_response(self, dialog, response_id):
"""
Fired when the user triggered a response on the add_new_custom_dialog.
"""
# Clunky way to see if we have edit mode, but it works
on_edit = dialog.get_widget_for_response(Gtk.ResponseType.NO).props.visible
if not on_edit and response_id == Gtk.ResponseType.OK:
# Obtain a working filename
directory = os.path.expanduser("~/.config/autostart")
if not os.path.exists(directory):
os.makedirs(directory)
filename = os.path.join(
directory,
self.objects.custom_name.get_text().lower().replace(" ","-") + ".custom%s.desktop" %
(random.randint(0,1000),)
)
if os.path.exists(filename):
return on_add_new_custom_dialog_response(dialog, response_id)
desktop_basename = os.path.basename(filename)
entry = DesktopEntry(filename)
entry.set("Version", 1.0)
entry.set("Name", self.objects.custom_name.get_text())
entry.set("Exec", self.objects.custom_command.get_text())
entry.set("X-Vera-Autostart-Phase", "Other")
entry.write()
row = ApplicationRow(desktop_basename, entry)
# Connect the changed signal
row.connect("changed", self.on_row_changed)
# Connect the requests_edit signal
row.connect("requests_edit", self.on_row_requests_edit)
# Prepend the row
self.objects.list.prepend(row)
self.desktop_list.append(desktop_basename)
elif on_edit and response_id == Gtk.ResponseType.OK:
# Edit
self.current_edit_informations["desktop"].set("Name", self.objects.custom_name.get_text(), locale=True)
self.current_edit_informations["desktop"].set("Exec", self.objects.custom_command.get_text())
self.current_edit_informations["desktop"].write()
self.current_edit_informations["row"].name.set_text(self.objects.custom_name.get_text())
elif on_edit and response_id == Gtk.ResponseType.NO:
# Remove
# Cleanup the entry from the ignore list by ensuring that
# it's enabled in its last moments...
self.on_row_changed(
self.current_edit_informations["row"],
os.path.basename(self.current_edit_informations["desktop"].filename),
True
)
# Finally, remove
os.remove(self.current_edit_informations["desktop"].filename)
self.current_edit_informations["row"].destroy()
# Hide
dialog.hide()
# Cleanup
self.objects.custom_name.set_text("")
self.objects.custom_command.set_text("")
self.current_edit_informations = {}