Skip to content

Commit 7b3f22a

Browse files
committed
guake --[f|g]color keep transparency
Signed-off-by: Gaetan Semet <[email protected]>
1 parent 4642255 commit 7b3f22a

8 files changed

+39
-37
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ test-pip-install-wheel: clean-pip-install-local generate-paths wheel
239239
@echo "Testing installation by pip (will install on ~/.local)"
240240
pip install --upgrade -vvv --user $(shell ls -1 dist/*.whl | sort | head -n 1)
241241
ls -la ~/.local/share/guake
242-
~/.local/bin/guake
242+
~/.local/bin/guake -v
243243

244244
sct: style check update-po requirements test
245245

NEWS.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Guake
88
Bug Fixes
99
---------
1010

11-
- fixes guake --fgcolor error
11+
- fixes ``guake --fgcolor/--bgcolor`` error (#1376).
1212

1313
Translation Updates
1414
-------------------

guake/dbusiface.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -88,25 +88,11 @@ def get_tab_count(self):
8888

8989
@dbus.service.method(DBUS_NAME, in_signature='s')
9090
def set_bgcolor(self, bgcolor):
91-
import gi
92-
gi.require_version('Gtk', '3.0')
93-
from gi.repository import Gdk
94-
colorRGBA = Gdk.RGBA(0, 0, 0, 0)
95-
colorRGBA.parse(bgcolor)
96-
page_num = self.guake.notebook.get_current_page()
97-
terminal = self.guake.notebook.get_nth_page(page_num).terminal
98-
terminal.set_color_background(colorRGBA)
91+
return self.guake.set_bgcolor(bgcolor)
9992

10093
@dbus.service.method(DBUS_NAME, in_signature='s')
10194
def set_fgcolor(self, fgcolor):
102-
import gi
103-
gi.require_version('Gtk', '3.0')
104-
from gi.repository import Gdk
105-
colorRGBA = Gdk.RGBA(0, 0, 0, 0)
106-
colorRGBA.parse(fgcolor)
107-
page_num = self.guake.notebook.get_current_page()
108-
terminal = self.guake.notebook.get_nth_page(page_num).terminal
109-
terminal.set_color_foreground(colorRGBA)
95+
return self.guake.set_fgcolor(fgcolor)
11096

11197
@dbus.service.method(DBUS_NAME, in_signature='s')
11298
def execute_command(self, command):

guake/guake_app.py

+27-8
Original file line numberDiff line numberDiff line change
@@ -554,12 +554,16 @@ def _load_palette(self):
554554
paletteList.append(colorRGBA.copy())
555555
return paletteList
556556

557-
def _get_background_color(self, palette_list, transparency):
557+
def _get_background_color(self, palette_list):
558558
if len(palette_list) > 16:
559559
bg_color = palette_list[17]
560560
else:
561561
bg_color = Gdk.RGBA(0, 0, 0, 0.9)
562562

563+
return self._apply_transparency_to_color(bg_color)
564+
565+
def _apply_transparency_to_color(self, bg_color):
566+
transparency = self.settings.styleBackground.get_int('transparency')
563567
if not self.transparency_toggled:
564568
bg_color.alpha = 1 / 100 * transparency
565569
else:
@@ -570,10 +574,8 @@ def set_background_color_from_settings(self):
570574
self.set_colors_from_settings()
571575

572576
def get_bgcolor(self):
573-
transparency = self.settings.styleBackground.get_int('transparency')
574577
palette_list = self._load_palette()
575-
bg_color = self._get_background_color(palette_list, transparency)
576-
return bg_color
578+
return self._get_background_color(palette_list)
577579

578580
def get_fgcolor(self):
579581
palette_list = self._load_palette()
@@ -596,16 +598,33 @@ def set_colors_from_settings(self):
596598
def set_bgcolor(self, bgcolor):
597599
if isinstance(bgcolor, str):
598600
c = Gdk.RGBA(0, 0, 0, 0)
599-
c.parse(bgcolor)
601+
log.debug("Building Gdk Color from: %r", bgcolor)
602+
c.parse("#" + bgcolor)
600603
bgcolor = c
601-
self.notebook.get_current_terminal().set_color_background(bgcolor)
604+
if not isinstance(bgcolor, Gdk.RGBA):
605+
raise TypeError("color should be Gdk.RGBA, is: {!r}".format(bgcolor))
606+
bgcolor = self._apply_transparency_to_color(bgcolor)
607+
log.debug("setting background color to: %r", bgcolor)
608+
page_num = self.notebook.get_current_page()
609+
terminal = self.notebook.get_nth_page(page_num).terminal
610+
terminal.set_color_background(bgcolor)
611+
612+
613+
# self.notebook.get_current_terminal().set_color_background(bgcolor)
602614

603615
def set_fgcolor(self, fgcolor):
604616
if isinstance(fgcolor, str):
605617
c = Gdk.RGBA(0, 0, 0, 0)
606-
c.parse(fgcolor)
618+
log.debug("Building Gdk Color from: %r", fgcolor)
619+
c.parse("#" + fgcolor)
607620
fgcolor = c
608-
self.notebook.get_current_terminal().set_color_foreground(fgcolor)
621+
if not isinstance(fgcolor, Gdk.RGBA):
622+
raise TypeError("color should be Gdk.RGBA, is: {!r}".format(fgcolor))
623+
log.debug("setting background color to: %r", fgcolor)
624+
page_num = self.notebook.get_current_page()
625+
terminal = self.notebook.get_nth_page(page_num).terminal
626+
terminal.set_color_foreground(bgcolor)
627+
# self.notebook.get_current_terminal().set_color_foreground(fgcolor)
609628

610629
def execute_command(self, command, tab=None):
611630
"""Execute the `command' in the `tab'. If tab is None, the

guake/paths.py.in

+6-8
Original file line numberDiff line numberDiff line change
@@ -37,51 +37,49 @@ def get_default_package_root():
3737
def get_data_files_dir():
3838
d = os.path.dirname(sys.modules["guake"].__file__)
3939
p = os.path.basename(os.path.abspath(os.path.join(d, "..")))
40-
# print("p", p)
4140
if p in ["site-packages", "dist-packages"]:
4241
# current "guake" package has been installed in a prefix structure (/usr, /usr/local or
4342
# ~/.local/)
4443
loc_dir = os.path.abspath(os.path.join(d, "..", "..", "..", ".."))
4544
loc_dir = os.path.join(loc_dir, "share", "guake")
46-
# print("loc_dir", loc_dir)
4745
if os.path.exists(loc_dir):
4846
return loc_dir
4947
return d
5048

5149

5250
def get_default_data_dir():
5351
d = os.path.join(get_data_files_dir(), "data")
54-
print("Using guake data directory: {}".format(d))
52+
log.debug("Using guake data directory: %s", d)
5553
return d
5654

5755

5856
def get_default_locale_dir():
5957
d = os.path.join(get_data_files_dir(), "po")
60-
print("Using guake image directory: {}".format(d))
58+
log.debug("Using guake image directory: %s", d)
6159
return d
6260

6361

6462
def get_default_image_dir():
6563
d = os.path.join(get_default_data_dir(), 'pixmaps')
66-
print("Using guake image directory: {}".format(d))
64+
log.debug("Using guake image directory: %s", d)
6765
return d
6866

6967

7068
def get_default_glade_dir():
7169
d = get_default_data_dir()
72-
print("Using guake glade directory: {}".format(d))
70+
log.debug("Using guake glade directory: %s", d)
7371
return d
7472

7573

7674
def get_default_schema_dir():
7775
d = get_default_data_dir()
78-
print("Using guake scheme directory: {}".format(d))
76+
log.debug("Using guake scheme directory: %s", d)
7977
return d
8078

8179

8280
def get_default_theme_dir():
8381
d = os.path.join(get_default_data_dir(), 'theme')
84-
print("Using guake theme directory: {}".format(d))
82+
log.debug("Using guake theme directory: %s", d)
8583
return d
8684

8785

releasenotes/config.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
branch: master
32
earliest_version: 3.0.0.a4
43
collapse_pre_releases: true
54
pre_release_tag_re: (?P<pre_release>\.(?:\d*[ab]|rc)+\d*)$

releasenotes/notes/fix-3d38462063ba8bf5.yaml

-2
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
fixes:
2+
- fixes ``guake --fgcolor/--bgcolor`` error (#1376).

0 commit comments

Comments
 (0)