From ea4bf3de29b16bf0910f49bfa407ab1a4f924ec4 Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Mon, 11 Nov 2019 16:49:21 +0000 Subject: [PATCH 1/2] tools: A theme override wrapper useful for the Librem5 --- tools/squeekboard-restyled | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 tools/squeekboard-restyled diff --git a/tools/squeekboard-restyled b/tools/squeekboard-restyled new file mode 100755 index 00000000..ca6a6281 --- /dev/null +++ b/tools/squeekboard-restyled @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +# Override default theme but allow selecting the replacement +export GTK_THEME="Adwaita:dark" +CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +DIRS="${CONFIG_HOME} $(set -f; IFS=:; printf '%s\n' $XDG_CONFIG_DIRS)" +for DIR in ${DIRS}; do + if cat $DIR/squeekboard/gtk_theme 2> /dev/null; then + export GTK_THEME="$(cat $DIR/squeekboard/gtk_theme 2> /dev/null)" + break; + fi; +done; + +exec $(which squeekboard) From 0bfaa8cd7a9ed721a5356eb2fd5d3224079dd69e Mon Sep 17 00:00:00 2001 From: Dorota Czaplejewicz Date: Mon, 11 Nov 2019 18:09:38 +0000 Subject: [PATCH 2/2] debian: Wrap squeekboard in theme selector This works around https://source.puri.sm/Librem5/squeekboard/issues/151 by providing a dark style to match the dark style of the layouts. --- debian/control | 2 ++ debian/squeekboard.lintian-overrides | 2 +- src/meson.build | 15 ++++++++++++++- tools/{squeekboard-restyled => squeekboard.in} | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) rename tools/{squeekboard-restyled => squeekboard.in} (92%) diff --git a/debian/control b/debian/control index dfa1060c..aa2819b5 100644 --- a/debian/control +++ b/debian/control @@ -28,6 +28,8 @@ Homepage: https://source.puri.sm/Librem5/squeekboard Package: squeekboard Architecture: linux-any Depends: +# for the Adwaita-dark theme + gnome-themes-extra-data, ${shlibs:Depends} ${misc:Depends} Description: On-screen keyboard for Wayland diff --git a/debian/squeekboard.lintian-overrides b/debian/squeekboard.lintian-overrides index 5be12589..0167bdc4 100644 --- a/debian/squeekboard.lintian-overrides +++ b/debian/squeekboard.lintian-overrides @@ -1,2 +1,2 @@ # yaml-rust 0.4.3 shares some roots with libyaml, including the string which lintian checks, creating a false positive -squeekboard binary: embedded-library usr/bin/squeekboard: libyaml +squeekboard binary: embedded-library usr/bin/squeekboard-real: libyaml diff --git a/src/meson.build b/src/meson.build index 68c86ce5..4e2a2e47 100644 --- a/src/meson.build +++ b/src/meson.build @@ -95,7 +95,20 @@ libsqueekboard = static_library('libsqueekboard', '-DEEK_COMPILATION=1'], ) -squeekboard = executable('squeekboard', +# the straight binary needs to be demoted in favor of the wrapper script +# due to styling being inconsistent +bindir = join_paths(prefix, get_option('bindir')) +wrapper_conf = configuration_data() +wrapper_conf.set('bindir', bindir) +configure_file( + input: '../tools/squeekboard.in', + output: 'squeekboard', + install_dir: bindir, + configuration: wrapper_conf, + install: true, +) + +squeekboard = executable('squeekboard-real', 'server-main.c', wl_proto_sources, squeekboard_resources, diff --git a/tools/squeekboard-restyled b/tools/squeekboard.in similarity index 92% rename from tools/squeekboard-restyled rename to tools/squeekboard.in index ca6a6281..ea5d239c 100755 --- a/tools/squeekboard-restyled +++ b/tools/squeekboard.in @@ -12,4 +12,4 @@ for DIR in ${DIRS}; do fi; done; -exec $(which squeekboard) +exec @bindir@/squeekboard-real