From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 20FAC1382C5 for ; Thu, 24 Jun 2021 12:09:19 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 466DBE081A; Thu, 24 Jun 2021 12:09:18 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id CB43DE081A for ; Thu, 24 Jun 2021 12:09:17 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 95553342A54 for ; Thu, 24 Jun 2021 12:09:15 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DB6A1797 for ; Thu, 24 Jun 2021 12:09:13 +0000 (UTC) From: "Marco Scardovi" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marco Scardovi" Message-ID: <1624536545.bfa0e3566c89b4d264de6f71508a4c7e4edb0aaa.marco@gentoo> Subject: [gentoo-commits] repo/proj/guru:dev commit in: x11-misc/squeekboard/files/, x11-misc/squeekboard/ X-VCS-Repository: repo/proj/guru X-VCS-Files: x11-misc/squeekboard/files/448.patch x11-misc/squeekboard/files/450.patch x11-misc/squeekboard/files/terminal.yaml x11-misc/squeekboard/squeekboard-1.14.0.ebuild X-VCS-Directories: x11-misc/squeekboard/files/ x11-misc/squeekboard/ X-VCS-Committer: marco X-VCS-Committer-Name: Marco Scardovi X-VCS-Revision: bfa0e3566c89b4d264de6f71508a4c7e4edb0aaa X-VCS-Branch: dev Date: Thu, 24 Jun 2021 12:09:13 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 1838b959-b958-4345-83b1-2de718c0a3a8 X-Archives-Hash: 9b440de7b4d52777a02d5ae4c3669657 commit: bfa0e3566c89b4d264de6f71508a4c7e4edb0aaa Author: Marco Scardovi scardovi com> AuthorDate: Thu Jun 24 12:06:44 2021 +0000 Commit: Marco Scardovi scardovi com> CommitDate: Thu Jun 24 12:09:05 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bfa0e356 x11-misc/squeekboard: remove unused files Package-Manager: Portage-3.0.20, Repoman-3.0.3 Signed-off-by: Marco Scardovi scardovi.com> x11-misc/squeekboard/files/448.patch | 470 ------------------------- x11-misc/squeekboard/files/450.patch | 38 -- x11-misc/squeekboard/files/terminal.yaml | 157 --------- x11-misc/squeekboard/squeekboard-1.14.0.ebuild | 4 +- 4 files changed, 2 insertions(+), 667 deletions(-) diff --git a/x11-misc/squeekboard/files/448.patch b/x11-misc/squeekboard/files/448.patch deleted file mode 100644 index 07956402e..000000000 --- a/x11-misc/squeekboard/files/448.patch +++ /dev/null @@ -1,470 +0,0 @@ -From 93e4345e823dbb9d9ee187d1f5b32c6dd7dffdd3 Mon Sep 17 00:00:00 2001 -From: Dorota Czaplejewicz -Date: Mon, 5 Apr 2021 08:17:07 +0000 -Subject: [PATCH 1/2] layout: Take into account text purpose again - ---- - src/data.rs | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/src/data.rs b/src/data.rs -index e5aa3910..71711c3f 100644 ---- a/src/data.rs -+++ b/src/data.rs -@@ -239,13 +239,18 @@ fn load_layout_data_with_fallback( - .map(PathBuf::from) - .or_else(|| xdg::data_path("squeekboard/keyboards")); - -- log_print!( -- logging::Level::Debug, -- "load_layout_data_with_fallback() -> name:{}, purpose:{:?}, overlay:{}, layout_name:{}", -- name, purpose, overlay, &name -- ); -+ let layout_purpose = match overlay { -+ "" => match purpose { -+ ContentPurpose::Number => "number", -+ ContentPurpose::Digits => "number", -+ ContentPurpose::Phone => "number", -+ ContentPurpose::Terminal => "terminal", -+ _ => "", -+ }, -+ overlay => overlay, -+ }; - -- for (kind, source) in list_layout_sources(&name, kind, overlay, path) { -+ for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) { - let layout = load_layout_data(source.clone()); - match layout { - Err(e) => match (e, source) { --- -GitLab - - -From 190876903281774bf0f304269ad7f047f44482b1 Mon Sep 17 00:00:00 2001 -From: Dorota Czaplejewicz -Date: Mon, 5 Apr 2021 10:36:41 +0000 -Subject: [PATCH 2/2] layouts: Make selection testable - -From now on, all the parameters for loading layout are handled inside a single pure function, which makes them possible to test. - -As a side benefit, the old preference order function composed of a mess of nested procedures is gone. ---- - src/data.rs | 312 ++++++++++++++++++++++++++++++++++---------------- - src/layout.rs | 2 +- - 2 files changed, 212 insertions(+), 102 deletions(-) - -diff --git a/src/data.rs b/src/data.rs -index 71711c3f..29cd4ba4 100644 ---- a/src/data.rs -+++ b/src/data.rs -@@ -69,8 +69,12 @@ pub mod c { - let overlay_str = as_str(&overlay) - .expect("Bad overlay name") - .expect("Empty overlay name"); -+ let overlay_str = match overlay_str { -+ "" => None, -+ other => Some(other), -+ }; - -- let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, &overlay_str); -+ let (kind, layout) = load_layout_data_with_fallback(&name, type_, variant, overlay_str); - let layout = ::layout::Layout::new(layout, kind); - Box::into_raw(Box::new(layout)) - } -@@ -113,97 +117,156 @@ impl fmt::Display for DataSource { - } - } - --type LayoutSource = (ArrangementKind, DataSource); -- --/// Lists possible sources, with 0 as the most preferred one --/// Trying order: native lang of the right kind, native base, --/// fallback lang of the right kind, fallback base --/// The `purpose` argument is not ContentPurpose, --/// but rather ContentPurpose and overlay in one. --fn list_layout_sources( -- name: &str, -- kind: ArrangementKind, -- purpose: &str, -- keyboards_path: Option, --) -> Vec { -- // Just a simplification of often called code. -- let add_by_name = | -- mut ret: Vec, -- purpose: &str, -- name: &str, -- kind: &ArrangementKind, -- | -> Vec { -- let name = if purpose == "" { name.into() } -- else { format!("{}/{}", purpose, name) }; -- -- if let Some(path) = keyboards_path.clone() { -- ret.push(( -- kind.clone(), -- DataSource::File( -- path.join(name.clone()) -- .with_extension("yaml") -- ) -- )) -- } -- -- ret.push(( -- kind.clone(), -- DataSource::Resource(name) -- )); -- ret -- }; -- -- // Another grouping. -- let add_by_kind = |ret, purpose: &str, name: &str, kind| { -- let ret = match kind { -- &ArrangementKind::Base => ret, -- kind => add_by_name( -- ret, -- purpose, -- &name_with_arrangement(name.into(), kind), -- kind, -- ), -- }; -- -- add_by_name(ret, purpose, name, &ArrangementKind::Base) -+/* All functions in this family carry around ArrangementKind, -+ * because it's not guaranteed to be preserved, -+ * and the resulting layout needs to know which version was loaded. -+ * See `squeek_layout_get_kind`. -+ * Possible TODO: since this is used only in styling, -+ * and makes the below code nastier than needed, maybe it should go. -+ */ -+ -+/// Returns ordered names treating `name` as the base name, -+/// ignoring any `+` inside. -+fn _get_arrangement_names(name: &str, arrangement: ArrangementKind) -+ -> Vec<(ArrangementKind, String)> -+{ -+ let name_with_arrangement = match arrangement { -+ ArrangementKind::Base => name.into(), -+ ArrangementKind::Wide => format!("{}_wide", name), - }; -- -- fn name_with_arrangement( -- name: String, -- kind: &ArrangementKind, -- ) -> String { -- match kind { -- ArrangementKind::Base => name, -- ArrangementKind::Wide => name + "_wide", -- } -+ -+ let mut ret = Vec::new(); -+ if name_with_arrangement != name { -+ ret.push((arrangement, name_with_arrangement)); - } -+ ret.push((ArrangementKind::Base, name.into())); -+ ret -+} - -- let ret = Vec::new(); -- -- // Name as given takes priority. -- let ret = add_by_kind(ret, purpose, name, &kind); -- -- // Then try non-alternative name if applicable (`us` for `us+colemak`). -- let ret = { -+/// Returns names accounting for any `+` in the `name`, -+/// including the fallback to the default layout. -+fn get_preferred_names(name: &str, kind: ArrangementKind) -+ -> Vec<(ArrangementKind, String)> -+{ -+ let mut ret = _get_arrangement_names(name, kind); -+ -+ let base_name_preferences = { - let mut parts = name.splitn(2, '+'); - match parts.next() { - Some(base) => { -- // The name is already equal to base, so it was already added. -- if base == name { ret } -- else { -- add_by_kind(ret, purpose, base, &kind) -+ // The name is already equal to base, so nothing to add -+ if base == name { -+ vec![] -+ } else { -+ _get_arrangement_names(base, kind) - } - }, - // The layout's base name starts with a "+". Weird but OK. - None => { - log_print!(logging::Level::Surprise, "Base layout name is empty: {}", name); -- ret -+ vec![] - } - } - }; -+ -+ ret.extend(base_name_preferences.into_iter()); -+ let fallback_names = _get_arrangement_names(FALLBACK_LAYOUT_NAME, kind); -+ ret.extend(fallback_names.into_iter()); -+ ret -+} -+ -+/// Includes the subdirectory before the forward slash. -+type LayoutPath = String; -+ -+// This is only used inside iter_fallbacks_with_meta. -+// Placed at the top scope -+// because `use LayoutPurpose::*;` -+// complains about "not in scope" otherwise. -+// This seems to be a Rust 2015 edition problem. -+/// Helper for determining where to look up the layout. -+enum LayoutPurpose<'a> { -+ Default, -+ Special(&'a str), -+} -+ -+/// Returns the directory string -+/// where the layout should be looked up, including the slash. -+fn get_directory_string( -+ content_purpose: ContentPurpose, -+ overlay: Option<&str>) -> String -+{ -+ use self::LayoutPurpose::*; -+ -+ let layout_purpose = match overlay { -+ None => match content_purpose { -+ ContentPurpose::Number => Special("number"), -+ ContentPurpose::Digits => Special("number"), -+ ContentPurpose::Phone => Special("number"), -+ ContentPurpose::Terminal => Special("terminal"), -+ _ => Default, -+ }, -+ Some(overlay) => Special(overlay), -+ }; -+ -+ // For intuitiveness, -+ // default purpose layouts are stored in the root directory, -+ // as they correspond to typical text -+ // and are seen the most often. -+ match layout_purpose { -+ Default => "".into(), -+ Special(purpose) => format!("{}/", purpose), -+ } -+} - -- add_by_kind(ret, purpose, FALLBACK_LAYOUT_NAME.into(), &kind) -+/// Returns an iterator over all fallback paths. -+fn to_layout_paths( -+ name_fallbacks: Vec<(ArrangementKind, String)>, -+ content_purpose: ContentPurpose, -+ overlay: Option<&str>, -+) -> impl Iterator { -+ let prepend_directory = get_directory_string(content_purpose, overlay); -+ -+ name_fallbacks.into_iter() -+ .map(move |(arrangement, name)| -+ (arrangement, format!("{}{}", prepend_directory, name)) -+ ) -+} - -+type LayoutSource = (ArrangementKind, DataSource); -+ -+fn to_layout_sources( -+ layout_paths: impl Iterator, -+ filesystem_path: Option, -+) -> impl Iterator { -+ layout_paths.flat_map(move |(arrangement, layout_path)| { -+ let mut sources = Vec::new(); -+ if let Some(path) = &filesystem_path { -+ sources.push(( -+ arrangement, -+ DataSource::File( -+ path.join(&layout_path) -+ .with_extension("yaml") -+ ) -+ )); -+ }; -+ sources.push((arrangement, DataSource::Resource(layout_path.clone()))); -+ sources.into_iter() -+ }) -+} -+ -+/// Returns possible sources, with first as the most preferred one. -+/// Trying order: native lang of the right kind, native base, -+/// fallback lang of the right kind, fallback base -+fn iter_layout_sources( -+ name: &str, -+ arrangement: ArrangementKind, -+ purpose: ContentPurpose, -+ ui_overlay: Option<&str>, -+ layout_storage: Option, -+) -> impl Iterator { -+ let names = get_preferred_names(name, arrangement); -+ let paths = to_layout_paths(names, purpose, ui_overlay); -+ to_layout_sources(paths, layout_storage) - } - - fn load_layout_data(source: DataSource) -@@ -231,7 +294,7 @@ fn load_layout_data_with_fallback( - name: &str, - kind: ArrangementKind, - purpose: ContentPurpose, -- overlay: &str, -+ overlay: Option<&str>, - ) -> (ArrangementKind, ::layout::LayoutData) { - - // Build the path to the right keyboard layout subdirectory -@@ -239,18 +302,7 @@ fn load_layout_data_with_fallback( - .map(PathBuf::from) - .or_else(|| xdg::data_path("squeekboard/keyboards")); - -- let layout_purpose = match overlay { -- "" => match purpose { -- ContentPurpose::Number => "number", -- ContentPurpose::Digits => "number", -- ContentPurpose::Phone => "number", -- ContentPurpose::Terminal => "terminal", -- _ => "", -- }, -- overlay => overlay, -- }; -- -- for (kind, source) in list_layout_sources(&name, kind, layout_purpose, path) { -+ for (kind, source) in iter_layout_sources(&name, kind, purpose, overlay, path) { - let layout = load_layout_data(source.clone()); - match layout { - Err(e) => match (e, source) { -@@ -982,11 +1034,11 @@ mod tests { - - /// First fallback should be to builtin, not to FALLBACK_LAYOUT_NAME - #[test] -- fn fallbacks_order() { -- let sources = list_layout_sources("nb", ArrangementKind::Base, "", None); -+ fn test_fallback_basic_builtin() { -+ let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, None); - - assert_eq!( -- sources, -+ sources.collect::>(), - vec!( - (ArrangementKind::Base, DataSource::Resource("nb".into())), - ( -@@ -996,14 +1048,36 @@ mod tests { - ) - ); - } -+ -+ /// Prefer loading from file system before builtin. -+ #[test] -+ fn test_preferences_order_path() { -+ let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, None, Some(".".into())); -+ -+ assert_eq!( -+ sources.collect::>(), -+ vec!( -+ (ArrangementKind::Base, DataSource::File("./nb.yaml".into())), -+ (ArrangementKind::Base, DataSource::Resource("nb".into())), -+ ( -+ ArrangementKind::Base, -+ DataSource::File("./us.yaml".into()) -+ ), -+ ( -+ ArrangementKind::Base, -+ DataSource::Resource("us".into()) -+ ), -+ ) -+ ); -+ } - - /// If layout contains a "+", it should reach for what's in front of it too. - #[test] -- fn fallbacks_order_base() { -- let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "", None); -+ fn test_preferences_order_base() { -+ let sources = iter_layout_sources("nb+aliens", ArrangementKind::Base, ContentPurpose::Normal, None, None); - - assert_eq!( -- sources, -+ sources.collect::>(), - vec!( - (ArrangementKind::Base, DataSource::Resource("nb+aliens".into())), - (ArrangementKind::Base, DataSource::Resource("nb".into())), -@@ -1016,22 +1090,58 @@ mod tests { - } - - #[test] -- fn fallbacks_terminal_order_base() { -- let sources = list_layout_sources("nb+aliens", ArrangementKind::Base, "terminal", None); -+ fn test_preferences_order_arrangement() { -+ let sources = iter_layout_sources("nb", ArrangementKind::Wide, ContentPurpose::Normal, None, None); - - assert_eq!( -- sources, -+ sources.collect::>(), -+ vec!( -+ (ArrangementKind::Wide, DataSource::Resource("nb_wide".into())), -+ (ArrangementKind::Base, DataSource::Resource("nb".into())), -+ ( -+ ArrangementKind::Wide, -+ DataSource::Resource("us_wide".into()) -+ ), -+ ( -+ ArrangementKind::Base, -+ DataSource::Resource("us".into()) -+ ), -+ ) -+ ); -+ } -+ -+ #[test] -+ fn test_preferences_order_overlay() { -+ let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Normal, Some("terminal"), None); -+ -+ assert_eq!( -+ sources.collect::>(), - vec!( -- (ArrangementKind::Base, DataSource::Resource("terminal/nb+aliens".into())), - (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())), - ( - ArrangementKind::Base, -- DataSource::Resource(format!("terminal/{}", FALLBACK_LAYOUT_NAME)) -+ DataSource::Resource("terminal/us".into()) - ), - ) - ); - } -- -+ -+ #[test] -+ fn test_preferences_order_hint() { -+ let sources = iter_layout_sources("nb", ArrangementKind::Base, ContentPurpose::Terminal, None, None); -+ -+ assert_eq!( -+ sources.collect::>(), -+ vec!( -+ (ArrangementKind::Base, DataSource::Resource("terminal/nb".into())), -+ ( -+ ArrangementKind::Base, -+ DataSource::Resource("terminal/us".into()) -+ ), -+ ) -+ ); -+ } -+ - #[test] - fn unicode_keysym() { - let keysym = xkb::keysym_from_name( -diff --git a/src/layout.rs b/src/layout.rs -index 413795f0..0b8607b0 100644 ---- a/src/layout.rs -+++ b/src/layout.rs -@@ -600,7 +600,7 @@ impl View { - } - - /// The physical characteristic of layout for the purpose of styling --#[derive(Clone, PartialEq, Debug)] -+#[derive(Clone, Copy, PartialEq, Debug)] - pub enum ArrangementKind { - Base = 0, - Wide = 1, --- -GitLab - diff --git a/x11-misc/squeekboard/files/450.patch b/x11-misc/squeekboard/files/450.patch deleted file mode 100644 index d50e412a8..000000000 --- a/x11-misc/squeekboard/files/450.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4fdce2802ad3ed8705c9629aa5622c89c70eabae Mon Sep 17 00:00:00 2001 -From: Dorota Czaplejewicz -Date: Wed, 7 Apr 2021 15:26:18 +0000 -Subject: [PATCH] layouts: Stop assuming that layout name always changes on - switch - -Layout type switching outside of overlay was always done with gsettings in the middle, assuming that all clicks on languages in the popover result in a gsettings event. That's a bad assumption if there's only one xkb lang present. - -This is a simple work around. A better solution would be to turn the entire system of layout switching into a central object that receives messages about changes that need to be applied, and then applies them. ---- - src/popover.rs | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/popover.rs b/src/popover.rs -index 92103869..0d909b82 100644 ---- a/src/popover.rs -+++ b/src/popover.rs -@@ -213,7 +213,16 @@ fn set_visible_layout( - layout_id: LayoutId, - ) { - match layout_id { -- LayoutId::System { kind, name } => set_layout(kind, name), -+ LayoutId::System { kind, name } => { -+ unsafe { -+ use std::ptr; -+ manager::c::eekboard_context_service_set_overlay( -+ manager, -+ ptr::null(), -+ ); -+ } -+ set_layout(kind, name); -+ } - LayoutId::Local(name) => { - let name = CString::new(name.as_str()).unwrap(); - let name_ptr = name.as_ptr(); --- -GitLab - diff --git a/x11-misc/squeekboard/files/terminal.yaml b/x11-misc/squeekboard/files/terminal.yaml deleted file mode 100644 index d3b382a9e..000000000 --- a/x11-misc/squeekboard/files/terminal.yaml +++ /dev/null @@ -1,157 +0,0 @@ ---- -outlines: - default: { width: 50, height: 50 } - altline: { width: 70, height: 50 } - spaceline: { width: 160, height: 50 } - special: { width: 35.33, height: 50 } - action: { width: 85, height: 35 } - fkey: { width: 41, height: 50 } - -views: - base: - - "1 2 3 4 5 6 7 8 9 0" - - "q w e r t y u i o p" - - "a s d f g h j k l" - - "Shift_L z x c v b n m BackSpace" - - "show_symbols show_eschars preferences space , . Return" - - "Ctrl Tab ↑ ↓ ← →" - upper: - - "! @ # $ % ^ & * ( )" - - "Q W E R T Y U I O P" - - "A S D F G H J K L" - - "Shift_L Z X C V B N M BackSpace" - - "show_symbols show_eschars preferences space < > Return" - - "Alt Esc PgUp PgDn Home End" - symbols: - - "~ ` ´ - _ + = ° © ®" - - "[ ] { } \\ | ÷ × √" - - "; : ' \" · € £ ¥" - - "Del / ? § π τ µ ¶ BackSpace" - - "show_letters show_eschars preferences space < > Return" - - "Ctrl Tab ↑ ↓ ← →" - eschars: - - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12" - - "ä è é ö ü Ä È É Ö Ü" - - "à â ê î ô À Â È Î Ô" - - "Del « » ç Ç æ œ ß BackSpace" - - "show_symbols show_eschars preferences space „ “ Return" - - "Alt Esc PgUp PgDn Home End" - -buttons: - Shift_L: - action: - locking: - lock_view: "upper" - unlock_view: "base" - outline: "altline" - icon: "key-shift" - Ctrl: - modifier: "Control" - outline: "action" - label: "Ctrl" - Alt: - modifier: "Alt" - outline: "action" - label: "Alt" - BackSpace: - outline: "altline" - icon: "edit-clear-symbolic" - action: "erase" - preferences: - action: "show_prefs" - outline: "special" - icon: "keyboard-mode-symbolic" - show_letters: - action: - set_view: "base" - outline: "altline" - label: "abc" - show_symbols: - action: - set_view: "symbols" - outline: "altline" - label: "[{/" - show_eschars: - action: - locking: - lock_view: "eschars" - unlock_view: "base" - outline: "altline" - label: "func" - space: - outline: "spaceline" - label: " " - text: " " - Return: - outline: "altline" - icon: "key-enter" - keysym: "Return" - F1: - outline: "fkey" - keysym: "F1" - F2: - outline: "fkey" - keysym: "F2" - F3: - outline: "fkey" - keysym: "F3" - F4: - outline: "fkey" - keysym: "F4" - F5: - outline: "fkey" - keysym: "F5" - F6: - outline: "fkey" - keysym: "F6" - F7: - outline: "fkey" - keysym: "F7" - F8: - outline: "fkey" - keysym: "F8" - F9: - outline: "fkey" - keysym: "F9" - F10: - outline: "fkey" - keysym: "F10" - F11: - outline: "fkey" - keysym: "F11" - F12: - outline: "fkey" - keysym: "F12" - Esc: - outline: "action" - keysym: "Escape" - Home: - outline: "action" - keysym: "Home" - End: - outline: "action" - keysym: "End" - Del: - outline: "altline" - keysym: "Delete" - PgUp: - outline: "action" - keysym: "Page_Up" - PgDn: - outline: "action" - keysym: "Page_Down" - Tab: - outline: "action" - keysym: "Tab" - "↑": - outline: "action" - keysym: "Up" - "↓": - outline: "action" - keysym: "Down" - "←": - outline: "action" - keysym: "Left" - "→": - outline: "action" - keysym: "Right" diff --git a/x11-misc/squeekboard/squeekboard-1.14.0.ebuild b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild index c907141ea..2a85f038b 100644 --- a/x11-misc/squeekboard/squeekboard-1.14.0.ebuild +++ b/x11-misc/squeekboard/squeekboard-1.14.0.ebuild @@ -71,10 +71,10 @@ DEPEND=" " RDEPEND="${DEPEND}" BDEPEND=" - virtual/pkgconfig + dev-util/gtk-doc dev-util/intltool + virtual/pkgconfig virtual/rust - dev-util/gtk-doc " S="${WORKDIR}/${PN}-${MY_COMMIT}"