Add extensions for gnome-base/gnome-shell from the gnome overlay.
authorAlexandre Rostovtsev <tetromino@gentoo.org>
Sun, 6 Nov 2011 01:42:59 +0000 (01:42 +0000)
committerAlexandre Rostovtsev <tetromino@gentoo.org>
Sun, 6 Nov 2011 01:42:59 +0000 (01:42 +0000)
Package-Manager: portage-2.2.0_alpha72/cvs/Linux x86_64

gnome-extra/gnome-shell-extensions/ChangeLog [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/Manifest [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-gnome-3.2.patch [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-popup-menus.patch [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-gnome-3.2.1.patch [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-CSS.patch [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-enable-disable.patch [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/gnome-shell-extensions-3.2.0-r2.ebuild [new file with mode: 0644]
gnome-extra/gnome-shell-extensions/metadata.xml [new file with mode: 0644]

diff --git a/gnome-extra/gnome-shell-extensions/ChangeLog b/gnome-extra/gnome-shell-extensions/ChangeLog
new file mode 100644 (file)
index 0000000..655392e
--- /dev/null
@@ -0,0 +1,16 @@
+# ChangeLog for gnome-extra/gnome-shell-extensions
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/gnome-shell-extensions/ChangeLog,v 1.1 2011/11/06 01:42:59 tetromino Exp $
+
+*gnome-shell-extensions-3.2.0-r2 (06 Nov 2011)
+
+  06 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org>
+  +gnome-shell-extensions-3.2.0-r2.ebuild,
+  +files/gnome-shell-extensions-3.2.0-dock-gnome-3.2.patch,
+  +files/gnome-shell-extensions-3.2.0-dock-popup-menus.patch,
+  +files/gnome-shell-extensions-3.2.0-gnome-3.2.1.patch,
+  +files/gnome-shell-extensions-3.2.0-systemMonitor-CSS.patch,
+  +files/gnome-shell-extensions-3.2.0-systemMonitor-enable-disable.patch,
+  +metadata.xml:
+  Add extensions for gnome-base/gnome-shell from the gnome overlay.
+
diff --git a/gnome-extra/gnome-shell-extensions/Manifest b/gnome-extra/gnome-shell-extensions/Manifest
new file mode 100644 (file)
index 0000000..7621ac2
--- /dev/null
@@ -0,0 +1,19 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX gnome-shell-extensions-3.2.0-dock-gnome-3.2.patch 1314 RMD160 3cce30f237aa1693a11a2504876fa70091520f1d SHA1 0f5eb14a6b6e8eb396d1b92e2b1bdaec6744989a SHA256 56fee61a739ce7e3f6531c01ae2aca56ee29eca889778de3feff1a74374a714a
+AUX gnome-shell-extensions-3.2.0-dock-popup-menus.patch 1383 RMD160 37b8f574ca908c69fa09719a2850e53b74a8dd7f SHA1 f78742c180eb53818430ad12bc6d5dc5cdb29676 SHA256 9f6d5e8bd0c3127065267a26392af828261cc6c8b6be65ee171fa2b6b1e9e233
+AUX gnome-shell-extensions-3.2.0-gnome-3.2.1.patch 1185 RMD160 d259ea2cf8745dbf839107f3b3837f2fb870ae2d SHA1 ff5f3d4da7ecf8785f687dec03bf31d376afab6c SHA256 f942f3392a83813e0ac234e29d59754dde6e4cf472f21fc759e3846b7f212e4f
+AUX gnome-shell-extensions-3.2.0-systemMonitor-CSS.patch 11707 RMD160 e5b73f585b271b0c5ff3a8c783aeed899844ee2b SHA1 9978de03f2e7d42c02bd22fddc0e8d2fd7bbb96f SHA256 22d28d73fb3469b7738270f5d16a57cb00ad2f93611ea12a0f4c949f1f8e878e
+AUX gnome-shell-extensions-3.2.0-systemMonitor-enable-disable.patch 1422 RMD160 307d8b62a5255e541670702557e9bf2c0d7b05d5 SHA1 8d79a5cb2e5a229c6653799dbe0bf7d46211e693 SHA256 76ac6bfcfa31d814b6d6efe103602d83d74d0ab9341db59afd373a103ad60957
+DIST gnome-shell-extensions-3.2.0.tar.xz 123724 RMD160 ab32152b0425c95a22e85e5b571ba76ed97968f9 SHA1 3db7b57b1d77e240701cf7dfd0e021dec2c0698b SHA256 dfbd5b7baed71219c6855c1b15c323b6e66a2163af8f9a1c2431d6ce90784f98
+EBUILD gnome-shell-extensions-3.2.0-r2.ebuild 2619 RMD160 0408a393bad7370b9f3734a85af646daed04b1bf SHA1 652645033df743995402e7e980065ed48423bcb3 SHA256 0da09946b727c247e6894f3e1be8b1a5fc189a255ffc0207533697c03a70171f
+MISC ChangeLog 796 RMD160 e3cedd06b18968e94278b95c5269246f339f1b03 SHA1 178b31c471f0556a9156fcd0ab2af8002b5297ef SHA256 27c9c742ec5fcf5d728fe79902a51f4dbe984eb8ba12f255c6d810f4e81513e4
+MISC metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e SHA1 38f78e9790bcd4382b4a49aa226aa6dda1d3a3d7 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iF4EAREIAAYFAk615igACgkQdjK8w9WeBnDIWwD/YmY1gah047wvV5jGIX7FwxNE
+YGnNuI912Sl+4ysxnJAA+gOjDdOnULRHUYAu4T88Q6KfTEzp30NNLM1zRsPack+G
+=wOE5
+-----END PGP SIGNATURE-----
diff --git a/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-gnome-3.2.patch b/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-gnome-3.2.patch
new file mode 100644 (file)
index 0000000..776c737
--- /dev/null
@@ -0,0 +1,43 @@
+From 66242aa76a5d59fb4659551575c1fbb42e50b8fb Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna@src.gnome.org>
+Date: Tue, 18 Oct 2011 10:19:50 +0200
+Subject: [PATCH 1/2] Make dock extension actually work with gnome-3.2
+
+Without this patch dock is invisible, but reacts on mouse clicks
+
+Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
+---
+ extensions/dock/extension.js |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/extensions/dock/extension.js b/extensions/dock/extension.js
+index 240f8a8..02c9650 100644
+--- a/extensions/dock/extension.js
++++ b/extensions/dock/extension.js
+@@ -304,7 +304,6 @@ Dock.prototype = {
+             this.actor.show();
+         }));
+         Main.layoutManager.addChrome(this.actor);
+-        this.actor.lower_bottom();
+ 
+         //hidden
+         this._settings.connect('changed::'+DOCK_POSITION_KEY, Lang.bind(this, function (){
+@@ -372,6 +371,8 @@ Dock.prototype = {
+ 
+         this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
+         this.actor.connect('enter-event', Lang.bind(this, this._showDock));
++
++        this._hideDock();
+     },
+ 
+     destroy: function() {
+@@ -861,4 +862,4 @@ function enable() {
+ function disable() {
+     dock.destroy();
+     dock = null;
+-}
+\ No newline at end of file
++}
+-- 
+1.7.7.2
+
diff --git a/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-popup-menus.patch b/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-dock-popup-menus.patch
new file mode 100644 (file)
index 0000000..e2cc380
--- /dev/null
@@ -0,0 +1,33 @@
+From 967aee7aad2accfb38d91ab56b6c5e91d86a2722 Mon Sep 17 00:00:00 2001
+From: Stefan 'psYchotic' Zwanenburg <stefanhetzwaantje@gmail.com>
+Date: Wed, 12 Oct 2011 01:16:18 +0000
+Subject: dock: Fix popup menus
+
+The dock popup menus weren't working because a signal had been renamed
+('popup' -> 'open-state-changed').
+
+https://bugzilla.gnome.org/show_bug.cgi?id=661484
+---
+diff --git a/extensions/dock/extension.js b/extensions/dock/extension.js
+index 47cd76f..240f8a8 100644
+--- a/extensions/dock/extension.js
++++ b/extensions/dock/extension.js
+@@ -682,7 +682,7 @@ DockIcon.prototype = {
+             this._menu.connect('activate-window', Lang.bind(this, function (menu, window) {
+                 this.activateWindow(window);
+             }));
+-            this._menu.connect('popup', Lang.bind(this, function (menu, isPoppedUp) {
++            this._menu.connect('open-state-changed', Lang.bind(this, function (menu, isPoppedUp) {
+                 if (!isPoppedUp){
+                     //Restore value of autohidedock
+                     this._dock._restoreHideDock();
+@@ -776,7 +776,6 @@ DockIconMenu.prototype = {
+         this._source = source;
+ 
+         this.connect('activate', Lang.bind(this, this._onActivate));
+-        this.connect('open-state-changed', Lang.bind(this, this._onOpenStateChanged));
+ 
+         this.actor.add_style_class_name('dock-menu');
+ 
+--
+cgit v0.9.0.2
diff --git a/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-gnome-3.2.1.patch b/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-gnome-3.2.1.patch
new file mode 100644 (file)
index 0000000..3d7b408
--- /dev/null
@@ -0,0 +1,29 @@
+Ensure that extensions are marked as compatible with gnome-shell-3.2
+(meaning 3.2.*), not just 3.2.0.
+
+diff --git a/extensions/alternate-tab/metadata.json.in b/extensions/alternate-tab/metadata.json.in
+index d811b54..8aa86e3 100644
+--- a/extensions/alternate-tab/metadata.json.in
++++ b/extensions/alternate-tab/metadata.json.in
+@@ -3,7 +3,7 @@
+ "name": "AlternateTab",
+ "description": "A replacement for Alt-Tab, allows to cycle between windows and does not group by application",
+ "original-authors": [  "jw@bargsten.org", "thomas.bouffon@gmail.com" ],
+-"shell-version": [ "@shell_current@" ],
++"shell-version": [ "@shell_current@", "3.2" ],
+ "localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
+diff --git a/extensions/dock/metadata.json.in b/extensions/dock/metadata.json.in
+index dce4a88..96237b4 100644
+--- a/extensions/dock/metadata.json.in
++++ b/extensions/dock/metadata.json.in
+@@ -3,7 +3,7 @@
+ "name": "Dock",
+ "description": "A dock for the GNOME Shell -- displays favorite and running applications",
+ "original-author": "tclaesson@gmail.com",
+-"shell-version": [ "@shell_current@" ],
++"shell-version": [ "@shell_current@", "3.2" ],
+ "localedir": "@LOCALEDIR@",
+ "url": "@url@"
+ }
diff --git a/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-CSS.patch b/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-CSS.patch
new file mode 100644 (file)
index 0000000..dd8822d
--- /dev/null
@@ -0,0 +1,316 @@
+From 4c5a36e4c0cbe38f2e26b6b3c8b02e88b4b939f7 Mon Sep 17 00:00:00 2001
+From: Jason Siefken <siefkenj@gmail.com>
+Date: Tue, 11 Oct 2011 02:15:05 -0700
+Subject: Added prettier drawing operations and css colors
+
+https://bugzilla.gnome.org/show_bug.cgi?id=661443
+---
+ extensions/systemMonitor/extension.js   |  186 ++++++++++++++++++++++--------
+ extensions/systemMonitor/stylesheet.css |   25 +++--
+ 2 files changed, 152 insertions(+), 59 deletions(-)
+
+diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
+index db7fe59..39801ab 100644
+--- a/extensions/systemMonitor/extension.js
++++ b/extensions/systemMonitor/extension.js
+@@ -9,6 +9,9 @@ const Shell = imports.gi.Shell;
+ 
+ const Main = imports.ui.main;
+ 
++const INDICATOR_UPDATE_INTERVAL = 500;
++const INDICATOR_NUM_GRID_LINES = 3;
++
+ let _cpuIndicator;
+ let _memIndicator;
+ let _box;
+@@ -19,29 +22,24 @@ function Indicator() {
+ 
+ Indicator.prototype = {
+     _init: function() {
+-      this._initValues();
+-        this.actor = new St.DrawingArea({ style_class: "extension-systemMonitor-indicator-area",
+-                                          reactive: true});
+-        this.actor.connect('repaint', Lang.bind(this, this._draw));
+-        this.actor.connect('button-press-event', function() {
++        this._initValues();
++        this.drawing_area = new St.DrawingArea({ reactive: true });
++        this.drawing_area.width = 100; this.drawing_area.height = 100;
++        this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
++        this.drawing_area.connect('button-press-event', function() {
+             let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
+             app.open_new_window(-1);
+         });
+ 
+-      this._timeoutId = Mainloop.timeout_add(250, Lang.bind(this, function () {
+-          this._updateValues();
+-            this.actor.queue_repaint();
+-            return true;
+-      }));
+-    },
++        this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
++                                  reactive: true});
++        this.actor.add_actor(this.drawing_area);
+ 
+-    destroy: function() {
+-        if (this._timeoutId) {
+-            Mainloop.source_remove(this._timeoutId);
+-            this._timeoutId = 0;
+-        }
+-
+-        this.actor.destroy();
++        Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
++            this._updateValues();
++            this.drawing_area.queue_repaint();
++            return true;
++        }));
+     },
+ 
+     _initValues: function() {
+@@ -54,23 +52,83 @@ Indicator.prototype = {
+         let [width, height] = area.get_surface_size();
+         let themeNode = this.actor.get_theme_node();
+         let cr = area.get_context();
+-        for (let i = this.values.length - 1; i >= 0; i--) {
+-            let color = themeNode.get_color(this.values[i].color);
+-            cr.moveTo(0, height);
+-            let k;
+-            for (k = 0; k < this.values[i].values.length; k++) {
+-                cr.lineTo(k, (1 - this.values[i].values[k]) * height);
++
++        //draw the background grid
++        let color = themeNode.get_color(this.gridColor);
++        let gridOffset = Math.floor(height / (INDICATOR_NUM_GRID_LINES + 1));
++        for (let i = 1; i <= INDICATOR_NUM_GRID_LINES; ++i) {
++                cr.moveTo(0, i * gridOffset + .5);
++                cr.lineTo(width, i * gridOffset + .5);
++        }
++        Clutter.cairo_set_source_color(cr, color);
++        cr.setLineWidth(1);
++        cr.setDash([4,1], 0);
++        cr.stroke();
++        
++        //draw the foreground
++
++        function makePath(values, reverse, nudge) {
++            if (nudge == null) {
++                nudge = 0;
+             }
+-            if (k > width)
+-                this.values[i].values.shift();
+-            cr.lineTo(k, height);
+-            cr.lineTo(0, height);
+-            cr.closePath();
+-            Clutter.cairo_set_source_color(cr, color);
++            //if we are going in reverse, we are completing the bottom of a chart, so use lineTo
++            if (reverse) {
++                cr.lineTo(values.length - 1, (1 - values[values.length - 1]) * height + nudge);
++                for (let k = values.length - 2; k >= 0; --k) {
++                    cr.lineTo(k, (1 - values[k]) * height + nudge);
++                }
++            } else {
++                cr.moveTo(0, (1 - values[0]) * height + nudge);
++                for (let k = 1; k < values.length; ++k) {
++                    cr.lineTo(k, (1 - values[k]) * height + nudge);
++                }
+ 
+-          cr.fill();
++            }
++        }
++        
++        let renderStats = this.renderStats;
++
++        // Make sure we don't have more sample points than pixels
++        renderStats.map(Lang.bind(this, function(k){
++            let stat = this.stats[k];
++            if (stat.values.length > width) {
++                stat.values = stat.values.slice(stat.values.length - width, stat.values.length);
++            }
++        }));
++
++        for (let i = 0; i < renderStats.length; ++i) {
++            let stat = this.stats[renderStats[i]];
++            // We outline at full opacity and fill with 40% opacity
++            let outlineColor = themeNode.get_color(stat.color);
++            let color = new Clutter.Color(outlineColor);
++            color.alpha = color.alpha * .4;
++           
++            // Render the background between us and the next level
++            makePath(stat.values, false);
++            // If there is a process below us, render the cpu between us and it, otherwise, 
++            // render to the bottom of the chart
++            if (i == renderStats.length - 1) {
++                cr.lineTo(stat.values.length - 1, height);
++                cr.lineTo(0, height);
++                cr.closePath();
++            } else {
++                let nextStat = this.stats[renderStats[i+1]];
++                makePath(nextStat.values, true);
++            }
++            cr.closePath()
++            Clutter.cairo_set_source_color(cr, color);
++            cr.fill();
++            
++            // Render the outline of this level
++            makePath(stat.values, false, .5);
++            Clutter.cairo_set_source_color(cr, outlineColor);
++            cr.setLineWidth(1.0);
++            cr.setDash([], 0);
++            cr.stroke();
+         }
++
+     }
++
+ };
+ 
+ function CpuIndicator() {
+@@ -80,14 +138,28 @@ function CpuIndicator() {
+ CpuIndicator.prototype = {
+     __proto__: Indicator.prototype,
+ 
++    _init: function() {
++        Indicator.prototype._init.call(this);
++        this.gridColor = '-grid-color';
++        this.renderStats = [ 'cpu-user', 'cpu-sys', 'cpu-iowait' ];
++        
++        // Make sure renderStats is sorted as necessary for rendering
++        let renderStatOrder = {'cpu-total': 0, 'cpu-user': 1, 'cpu-sys': 2, 'cpu-iowait': 3};
++        this.renderStats = this.renderStats.sort(function(a,b) {
++            return renderStatOrder[a] - renderStatOrder[b];
++        });
++    },
++
+     _initValues: function() {
+         this._prev = new GTop.glibtop_cpu;
+         GTop.glibtop_get_cpu(this._prev);
+ 
+-      this.values = [];
+-      this.values.push({color: "-cpu-user-color", values: []});
+-      this.values.push({color: "-cpu-sys-color", values: []});
+-      this.values.push({color: "-cpu-iowait-color", values: []});
++        this.stats = { 
++                       'cpu-user': {color: '-cpu-user-color', values: []},
++                       'cpu-sys': {color: '-cpu-sys-color', values: []},
++                       'cpu-iowait': {color: '-cpu-iowait-color', values: []},
++                       'cpu-total': {color: '-cpu-total-color', values: []} 
++                     };
+     },
+ 
+     _updateValues: function() {
+@@ -98,15 +170,16 @@ CpuIndicator.prototype = {
+         let user = cpu.user - this._prev.user;
+         let sys = cpu.sys - this._prev.sys;
+         let iowait = cpu.iowait - this._prev.iowait;
++        let idle = cpu.idle - this._prev.idle;
+ 
+-        t = user / total;
+-        this.values[0].values.push(t);
+-
+-        t += sys / total;
+-        this.values[1].values.push(t);
+         t += iowait / total;
+-        this.values[2].values.push(t);
+-
++        this.stats['cpu-iowait'].values.push(t);
++        t += sys / total;
++        this.stats['cpu-sys'].values.push(t);
++        t += user / total;
++        this.stats['cpu-user'].values.push(t);
++        this.stats['cpu-total'].values.push(1 - idle / total);
++        
+         this._prev = cpu;
+     }
+ };
+@@ -117,24 +190,37 @@ function MemoryIndicator() {
+ 
+ MemoryIndicator.prototype = {
+     __proto__: Indicator.prototype,
++    
++    _init: function() {
++        Indicator.prototype._init.call(this);
++        this.gridColor = '-grid-color';
++        this.renderStats = [ 'mem-user', 'mem-other', 'mem-cached' ];
++        
++        // Make sure renderStats is sorted as necessary for rendering
++        let renderStatOrder = { 'mem-cached': 0, 'mem-other': 1, 'mem-user': 2 };
++        this.renderStats = this.renderStats.sort(function(a,b) {
++            return renderStatOrder[a] - renderStatOrder[b];
++        });
++    },
+ 
+     _initValues: function() {
+         this.mem = new GTop.glibtop_mem;
+-      this.values = [];
+-        this.values.push({ color: "-mem-user-color", values: [] });
+-        this.values.push({ color: "-mem-other-color", values: [] });
+-        this.values.push({ color: "-mem-cached-color", values: [] });
++        this.stats = {
++                        'mem-user': { color: "-mem-user-color", values: [] },
++                        'mem-other': { color: "-mem-other-color", values: [] },
++                        'mem-cached': { color: "-mem-cached-color", values: [] }
++                     };
+     },
+ 
+     _updateValues: function() {
+         GTop.glibtop_get_mem(this.mem);
+ 
+         let t = this.mem.user / this.mem.total;
+-        this.values[0].values.push(t);
++        this.stats['mem-user'].values.push(t);
+         t += (this.mem.used - this.mem.user - this.mem.cached) / this.mem.total;
+-        this.values[1].values.push(t);
++        this.stats['mem-other'].values.push(t);
+         t += this.mem.cached / this.mem.total;
+-        this.values[2].values.push(t);
++        this.stats['mem-cached'].values.push(t);
+     }
+ };
+ 
+@@ -143,7 +229,7 @@ function init() {
+ }
+ 
+ function enable() {
+-    _cpuIndicator = new CpuIndicator(); 
++    _cpuIndicator = new CpuIndicator();
+     _memIndicator = new MemoryIndicator();
+     _box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container' });
+     _box.add(_cpuIndicator.actor);
+diff --git a/extensions/systemMonitor/stylesheet.css b/extensions/systemMonitor/stylesheet.css
+index 26aad6b..daad48d 100644
+--- a/extensions/systemMonitor/stylesheet.css
++++ b/extensions/systemMonitor/stylesheet.css
+@@ -1,16 +1,23 @@
+ .extension-systemMonitor-container {
+     spacing: 5px;
++    padding-left: 5px;
++    padding-right: 5px;
++    padding-bottom: 1px;
++    padding-top: 0px;
+ }
+ 
+ .extension-systemMonitor-indicator-area {
+-    border: 1px solid #000;
++    border: 1px solid #8d8d8d;
++    border-radius: 3px;
+     width: 100px;
+-    height: 34px;
+-    -cpu-user-color: #f00;
+-    -cpu-sys-color: #0f0;
+-    -cpu-iowait-color: #00f;
+-    -mem-user-color: #ff0;
+-    -mem-cached-color: #0ff;
+-    -mem-other-color: #111;
+-    background-color: #fff;
++    height: 30px;
++    -grid-color: #575757;
++    -cpu-total-color: rgb(0,154,62);
++    -cpu-user-color: rgb(69,154,0);
++    -cpu-sys-color: rgb(255,253,81);
++    -cpu-iowait-color: rgb(210,148,0);
++    -mem-user-color: rgb(210,148,0);
++    -mem-cached-color: rgb(90,90,90);
++    -mem-other-color: rgb(205,203,41);
++    background-color: #1e1e1e;
+ }
+-- 
+1.7.7.2
+
diff --git a/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-enable-disable.patch b/gnome-extra/gnome-shell-extensions/files/gnome-shell-extensions-3.2.0-systemMonitor-enable-disable.patch
new file mode 100644 (file)
index 0000000..2fd4229
--- /dev/null
@@ -0,0 +1,46 @@
+From 2bba98d6214cffae2eb5cecb9d7c1f6b6d244052 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Tue, 25 Oct 2011 14:21:01 -0400
+Subject: systemMonitor: Properly enable/disable
+
+https://bugzilla.gnome.org/show_bug.cgi?id=662705
+---
+ extensions/systemMonitor/extension.js |    9 ++++++++-
+ 1 files changed, 8 insertions(+), 1 deletions(-)
+
+diff --git a/extensions/systemMonitor/extension.js b/extensions/systemMonitor/extension.js
+index 39801ab..6aa117a 100644
+--- a/extensions/systemMonitor/extension.js
++++ b/extensions/systemMonitor/extension.js
+@@ -35,13 +35,18 @@ Indicator.prototype = {
+                                   reactive: true});
+         this.actor.add_actor(this.drawing_area);
+ 
+-        Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
++        this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
+             this._updateValues();
+             this.drawing_area.queue_repaint();
+             return true;
+         }));
+     },
+ 
++    destroy: function() {
++        Mainloop.source_remove(this._timeout);
++        this.actor.destroy();
++    },
++
+     _initValues: function() {
+     },
+ 
+@@ -239,6 +244,8 @@ function enable() {
+ 
+ function disable() {
+     _cpuIndicator.destroy();
++    _cpuIndicator = null;
+     _memIndicator.destroy();
++    _memIndicator = null;
+     _box.destroy();
+ }
+-- 
+1.7.7.2
+
diff --git a/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-3.2.0-r2.ebuild b/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-3.2.0-r2.ebuild
new file mode 100644 (file)
index 0000000..ae3848c
--- /dev/null
@@ -0,0 +1,89 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-3.2.0-r2.ebuild,v 1.1 2011/11/06 01:42:59 tetromino Exp $
+
+EAPI="4"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+
+inherit gnome2
+
+DESCRIPTION="JavaScript extensions for GNOME Shell"
+HOMEPAGE="http://live.gnome.org/GnomeShell/Extensions"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="examples"
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="
+       >=dev-libs/glib-2.26
+       >=gnome-base/gnome-desktop-2.91.6:3[introspection]
+       >=gnome-base/libgtop-2.28.3[introspection]
+       app-admin/eselect-gnome-shell-extensions"
+RDEPEND="${COMMON_DEPEND}
+       >=dev-libs/gjs-1.29
+       dev-libs/gobject-introspection
+       =gnome-base/gnome-shell-3.2*
+       media-libs/clutter:1.0[introspection]
+       net-libs/telepathy-glib[introspection]
+       x11-libs/gtk+:3[introspection]
+       x11-libs/pango[introspection]"
+DEPEND="${COMMON_DEPEND}
+       sys-devel/gettext
+       >=dev-util/pkgconfig-0.22
+       >=dev-util/intltool-0.26
+       gnome-base/gnome-common"
+
+pkg_setup() {
+       DOCS="NEWS README"
+       G2CONF="${G2CONF}
+               --enable-extensions=all
+               --disable-schemas-compile"
+}
+
+src_prepare() {
+       gnome2_src_prepare
+
+       # Useful patches from upstream, will be in the next release
+       epatch "${FILESDIR}/${P}-dock-popup-menus.patch"
+       epatch "${FILESDIR}/${P}-dock-gnome-3.2.patch"
+       epatch "${FILESDIR}/${P}-systemMonitor-CSS.patch"
+       epatch "${FILESDIR}/${P}-systemMonitor-enable-disable.patch"
+
+       # Extensions work with gnome-3.2*, not just 3.2.0
+       epatch "${FILESDIR}/${PN}-3.2.0-gnome-3.2.1.patch"
+
+       # xrandr-indicator crashes gnome-shell with <gjs-0.7.15;
+       # see gnome bug 649077. For simplicity, just disable it for gnome-3.0.
+       # sed -e 's:\(ALL_EXTENSIONS=.*\)xrandr-indicator:\1:' \
+       #       -i configure || die
+}
+
+src_install() {
+       gnome2_src_install
+
+       local example="example@gnome-shell-extensions.gnome.org"
+       if use examples; then
+               mv "${ED}usr/share/gnome-shell/extensions/${example}" \
+                       "${ED}usr/share/doc/${PF}/" || die
+       else
+               rm -r "${ED}usr/share/gnome-shell/extensions/${example}" || die
+       fi
+}
+
+pkg_postinst() {
+       gnome2_pkg_postinst
+
+       ebegin "Updating list of installed extensions"
+       eselect gnome-shell-extensions update
+       eend $?
+       elog
+       elog "Installed extensions installed are initially disabled by default."
+       elog "To change the system default and enable some extensions, you can use"
+       elog "# eselect gnome-shell-extensions"
+       elog "Alternatively, you can use the org.gnome.shell enabled-extensions"
+       elog "gsettings key to change the disabled extension list per-user, or"
+       elog "use the gnome-extra/gnome-tweak-tool GUI."
+       elog
+}
diff --git a/gnome-extra/gnome-shell-extensions/metadata.xml b/gnome-extra/gnome-shell-extensions/metadata.xml
new file mode 100644 (file)
index 0000000..da6fd63
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>