diff --git a/cola/gitcfg.py b/cola/gitcfg.py index b5b521d27..47553545d 100644 --- a/cola/gitcfg.py +++ b/cola/gitcfg.py @@ -413,3 +413,7 @@ def color(self, key, default): except Exception: r, g, b = struct.unpack(struct_layout, unhexlify(default)) return (r, g, b) + + def icon_style(self): + theme = self.get('cola.iconstyle', None) + return theme diff --git a/cola/icons.py b/cola/icons.py index c8aa349ac..3a0bc10b1 100644 --- a/cola/icons.py +++ b/cola/icons.py @@ -6,6 +6,7 @@ from qtpy import QtGui +from . import gitcfg from . import qtcompat from . import resources from .compat import ustr @@ -31,9 +32,14 @@ '.cxx': 'file-code.svg', } +cfg = gitcfg.current() +style = cfg.icon_style() def install(): - icon_dir = resources.icon_dir() + if not style or style == "light": + icon_dir = resources.icon_dir() + else: + icon_dir = resources.icon_dir(style) qtcompat.add_search_path('icons', icon_dir) diff --git a/cola/resources.py b/cola/resources.py index add9fbb25..796685092 100644 --- a/cola/resources.py +++ b/cola/resources.py @@ -57,9 +57,16 @@ def share(*args): return prefix('share', 'git-cola', *args) -def icon_dir(): +def icon_dir(style=None): """Return the path to the style dir within the cola install tree.""" - return share('icons') + if style: + style_dir = share('icons', style) + if os.path.isdir(style_dir): + return style_dir + else: + return share('icons') + else: + return share('icons') def config_home(*args): diff --git a/setup.py b/setup.py index 2cbcd8bce..d4c7a8f29 100755 --- a/setup.py +++ b/setup.py @@ -67,6 +67,8 @@ def cola_data_files(vendor_libs): _app_path('share/git-cola/bin', '*'), _app_path('share/git-cola/icons', '*.png'), _app_path('share/git-cola/icons', '*.svg'), + _app_path('share/git-cola/icons/dark', '*.png'), + _app_path('share/git-cola/icons/dark', '*.svg'), _app_path('share/appdata', '*.xml'), _app_path('share/applications', '*.desktop'), _app_path('share/doc/git-cola', '*.rst'), diff --git a/share/doc/git-cola/git-cola.rst b/share/doc/git-cola/git-cola.rst index 22b75d933..d1728c3f1 100644 --- a/share/doc/git-cola/git-cola.rst +++ b/share/doc/git-cola/git-cola.rst @@ -416,6 +416,13 @@ cola.fontdiff ------------- Specifies the font to use for `git cola`'s diff display. +cola.iconstyle +-------------- +Specifies the icon style to use throughout `git-cola`. The style specified +must be the name of the subdirectory containing the icons, which in turn must be +placed in the main "icons" directory. If unset, or set to "light", then the +default style will be used. + cola.inotify ------------ Set to `false` to disable file system change monitoring. Defaults to `true`, diff --git a/share/git-cola/icons/dark/README.md b/share/git-cola/icons/dark/README.md new file mode 100644 index 000000000..59b8a22d7 --- /dev/null +++ b/share/git-cola/icons/dark/README.md @@ -0,0 +1,118 @@ +Git Cola Dark Icons +-------------- +All icons in this directory, besides color inversion, +are unmodified original ones. All kudos and copyrights go to their +respective authors ( see original readme bellow ). + +2017 Filip Danilovic + +-------------------- + +Git Cola Icons +-------------- + +The following icons are based on the based on the original .png icon designs +for git-cola's File Browser by Uri Okrent. + +staged.svg +modified.svg +partial.svg +upstream.svg + +Copyright (C) 2011 Uri Okrent +Copyright (C) 2015-2016 David Aguilar and contributors + +License: MIT + + +Git Logo +-------- +Git Logo by Jason Long is licensed under the +Creative Commons Attribution 3.0 Unported License. +http://git-scm.com/downloads/logos + +git-cola.svg is based on the original Git Logo. + + +Octicons +-------- +The following files are from Github's +[octicons](https://github.com/github/octicons) icon set: + +check.svg +circle-slash.svg +desktop-download.svg +diff.svg +ellipsis.svg +eye.svg +file-binary.svg +file-code.svg +file-directory.svg +file-media.svg +file-text.svg +file-zip.svg +fold.svg +gear.svg +git-branch.svg +git-compare.svg +git-merge.svg +link-external.svg +pencil.svg +plus.svg +primitive-dot.svg +question.svg +question-plain.svg +repo-pull.svg +repo-push.svg +repo.svg +screen-full.svg +search.svg +star.svg +sync.svg +tag.svg +telescope.svg +trashcan.svg +unfold.svg +x.svg + +Copyright (C) 2012-2015 GitHub +License: [MIT](http://choosealicense.com/licenses/mit/) + + +Gnome High Contrast Icons +------------------------- +The following files are from the Gnome High Contrast Icon set: + +zoom-fit-best.svg +zoom-in.svg +zoom-out.svg + +License: LGPL v2+ + + +Flaticon.com Icons +------------------ + +The following files are designed by Freepik from http://www.flaticons.com/ + +edit-undo.svg + +License: [Flatpik Basic License](http://cdn.flaticon.com/license/license.pdf) + + +The following files are by Linh Pham from http://flaticons.com/ + +edit-copy.svg + +License: [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/) + + +Google Icons +------------ + +The following files are by Google: + +edit-select-all.svg +file-download.svg + +License: [Creative Commons BY 3.0](http://creativecommons.org/licenses/by/3.0/) diff --git a/share/git-cola/icons/dark/check.svg b/share/git-cola/icons/dark/check.svg new file mode 100644 index 000000000..ef26d17fd --- /dev/null +++ b/share/git-cola/icons/dark/check.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/circle-slash-red.svg b/share/git-cola/icons/dark/circle-slash-red.svg new file mode 100644 index 000000000..3298a03e8 --- /dev/null +++ b/share/git-cola/icons/dark/circle-slash-red.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/circle-slash.svg b/share/git-cola/icons/dark/circle-slash.svg new file mode 100644 index 000000000..26d46d144 --- /dev/null +++ b/share/git-cola/icons/dark/circle-slash.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/desktop-download.svg b/share/git-cola/icons/dark/desktop-download.svg new file mode 100644 index 000000000..5dcbcc72b --- /dev/null +++ b/share/git-cola/icons/dark/desktop-download.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/diff.svg b/share/git-cola/icons/dark/diff.svg new file mode 100644 index 000000000..1e68c7df8 --- /dev/null +++ b/share/git-cola/icons/dark/diff.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/edit-copy.svg b/share/git-cola/icons/dark/edit-copy.svg new file mode 100644 index 000000000..a18c92d9a --- /dev/null +++ b/share/git-cola/icons/dark/edit-copy.svg @@ -0,0 +1,55 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/edit-select-all.svg b/share/git-cola/icons/dark/edit-select-all.svg new file mode 100644 index 000000000..b9684160f --- /dev/null +++ b/share/git-cola/icons/dark/edit-select-all.svg @@ -0,0 +1,82 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/edit-undo.svg b/share/git-cola/icons/dark/edit-undo.svg new file mode 100644 index 000000000..71b1d60f6 --- /dev/null +++ b/share/git-cola/icons/dark/edit-undo.svg @@ -0,0 +1,82 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/ellipsis.svg b/share/git-cola/icons/dark/ellipsis.svg new file mode 100644 index 000000000..4a55b247b --- /dev/null +++ b/share/git-cola/icons/dark/ellipsis.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/eye.svg b/share/git-cola/icons/dark/eye.svg new file mode 100644 index 000000000..b92029e6f --- /dev/null +++ b/share/git-cola/icons/dark/eye.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-binary.svg b/share/git-cola/icons/dark/file-binary.svg new file mode 100644 index 000000000..21076ca9c --- /dev/null +++ b/share/git-cola/icons/dark/file-binary.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-code.svg b/share/git-cola/icons/dark/file-code.svg new file mode 100644 index 000000000..f7cf3bf9f --- /dev/null +++ b/share/git-cola/icons/dark/file-code.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-directory.svg b/share/git-cola/icons/dark/file-directory.svg new file mode 100644 index 000000000..045631005 --- /dev/null +++ b/share/git-cola/icons/dark/file-directory.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-download.svg b/share/git-cola/icons/dark/file-download.svg new file mode 100644 index 000000000..9bf652055 --- /dev/null +++ b/share/git-cola/icons/dark/file-download.svg @@ -0,0 +1,52 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/file-media.svg b/share/git-cola/icons/dark/file-media.svg new file mode 100644 index 000000000..693aa0e14 --- /dev/null +++ b/share/git-cola/icons/dark/file-media.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-text.svg b/share/git-cola/icons/dark/file-text.svg new file mode 100644 index 000000000..87480161c --- /dev/null +++ b/share/git-cola/icons/dark/file-text.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/file-zip.svg b/share/git-cola/icons/dark/file-zip.svg new file mode 100644 index 000000000..b6db024b8 --- /dev/null +++ b/share/git-cola/icons/dark/file-zip.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/fold.svg b/share/git-cola/icons/dark/fold.svg new file mode 100644 index 000000000..1eb7c0195 --- /dev/null +++ b/share/git-cola/icons/dark/fold.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/folder-new.svg b/share/git-cola/icons/dark/folder-new.svg new file mode 100644 index 000000000..c571898d6 --- /dev/null +++ b/share/git-cola/icons/dark/folder-new.svg @@ -0,0 +1,87 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/folder.svg b/share/git-cola/icons/dark/folder.svg new file mode 100644 index 000000000..f1aaf2dd6 --- /dev/null +++ b/share/git-cola/icons/dark/folder.svg @@ -0,0 +1,82 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/share/git-cola/icons/dark/gear.svg b/share/git-cola/icons/dark/gear.svg new file mode 100644 index 000000000..19e5e289b --- /dev/null +++ b/share/git-cola/icons/dark/gear.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/git-branch.svg b/share/git-cola/icons/dark/git-branch.svg new file mode 100644 index 000000000..4c37daac6 --- /dev/null +++ b/share/git-cola/icons/dark/git-branch.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/git-cola.ico b/share/git-cola/icons/dark/git-cola.ico new file mode 100644 index 000000000..4c1fc34e9 Binary files /dev/null and b/share/git-cola/icons/dark/git-cola.ico differ diff --git a/share/git-cola/icons/dark/git-cola.svg b/share/git-cola/icons/dark/git-cola.svg new file mode 100644 index 000000000..652211e82 --- /dev/null +++ b/share/git-cola/icons/dark/git-cola.svg @@ -0,0 +1,71 @@ + + + +image/svg+xml + + + + + diff --git a/share/git-cola/icons/dark/git-compare.svg b/share/git-cola/icons/dark/git-compare.svg new file mode 100644 index 000000000..ccc9b88c4 --- /dev/null +++ b/share/git-cola/icons/dark/git-compare.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/git-merge.svg b/share/git-cola/icons/dark/git-merge.svg new file mode 100644 index 000000000..84ea072a7 --- /dev/null +++ b/share/git-cola/icons/dark/git-merge.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/link-external.svg b/share/git-cola/icons/dark/link-external.svg new file mode 100644 index 000000000..69e773900 --- /dev/null +++ b/share/git-cola/icons/dark/link-external.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/modified.svg b/share/git-cola/icons/dark/modified.svg new file mode 100644 index 000000000..af617b5d1 --- /dev/null +++ b/share/git-cola/icons/dark/modified.svg @@ -0,0 +1,62 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/share/git-cola/icons/dark/partial.svg b/share/git-cola/icons/dark/partial.svg new file mode 100644 index 000000000..b3483afbb --- /dev/null +++ b/share/git-cola/icons/dark/partial.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/share/git-cola/icons/dark/pencil.svg b/share/git-cola/icons/dark/pencil.svg new file mode 100644 index 000000000..b9031dc75 --- /dev/null +++ b/share/git-cola/icons/dark/pencil.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/plus.svg b/share/git-cola/icons/dark/plus.svg new file mode 100644 index 000000000..332beba8c --- /dev/null +++ b/share/git-cola/icons/dark/plus.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/primitive-dot.svg b/share/git-cola/icons/dark/primitive-dot.svg new file mode 100644 index 000000000..571875e16 --- /dev/null +++ b/share/git-cola/icons/dark/primitive-dot.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/question-plain.svg b/share/git-cola/icons/dark/question-plain.svg new file mode 100644 index 000000000..d4dd9c3aa --- /dev/null +++ b/share/git-cola/icons/dark/question-plain.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/share/git-cola/icons/dark/question.svg b/share/git-cola/icons/dark/question.svg new file mode 100644 index 000000000..7c0b42f23 --- /dev/null +++ b/share/git-cola/icons/dark/question.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/repo-pull.svg b/share/git-cola/icons/dark/repo-pull.svg new file mode 100644 index 000000000..566bc96df --- /dev/null +++ b/share/git-cola/icons/dark/repo-pull.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/repo-push.svg b/share/git-cola/icons/dark/repo-push.svg new file mode 100644 index 000000000..9900d905d --- /dev/null +++ b/share/git-cola/icons/dark/repo-push.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/repo.svg b/share/git-cola/icons/dark/repo.svg new file mode 100644 index 000000000..f4b925bf1 --- /dev/null +++ b/share/git-cola/icons/dark/repo.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/screen-full.svg b/share/git-cola/icons/dark/screen-full.svg new file mode 100644 index 000000000..ed798665c --- /dev/null +++ b/share/git-cola/icons/dark/screen-full.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/search.svg b/share/git-cola/icons/dark/search.svg new file mode 100644 index 000000000..00d4db8b7 --- /dev/null +++ b/share/git-cola/icons/dark/search.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/staged.svg b/share/git-cola/icons/dark/staged.svg new file mode 100644 index 000000000..7e56e6c12 --- /dev/null +++ b/share/git-cola/icons/dark/staged.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/share/git-cola/icons/dark/star.svg b/share/git-cola/icons/dark/star.svg new file mode 100644 index 000000000..27c86cd3a --- /dev/null +++ b/share/git-cola/icons/dark/star.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/sync.svg b/share/git-cola/icons/dark/sync.svg new file mode 100644 index 000000000..2158a74ce --- /dev/null +++ b/share/git-cola/icons/dark/sync.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/tag.svg b/share/git-cola/icons/dark/tag.svg new file mode 100644 index 000000000..c6c92ee5a --- /dev/null +++ b/share/git-cola/icons/dark/tag.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/telescope.svg b/share/git-cola/icons/dark/telescope.svg new file mode 100644 index 000000000..311b2c118 --- /dev/null +++ b/share/git-cola/icons/dark/telescope.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/trashcan.svg b/share/git-cola/icons/dark/trashcan.svg new file mode 100644 index 000000000..7be3092be --- /dev/null +++ b/share/git-cola/icons/dark/trashcan.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/unfold.svg b/share/git-cola/icons/dark/unfold.svg new file mode 100644 index 000000000..6b8958399 --- /dev/null +++ b/share/git-cola/icons/dark/unfold.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/upstream.svg b/share/git-cola/icons/dark/upstream.svg new file mode 100644 index 000000000..c9bdaaf0a --- /dev/null +++ b/share/git-cola/icons/dark/upstream.svg @@ -0,0 +1,61 @@ + + + + + + + + + + image/svg+xml + + + + + + + diff --git a/share/git-cola/icons/dark/x.svg b/share/git-cola/icons/dark/x.svg new file mode 100644 index 000000000..85e672a64 --- /dev/null +++ b/share/git-cola/icons/dark/x.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/share/git-cola/icons/dark/zoom-fit-best.svg b/share/git-cola/icons/dark/zoom-fit-best.svg new file mode 100644 index 000000000..401db16c3 --- /dev/null +++ b/share/git-cola/icons/dark/zoom-fit-best.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Zoom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/git-cola/icons/dark/zoom-in.svg b/share/git-cola/icons/dark/zoom-in.svg new file mode 100644 index 000000000..4420beb05 --- /dev/null +++ b/share/git-cola/icons/dark/zoom-in.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Zoom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/share/git-cola/icons/dark/zoom-out.svg b/share/git-cola/icons/dark/zoom-out.svg new file mode 100644 index 000000000..e5d20844d --- /dev/null +++ b/share/git-cola/icons/dark/zoom-out.svg @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Zoom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +