diff options
Diffstat (limited to 'overrides')
-rw-r--r-- | overrides/default.nix | 61 | ||||
-rw-r--r-- | overrides/gajim/config.patch | 80 |
2 files changed, 122 insertions, 19 deletions
diff --git a/overrides/default.nix b/overrides/default.nix index 529629c2..cf6be1b3 100644 --- a/overrides/default.nix +++ b/overrides/default.nix @@ -21,26 +21,49 @@ let uqm.use3DOVideos = true; }; - # derivation overrides - drvOverrides = let - tkabberRev = 2010; - in mapOverride overrideDerivation argOverrides { - tkabber = o: { - name = "tkabber-1.0pre"; - src = everything.fetchsvn { - url = "http://svn.xmpp.ru/repos/tkabber/trunk/tkabber"; - rev = tkabberRev; - sha256 = "0ixvp3frpx7zhb7jyi0w463n78kafdzgmspkm2jhh6x28rimj0lz"; - }; - }; + gajimGtkTheme = everything.writeText "gajim.gtkrc" '' + style "default" { + fg[NORMAL] = "#d5faff" + fg[ACTIVE] = "#fffeff" + fg[SELECTED] = "#fffeff" + fg[INSENSITIVE] = "#85aaaf" + fg[PRELIGHT] = "#d7f2ff" - tkabber_plugins = o: { - name = "tkabber-plugins-1.0pre"; - src = everything.fetchsvn { - url = "http://svn.xmpp.ru/repos/tkabber/trunk/tkabber-plugins"; - rev = tkabberRev; - sha256 = "181jxd7iwpcl7wllwciqshzznahdw69fy7r604gj4m2kq6qmynqf"; - }; + text[NORMAL] = "#fffefe" + text[ACTIVE] = "#fffeff" + text[SELECTED] = "#fffeff" + text[INSENSITIVE] = "#85aaaf" + text[PRELIGHT] = "#d7f2ff" + + bg[NORMAL] = "#0f4866" + bg[ACTIVE] = "#0c232e" + bg[SELECTED] = "#005a56" + bg[INSENSITIVE] = "#103040" + bg[PRELIGHT] = "#1d5875" + + base[NORMAL] = "#0c232e" + base[ACTIVE] = "#0f4864" + base[SELECTED] = "#005a56" + base[INSENSITIVE] = "#103040" + base[PRELIGHT] = "#1d5875" + } + + class "GtkWidget" style "default" + ''; + + gajimPatch = everything.substituteAll { + src = ./gajim/config.patch; + nix_config = ../cfgfiles/gajim.config; + }; + + # derivation overrides + drvOverrides = mapOverride overrideDerivation argOverrides { + gajim = o: { + patches = o.patches ++ singleton gajimPatch; + postPatch = o.postPatch + '' + sed -i -e '/^export/i export GTK2_RC_FILES="${gajimGtkTheme}"' \ + scripts/gajim.in + ''; }; }; diff --git a/overrides/gajim/config.patch b/overrides/gajim/config.patch new file mode 100644 index 00000000..ef40284f --- /dev/null +++ b/overrides/gajim/config.patch @@ -0,0 +1,80 @@ +diff --git a/src/common/optparser.py b/src/common/optparser.py +index f84b18a..0078317 100644 +--- a/src/common/optparser.py ++++ b/src/common/optparser.py +@@ -30,6 +30,7 @@ import os + import sys + import locale + import re ++from itertools import chain + from time import time + from common import gajim + from common import helpers +@@ -46,19 +47,25 @@ class OptionsParser: + + def read(self): + try: +- fd = open(self.__filename) ++ cfg = nixfd = open("@nix_config@", 'r') + except Exception: + if os.path.exists(self.__filename): + #we talk about a file + print _('Error: cannot open %s for reading') % self.__filename + return False + ++ try: ++ fd = open(self.__filename) ++ cfg = chain(cfg, fd) ++ except Exception: ++ fd = None ++ + new_version = gajim.config.get('version') + new_version = new_version.split('-', 1)[0] + seen = set() + regex = re.compile(r"(?P<optname>[^.]+)(?:(?:\.(?P<key>.+))?\.(?P<subname>[^.]+))?\s=\s(?P<value>.*)") + +- for line in fd: ++ for line in cfg: + try: + line = line.decode('utf-8') + except UnicodeDecodeError: +@@ -79,10 +86,13 @@ class OptionsParser: + self.update_config(old_version, new_version) + self.old_values = {} # clean mem + +- fd.close() ++ if fd is not None: ++ fd.close() ++ ++ nixfd.close() + return True + +- def write_line(self, fd, opt, parents, value): ++ def write_line(self, (fd, nixcfg), opt, parents, value): + if value is None: + return + value = value[1] +@@ -102,17 +112,21 @@ class OptionsParser: + p = p.encode('utf-8') + s += p + '.' + s += opt +- fd.write(s + ' = ' + value + '\n') ++ line = s + ' = ' + value + '\n' ++ if not nixcfg.startswith(line) and not ('\n' + line) in nixcfg: ++ fd.write(line) + + def write(self): + (base_dir, filename) = os.path.split(self.__filename) + self.__tempfile = os.path.join(base_dir, '.' + filename) ++ + try: ++ nixcfg = open("@nix_config@", 'r').read() + f = open(self.__tempfile, 'w') + except IOError, e: + return str(e) + try: +- gajim.config.foreach(self.write_line, f) ++ gajim.config.foreach(self.write_line, (f, nixcfg)) + except IOError, e: + return str(e) + f.flush() |