From 05e38a1a5d620109d85eb67472c4d0f7eefd2100 Mon Sep 17 00:00:00 2001 From: Antoine C Date: Wed, 4 Sep 2024 16:23:55 +0100 Subject: [PATCH] feat(Workspace): add missing settings and update design --- .../src/pages/desktop/workspaces.rs | 400 ++++++++++++++++-- i18n/en/cosmic_settings.ftl | 15 + i18n/fr/cosmic_settings.ftl | 15 + .../trackpad-gesture-swipe-down-dark.svg | 9 + .../trackpad-gesture-swipe-down-light.svg | 9 + ...trackpad-gesture-swipe-horizontal-dark.svg | 10 + ...rackpad-gesture-swipe-horizontal-light.svg | 10 + .../trackpad-gesture-swipe-left-dark.svg | 9 + .../trackpad-gesture-swipe-left-light.svg | 9 + .../trackpad-gesture-swipe-right-dark.svg | 9 + .../trackpad-gesture-swipe-right-light.svg | 9 + .../assets/trackpad-gesture-swipe-up-dark.svg | 9 + .../trackpad-gesture-swipe-up-light.svg | 9 + .../trackpad-gesture-swipe-vertical-dark.svg | 10 + .../trackpad-gesture-swipe-vertical-light.svg | 10 + .../workspace-orientation-bottom-dark.svg | 11 + .../workspace-orientation-bottom-light.svg | 11 + .../workspace-orientation-left-dark.svg | 11 + .../workspace-orientation-left-light.svg | 12 + .../workspace-orientation-right-dark.svg | 11 + .../assets/workspace-orientation-top-dark.svg | 11 + .../workspace-orientation-top-light.svg | 11 + .../workspace-separate-display-dark.svg | 39 ++ .../workspace-separate-display-light.svg | 27 ++ .../assets/workspace-span-display-dark.svg | 61 +++ .../assets/workspace-span-display-light.svg | 36 ++ 26 files changed, 744 insertions(+), 39 deletions(-) create mode 100644 resources/assets/trackpad-gesture-swipe-down-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-down-light.svg create mode 100644 resources/assets/trackpad-gesture-swipe-horizontal-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-horizontal-light.svg create mode 100644 resources/assets/trackpad-gesture-swipe-left-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-left-light.svg create mode 100644 resources/assets/trackpad-gesture-swipe-right-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-right-light.svg create mode 100644 resources/assets/trackpad-gesture-swipe-up-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-up-light.svg create mode 100644 resources/assets/trackpad-gesture-swipe-vertical-dark.svg create mode 100644 resources/assets/trackpad-gesture-swipe-vertical-light.svg create mode 100644 resources/assets/workspace-orientation-bottom-dark.svg create mode 100644 resources/assets/workspace-orientation-bottom-light.svg create mode 100644 resources/assets/workspace-orientation-left-dark.svg create mode 100644 resources/assets/workspace-orientation-left-light.svg create mode 100644 resources/assets/workspace-orientation-right-dark.svg create mode 100644 resources/assets/workspace-orientation-top-dark.svg create mode 100644 resources/assets/workspace-orientation-top-light.svg create mode 100644 resources/assets/workspace-separate-display-dark.svg create mode 100644 resources/assets/workspace-separate-display-light.svg create mode 100644 resources/assets/workspace-span-display-dark.svg create mode 100644 resources/assets/workspace-span-display-light.svg diff --git a/cosmic-settings/src/pages/desktop/workspaces.rs b/cosmic-settings/src/pages/desktop/workspaces.rs index c66c6c5c..1ce5d835 100644 --- a/cosmic-settings/src/pages/desktop/workspaces.rs +++ b/cosmic-settings/src/pages/desktop/workspaces.rs @@ -5,11 +5,13 @@ use cosmic::{ cosmic_config::{self, ConfigGet, ConfigSet}, - iced::Length, - widget::{radio, settings, text}, + iced::{widget, Alignment, Length}, + widget::{icon, radio, settings, text, ListColumn}, Apply, Element, }; -use cosmic_comp_config::workspace::{WorkspaceConfig, WorkspaceLayout, WorkspaceMode}; +use cosmic_comp_config::workspace::{ + WorkspaceConfig, WorkspaceLayout, WorkspaceMode, WorkspaceThumbnailPlacement, +}; use cosmic_settings_page::Section; use cosmic_settings_page::{self as page, section}; use slab::Slab; @@ -19,7 +21,9 @@ use tracing::error; #[derive(Clone, Debug)] pub enum Message { SetWorkspaceMode(WorkspaceMode), - SetWorkspaceLayout(WorkspaceLayout), + SetWorkspaceLayout(cosmic::widget::segmented_button::Entity), + SetWorkspaceThumbnailPlacement(usize), + ShowTrackpadGestureInfo(bool), SetShowName(bool), SetShowNumber(bool), } @@ -30,6 +34,59 @@ pub struct Page { comp_workspace_config: WorkspaceConfig, show_workspace_name: bool, show_workspace_number: bool, + show_trackpad_gesture: bool, + workspace_thumbnail_placement_options: Vec, + workspace_layout_model: cosmic::widget::segmented_button::SingleSelectModel, + selected_workspace_thumbnail_placement: usize, +} + +#[derive(Copy, Clone, Debug)] +enum Asset { + WorkspaceSpanDisplay, + WorkspaceSeparateDisplay, + WorkspaceOrientationLeft, + WorkspaceOrientationRight, + WorkspaceOrientationTop, + WorkspaceOrientationBottom, + TrackpadGestureSwipeVertical, + TrackpadGestureSwipeHorizontal, + TrackpadGestureSwipeLeft, + TrackpadGestureSwipeUp, + TrackpadGestureSwipeRight, + TrackpadGestureSwipeDown, +} + +impl Asset { + /// Return the slug path to the asset + fn slug(self) -> &'static str { + match self { + Asset::WorkspaceSpanDisplay => "assets/workspace-span-display", + Asset::WorkspaceSeparateDisplay => "assets/workspace-separate-display", + Asset::WorkspaceOrientationLeft => "assets/workspace-orientation-left", + Asset::WorkspaceOrientationRight => "assets/workspace-orientation-right", + Asset::WorkspaceOrientationTop => "assets/workspace-orientation-top", + Asset::WorkspaceOrientationBottom => "assets/workspace-orientation-bottom", + Asset::TrackpadGestureSwipeVertical => "assets/trackpad-gesture-swipe-vertical", + Asset::TrackpadGestureSwipeHorizontal => "assets/trackpad-gesture-swipe-horizontal", + Asset::TrackpadGestureSwipeLeft => "assets/trackpad-gesture-swipe-left", + Asset::TrackpadGestureSwipeUp => "assets/trackpad-gesture-swipe-up", + Asset::TrackpadGestureSwipeRight => "assets/trackpad-gesture-swipe-right", + Asset::TrackpadGestureSwipeDown => "assets/trackpad-gesture-swipe-down", + } + } +} + +fn asset_handle(asset: Asset) -> widget::svg::Handle { + let slug = asset.slug(); + let theme = if cosmic::theme::active().cosmic().is_dark { + "dark" + } else { + "light" + }; + let path = std::path::absolute(format!("../resources/{slug}-{theme}.svg")).unwrap(); + + assert!(path.exists(), "Cannot find the asset at {path:?}"); + cosmic::iced_core::svg::Handle::from_path(path) } impl Default for Page { @@ -57,12 +114,44 @@ impl Default for Page { false }); + let workspace_thumbnail_placement_options = match comp_workspace_config.workspace_layout { + WorkspaceLayout::Horizontal => vec![ + fl!("workspaces-orientation", "top"), + fl!("workspaces-orientation", "bottom"), + ], + WorkspaceLayout::Vertical => vec![ + fl!("workspaces-orientation", "left"), + fl!("workspaces-orientation", "right"), + ], + }; + let mut workspace_layout_model = + cosmic::widget::segmented_button::SingleSelectModel::builder() + .insert(|b| { + b.text(fl!("workspaces-orientation", "vertical")) + .data(WorkspaceLayout::Vertical) + }) + .insert(|b| { + b.text(fl!("workspaces-orientation", "horizontal")) + .data(WorkspaceLayout::Horizontal) + }) + .build(); + workspace_layout_model.activate_position(match comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => 0, + WorkspaceLayout::Horizontal => 1, + }); + let selected_workspace_thumbnail_placement = + comp_workspace_config.workspace_thumbnail_placement as usize % 2; + let show_trackpad_gesture = false; Self { config, comp_config, comp_workspace_config, show_workspace_name, show_workspace_number, + show_trackpad_gesture, + workspace_thumbnail_placement_options, + workspace_layout_model, + selected_workspace_thumbnail_placement, } } } @@ -75,6 +164,7 @@ impl page::Page for Page { Some(vec![ sections.insert(multi_behavior()), sections.insert(workspace_orientation()), + sections.insert(workspace_overview()), ]) } @@ -104,7 +194,65 @@ impl Page { self.save_comp_config(); } Message::SetWorkspaceLayout(value) => { - self.comp_workspace_config.workspace_layout = value; + self.comp_workspace_config.workspace_layout = *self + .workspace_layout_model + .data::(value) + .unwrap_or(&WorkspaceLayout::Vertical); + self.workspace_layout_model.activate_position( + match self.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => 0, + WorkspaceLayout::Horizontal => 1, + }, + ); + self.workspace_thumbnail_placement_options = + match self.comp_workspace_config.workspace_layout { + WorkspaceLayout::Horizontal => vec![ + fl!("workspaces-orientation", "top"), + fl!("workspaces-orientation", "bottom"), + ], + WorkspaceLayout::Vertical => vec![ + fl!("workspaces-orientation", "left"), + fl!("workspaces-orientation", "right"), + ], + }; + self.comp_workspace_config.workspace_thumbnail_placement = + match self.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => { + if self.selected_workspace_thumbnail_placement == 0 { + WorkspaceThumbnailPlacement::Left + } else { + WorkspaceThumbnailPlacement::Right + } + } + WorkspaceLayout::Horizontal => { + if self.selected_workspace_thumbnail_placement == 0 { + WorkspaceThumbnailPlacement::Top + } else { + WorkspaceThumbnailPlacement::Bottom + } + } + }; + self.save_comp_config(); + } + Message::SetWorkspaceThumbnailPlacement(value) => { + self.comp_workspace_config.workspace_thumbnail_placement = + match self.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => { + if value == 0 { + WorkspaceThumbnailPlacement::Left + } else { + WorkspaceThumbnailPlacement::Right + } + } + WorkspaceLayout::Horizontal => { + if value == 0 { + WorkspaceThumbnailPlacement::Top + } else { + WorkspaceThumbnailPlacement::Bottom + } + } + }; + self.selected_workspace_thumbnail_placement = value; self.save_comp_config(); } Message::SetShowName(value) => { @@ -119,6 +267,9 @@ impl Page { error!(?err, "Failed to set config 'show_workspace_number'"); } } + Message::ShowTrackpadGestureInfo(value) => { + self.show_trackpad_gesture = value; + } } } } @@ -134,58 +285,229 @@ fn multi_behavior() -> Section { .descriptions(descriptions) .view::(move |_binder, page, section| { let descriptions = §ion.descriptions; - settings::section() + cosmic::widget::settings::section::with_column( + ListColumn::default() + .add( + cosmic::iced::widget::column!( + widget::vertical_space().height(1), + settings::item_row(vec![radio( + text::body(&descriptions[span]), + WorkspaceMode::Global, + Some(page.comp_workspace_config.workspace_mode), + Message::SetWorkspaceMode, + ) + .width(Length::Fill) + .into()]), + cosmic::iced::widget::svg(asset_handle(Asset::WorkspaceSpanDisplay)) + ) + .spacing(cosmic::theme::active().cosmic().space_s()) + .align_x(Alignment::Center), + ) + .add( + cosmic::iced::widget::column!( + widget::vertical_space().height(1), + settings::item_row(vec![radio( + text::body(&descriptions[separate]), + WorkspaceMode::OutputBound, + Some(page.comp_workspace_config.workspace_mode), + Message::SetWorkspaceMode, + ) + .width(Length::Fill) + .into()]), + cosmic::iced::widget::svg(asset_handle( + Asset::WorkspaceSeparateDisplay + )) + ) + .spacing(cosmic::theme::active().cosmic().space_s()) + .align_x(Alignment::Center), + ) + .spacing(0), + ) + .title(§ion.title) + .apply(Element::from) + .map(crate::pages::Message::DesktopWorkspaces) + }) +} + +fn workspace_orientation() -> Section { + let mut descriptions = Slab::new(); + + let thumbnail_placement_label = + descriptions.insert(fl!("workspaces-orientation", "thumbnail-placement")); + let trackpad_gestures = descriptions.insert(fl!("workspaces-orientation", "trackpad-gestures")); + + let switch_workspace = descriptions.insert(fl!("workspaces-orientation", "switch-workspace")); + let open_workspaces = descriptions.insert(fl!("workspaces-orientation", "open-workspaces")); + let open_applications = descriptions.insert(fl!("workspaces-orientation", "open-applications")); + + let swipe_horizontal = descriptions.insert(fl!("workspaces-orientation", "swipe-horizontal")); + let swipe_vertical = descriptions.insert(fl!("workspaces-orientation", "swipe-vertical")); + let swipe_up = descriptions.insert(fl!("workspaces-orientation", "swipe-up")); + let swipe_down = descriptions.insert(fl!("workspaces-orientation", "swipe-down")); + let swipe_left = descriptions.insert(fl!("workspaces-orientation", "swipe-left")); + let swipe_right = descriptions.insert(fl!("workspaces-orientation", "swipe-right")); + + Section::default() + .title(fl!("workspaces-orientation")) + .descriptions(descriptions) + .view::(move |_binder, page, section| { + let descriptions = §ion.descriptions; + + let thumbnail_placement = cosmic::widget::dropdown( + &page.workspace_thumbnail_placement_options, + Some(page.selected_workspace_thumbnail_placement), + Message::SetWorkspaceThumbnailPlacement, + ); + let mut section = settings::section() .title(§ion.title) - .add(settings::item_row(vec![radio( - text::body(&descriptions[span]), - WorkspaceMode::Global, - Some(page.comp_workspace_config.workspace_mode), - Message::SetWorkspaceMode, - ) - .width(Length::Fill) - .into()])) - .add(settings::item_row(vec![radio( - text::body(&descriptions[separate]), - WorkspaceMode::OutputBound, - Some(page.comp_workspace_config.workspace_mode), - Message::SetWorkspaceMode, + .add( + cosmic::iced::widget::column!( + cosmic::iced::widget::svg( + match page.comp_workspace_config.workspace_thumbnail_placement { + WorkspaceThumbnailPlacement::Left => + asset_handle(Asset::WorkspaceOrientationLeft), + WorkspaceThumbnailPlacement::Right => + asset_handle(Asset::WorkspaceOrientationRight), + WorkspaceThumbnailPlacement::Top => + asset_handle(Asset::WorkspaceOrientationTop), + WorkspaceThumbnailPlacement::Bottom => + asset_handle(Asset::WorkspaceOrientationBottom), + } + ), + cosmic::iced::widget::container( + cosmic::widget::segmented_control::horizontal( + &page.workspace_layout_model + ) + .minimum_button_width(0) + .on_activate(Message::SetWorkspaceLayout) + ) + .width(320.0) + .height(32.0), + ) + .spacing(cosmic::theme::active().cosmic().space_m()) + .align_x(Alignment::Center), ) - .width(Length::Fill) - .into()])) + .add(settings::item( + &descriptions[thumbnail_placement_label], + thumbnail_placement, + )) + .add( + cosmic::iced::widget::MouseArea::new(settings::item( + &descriptions[trackpad_gestures], + cosmic::iced::widget::container( + icon::from_name(if page.show_trackpad_gesture { + "go-up-symbolic" + } else { + "go-down-symbolic" + }) + .size(16), + ) + .width(Length::Shrink), + )) + .on_press(Message::ShowTrackpadGestureInfo( + !page.show_trackpad_gesture, + )), + ); + if page.show_trackpad_gesture { + let (switch_ws, open_ws, open_app) = + match page.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => ( + asset_handle(Asset::TrackpadGestureSwipeVertical), + asset_handle(Asset::TrackpadGestureSwipeLeft), + asset_handle(Asset::TrackpadGestureSwipeRight), + ), + WorkspaceLayout::Horizontal => ( + asset_handle(Asset::TrackpadGestureSwipeHorizontal), + asset_handle(Asset::TrackpadGestureSwipeUp), + asset_handle(Asset::TrackpadGestureSwipeDown), + ), + }; + let (switch_ws_label, open_ws_label, open_app_label) = + match page.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => (swipe_vertical, swipe_left, swipe_right), + WorkspaceLayout::Horizontal => (swipe_horizontal, swipe_up, swipe_down), + }; + section = section.add( + cosmic::widget::list_column() + .padding([0, 32]) + .add( + cosmic::iced::widget::row!( + text(&descriptions[switch_workspace]), + cosmic::iced::widget::horizontal_space().width(2), + text(&descriptions[switch_ws_label]).font(cosmic::font::bold()), + cosmic::iced::widget::horizontal_space().width(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg( + switch_ws + )) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_y(Alignment::Center) + .padding([0, 16]), + ) + .add( + cosmic::iced::widget::row!( + text(&descriptions[open_workspaces]), + cosmic::iced::widget::horizontal_space().width(2), + text(&descriptions[open_ws_label]).font(cosmic::font::bold()), + cosmic::iced::widget::horizontal_space().width(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg(open_ws)) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_y(Alignment::Center) + .padding([0, 16]), + ) + .add( + cosmic::widget::list_column().add( + cosmic::iced::widget::row!( + text(&descriptions[open_applications]), + cosmic::iced::widget::horizontal_space().width(2), + text(&descriptions[open_app_label]).font(cosmic::font::bold()), + cosmic::iced::widget::horizontal_space().width(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg( + open_app + )) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_y(Alignment::Center) + .padding([0, 16]), + ), + ), + ); + } + + section .apply(Element::from) .map(crate::pages::Message::DesktopWorkspaces) }) } -fn workspace_orientation() -> Section { +fn workspace_overview() -> Section { let mut descriptions = Slab::new(); - let vertical = descriptions.insert(fl!("workspaces-orientation", "vertical")); - let horizontal = descriptions.insert(fl!("workspaces-orientation", "horizontal")); + let show_number = descriptions.insert(fl!("workspaces-overview-thumbnails", "show-number")); + let show_name = descriptions.insert(fl!("workspaces-overview-thumbnails", "show-name")); Section::default() - .title(fl!("workspaces-orientation")) + .title(fl!("workspaces-overview-thumbnails")) .descriptions(descriptions) .view::(move |_binder, page, section| { let descriptions = §ion.descriptions; settings::section() .title(§ion.title) - .add(settings::item_row(vec![radio( - text::body(&descriptions[vertical]), - WorkspaceLayout::Vertical, - Some(page.comp_workspace_config.workspace_layout), - Message::SetWorkspaceLayout, + .add( + settings::item::builder(&descriptions[show_number]) + .toggler(page.show_workspace_name, Message::SetShowName), ) - .width(Length::Fill) - .into()])) - .add(settings::item_row(vec![radio( - text::body(&descriptions[horizontal]), - WorkspaceLayout::Horizontal, - Some(page.comp_workspace_config.workspace_layout), - Message::SetWorkspaceLayout, + .add( + settings::item::builder(&descriptions[show_name]) + .toggler(page.show_workspace_number, Message::SetShowNumber), ) - .width(Length::Fill) - .into()])) .apply(Element::from) .map(crate::pages::Message::DesktopWorkspaces) }) diff --git a/i18n/en/cosmic_settings.ftl b/i18n/en/cosmic_settings.ftl index 575ed7e0..8456408c 100644 --- a/i18n/en/cosmic_settings.ftl +++ b/i18n/en/cosmic_settings.ftl @@ -335,6 +335,21 @@ workspaces-overview-thumbnails = Workspace Overview Thumbnails workspaces-orientation = Workspaces Orientation .vertical = Vertical .horizontal = Horizontal + .thumbnail-placement = Thumbnail placement + .left = Left + .right = Right + .top = Top + .bottom = Bottom + .trackpad-gestures = Trackpad gestures + .switch-workspace = Switch Workspace with Four-Finger + .open-workspaces = Open Workspaces with Four-Finger + .open-applications = Open Applications with Four-Finger + .swipe-horizontal = Swipe Left/Right + .swipe-vertical = Swipe Up/Down + .swipe-up = Swipe Up + .swipe-down = Swipe Down + .swipe-left = Swipe Left + .swipe-right = Swipe Right hot-corner = Hot Corner .top-left-corner = Enable top-left hot corner for Workspaces diff --git a/i18n/fr/cosmic_settings.ftl b/i18n/fr/cosmic_settings.ftl index fe4965b9..0ea5d547 100644 --- a/i18n/fr/cosmic_settings.ftl +++ b/i18n/fr/cosmic_settings.ftl @@ -302,6 +302,21 @@ workspaces-overview-thumbnails = Vignettes de l'aperçu des espaces de travail workspaces-orientation = Orientation des espaces de travail .vertical = Verticale .horizontal = Horizontale + .thumbnail-placement = Positionnement des aperçus + .left = Gauche + .right = Droite + .top = Haut + .bottom = Bas + .trackpad-gestures = Gestes sur le pavé tactile + .switch-workspace = Changement de l'espace de travail avec quatre doigts + .open-workspaces = Overture des espaces de travails avec quatre doigts + .open-applications = Overture des applications avec quatre doigts + .swipe-horizontal = Balayage à Gauche/Droite + .swipe-vertical = Balayage en Haut/Bas + .swipe-up = Balayage en Haut + .swipe-down = Balayage en Bas + .swipe-left = Balayage à Gauche + .swipe-right = Balayage à Droite hot-corner = Coin actif .top-left-corner = Activer le coin actif en haut à gauche pour les espaces de travail diff --git a/resources/assets/trackpad-gesture-swipe-down-dark.svg b/resources/assets/trackpad-gesture-swipe-down-dark.svg new file mode 100644 index 00000000..471c6119 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-down-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-down-light.svg b/resources/assets/trackpad-gesture-swipe-down-light.svg new file mode 100644 index 00000000..109cd636 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-down-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-horizontal-dark.svg b/resources/assets/trackpad-gesture-swipe-horizontal-dark.svg new file mode 100644 index 00000000..d61ddd0c --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-horizontal-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-horizontal-light.svg b/resources/assets/trackpad-gesture-swipe-horizontal-light.svg new file mode 100644 index 00000000..7d548d24 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-horizontal-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-left-dark.svg b/resources/assets/trackpad-gesture-swipe-left-dark.svg new file mode 100644 index 00000000..09c315c9 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-left-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-left-light.svg b/resources/assets/trackpad-gesture-swipe-left-light.svg new file mode 100644 index 00000000..858124a5 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-left-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-right-dark.svg b/resources/assets/trackpad-gesture-swipe-right-dark.svg new file mode 100644 index 00000000..87fb19f4 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-right-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-right-light.svg b/resources/assets/trackpad-gesture-swipe-right-light.svg new file mode 100644 index 00000000..c8dc2d08 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-right-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-up-dark.svg b/resources/assets/trackpad-gesture-swipe-up-dark.svg new file mode 100644 index 00000000..c198c2ea --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-up-dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-up-light.svg b/resources/assets/trackpad-gesture-swipe-up-light.svg new file mode 100644 index 00000000..d2295307 --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-up-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-vertical-dark.svg b/resources/assets/trackpad-gesture-swipe-vertical-dark.svg new file mode 100644 index 00000000..65ee0f5f --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-vertical-dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/trackpad-gesture-swipe-vertical-light.svg b/resources/assets/trackpad-gesture-swipe-vertical-light.svg new file mode 100644 index 00000000..75ff564a --- /dev/null +++ b/resources/assets/trackpad-gesture-swipe-vertical-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-bottom-dark.svg b/resources/assets/workspace-orientation-bottom-dark.svg new file mode 100644 index 00000000..bd0e707e --- /dev/null +++ b/resources/assets/workspace-orientation-bottom-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-bottom-light.svg b/resources/assets/workspace-orientation-bottom-light.svg new file mode 100644 index 00000000..cea02b20 --- /dev/null +++ b/resources/assets/workspace-orientation-bottom-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-left-dark.svg b/resources/assets/workspace-orientation-left-dark.svg new file mode 100644 index 00000000..32608cd9 --- /dev/null +++ b/resources/assets/workspace-orientation-left-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-left-light.svg b/resources/assets/workspace-orientation-left-light.svg new file mode 100644 index 00000000..5b5edb76 --- /dev/null +++ b/resources/assets/workspace-orientation-left-light.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-right-dark.svg b/resources/assets/workspace-orientation-right-dark.svg new file mode 100644 index 00000000..72fe697e --- /dev/null +++ b/resources/assets/workspace-orientation-right-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-top-dark.svg b/resources/assets/workspace-orientation-top-dark.svg new file mode 100644 index 00000000..54954f8e --- /dev/null +++ b/resources/assets/workspace-orientation-top-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-top-light.svg b/resources/assets/workspace-orientation-top-light.svg new file mode 100644 index 00000000..6b5d30a6 --- /dev/null +++ b/resources/assets/workspace-orientation-top-light.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-separate-display-dark.svg b/resources/assets/workspace-separate-display-dark.svg new file mode 100644 index 00000000..320c8e00 --- /dev/null +++ b/resources/assets/workspace-separate-display-dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-separate-display-light.svg b/resources/assets/workspace-separate-display-light.svg new file mode 100644 index 00000000..f674f13b --- /dev/null +++ b/resources/assets/workspace-separate-display-light.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-span-display-dark.svg b/resources/assets/workspace-span-display-dark.svg new file mode 100644 index 00000000..092c0372 --- /dev/null +++ b/resources/assets/workspace-span-display-dark.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-span-display-light.svg b/resources/assets/workspace-span-display-light.svg new file mode 100644 index 00000000..80f60252 --- /dev/null +++ b/resources/assets/workspace-span-display-light.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file