diff options
-rw-r--r-- | activity.py | 46 | ||||
-rw-r--r-- | consoles.py | 246 | ||||
-rw-r--r-- | editor.py | 1 | ||||
-rw-r--r-- | icons/console-python.svg | 36 | ||||
-rw-r--r-- | icons/console-terminal.svg | 11 |
5 files changed, 333 insertions, 7 deletions
diff --git a/activity.py b/activity.py index ae1488f..5dc5703 100644 --- a/activity.py +++ b/activity.py @@ -33,10 +33,13 @@ import gtk import sugar from sugar import mime + from sugar.graphics import iconentry from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.radiotoolbutton import RadioToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton from sugar.graphics.toolbarbox import ToolbarBox +from sugar.graphics.tray import VTray from sugar.activity.widgets import EditToolbar, StopButton, \ ActivityToolbarButton, ToolbarButton from sugar.datastore import datastore @@ -45,12 +48,11 @@ from sugar.activity import activity from pep8_check import PEP8_Check import options from editor import Editor -from python_console import PythonConsole +import consoles import file_choosers file_choosers.langsmanager = options.LANGUAGE_MANAGER file_choosers.langs = options.LANGUAGES - class JAMEdit(activity.Activity): def __init__(self, handle): @@ -69,12 +71,13 @@ class JAMEdit(activity.Activity): scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.editor) - scroll.show_all() vbox = gtk.VBox() vpaned = gtk.VPaned() - vpaned.pack1(scroll) vbox.pack_start(vpaned, True, True, 0) + vpaned.show() + vpaned.pack1(scroll, resize=True) + scroll.show_all() self.set_canvas(vbox) @@ -114,12 +117,41 @@ class JAMEdit(activity.Activity): self.pep8_bar.add(self.pep8_bar.label) vbox.pack_end(self.pep8_bar, False, True, 0) - self.python_console = PythonConsole() - self.python_console.show() - vpaned.pack2(self.python_console) + tray = VTray() + self.test_notebook = gtk.Notebook() + self.test_notebook.set_show_tabs(False) + terminal = consoles.Terminal() + terminal.show() + terminal_item = RadioToolButton() + terminal_item.set_named_icon("console-terminal") + terminal_item.set_tooltip("Terminal") + terminal_item.connect("toggled", self.page_changed, 0) + terminal_item.show() + self.test_notebook.append_page(terminal, None) + tray.add_item(terminal_item) + python_console = consoles.PythonConsole() + python_console.show() + python_item = RadioToolButton() + python_item.set_named_icon("console-python") + python_item.set_tooltip("Python Console") + python_item.set_group(terminal_item) + python_item.connect("toggled", self.page_changed, 1) + python_item.show() + self.test_notebook.append_page(python_console) + tray.add_item(python_item) + hbox = gtk.HBox() + hbox.pack_start(tray, False, True, 0) + hbox.pack_start(self.test_notebook) + self.test_notebook.show() + vpaned.pack2(hbox, resize=True) vpaned.show_all() + tray.show() + hbox.show() vbox.show_all() + def page_changed(self, widget, index): + self.test_notebook.set_current_page(index) + def change_style(self, widget, style): self.editor.set_style(style) diff --git a/consoles.py b/consoles.py new file mode 100644 index 0000000..0bb6322 --- /dev/null +++ b/consoles.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# consoles.py by/por: +# Agustin Zubiaga <aguszs97@gmail.com> +# Daniel Francis <santiago.danielfrancis@gmail.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 3 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. + +from signal import SIGTERM +import os + +import pango +import gtk +import vte + +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.colorbutton import ColorToolButton +from sugar.graphics.tray import VTray + +class Console(gtk.HBox): + def __init__(self): + gtk.HBox.__init__(self) + self.terminal = vte.Terminal() + self.bgcolor = gtk.gdk.color_parse("#000000") + self.fgcolor = gtk.gdk.color_parse("#FFFFFF") + self.scrollbar = gtk.VScrollbar(self.terminal.get_adjustment()) + self.terminal.show() + self.scrollbar.show() + self.pack_start(self.terminal, True, True, 0) + self.pack_end(self.scrollbar, False, True, 0) + self.terminal.grab_focus() + + def set_font(self, font): + self.terminal.set_font(font) + + def set_bgcolor(self, color): + self.terminal.set_colors(self.fgcolor, color, []) + self.bgcolor = color + + def set_fgcolor(self, color): + self.terminal.set_colors(color, self.bgcolor, []) + self.fgcolor = color + + def copy(self): + if self.terminal.get_has_selection(): + self.terminal.copy_clipboard() + + def paste(self): + self.terminal.paste_clipboard() + + def stop(self): + try: + os.kill(self.process_id, SIGTERM) + self._clear_console() + except Exception, err: + print err + + def _clear_console(self): + self.terminal.grab_focus() + self.terminal.feed("\x1B[H\x1B[J\x1B[0;39m") + + def run_command(self, command=None, args=None): + self.process_id = self.terminal.fork_command(command=command, argv=args) + +class Terminal(gtk.HBox): + def __copy_cb(self, button): + self.console.copy() + + def __paste_cb(self, button): + self.console.paste() + + def _fgcolor_cb(self, button, pspec): + newcolor = button.get_color() + self.console.set_fgcolor(newcolor) + + def _bgcolor_cb(self, button, pspec): + newcolor = button.get_color() + self.console.set_bgcolor(newcolor) + + def update_font(self, widget, font_selection): + font = pango.FontDescription(font_selection.get_font_name()) + self.console.set_font(font) + + def reset(self, widget): + self.console.stop() + self.console.run_command() + + def __init__(self): + gtk.HBox.__init__(self) + self.toolbar = VTray() + + copy = ToolButton("edit-copy") + copy.set_tooltip('Copy') + copy.connect("clicked", self.__copy_cb) + copy.show() + self.toolbar.add_item(copy, -1) + paste = ToolButton("edit-paste") + paste.set_tooltip("Paste") + paste.connect("clicked", self.__paste_cb) + paste.show() + self.toolbar.add_item(paste, -1) + + fgcolor = ColorToolButton() + fgcolor.get_child()._title = "Font Color" + self.toolbar.add_item(fgcolor, -1) + fgcolor.connect('notify::color', self._fgcolor_cb) + fgcolor.show_all() + bgcolor = ColorToolButton() + bgcolor.get_child()._title = "Background Color" + bgcolor.connect('notify::color', self._bgcolor_cb) + self.toolbar.add_item(bgcolor, -1) + bgcolor.show_all() + + self.console = Console() + self.console.set_bgcolor(gtk.gdk.color_parse("#FFFFFF")) + self.console.set_fgcolor(gtk.gdk.color_parse("#000000")) + bgcolor.set_color(gtk.gdk.color_parse("#FFFFFF")) + fgcolor.set_color(gtk.gdk.color_parse("#000000")) + self.console.show() + + font = ToolButton("format-text") + font.set_tooltip("Console Font") + fontselection = gtk.FontSelection() + fontselection.get_family_list().get_selection().connect("changed", self.update_font, fontselection) + fontselection.get_face_list().get_selection().connect("changed", self.update_font, fontselection) + fontselection.get_size_entry().connect("changed", self.update_font, fontselection) + fontselection.get_size_entry().connect("activate", self.update_font, fontselection) + fontselection.show() + font.props.palette.set_content(fontselection) + fontselection.set_font_name("Monospace Regular 10") + font.show() + self.toolbar.add_item(font, -1) + + reset = ToolButton("view-refresh") + reset.set_tooltip("Reset Console") + reset.connect("clicked", self.reset) + reset.show() + self.toolbar.add_item(reset, -1) + self.toolbar.show() + self.pack_start(self.toolbar, False, True, 0) + + self.console.run_command() + self.pack_start(self.console) + +class PythonConsole(gtk.HBox): + def __copy_cb(self, button): + self.console.copy() + + def __paste_cb(self, button): + self.console.paste() + + def _fgcolor_cb(self, button, pspec): + newcolor = button.get_color() + self.console.set_fgcolor(newcolor) + + def _bgcolor_cb(self, button, pspec): + newcolor = button.get_color() + self.console.set_bgcolor(newcolor) + + def update_font(self, widget, font_selection): + font = pango.FontDescription(font_selection.get_font_name()) + self.console.set_font(font) + + def reset(self, widget): + self.console.stop() + self.console.run_command("python") + + def __init__(self): + gtk.HBox.__init__(self) + self.toolbar = VTray() + + copy = ToolButton("edit-copy") + copy.set_tooltip('Copy') + copy.connect("clicked", self.__copy_cb) + copy.show() + self.toolbar.add_item(copy, -1) + paste = ToolButton("edit-paste") + paste.set_tooltip("Paste") + paste.connect("clicked", self.__paste_cb) + paste.show() + self.toolbar.add_item(paste, -1) + + fgcolor = ColorToolButton() + fgcolor.get_child()._title = "Font Color" + self.toolbar.add_item(fgcolor, -1) + fgcolor.connect('notify::color', self._fgcolor_cb) + fgcolor.show_all() + bgcolor = ColorToolButton() + bgcolor.get_child()._title = "Background Color" + bgcolor.connect('notify::color', self._bgcolor_cb) + self.toolbar.add_item(bgcolor, -1) + bgcolor.show_all() + + self.console = Console() + self.console.set_bgcolor(gtk.gdk.color_parse("#FFFFFF")) + self.console.set_fgcolor(gtk.gdk.color_parse("#000000")) + bgcolor.set_color(gtk.gdk.color_parse("#FFFFFF")) + fgcolor.set_color(gtk.gdk.color_parse("#000000")) + self.console.show() + + font = ToolButton("format-text") + font.set_tooltip("Console Font") + fontselection = gtk.FontSelection() + fontselection.get_family_list().get_selection().connect("changed", self.update_font, fontselection) + fontselection.get_face_list().get_selection().connect("changed", self.update_font, fontselection) + fontselection.get_size_entry().connect("changed", self.update_font, fontselection) + fontselection.get_size_entry().connect("activate", self.update_font, fontselection) + fontselection.show() + font.props.palette.set_content(fontselection) + fontselection.set_font_name("Monospace Regular 10") + font.show() + self.toolbar.add_item(font, -1) + + reset = ToolButton("view-refresh") + reset.set_tooltip("Reset Console") + reset.connect("clicked", self.reset) + reset.show() + self.toolbar.add_item(reset, -1) + self.toolbar.show() + self.pack_start(self.toolbar, False, True, 0) + + self.console.run_command("python") + self.pack_start(self.console) + +if __name__ == "__main__": + w = gtk.Window() + term = Terminal() + term.show() + w.add(term) + w.show() + w.set_resizable(True) + gtk.main() @@ -35,6 +35,7 @@ from sugar.graphics.combobox import ComboBox from sugar.graphics.toolcombobox import ToolComboBox LANGUAGE_MANAGER = gtksourceview2.language_manager_get_default() +LANGUAGES = LANGUAGE_MANAGER.get_language_ids() class Editor(gtksourceview2.View): __gsignals__ = {"pep8-aviable": (gobject.SIGNAL_RUN_LAST, diff --git a/icons/console-python.svg b/icons/console-python.svg new file mode 100644 index 0000000..753aa9c --- /dev/null +++ b/icons/console-python.svg @@ -0,0 +1,36 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"> + <defs> + <linearGradient id="lg1"> + <stop stop-color="#555555" offset="0"/> + <stop stop-color="#000000" offset="1"/> + </linearGradient> + <linearGradient id="lg2"> + <stop stop-color="#fff" offset="0"/> + <stop stop-color="#fff" stop-opacity="0.165" offset="1"/> + </linearGradient> + <linearGradient id="lg3"> + <stop stop-color="#999999" offset="0"/> + <stop stop-color="#FFFFFF" offset="1"/> + </linearGradient> + <linearGradient id="lg4"> + <stop stop-color="#000" offset="0"/> + <stop stop-color="#000" stop-opacity="0" offset="1"/> + </linearGradient> + <linearGradient x1="94.693" y1="112.511" x2="94.693" y2="64.053" id="lg5" xlink:href="#lg2" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.353878,0,0,0.353878,-17.3795,-19.412)"/> + <linearGradient x1="59.728" y1="102" x2="142.62" y2="102" id="lg6" xlink:href="#lg1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.353878,0,0,0.353878,-17.3795,-19.412)"/> + <linearGradient x1="94.693" y1="112.511" x2="94.693" y2="64.053" id="lg7" xlink:href="#lg2" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.353878,0,0,0.353878,-6.29697,-7.94537)"/> + <linearGradient x1="119.191" y1="89.13" x2="116.965" y2="169.279" id="lg8" xlink:href="#lg3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.353878,0,0,0.353878,-16.3897,-17.997)"/> + <radialGradient cx="15.115" cy="63.965" r="12.289" fx="15.115" fy="63.965" id="rg1" xlink:href="#lg4" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.6,0,0,0.551754,-0.183975,4.83575)"/> + </defs> + <path d="m 43.6618,40.1289 a 19.6618,6.7805 0 0 1 -39.3236,0 19.6618,6.7805 0 1 1 39.3236,0 z" fill="url(#rg1)"/> + <path d="m 34.0804,37.5795 c 0,2.7319 -2.371,4.1156 -4.7774,4.8057 -3.6202,1.0404 -6.5255,0.8811 -9.5511,0 -2.5268,-0.7362 -4.7774,-2.2402 -4.7774,-4.8057 l 0,-9.0132 c 0,-2.594 2.1621,-4.8092 4.7774,-4.8092 l 9.3984,-0.6111 c 3.1814,0 5.2606,-1.9858 5.2606,-5.245 l 0.8655,-4.3569 3.5813,0 c 2.7814,0 4.0909,2.0667 4.7774,4.8056 0.9555,3.8043 0.9978,6.6495 0,9.615 -0.9661,2.8805 -2,4.8056 -4.7774,4.8056 l -4.7773,0 -9.5512,0 0,-0.02 c 8.2424,0.02 9.5512,-3.3164 9.5512,4.8281 z" fill="url(#lg8)"/> + <path d="m 28.1104,38.1776 c 0,-0.9944 0.8033,-1.8013 1.7906,-1.8013 1,0 1.7906,0.8069 1.7906,1.8013 0,0.9979 -0.7997,1.8047 -1.7906,1.8047 -0.9873,0 -1.7906,-0.8068 -1.7906,-1.8047 z" fill="#000"/> + <path d="m 35.2662,13.5436 0,4.2265 C 31.8551,23.767 25.375,23.7787 19.939,23.7787 l -2.017,0.2052 c -2.8342,2.4364 -2.9244,6.3463 -2.9223,9.7756 6.2502,-6.9742 12.9174,-7.5004 16.2436,-7.4854 6.6377,0.029 9.7638,-1.6029 12.9339,-5.1939 -0.016,-0.07 0.016,-0.132 0,-0.2037 -0.1222,-0.8 -0.3362,-1.6544 -0.5601,-2.546 -0.3218,-1.2839 -0.7428,-2.4141 -1.4257,-3.2589 -0.016,-0.016 -0.038,-0.034 -0.051,-0.05 0,0 -0.042,0 -0.05,0 -0.023,-0.028 -0.028,-0.075 -0.05,-0.1011 -0.047,-0.034 -0.052,-0.07 -0.101,-0.101 -0.016,-0.016 -0.039,0.016 -0.05,0 C 41.1653,14.3502 40.2858,14 39.3942,13.8519 38.5861,13.7183 37.775,13.6165 36.95,13.5464 l -0.5092,0 -1.1711,0 z" opacity="0.837" fill="url(#lg7)"/> + <path d="m 34.559,37.579 c 0,2.732 -2.8497,4.116 -5.256,4.806 -3.62,1.04 -6.525,0.881 -9.551,0 -2.527,-0.736 -4.801,-2.24 -4.805,-4.805 l -0.016,-9.258 c -0.01,-3.073 2.302,-5.01 4.849,-5 l 8.4667,0.015 c 3.25,0 6.41,-3.3 6.401,-6.55 l 0,-3.237 4.21,0 c 2.7814,0 4.09,2.067 4.777,4.806 0.956,3.804 1,6.649 0,9.615 -0.966,2.88 -2,5.1476 -4.777,5.148 l -4.3,0 -10.03,0 0,-0.02 10.03,0.034 z" fill="none" stroke="#FFFFFF" stroke-width="1.63"/> + <path d="m 35.4653,14.3584 0,2.3933 c 0,3.7245 -3.4965,7.3757 -7.4809,7.3757 l -8.2491,0 c -2.8506,0 -4.0184,2.1569 -4.0042,4.4379 l 0.056,9.0129 c 0.01,1.0446 0.4,1.8235 1.148,2.4951 0.748,0.6715 1.8726,1.183 3.0553,1.5277 2.9164,0.8492 5.576,1.0022 9.0638,0 1.1327,-0.3248 2.6394,-0.9401 3.3976,-1.5964 0.7581,-0.6565 1.3077,-1.2961 1.3077,-2.4264 l 0,-3.6298 -10.052,0 0,-1.6795 15.1743,0.05 c 1.2008,0 1.788,-0.4724 2.3844,-1.1633 0.5964,-0.691 1.1149,-2.0469 1.5874,-3.456 0.9456,-2.8096 0.9336,-5.4491 0,-9.1658 -0.3252,-1.2978 -0.7976,-2.3461 -1.4257,-3.0552 -0.628,-0.7091 -1.357,-1.1202 -2.5461,-1.1202 z m 1.6294,1.6294 1.7867,0 c 0.5202,0 1.1993,0.4194 1.324,0.5602 0.3625,0.4093 0.78,1.2386 1.0694,2.3932 0.8895,3.5416 0.8915,5.7515 0.05,8.2491 -0.4517,1.347 -0.9205,2.6142 -1.2729,3 -0.3184,0.3395 -1,0.5093 -1.1713,0.5093 l -4.7865,-0.051 -12.0173,0 0,4.9384 10.052,0 0,2 c 0,0.727 -0.9733,1.1789 -1.1408,1.3239 -0.4872,0.4219 -1.3508,0.8359 -2.3423,1.1202 -3.223,0.9264 -5.5,0.7859 -8.1984,0 -1.0211,-0.2975 -1.9061,-0.7339 -2.4069,-1.1595 -0.5008,-0.4256 -0.5316,-0.7741 -0.6238,-1.285 l -0.056,-9.0129 c -0.013,-2.0224 0.6457,-2.8084 2.3748,-2.8084 l 8.2491,0 c 4.9233,0 9.1103,-4.3502 9.1103,-9.0052 1e-4,-0.2574 -10e-5,-0.5149 -10e-5,-0.7723 z" opacity="0.384" fill="#fff"/> + <path d="m 13.9847,7.3199 c 0,-2.7319 0.7324,-4.2182 4.7772,-4.926 2.7462,-0.4813 6.2673,-0.5414 9.5513,0 2.5939,0.4282 4.7774,2.3604 4.7774,4.926 l 0,9.0134 c 0,2.6434 -2.1198,4.8091 -4.7774,4.8091 l -8.6621,0.4788 c -3.2414,0 -6.589,2.8321 -6.589,5.957 l -0.2736,3.777 -3.284,0 c -2.7779,0 -4.3951,-2.0029 -5.0745,-4.8056 -0.9166,-3.7651 -0.8776,-6.0088 0,-9.6147 0.7608,-3.1461 3.192,-4.8058 5.7,-4.8058 l 3.5848,0 c 0,0 8.9448,-0.035 0,-0.032 l 0,-4.7771 0,0 z" fill="url(#lg6)"/> + <path d="m 16.3733,6.7218 c 0,-1 0.8,-1.8048 1.7906,-1.8048 0.9873,0 1.7907,0.8068 1.7907,1.8048 0,0.9944 -0.8034,1.8012 -1.7907,1.8012 -0.9908,0 -1.7906,-0.8068 -1.7906,-1.8012 z" fill="#fff"/> + <path d="M 22.7173,1.9955 C 21.3039,2.0297 19.9469,2.1923 18.7455,2.4028 14.7007,3.1106 14.01,4.6102 14.01,7.3421 l -0.2952,4.787 -3.3203,-3e-4 c -2.7779,0 -5.1968,1.6406 -5.9576,4.7864 -0.5165,2.1225 -0.7504,3.7842 -0.6621,5.5504 6.2924,-7.1319 13.0442,-7.6531 16.3965,-7.638 6.6376,0.029 9.7637,-1.6029 12.9338,-5.1939 l 0,-2.2914 c 0,-2.5655 -2.1926,-4.511 -4.7865,-4.9392 C 26.4714,2.0983 24.5345,1.9515 22.7173,1.9955 z" opacity="0.377" fill="url(#lg5)"/> + <path d="m 18.696,2.6271 c 3.6201,-1.0404 6.5255,-0.8811 9.551,0 2.5268,0.7361 4.7787,2.24 4.7774,4.8057 l 0,9.7315 c 0,1.3662 -1.9746,4.5293 -4.7726,4.5293 l -8.8988,0 c -2.4983,0 -5.997,2.7217 -5.997,5.981 l 0,3.7937 -4.21,0 c -2.7815,0 -4.0909,-2.0667 -4.7774,-4.8058 -0.9555,-3.8041 -1,-6.6493 0,-9.6148 0.9661,-2.8806 2,-5.1477 4.7774,-5.1477 l 4.2985,0 10.03,0 0,0.019 -10.03,-0.034 0.019,-4.8733 c -0.026,-1.9965 2.4146,-3.5524 5.2323,-4.3845 z" fill="none" stroke="#000000" stroke-width="1.63"/> + <path d="m 12.5337,30.6538 0,-2.796 c 0,-3.7246 3.3953,-7.0287 7.0461,-7.0287 l 8.6839,0 c 2.1549,0 4.024,-2.2411 4.0042,-4.3821 L 32.1845,7.434 C 32.1748,6.3895 31.8123,5.6105 31.0642,4.9389 30.3163,4.2673 29.1916,3.7558 28.009,3.4113 c -2.9166,-0.8494 -5.5762,-1.0023 -9.0639,0 -1.1326,0.3248 -2.6396,0.94 -3.3976,1.5964 -0.7582,0.6564 -1.3076,1.296 -1.3076,2.4263 l 0,3.6298 10.0519,0 0,1.6804 -15.1743,-0.051 c -1.2,0 -1.788,0.4724 -2.3844,1.1634 -0.5964,0.6908 -1.1149,2.0467 -1.5874,3.4559 -0.9456,2.8096 -0.9335,5.449 0,9.1657 0.3252,1.2978 0.7976,2.3461 1.4258,3.0552 0.628,0.7092 1.357,1.1203 2.546,1.1203 l 3.4162,0 z m -1.6295,-1.6295 -1.7867,0 c -0.52,0 -1.2,-0.4194 -1.3239,-0.56 C 7.431,28.0549 7.0135,27.2255 6.7241,26.0709 5.8346,22.5294 5.8327,20.3196 6.6736,17.8218 7.1253,16.475 7.5941,15.2077 7.9466,14.8319 8.265,14.4926 8.9375,14.3227 9.1178,14.3227 l 16.8038,0.051 0,-4.9394 -10.0519,0 0,-2 c 0,-0.727 0.9732,-1.1789 1.1407,-1.3239 0.4873,-0.4219 1.3509,-0.8359 2.3424,-1.12 3.2229,-0.9262 5.5,-0.7858 8.1983,0 1.0212,0.2975 1.9061,0.7339 2.3932,1.1712 0.1733,0.1352 0.2646,0.2973 0.4078,0.4582 0.1987,0.237 0.1552,0.55023 0.2011,0.8147 l 0,9.013 c 0,1.2357 -1.0565,2.7527 -2.2913,2.7527 l -8.6839,0 c -4.5897,0 -8.6756,4.0029 -8.6756,8.6581 0,0.3875 0,1.166 0,1.166 z" opacity="0.165" fill="#fff"/> +</svg> diff --git a/icons/console-terminal.svg b/icons/console-terminal.svg new file mode 100644 index 0000000..12d3fa1 --- /dev/null +++ b/icons/console-terminal.svg @@ -0,0 +1,11 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#FFFFFF"> + <!ENTITY fill_color "none"> +]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="activity-terminal"> + + <rect fill="&fill_color;" height="32.442" stroke="&stroke_color;" stroke-linecap="round" stroke-width="3.5" width="43.457" x="5.646" y="9.404"/> + <g> + <path d="M15.531,27.872h-1.187l-0.007-2.205 c-0.61-0.024-1.201-0.093-1.772-0.205s-1.128-0.269-1.67-0.469v-1.919c0.562,0.288,1.129,0.509,1.703,0.663 c0.573,0.153,1.156,0.24,1.747,0.26v-2.278l-0.242-0.044c-1.167-0.205-1.996-0.527-2.486-0.967 c-0.491-0.439-0.736-1.072-0.736-1.897c0-0.874,0.3-1.557,0.899-2.047c0.6-0.491,1.455-0.758,2.565-0.802l0.007-1.692h1.179v1.663 c0.488,0.039,0.977,0.1,1.465,0.183s0.979,0.19,1.473,0.322v1.86c-0.488-0.205-0.977-0.365-1.465-0.479s-0.979-0.185-1.472-0.209 v2.102l0.234,0.044c1.24,0.195,2.11,0.521,2.611,0.978c0.5,0.457,0.75,1.131,0.75,2.025c0,0.898-0.297,1.588-0.893,2.069 c-0.596,0.481-1.497,0.756-2.703,0.824V27.872z M14.345,19.544v-1.912c-0.347,0.02-0.624,0.114-0.832,0.282 c-0.208,0.169-0.311,0.382-0.311,0.641c0,0.288,0.095,0.514,0.286,0.677C13.678,19.396,13.964,19.5,14.345,19.544z M15.531,21.932 v2.036c0.425-0.005,0.744-0.088,0.956-0.249c0.213-0.161,0.319-0.403,0.319-0.725c0-0.332-0.098-0.58-0.293-0.744 C16.317,22.087,15.99,21.98,15.531,21.932z" fill="&stroke_color;" stroke="&stroke_color;" stroke-width="0.5"/> + <path d="M27.646,27.813v1.392h-7.501v-1.392H27.646z" fill="&stroke_color;" stroke="&stroke_color;" stroke-width="0.5"/> + </g> +</g></svg> |