diff --git a/Cargo.lock b/Cargo.lock index 9f314edf..6fce0cc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1431,7 +1431,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-comp#ed64e26faf4b97221f0883bc1113f997acbadc50" +source = "git+https://github.com/pop-os/cosmic-comp#52280e9823506a480248e84caaf7545426a871c8" dependencies = [ "cosmic-config", "input", @@ -1441,7 +1441,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1463,7 +1463,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "quote", "syn 1.0.109", @@ -1691,7 +1691,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "almost", "cosmic-config", @@ -2970,7 +2970,7 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "dnd", "iced_accessibility", @@ -2989,7 +2989,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "accesskit", "accesskit_unix", @@ -2998,7 +2998,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "bitflags 2.6.0", "dnd", @@ -3020,7 +3020,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "futures", "iced_core", @@ -3033,7 +3033,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "bitflags 2.6.0", "bytemuck", @@ -3057,7 +3057,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3069,7 +3069,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "dnd", "iced_accessibility", @@ -3083,7 +3083,7 @@ dependencies = [ [[package]] name = "iced_sctk" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "enum-repr", "float-cmp", @@ -3109,7 +3109,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "iced_core", "once_cell", @@ -3119,7 +3119,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "bytemuck", "cosmic-text", @@ -3136,7 +3136,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "as-raw-xcb-connection", "bitflags 2.6.0", @@ -3165,7 +3165,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "dnd", "iced_renderer", @@ -3182,7 +3182,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "dnd", "iced_graphics", @@ -3995,7 +3995,7 @@ checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#0a1922d4b378de23f55b117b07bad23dda0d64d0" +source = "git+https://github.com/pop-os/libcosmic#1046778d01f0669c43279835abbe38581ca2baf8" dependencies = [ "apply", "ashpd 0.9.1", @@ -7489,7 +7489,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] diff --git a/cosmic-settings/src/pages/desktop/workspaces.rs b/cosmic-settings/src/pages/desktop/workspaces.rs index 993dffe1..83681e10 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}, 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,55 @@ 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, + WorkspaceOrientationVertical, + WorkspaceOrientationHorizontal, + 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::WorkspaceOrientationVertical => "assets/workspace-orientation-vertical", + Asset::WorkspaceOrientationHorizontal => "assets/workspace-orientation-horizontal", + 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 +110,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 +160,7 @@ impl page::Page for Page { Some(vec![ sections.insert(multi_behavior()), sections.insert(workspace_orientation()), + sections.insert(workspace_overview()), ]) } @@ -104,9 +190,53 @@ 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.save_comp_config(); } + Message::SetWorkspaceThumbnailPlacement(value) => { + self.comp_workspace_config.workspace_thumbnail_placement = + match self.comp_workspace_config.workspace_layout { + WorkspaceLayout::Horizontal => { + if value == 0 { + WorkspaceThumbnailPlacement::Left + } else { + WorkspaceThumbnailPlacement::Right + } + } + WorkspaceLayout::Vertical => { + if value == 0 { + WorkspaceThumbnailPlacement::Top + } else { + WorkspaceThumbnailPlacement::Bottom + } + } + }; + self.selected_workspace_thumbnail_placement = value; + // TODO apply the setting + // if let Err(err) = self.config.set("show_workspace_number", value) { + // error!(?err, "Failed to set config 'show_workspace_number'"); + // } + } Message::SetShowName(value) => { self.show_workspace_name = value; if let Err(err) = self.config.set("show_workspace_name", value) { @@ -119,6 +249,9 @@ impl Page { error!(?err, "Failed to set config 'show_workspace_number'"); } } + Message::ShowTrackpadGestureInfo(value) => { + self.show_trackpad_gesture = value; + } } } } @@ -135,22 +268,39 @@ fn multi_behavior() -> Section { .view::(move |_binder, page, section| { let descriptions = §ion.descriptions; settings::view_section(§ion.title) - .add(settings::item_row(vec![radio( - text::body(&descriptions[span]), - WorkspaceMode::Global, - Some(page.comp_workspace_config.workspace_mode), - Message::SetWorkspaceMode, + .edit_list_column(|column| column.spacing(0)) + .add( + cosmic::iced::widget::column!( + widget::vertical_space(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_items(Alignment::Center), ) - .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!( + widget::vertical_space(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_items(Alignment::Center), ) - .width(Length::Fill) - .into()])) .apply(Element::from) .map(crate::pages::Message::DesktopWorkspaces) }) @@ -159,31 +309,177 @@ fn multi_behavior() -> Section { fn workspace_orientation() -> Section { let mut descriptions = Slab::new(); - let vertical = descriptions.insert(fl!("workspaces-orientation", "vertical")); - let horizontal = descriptions.insert(fl!("workspaces-orientation", "horizontal")); + 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::view_section(§ion.title) + .add( + cosmic::iced::widget::column!( + cosmic::iced::widget::svg( + match page.comp_workspace_config.workspace_layout { + WorkspaceLayout::Vertical => + asset_handle(Asset::WorkspaceOrientationVertical), + WorkspaceLayout::Horizontal => + asset_handle(Asset::WorkspaceOrientationHorizontal), + } + ), + 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_items(Alignment::Center), + ) + .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(2), + text(&descriptions[switch_ws_label]).font(cosmic::font::FONT_BOLD), + cosmic::iced::widget::horizontal_space(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg( + switch_ws + )) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_items(Alignment::Center) + .padding([0, 16]), + ) + .add( + cosmic::iced::widget::row!( + text(&descriptions[open_workspaces]), + cosmic::iced::widget::horizontal_space(2), + text(&descriptions[open_ws_label]).font(cosmic::font::FONT_BOLD), + cosmic::iced::widget::horizontal_space(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg(open_ws)) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_items(Alignment::Center) + .padding([0, 16]), + ) + .add( + cosmic::widget::list_column().add( + cosmic::iced::widget::row!( + text(&descriptions[open_applications]), + cosmic::iced::widget::horizontal_space(2), + text(&descriptions[open_app_label]) + .font(cosmic::font::FONT_BOLD), + cosmic::iced::widget::horizontal_space(Length::Fill), + cosmic::iced::widget::container(cosmic::iced::widget::svg( + open_app + )) + .width(115) + .height(92) + ) + .width(Length::Fill) + .align_items(Alignment::Center) + .padding([0, 16]), + ), + ), + ); + } + + section + .apply(Element::from) + .map(crate::pages::Message::DesktopWorkspaces) + }) +} + +fn workspace_overview() -> Section { + let mut descriptions = Slab::new(); + + 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-overview-thumbnails")) + .descriptions(descriptions) .view::(move |_binder, page, section| { let descriptions = §ion.descriptions; settings::view_section(§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 ea1c402c..c0c1b4e9 100644 --- a/i18n/en/cosmic_settings.ftl +++ b/i18n/en/cosmic_settings.ftl @@ -204,6 +204,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 c13f96fc..9d5ae428 100644 --- a/i18n/fr/cosmic_settings.ftl +++ b/i18n/fr/cosmic_settings.ftl @@ -204,6 +204,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-horizontal-dark.svg b/resources/assets/workspace-orientation-horizontal-dark.svg new file mode 100644 index 00000000..2c0c29ce --- /dev/null +++ b/resources/assets/workspace-orientation-horizontal-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-horizontal-light.svg b/resources/assets/workspace-orientation-horizontal-light.svg new file mode 100644 index 00000000..b371ddd3 --- /dev/null +++ b/resources/assets/workspace-orientation-horizontal-light.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-vertical-dark.svg b/resources/assets/workspace-orientation-vertical-dark.svg new file mode 100644 index 00000000..2fccf13c --- /dev/null +++ b/resources/assets/workspace-orientation-vertical-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/assets/workspace-orientation-vertical-light.svg b/resources/assets/workspace-orientation-vertical-light.svg new file mode 100644 index 00000000..34f113bd --- /dev/null +++ b/resources/assets/workspace-orientation-vertical-light.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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..69e9cc81 --- /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..e5b789c7 --- /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..f6c46f65 --- /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..7ccd3cd6 --- /dev/null +++ b/resources/assets/workspace-span-display-light.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file