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.
471 lines
10 KiB
471 lines
10 KiB
# -*- coding:UTF-8 -*-
|
|
# Copyright (c) Julien Lavergne <gilir@ubuntu.com>
|
|
#
|
|
# This program 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 2 of the License, or
|
|
# (at your option) any later version.
|
|
# This program 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.
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
# MA 02110-1301, USA.
|
|
#
|
|
import os
|
|
|
|
import gi
|
|
gi.require_version('Gtk', '3.0')
|
|
from gi.repository import Gtk
|
|
from gi.repository import Gio
|
|
|
|
list_gtk_icon = [
|
|
"gtk-about"
|
|
, "gtk-add"
|
|
, "gtk-apply"
|
|
, "gtk-bold"
|
|
, "gtk-cancel"
|
|
, "gtk-caps-lock-warning"
|
|
, "gtk-cdrom"
|
|
, "gtk-clear"
|
|
, "gtk-close"
|
|
, "gtk-color-picker"
|
|
, "gtk-convert"
|
|
, "gtk-connect"
|
|
, "gtk-copy"
|
|
, "gtk-cut"
|
|
, "gtk-delete"
|
|
, "gtk-dialog-authentication"
|
|
, "gtk-dialog-error"
|
|
, "gtk-dialog-info"
|
|
, "gtk-dialog-question"
|
|
, "gtk-dialog-warning"
|
|
, "gtk-directory"
|
|
, "gtk-discard"
|
|
, "gtk-disconnect"
|
|
, "gtk-dnd"
|
|
, "gtk-dnd-multiple"
|
|
, "gtk-edit"
|
|
, "gtk-execute"
|
|
, "gtk-file"
|
|
, "gtk-find"
|
|
, "gtk-find-and-replace"
|
|
, "gtk-floppy"
|
|
, "gtk-fullscreen"
|
|
, "gtk-goto-bottom"
|
|
, "gtk-goto-first"
|
|
, "gtk-goto-last"
|
|
, "gtk-goto-top"
|
|
, "gtk-go-back"
|
|
, "gtk-go-down"
|
|
, "gtk-go-forward"
|
|
, "gtk-go-up"
|
|
, "gtk-harddisk"
|
|
, "gtk-help"
|
|
, "gtk-home"
|
|
, "gtk-indent"
|
|
, "gtk-index"
|
|
, "gtk-info"
|
|
, "gtk-italic"
|
|
, "gtk-jump-to"
|
|
, "gtk-justify-center"
|
|
, "gtk-justify-fill"
|
|
, "gtk-justify-left"
|
|
, "gtk-leave-fullscreen"
|
|
, "gtk-media-forward"
|
|
, "gtk-media-next"
|
|
, "gtk-media-pause"
|
|
, "gtk-media-play"
|
|
, "gtk-media-previous"
|
|
, "gtk-media-record"
|
|
, "gtk-media-rewind"
|
|
, "gtk-media-stop"
|
|
, "gtk-missing-image"
|
|
, "gtk-network"
|
|
, "gtk-new"
|
|
, "gtk-no"
|
|
, "gtk-ok"
|
|
, "gtk-open"
|
|
, "gtk-orientation-landscape"
|
|
, "gtk-orientation-portrait"
|
|
, "gtk-orientation-reverse-landscape"
|
|
, "gtk-orientation-reverse-portrait"
|
|
, "gtk-page-setup"
|
|
, "gtk-paste"
|
|
, "gtk-preferences"
|
|
, "gtk-print"
|
|
, "gtk-print-error"
|
|
, "gtk-print-paused"
|
|
, "gtk-print-preview"
|
|
, "gtk-print-report"
|
|
, "gtk-print-warning"
|
|
, "gtk-properties"
|
|
, "gtk-quit"
|
|
, "gtk-redo"
|
|
, "gtk-refresh"
|
|
, "gtk-remove"
|
|
, "gtk-revert-to-saved"
|
|
, "gtk-save"
|
|
, "gtk-save-as"
|
|
, "gtk-select-all"
|
|
, "gtk-select-color"
|
|
, "gtk-select-font"
|
|
, "gtk-sort-ascending"
|
|
, "gtk-sort-descending"
|
|
, "gtk-spell-check"
|
|
, "gtk-stop"
|
|
, "gtk-strikethrough"
|
|
, "gtk-undelete"
|
|
, "gtk-underline"
|
|
, "gtk-undo"
|
|
, "gtk-unindent"
|
|
, "gtk-yes"
|
|
, "gtk-zoom-100"
|
|
, "gtk-zoom-fit"
|
|
, "gtk-zoom-in"
|
|
, "gtk-zoom-out"
|
|
]
|
|
list_xdg_icon = [
|
|
"address-book-new"
|
|
, "application-exit"
|
|
, "appointment-new"
|
|
, "call-start"
|
|
, "call-stop"
|
|
, "contact-new"
|
|
, "document-new"
|
|
, "document-open"
|
|
, "document-open-recent"
|
|
, "document-page-setup"
|
|
, "document-print"
|
|
, "document-print-preview"
|
|
, "document-properties"
|
|
, "document-revert"
|
|
, "document-save"
|
|
, "document-save-as"
|
|
, "document-send"
|
|
, "edit-clear"
|
|
, "edit-copy"
|
|
, "edit-cut"
|
|
, "edit-delete"
|
|
, "edit-find"
|
|
, "edit-find-replace"
|
|
, "edit-paste"
|
|
, "edit-redo"
|
|
, "edit-select-all"
|
|
, "edit-undo"
|
|
, "folder-new"
|
|
, "format-indent-less"
|
|
, "format-indent-more"
|
|
, "format-justify-center"
|
|
, "format-justify-fill"
|
|
, "format-justify-left"
|
|
, "format-justify-right"
|
|
, "format-text-direction-ltr"
|
|
, "format-text-direction-rtl"
|
|
, "format-text-bold"
|
|
, "format-text-italic"
|
|
, "format-text-underline"
|
|
, "format-text-strikethrough"
|
|
, "go-bottom"
|
|
, "go-down"
|
|
, "go-first"
|
|
, "go-home"
|
|
, "go-jump"
|
|
, "go-last"
|
|
, "go-next"
|
|
, "go-previous"
|
|
, "go-top"
|
|
, "go-up"
|
|
, "help-about"
|
|
, "help-contents"
|
|
, "help-faq"
|
|
, "insert-image"
|
|
, "insert-link"
|
|
, "insert-object"
|
|
, "insert-text"
|
|
, "list-add"
|
|
, "list-remove"
|
|
, "mail-forward"
|
|
, "mail-mark-important"
|
|
, "mail-mark-junk"
|
|
, "mail-mark-notjunk"
|
|
, "mail-mark-read"
|
|
, "mail-mark-unread"
|
|
, "mail-message-new"
|
|
, "mail-reply-all"
|
|
, "mail-reply-sender"
|
|
, "mail-send"
|
|
, "mail-send-receive"
|
|
, "media-eject"
|
|
, "media-playback-pause"
|
|
, "media-playback-start"
|
|
, "media-playback-stop"
|
|
, "media-record"
|
|
, "media-seek-backward"
|
|
, "media-seek-forward"
|
|
, "media-skip-backward"
|
|
, "media-skip-forward"
|
|
, "object-flip-horizontal"
|
|
, "object-flip-vertical"
|
|
, "object-rotate-left"
|
|
, "object-rotate-right"
|
|
, "process-stop"
|
|
, "system-lock-screen"
|
|
, "system-log-out"
|
|
, "system-run"
|
|
, "system-search"
|
|
, "system-reboot"
|
|
, "system-shutdown"
|
|
, "tools-check-spelling"
|
|
, "view-fullscreen"
|
|
, "view-refresh"
|
|
, "view-restore"
|
|
, "view-sort-ascending"
|
|
, "view-sort-descending"
|
|
, "window-close"
|
|
, "window-new"
|
|
, "zoom-fit-best"
|
|
, "zoom-in"
|
|
, "zoom-original"
|
|
, "zoom-out"
|
|
, "process-working"
|
|
, "accessories-calculator"
|
|
, "accessories-character-map"
|
|
, "accessories-dictionary"
|
|
, "accessories-text-editor"
|
|
, "help-browser"
|
|
, "multimedia-volume-control"
|
|
, "preferences-desktop-accessibility"
|
|
, "preferences-desktop-font"
|
|
, "preferences-desktop-keyboard"
|
|
, "preferences-desktop-locale"
|
|
, "preferences-desktop-multimedia"
|
|
, "preferences-desktop-screensaver"
|
|
, "preferences-desktop-theme"
|
|
, "preferences-desktop-wallpaper"
|
|
, "system-file-manager"
|
|
, "system-software-install"
|
|
, "system-software-update"
|
|
, "utilities-system-monitor"
|
|
, "utilities-terminal"
|
|
, "applications-accessories"
|
|
, "applications-development"
|
|
, "applications-engineering"
|
|
, "applications-games"
|
|
, "applications-graphics"
|
|
, "applications-internet"
|
|
, "applications-multimedia"
|
|
, "applications-office"
|
|
, "applications-other"
|
|
, "applications-science"
|
|
, "applications-system"
|
|
, "applications-utilities"
|
|
, "preferences-desktop"
|
|
, "preferences-desktop-peripherals"
|
|
, "preferences-desktop-personal"
|
|
, "preferences-other"
|
|
, "preferences-system"
|
|
, "preferences-system-network"
|
|
, "system-help"
|
|
, "audio-card"
|
|
, "audio-input-microphone"
|
|
, "battery"
|
|
, "camera-photo"
|
|
, "camera-video"
|
|
, "camera-web"
|
|
, "computer"
|
|
, "drive-harddisk"
|
|
, "drive-optical"
|
|
, "drive-removable-media"
|
|
, "input-gaming"
|
|
, "input-keyboard"
|
|
, "input-mouse"
|
|
, "input-tablet"
|
|
, "media-flash"
|
|
, "media-floppy"
|
|
, "media-optical"
|
|
, "media-tape"
|
|
, "modem"
|
|
, "multimedia-player"
|
|
, "network-wired"
|
|
, "network-wireless"
|
|
, "pda"
|
|
, "phone"
|
|
, "printer"
|
|
, "scanner"
|
|
, "video-display"
|
|
, "emblem-default"
|
|
, "emblem-documents"
|
|
, "emblem-downloads"
|
|
, "emblem-favorite"
|
|
, "emblem-important"
|
|
, "emblem-mail"
|
|
, "emblem-photos"
|
|
, "emblem-readonly"
|
|
, "emblem-shared"
|
|
, "emblem-symbolic-link"
|
|
, "emblem-synchronized"
|
|
, "emblem-system"
|
|
, "emblem-unreadable"
|
|
, "face-angel"
|
|
, "face-angry"
|
|
, "face-cool"
|
|
, "face-crying"
|
|
, "face-devilish"
|
|
, "face-embarrassed"
|
|
, "face-kiss"
|
|
, "face-laugh"
|
|
, "face-monkey"
|
|
, "face-plain"
|
|
, "face-raspberry"
|
|
, "face-sad"
|
|
, "face-sick"
|
|
, "face-smile"
|
|
, "face-smile-big"
|
|
, "face-smirk"
|
|
, "face-surprise"
|
|
, "face-tired"
|
|
, "face-uncertain"
|
|
, "face-wink"
|
|
, "face-worried"
|
|
, "flag-aa"
|
|
#TODO more flags
|
|
, "application-x-executable"
|
|
, "audio-x-generic"
|
|
, "font-x-generic"
|
|
, "image-x-generic"
|
|
, "package-x-generic"
|
|
, "text-html"
|
|
, "text-x-generic"
|
|
, "text-x-generic-template"
|
|
, "text-x-script"
|
|
, "video-x-generic"
|
|
, "x-office-address-book"
|
|
, "x-office-calendar"
|
|
, "x-office-document"
|
|
, "x-office-presentation"
|
|
, "x-office-spreadsheet"
|
|
, "folder"
|
|
, "folder-remote"
|
|
, "network-server"
|
|
, "network-workgroup"
|
|
, "start-here"
|
|
, "user-bookmarks"
|
|
, "user-desktop"
|
|
, "user-home"
|
|
, "user-trash"
|
|
, "appointment-missed"
|
|
, "appointment-soon"
|
|
, "audio-volume-high"
|
|
, "audio-volume-low"
|
|
, "audio-volume-medium"
|
|
, "audio-volume-muted"
|
|
, "battery-caution"
|
|
, "battery-low"
|
|
, "dialog-error"
|
|
, "dialog-information"
|
|
, "dialog-password"
|
|
, "dialog-question"
|
|
, "dialog-warning"
|
|
, "folder-drag-accept"
|
|
, "folder-open"
|
|
, "folder-visiting"
|
|
, "image-loading"
|
|
, "image-missing"
|
|
, "mail-attachment"
|
|
, "mail-unread"
|
|
, "mail-read"
|
|
, "mail-replied"
|
|
, "mail-signed"
|
|
, "mail-signed-verified"
|
|
, "media-playlist-repeat"
|
|
, "media-playlist-shuffle"
|
|
, "network-error"
|
|
, "network-idle"
|
|
, "network-offline"
|
|
, "network-receive"
|
|
, "network-transmit"
|
|
, "network-transmit-receive"
|
|
, "printer-error"
|
|
, "printer-printing"
|
|
, "security-high"
|
|
, "security-medium"
|
|
, "security-low"
|
|
, "software-update-available"
|
|
, "software-update-urgent"
|
|
, "sync-error"
|
|
, "sync-synchronizing"
|
|
, "task-due"
|
|
, "task-past-due"
|
|
, "user-available"
|
|
, "user-away"
|
|
, "user-idle"
|
|
, "user-offline"
|
|
, "user-trash-full"
|
|
, "weather-clear"
|
|
, "weather-clear-night"
|
|
, "weather-few-clouds"
|
|
, "weather-few-clouds-night"
|
|
, "weather-fog"
|
|
, "weather-overcast"
|
|
, "weather-severe-alert"
|
|
, "weather-showers"
|
|
, "weather-showers-scattered"
|
|
, "weather-snow"
|
|
, "weather-storm"
|
|
]
|
|
|
|
theme = Gtk.IconTheme.get_default()
|
|
|
|
list_icons = theme.list_icons()
|
|
|
|
for icon in list_icons:
|
|
supported_size = theme.get_icon_sizes(icon)
|
|
for size in supported_size:
|
|
lookup = theme.lookup_icon(icon, size, Gtk.IconLookupFlags.GENERIC_FALLBACK)
|
|
path = lookup.get_filename()
|
|
|
|
path_split = path.rsplit("/")
|
|
theme_name = path_split[4]
|
|
|
|
size_location = str(size)
|
|
|
|
print(path)
|
|
|
|
if theme_name == "gnome" or theme_name == "Adwaita":
|
|
size_location_list = path_split[5].rsplit("x")
|
|
size_location = size_location_list[0]
|
|
location = path_split[6]
|
|
file_name = path_split[7]
|
|
else:
|
|
size_location = path_split[6]
|
|
location = path_split[5]
|
|
if location == "symbolic":
|
|
size_location = ""
|
|
file_name = path_split[6]
|
|
else:
|
|
file_name = path_split[7]
|
|
|
|
print("icon: " + icon + ", size: %i" % size + ", path: " + path + ", theme:" + theme_name + ", location:" + location)
|
|
|
|
destination_prefix = "import"
|
|
|
|
# 1 folder by theme
|
|
destination_path = os.path.join(destination_prefix,"imported-" + theme_name,size_location)
|
|
|
|
if theme_name != "Lubuntu":
|
|
if theme_name != "icons":
|
|
if theme_name != "hicolor":
|
|
if theme_name != "share":
|
|
icon_to_copy = Gio.File.new_for_path(path)
|
|
destination = Gio.File.new_for_path(os.path.join(destination_path,file_name))
|
|
|
|
if os.path.exists(destination_path) == False:
|
|
os.makedirs(destination_path)
|
|
|
|
if os.path.exists(destination.get_path()) == False:
|
|
if os.path.islink(destination.get_path()) == False:
|
|
icon_to_copy.copy(destination, Gio.FileCopyFlags.NOFOLLOW_SYMLINKS)
|