Merge tag 'epoch-1.7.0' into local/yoda-main-1.3.0
Epoch 1.7.0 # Conflicts: # Cargo.lock
This commit is contained in:
commit
29ed971e64
38 changed files with 989 additions and 651 deletions
1257
Cargo.lock
generated
1257
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
32
cargo.just
32
cargo.just
|
|
@ -1,20 +1,25 @@
|
||||||
cargo-target-dir := env('CARGO_TARGET_DIR', 'target')
|
cargo-target-dir := env('CARGO_TARGET_DIR', 'target')
|
||||||
|
|
||||||
# Compile with debug profile
|
# Compile with debug profile
|
||||||
|
[no-cd]
|
||||||
build-debug *args:
|
build-debug *args:
|
||||||
cargo build {{ args }}
|
cargo build {{args}}
|
||||||
|
|
||||||
# Compile with release profile
|
# Compile with release profile
|
||||||
|
[no-cd]
|
||||||
build-release *args: (build-debug '--release' args)
|
build-release *args: (build-debug '--release' args)
|
||||||
|
|
||||||
# Compile with a vendored tarball
|
# Compile with a vendored tarball
|
||||||
|
[no-cd]
|
||||||
build-vendored *args: vendor-extract (build-release '--frozen --offline' args)
|
build-vendored *args: vendor-extract (build-release '--frozen --offline' args)
|
||||||
|
|
||||||
# Check for errors and linter warnings
|
# Check for errors and linter warnings
|
||||||
|
[no-cd]
|
||||||
check *args:
|
check *args:
|
||||||
cargo clippy --all-features {{ args }} -- -W clippy::pedantic
|
cargo clippy --all-features {{args}} -- -W clippy::pedantic
|
||||||
|
|
||||||
# Runs a check with JSON message format for IDE integration
|
# Runs a check with JSON message format for IDE integration
|
||||||
|
[no-cd]
|
||||||
check-json: (check '--message-format=json')
|
check-json: (check '--message-format=json')
|
||||||
|
|
||||||
# Remove Cargo build artifacts
|
# Remove Cargo build artifacts
|
||||||
|
|
@ -28,25 +33,38 @@ clean-dist: clean
|
||||||
rm -rf .cargo vendor vendor.tar target
|
rm -rf .cargo vendor vendor.tar target
|
||||||
|
|
||||||
# Run the application for testing purposes
|
# Run the application for testing purposes
|
||||||
|
[no-cd]
|
||||||
run *args:
|
run *args:
|
||||||
env RUST_LOG=debug RUST_BACKTRACE=full cargo run {{ args }} --release
|
cargo run {{args}}
|
||||||
|
|
||||||
# Run `cargo test`
|
# Run `cargo test`
|
||||||
|
[no-cd]
|
||||||
test *args:
|
test *args:
|
||||||
cargo test {{ args }}
|
cargo test {{args}}
|
||||||
|
|
||||||
# Vendor Cargo dependencies locally
|
# Vendor Cargo dependencies locally
|
||||||
[no-cd]
|
[no-cd]
|
||||||
vendor:
|
vendor:
|
||||||
|
#!/usr/bin/env bash
|
||||||
mkdir -p .cargo
|
mkdir -p .cargo
|
||||||
cargo vendor --locked | head -n -1 > .cargo/config.toml
|
cargo vendor --locked | head -n -1 > .cargo/config.toml
|
||||||
echo 'directory = "vendor"' >> .cargo/config.toml
|
echo 'directory = "vendor"' >> .cargo/config.toml
|
||||||
tar pcf vendor.tar vendor
|
echo >> .cargo/config.toml
|
||||||
rm -rf vendor
|
echo '[env]' >> .cargo/config.toml
|
||||||
|
if [ -n "${SOURCE_DATE_EPOCH}" ]
|
||||||
|
then
|
||||||
|
source_date="$(date -d "@${SOURCE_DATE_EPOCH}" "+%Y-%m-%d")"
|
||||||
|
echo "VERGEN_GIT_COMMIT_DATE = \"${source_date}\"" >> .cargo/config.toml
|
||||||
|
fi
|
||||||
|
if [ -n "${SOURCE_GIT_HASH}" ]
|
||||||
|
then
|
||||||
|
echo "VERGEN_GIT_SHA = \"${SOURCE_GIT_HASH}\"" >> .cargo/config.toml
|
||||||
|
fi
|
||||||
|
tar pcf vendor.tar .cargo vendor
|
||||||
|
rm -rf .cargo vendor
|
||||||
|
|
||||||
# Extracts vendored dependencies
|
# Extracts vendored dependencies
|
||||||
[no-cd]
|
[no-cd]
|
||||||
[private]
|
|
||||||
vendor-extract:
|
vendor-extract:
|
||||||
rm -rf vendor
|
rm -rf vendor
|
||||||
tar pxf vendor.tar
|
tar pxf vendor.tar
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings"
|
name = "cosmic-settings"
|
||||||
version = "1.5.0"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "GPL-3.0-only"
|
license = "GPL-3.0-only"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ use cosmic::iced::stream;
|
||||||
use cosmic::theme::CosmicTheme;
|
use cosmic::theme::CosmicTheme;
|
||||||
use cosmic::widget::{dropdown, settings, text};
|
use cosmic::widget::{dropdown, settings, text};
|
||||||
use cosmic::{Apply, Element, Task, surface};
|
use cosmic::{Apply, Element, Task, surface};
|
||||||
|
use cosmic_comp_config::CosmicCompConfig;
|
||||||
pub use cosmic_comp_config::ZoomMovement;
|
pub use cosmic_comp_config::ZoomMovement;
|
||||||
use cosmic_config::CosmicConfigEntry;
|
use cosmic_config::CosmicConfigEntry;
|
||||||
use cosmic_settings_a11y_manager_subscription as cosmic_a11y_manager;
|
use cosmic_settings_a11y_manager_subscription as cosmic_a11y_manager;
|
||||||
|
|
@ -36,11 +37,21 @@ pub struct Page {
|
||||||
daemon_helper: cosmic_config::Config,
|
daemon_helper: cosmic_config::Config,
|
||||||
dbus_sender: Option<UnboundedSender<a11y_bus::Request>>,
|
dbus_sender: Option<UnboundedSender<a11y_bus::Request>>,
|
||||||
reader_enabled: bool,
|
reader_enabled: bool,
|
||||||
|
comp_config: CosmicCompConfig,
|
||||||
|
comp_helper: cosmic_config::Config,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Page {
|
impl Default for Page {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
let daemon_helper = CosmicSettingsDaemonConfig::config().unwrap();
|
let daemon_helper = CosmicSettingsDaemonConfig::config().unwrap();
|
||||||
|
let comp_helper = cosmic_config::Config::new("com.system76.CosmicComp", 1).unwrap();
|
||||||
|
let comp_config =
|
||||||
|
CosmicCompConfig::get_entry(&comp_helper).unwrap_or_else(|(errs, config)| {
|
||||||
|
for err in errs {
|
||||||
|
tracing::warn!(?err, "error while reading cosmic-comp config");
|
||||||
|
}
|
||||||
|
config
|
||||||
|
});
|
||||||
Page {
|
Page {
|
||||||
dbus_sender: None,
|
dbus_sender: None,
|
||||||
entity: page::Entity::default(),
|
entity: page::Entity::default(),
|
||||||
|
|
@ -65,6 +76,8 @@ impl Default for Page {
|
||||||
.unwrap_or_default(),
|
.unwrap_or_default(),
|
||||||
daemon_helper,
|
daemon_helper,
|
||||||
reader_enabled: false,
|
reader_enabled: false,
|
||||||
|
comp_config,
|
||||||
|
comp_helper,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -77,6 +90,7 @@ pub enum Message {
|
||||||
ProtocolUnavailable,
|
ProtocolUnavailable,
|
||||||
Return,
|
Return,
|
||||||
ScreenReaderEnabled(bool),
|
ScreenReaderEnabled(bool),
|
||||||
|
SetCursorShakeToFind(bool),
|
||||||
SetScreenFilterActive(bool),
|
SetScreenFilterActive(bool),
|
||||||
SetScreenFilterSelection(ColorFilter),
|
SetScreenFilterSelection(ColorFilter),
|
||||||
SetScreenInverted(bool),
|
SetScreenInverted(bool),
|
||||||
|
|
@ -187,6 +201,8 @@ pub fn vision() -> section::Section<crate::pages::Message> {
|
||||||
invert_colors = fl!("accessibility", "invert-colors");
|
invert_colors = fl!("accessibility", "invert-colors");
|
||||||
color_filters = fl!("accessibility", "color-filters");
|
color_filters = fl!("accessibility", "color-filters");
|
||||||
color_filter_type = fl!("color-filter");
|
color_filter_type = fl!("color-filter");
|
||||||
|
shake_cursor = fl!("accessibility", "shake-cursor");
|
||||||
|
shake_cursor_desc = fl!("accessibility", "shake-cursor-desc");
|
||||||
});
|
});
|
||||||
|
|
||||||
Section::default()
|
Section::default()
|
||||||
|
|
@ -276,6 +292,13 @@ pub fn vision() -> section::Section<crate::pages::Message> {
|
||||||
|
|
||||||
settings::item::builder(&descriptions[color_filter_type]).control(dropdown)
|
settings::item::builder(&descriptions[color_filter_type]).control(dropdown)
|
||||||
})
|
})
|
||||||
|
.add(
|
||||||
|
settings::item::builder(&descriptions[shake_cursor])
|
||||||
|
.description(&descriptions[shake_cursor_desc])
|
||||||
|
.toggler(page.comp_config.cursor_shake_to_find, |enabled| {
|
||||||
|
Message::SetCursorShakeToFind(enabled).into()
|
||||||
|
}),
|
||||||
|
)
|
||||||
.into()
|
.into()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -416,6 +439,14 @@ impl Page {
|
||||||
Message::Surface(a) => {
|
Message::Surface(a) => {
|
||||||
return cosmic::task::message(crate::app::Message::Surface(a));
|
return cosmic::task::message(crate::app::Message::Surface(a));
|
||||||
}
|
}
|
||||||
|
Message::SetCursorShakeToFind(enabled) => {
|
||||||
|
if let Err(err) = self
|
||||||
|
.comp_config
|
||||||
|
.set_cursor_shake_to_find(&self.comp_helper, enabled)
|
||||||
|
{
|
||||||
|
tracing::error!(?err, "failed to set cursor_shake_to_find");
|
||||||
|
}
|
||||||
|
}
|
||||||
Message::SetSoundMono(active) => {
|
Message::SetSoundMono(active) => {
|
||||||
if let Err(err) = self
|
if let Err(err) = self
|
||||||
.daemon_config
|
.daemon_config
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ use futures::channel::oneshot;
|
||||||
use futures::{SinkExt, StreamExt};
|
use futures::{SinkExt, StreamExt};
|
||||||
use slotmap::SlotMap;
|
use slotmap::SlotMap;
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::sync::Arc;
|
use std::sync::{Arc, LazyLock};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use zbus::zvariant::OwnedObjectPath;
|
use zbus::zvariant::OwnedObjectPath;
|
||||||
|
|
||||||
|
|
@ -20,6 +20,8 @@ use zbus::zvariant::OwnedObjectPath;
|
||||||
use crate::service_manager::MockServiceManager;
|
use crate::service_manager::MockServiceManager;
|
||||||
use crate::service_manager::ServiceManagerHandle;
|
use crate::service_manager::ServiceManagerHandle;
|
||||||
|
|
||||||
|
static BLUETOOTH_PAGE_LABEL: LazyLock<String> = LazyLock::new(|| fl!("bluetooth"));
|
||||||
|
|
||||||
enum Dialog {
|
enum Dialog {
|
||||||
RequestConfirmation {
|
RequestConfirmation {
|
||||||
device: String,
|
device: String,
|
||||||
|
|
@ -173,6 +175,19 @@ impl page::Page<crate::pages::Message> for Page {
|
||||||
.description(fl!("xdg-entry-bluetooth-comment"))
|
.description(fl!("xdg-entry-bluetooth-comment"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn header(&self) -> Option<Element<'_, crate::pages::Message>> {
|
||||||
|
if self.model.adapters.len() > 1 {
|
||||||
|
let (_, adapter) = self.model.get_selected_adapter()?;
|
||||||
|
return Some(crate::widget::sub_page_header(
|
||||||
|
&adapter.alias,
|
||||||
|
BLUETOOTH_PAGE_LABEL.as_str(),
|
||||||
|
Message::SelectAdapter(None).into(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
fn content(
|
fn content(
|
||||||
&self,
|
&self,
|
||||||
sections: &mut SlotMap<section::Entity, Section<crate::pages::Message>>,
|
sections: &mut SlotMap<section::Entity, Section<crate::pages::Message>>,
|
||||||
|
|
@ -392,6 +407,30 @@ impl From<Event> for Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Page {
|
impl Page {
|
||||||
|
fn update_heading(&mut self) {
|
||||||
|
self.heading = if let Some((_, adapter)) = self.model.get_selected_adapter() {
|
||||||
|
fl!(
|
||||||
|
"bluetooth",
|
||||||
|
"status",
|
||||||
|
aliases = format!("“{}”", adapter.alias)
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
fl!(
|
||||||
|
"bluetooth",
|
||||||
|
"status",
|
||||||
|
aliases = self
|
||||||
|
.model
|
||||||
|
.adapters
|
||||||
|
.values()
|
||||||
|
.map(|adapter| format!("“{}”", adapter.alias))
|
||||||
|
.collect::<HashSet<String>>()
|
||||||
|
.into_iter()
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join(", ")
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
pub fn update(&mut self, message: Message) -> cosmic::Task<crate::Message> {
|
pub fn update(&mut self, message: Message) -> cosmic::Task<crate::Message> {
|
||||||
let span = tracing::span!(tracing::Level::INFO, "bluetooth::update");
|
let span = tracing::span!(tracing::Level::INFO, "bluetooth::update");
|
||||||
let _span = span.enter();
|
let _span = span.enter();
|
||||||
|
|
@ -437,28 +476,7 @@ impl Page {
|
||||||
|
|
||||||
Event::SetAdapters(adapters) => {
|
Event::SetAdapters(adapters) => {
|
||||||
let select_adapter = self.model.set_adapters(adapters);
|
let select_adapter = self.model.set_adapters(adapters);
|
||||||
|
self.update_heading();
|
||||||
if let Some((_, adapter)) = self.model.get_selected_adapter() {
|
|
||||||
self.heading = fl!(
|
|
||||||
"bluetooth",
|
|
||||||
"status",
|
|
||||||
aliases = format!("“{}”", adapter.alias)
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
self.heading = fl!(
|
|
||||||
"bluetooth",
|
|
||||||
"status",
|
|
||||||
aliases = self
|
|
||||||
.model
|
|
||||||
.adapters
|
|
||||||
.values()
|
|
||||||
.map(|adapter| format!("“{}”", adapter.alias))
|
|
||||||
.collect::<HashSet<String>>()
|
|
||||||
.into_iter()
|
|
||||||
.collect::<Vec<String>>()
|
|
||||||
.join(", ")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(adapter) = select_adapter {
|
if let Some(adapter) = select_adapter {
|
||||||
return cosmic::task::message(Message::SelectAdapter(Some(adapter)));
|
return cosmic::task::message(Message::SelectAdapter(Some(adapter)));
|
||||||
|
|
@ -741,6 +759,7 @@ impl Page {
|
||||||
Message::SelectAdapter(adapter_maybe) => {
|
Message::SelectAdapter(adapter_maybe) => {
|
||||||
tracing::debug!("Adapter selected: {adapter_maybe:?}");
|
tracing::debug!("Adapter selected: {adapter_maybe:?}");
|
||||||
self.model.selected_adapter = adapter_maybe;
|
self.model.selected_adapter = adapter_maybe;
|
||||||
|
self.update_heading();
|
||||||
self.model.update_status();
|
self.model.update_status();
|
||||||
let Some(connection) = self.connection.as_ref() else {
|
let Some(connection) = self.connection.as_ref() else {
|
||||||
tracing::error!("No DBus connection ready");
|
tracing::error!("No DBus connection ready");
|
||||||
|
|
@ -1158,6 +1177,51 @@ impl Page {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use cosmic_settings_page::Page as _;
|
||||||
|
|
||||||
|
fn adapter(path: &str, alias: &str) -> (OwnedObjectPath, Adapter) {
|
||||||
|
(
|
||||||
|
OwnedObjectPath::try_from(path).unwrap(),
|
||||||
|
Adapter {
|
||||||
|
alias: alias.to_owned(),
|
||||||
|
..Adapter::default()
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn page_with_two_adapters() -> Page {
|
||||||
|
let mut page = Page::default();
|
||||||
|
let adapters = [
|
||||||
|
adapter("/org/bluez/hci0", "Adapter 0"),
|
||||||
|
adapter("/org/bluez/hci1", "Adapter 1"),
|
||||||
|
]
|
||||||
|
.into_iter()
|
||||||
|
.collect();
|
||||||
|
let _task = page.update(Message::BluetoothEvent(Event::SetAdapters(adapters)));
|
||||||
|
page
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn bluetooth_header_is_absent_at_adapter_chooser() {
|
||||||
|
let page = page_with_two_adapters();
|
||||||
|
|
||||||
|
assert!(page.header().is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn bluetooth_header_tracks_adapter_selection_and_clearing() {
|
||||||
|
let mut page = page_with_two_adapters();
|
||||||
|
let selected = OwnedObjectPath::try_from("/org/bluez/hci1").unwrap();
|
||||||
|
|
||||||
|
let _task = page.update(Message::SelectAdapter(Some(selected)));
|
||||||
|
assert!(page.header().is_some());
|
||||||
|
assert!(page.heading.contains("Adapter 1"));
|
||||||
|
|
||||||
|
let _task = page.update(Message::SelectAdapter(None));
|
||||||
|
assert!(page.header().is_none());
|
||||||
|
assert!(page.heading.contains("Adapter 0"));
|
||||||
|
assert!(page.heading.contains("Adapter 1"));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_dbus_service_unknown_with_installed_service_queries_manager() {
|
fn test_dbus_service_unknown_with_installed_service_queries_manager() {
|
||||||
|
|
|
||||||
|
|
@ -1103,6 +1103,12 @@ impl Page {
|
||||||
.arg(itoa::Buffer::new().format(x))
|
.arg(itoa::Buffer::new().format(x))
|
||||||
.arg("--pos-y")
|
.arg("--pos-y")
|
||||||
.arg(itoa::Buffer::new().format(y))
|
.arg(itoa::Buffer::new().format(y))
|
||||||
|
.arg("--refresh")
|
||||||
|
.arg(format!(
|
||||||
|
"{}.{:03}",
|
||||||
|
current.refresh_rate / 1000,
|
||||||
|
current.refresh_rate % 1000
|
||||||
|
))
|
||||||
.arg(name)
|
.arg(name)
|
||||||
.arg(itoa::Buffer::new().format(current.size.0))
|
.arg(itoa::Buffer::new().format(current.size.0))
|
||||||
.arg(itoa::Buffer::new().format(current.size.1));
|
.arg(itoa::Buffer::new().format(current.size.1));
|
||||||
|
|
|
||||||
|
|
@ -118,8 +118,8 @@ pub enum SourceContext {
|
||||||
MoveDown(DefaultKey),
|
MoveDown(DefaultKey),
|
||||||
MoveUp(DefaultKey),
|
MoveUp(DefaultKey),
|
||||||
Remove(DefaultKey),
|
Remove(DefaultKey),
|
||||||
Settings(DefaultKey),
|
// Settings(DefaultKey),
|
||||||
ViewLayout(DefaultKey),
|
// ViewLayout(DefaultKey),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type Locale = String;
|
pub type Locale = String;
|
||||||
|
|
@ -211,6 +211,7 @@ fn popover_menu_row(
|
||||||
id: DefaultKey,
|
id: DefaultKey,
|
||||||
label: String,
|
label: String,
|
||||||
message: impl Fn(DefaultKey) -> SourceContext + 'static,
|
message: impl Fn(DefaultKey) -> SourceContext + 'static,
|
||||||
|
disabled: bool,
|
||||||
) -> cosmic::Element<'static, Message> {
|
) -> cosmic::Element<'static, Message> {
|
||||||
let spacing = theme::spacing();
|
let spacing = theme::spacing();
|
||||||
widget::text::body(label)
|
widget::text::body(label)
|
||||||
|
|
@ -219,37 +220,54 @@ fn popover_menu_row(
|
||||||
.padding([spacing.space_xxxs, spacing.space_xs])
|
.padding([spacing.space_xxxs, spacing.space_xs])
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
.class(theme::Button::MenuItem)
|
.class(theme::Button::MenuItem)
|
||||||
.on_press(Message::SourceContext(message(id)))
|
.on_press_maybe(if disabled {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(Message::SourceContext(message(id)))
|
||||||
|
})
|
||||||
.apply(Element::from)
|
.apply(Element::from)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn popover_menu(id: DefaultKey) -> cosmic::Element<'static, Message> {
|
fn popover_menu(
|
||||||
|
id: DefaultKey,
|
||||||
|
is_first: bool,
|
||||||
|
is_last: bool,
|
||||||
|
) -> cosmic::Element<'static, Message> {
|
||||||
widget::column::with_children([
|
widget::column::with_children([
|
||||||
popover_menu_row(
|
popover_menu_row(
|
||||||
id,
|
id,
|
||||||
fl!("keyboard-sources", "move-up"),
|
fl!("keyboard-sources", "move-up"),
|
||||||
SourceContext::MoveUp,
|
SourceContext::MoveUp,
|
||||||
|
is_first,
|
||||||
),
|
),
|
||||||
popover_menu_row(
|
popover_menu_row(
|
||||||
id,
|
id,
|
||||||
fl!("keyboard-sources", "move-down"),
|
fl!("keyboard-sources", "move-down"),
|
||||||
SourceContext::MoveDown,
|
SourceContext::MoveDown,
|
||||||
|
is_last,
|
||||||
),
|
),
|
||||||
widget::divider::horizontal::default()
|
widget::divider::horizontal::default()
|
||||||
.apply(widget::container)
|
.apply(widget::container)
|
||||||
.padding(8)
|
.padding(8)
|
||||||
.into(),
|
.into(),
|
||||||
|
// popover_menu_row(
|
||||||
|
// id,
|
||||||
|
// fl!("keyboard-sources", "settings"),
|
||||||
|
// SourceContext::Settings,
|
||||||
|
// false,
|
||||||
|
// ),
|
||||||
|
// popover_menu_row(
|
||||||
|
// id,
|
||||||
|
// fl!("keyboard-sources", "view-layout"),
|
||||||
|
// SourceContext::ViewLayout,
|
||||||
|
// false,
|
||||||
|
// ),
|
||||||
popover_menu_row(
|
popover_menu_row(
|
||||||
id,
|
id,
|
||||||
fl!("keyboard-sources", "settings"),
|
fl!("keyboard-sources", "remove"),
|
||||||
SourceContext::Settings,
|
SourceContext::Remove,
|
||||||
|
false,
|
||||||
),
|
),
|
||||||
popover_menu_row(
|
|
||||||
id,
|
|
||||||
fl!("keyboard-sources", "view-layout"),
|
|
||||||
SourceContext::ViewLayout,
|
|
||||||
),
|
|
||||||
popover_menu_row(id, fl!("keyboard-sources", "remove"), SourceContext::Remove),
|
|
||||||
])
|
])
|
||||||
.width(Length::Fixed(200.0))
|
.width(Length::Fixed(200.0))
|
||||||
.apply(widget::container)
|
.apply(widget::container)
|
||||||
|
|
@ -258,7 +276,12 @@ fn popover_menu(id: DefaultKey) -> cosmic::Element<'static, Message> {
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn popover_button(id: DefaultKey, expanded: bool) -> cosmic::Element<'static, Message> {
|
fn popover_button(
|
||||||
|
id: DefaultKey,
|
||||||
|
expanded: bool,
|
||||||
|
is_first: bool,
|
||||||
|
is_last: bool,
|
||||||
|
) -> cosmic::Element<'static, Message> {
|
||||||
let on_press = Message::ExpandInputSourcePopover(if expanded { None } else { Some(id) });
|
let on_press = Message::ExpandInputSourcePopover(if expanded { None } else { Some(id) });
|
||||||
|
|
||||||
let button = button::icon(icon::from_name("view-more-symbolic"))
|
let button = button::icon(icon::from_name("view-more-symbolic"))
|
||||||
|
|
@ -268,7 +291,7 @@ fn popover_button(id: DefaultKey, expanded: bool) -> cosmic::Element<'static, Me
|
||||||
if expanded {
|
if expanded {
|
||||||
widget::popover(button)
|
widget::popover(button)
|
||||||
.position(widget::popover::Position::Bottom)
|
.position(widget::popover::Position::Bottom)
|
||||||
.popup(popover_menu(id))
|
.popup(popover_menu(id, is_first, is_last))
|
||||||
.on_close(Message::ExpandInputSourcePopover(None))
|
.on_close(Message::ExpandInputSourcePopover(None))
|
||||||
.into()
|
.into()
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -280,10 +303,12 @@ fn input_source(
|
||||||
id: DefaultKey,
|
id: DefaultKey,
|
||||||
description: &str,
|
description: &str,
|
||||||
expanded_source_popover: Option<DefaultKey>,
|
expanded_source_popover: Option<DefaultKey>,
|
||||||
|
is_first: bool,
|
||||||
|
is_last: bool,
|
||||||
) -> cosmic::Element<'_, Message> {
|
) -> cosmic::Element<'_, Message> {
|
||||||
let expanded = expanded_source_popover.is_some_and(|expanded_id| expanded_id == id);
|
let expanded = expanded_source_popover.is_some_and(|expanded_id| expanded_id == id);
|
||||||
|
|
||||||
settings::item(description, popover_button(id, expanded)).into()
|
settings::item(description, popover_button(id, expanded, is_first, is_last)).into()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn special_char_radio_row<'a>(
|
fn special_char_radio_row<'a>(
|
||||||
|
|
@ -521,15 +546,13 @@ impl Page {
|
||||||
let _removed = self.active_layouts.remove(pos);
|
let _removed = self.active_layouts.remove(pos);
|
||||||
self.update_xkb_config();
|
self.update_xkb_config();
|
||||||
}
|
}
|
||||||
}
|
} // SourceContext::Settings(_id) => {
|
||||||
|
// eprintln!("settings not implemented");
|
||||||
|
// }
|
||||||
|
|
||||||
SourceContext::Settings(_id) => {
|
// SourceContext::ViewLayout(_id) => {
|
||||||
eprintln!("settings not implemented");
|
// eprintln!("view layout not implemented");
|
||||||
}
|
// }
|
||||||
|
|
||||||
SourceContext::ViewLayout(_id) => {
|
|
||||||
eprintln!("view layout not implemented");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -747,12 +770,17 @@ fn input_sources() -> Section<crate::pages::Message> {
|
||||||
// TODO Need something more custom, with drag and drop
|
// TODO Need something more custom, with drag and drop
|
||||||
let mut section = settings::section().title(§ion.title);
|
let mut section = settings::section().title(§ion.title);
|
||||||
|
|
||||||
for id in &page.active_layouts {
|
for (position, id) in page.active_layouts.iter().enumerate() {
|
||||||
if let Some((_locale, _variant, description, _source)) =
|
if let Some((_locale, _variant, description, _source)) =
|
||||||
page.keyboard_layouts.get(*id)
|
page.keyboard_layouts.get(*id)
|
||||||
{
|
{
|
||||||
section =
|
section = section.add(input_source(
|
||||||
section.add(input_source(*id, description, page.expanded_source_popover));
|
*id,
|
||||||
|
description,
|
||||||
|
page.expanded_source_popover,
|
||||||
|
position == 0,
|
||||||
|
position + 1 == page.active_layouts.len(),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
6
debian/changelog
vendored
6
debian/changelog
vendored
|
|
@ -1,3 +1,9 @@
|
||||||
|
cosmic-settings (1.7.0) noble; urgency=medium
|
||||||
|
|
||||||
|
* Epoch 1.7.0 version update
|
||||||
|
|
||||||
|
-- Michael Murphy <michael@mmurphy.dev> Fri, 21 Aug 2026 20:44:57 +0200
|
||||||
|
|
||||||
cosmic-settings (1.0.12) noble; urgency=medium
|
cosmic-settings (1.0.12) noble; urgency=medium
|
||||||
|
|
||||||
* release: 1.0.12
|
* release: 1.0.12
|
||||||
|
|
|
||||||
6
debian/source/options
vendored
6
debian/source/options
vendored
|
|
@ -1,4 +1,6 @@
|
||||||
tar-ignore=.github
|
tar-ignore=.github
|
||||||
tar-ignore=.vscode
|
tar-ignore=target/.rustc_info.json
|
||||||
|
tar-ignore=target/CACHEDIR.TAG
|
||||||
|
tar-ignore=target/debug
|
||||||
|
tar-ignore=target/release
|
||||||
tar-ignore=vendor
|
tar-ignore=vendor
|
||||||
tar-ignore=target
|
|
||||||
31
i18n/cs/cosmic_settings.ftl
vendored
31
i18n/cs/cosmic_settings.ftl
vendored
|
|
@ -86,10 +86,10 @@ dock = Dok
|
||||||
## Desktop: Panel
|
## Desktop: Panel
|
||||||
|
|
||||||
panel = Panel
|
panel = Panel
|
||||||
panel-behavior-and-position = Chování a pozice
|
panel-behavior-and-position = Chování a umístění
|
||||||
.autohide = Automaticky skrýt panel
|
.autohide = Automaticky skrýt panel
|
||||||
.dock-autohide = Automaticky skrýt dok
|
.dock-autohide = Automaticky skrýt dok
|
||||||
.position = Pozice na obrazovce
|
.position = Umístění na obrazovce
|
||||||
.display = Zobrazit na obrazovce
|
.display = Zobrazit na obrazovce
|
||||||
panel-top = Nahoře
|
panel-top = Nahoře
|
||||||
panel-bottom = Dole
|
panel-bottom = Dole
|
||||||
|
|
@ -215,7 +215,8 @@ sound-alerts = Upozornění
|
||||||
.volume = Hlasitost upozornění
|
.volume = Hlasitost upozornění
|
||||||
.sound = Zvuk pro upozornění
|
.sound = Zvuk pro upozornění
|
||||||
sound-applications = Aplikace
|
sound-applications = Aplikace
|
||||||
.desc = Hlasitosti aplikací a nastavení
|
.desc = Hlasitosti a nastavení aplikací
|
||||||
|
.none = Žádné aplikace nepoužívají zvuk
|
||||||
|
|
||||||
## System
|
## System
|
||||||
|
|
||||||
|
|
@ -369,8 +370,10 @@ accessibility = Přístupnost
|
||||||
.unavailable = Nedostupné
|
.unavailable = Nedostupné
|
||||||
.screen-reader = Čtečka obrazovky
|
.screen-reader = Čtečka obrazovky
|
||||||
.high-contrast = Vysoký kontrast
|
.high-contrast = Vysoký kontrast
|
||||||
.invert-colors = Převrátit barvy
|
.invert-colors = Inverze barev
|
||||||
.color-filters = Barevné filtry
|
.color-filters = Barevné filtry
|
||||||
|
.shake-cursor = Nalezení ukazatele zatřesením
|
||||||
|
.shake-cursor-desc = Rychlým zatřesením myší se ukazatel dočasně zvětší
|
||||||
hearing = Sluch
|
hearing = Sluch
|
||||||
.mono = Přehrávat stereo zvuk jako mono
|
.mono = Přehrávat stereo zvuk jako mono
|
||||||
default = Výchozí
|
default = Výchozí
|
||||||
|
|
@ -462,13 +465,13 @@ container-background = Pozadí kontejneru
|
||||||
control-tint = Odstín ovládacích prvků
|
control-tint = Odstín ovládacích prvků
|
||||||
.desc = Používá se pro pozadí standardních tlačítek, vyhledávacích polí, textových vstupů a podobných komponent
|
.desc = Používá se pro pozadí standardních tlačítek, vyhledávacích polí, textových vstupů a podobných komponent
|
||||||
frosted = Efekt ledového skla na systémovém rozhraní
|
frosted = Efekt ledového skla na systémovém rozhraní
|
||||||
.desc = Použije rozmazané pozadí pro panel, dok, applety, spouštěč a knihovnu aplikací
|
.desc = Použít rozmazané pozadí pro panel, dok, applety, spouštěč a knihovnu aplikací
|
||||||
enable-export = Použít aktuální motiv v aplikacích GNOME
|
enable-export = Použít aktuální motiv v aplikacích GNOME
|
||||||
.desc = Ne všechny toolkity podporují automatické přepínání. Aplikace, které nejsou postaveny na COSMIC toolkitu mohou vyžadovat restart po změně motivu.
|
.desc = Ne všechny toolkity podporují automatické přepínání. Aplikace, které nejsou postaveny na COSMIC toolkitu mohou vyžadovat restart po změně motivu.
|
||||||
password-mismatch = Heslo a jeho potvrzení se musí shodovat
|
password-mismatch = Heslo a jeho potvrzení se musí shodovat
|
||||||
invalid-username = Neplatné uživatelské jméno
|
invalid-username = Neplatné uživatelské jméno
|
||||||
icon-theme = Motiv ikon
|
icon-theme = Motiv ikon
|
||||||
.desc = Použije jinou sadu ikon pro aplikace
|
.desc = Použít jinou sadu ikon pro aplikace
|
||||||
monospace-font = Písmo s pevnou šířkou
|
monospace-font = Písmo s pevnou šířkou
|
||||||
window-management = Správa oken
|
window-management = Správa oken
|
||||||
window-tiling = Dlaždicový režim oken
|
window-tiling = Dlaždicový režim oken
|
||||||
|
|
@ -521,7 +524,7 @@ magnifier = Lupa
|
||||||
.show_overlay = Zobrazit překrytí lupy
|
.show_overlay = Zobrazit překrytí lupy
|
||||||
.increment = Krok přiblížení
|
.increment = Krok přiblížení
|
||||||
.signin = Spustit lupu při přihlášení
|
.signin = Spustit lupu při přihlášení
|
||||||
.applet = Lupu lze přepnout v appletu na panelu
|
.applet = Lupu lze přepnout (zap/vyp) v nabídce zobrazené po kliknutí na applet přímo v panelu
|
||||||
.movement = Pohyb přiblíženého zobrazení
|
.movement = Pohyb přiblíženého zobrazení
|
||||||
.continuous = Neustále s ukazatelem
|
.continuous = Neustále s ukazatelem
|
||||||
.onedge = Když ukazatel dosáhne okraje
|
.onedge = Když ukazatel dosáhne okraje
|
||||||
|
|
@ -529,9 +532,9 @@ magnifier = Lupa
|
||||||
color-filter = Typ barevného filtru
|
color-filter = Typ barevného filtru
|
||||||
.unknown = Neznámý filtr aktivní
|
.unknown = Neznámý filtr aktivní
|
||||||
.greyscale = Stupně šedi
|
.greyscale = Stupně šedi
|
||||||
.deuteranopia = Zeleno/Červená (oslabení zelené, Deuteranopie)
|
.deuteranopia = Zelená/červená (oslabené vnímání zelené, deuteranopie)
|
||||||
.protanopia = Červeno/Zelená (oslabení červené, Protanopie)
|
.protanopia = Červená/zelená (oslabené vnímání červené, protanopie)
|
||||||
.tritanopia = Modro/Žlutá (oslabení modré, Tritanopie)
|
.tritanopia = Modrá/žlutá (oslabené vnímání modré, tritanopie)
|
||||||
text-tint = Odstín textu rozhraní
|
text-tint = Odstín textu rozhraní
|
||||||
.desc = Používá se k odvození barev textu rozhraní, které mají dostatečný kontrast na různých površích
|
.desc = Používá se k odvození barev textu rozhraní, které mají dostatečný kontrast na různých površích
|
||||||
experimental-settings = Experimentální nastavení
|
experimental-settings = Experimentální nastavení
|
||||||
|
|
@ -552,13 +555,13 @@ style = Styl
|
||||||
.square = Hranatý
|
.square = Hranatý
|
||||||
.frosted-glass = Efekt ledového skla
|
.frosted-glass = Efekt ledového skla
|
||||||
.frosted-system-interface = Rozhraní systému
|
.frosted-system-interface = Rozhraní systému
|
||||||
.frosted-system-interface-desc = Použije efekt ledového skla na spouštěč, knihovnu aplikací, přehled pracovních ploch a ovládací prvky na obrazovce
|
.frosted-system-interface-desc = Použít efekt ledového skla pro spouštěč, knihovnu aplikací, přehled pracovních ploch a ovládací prvky na obrazovce
|
||||||
.frosted-windows = Okna
|
.frosted-windows = Okna
|
||||||
.frosted-windows-desc = Použije efekt ledového skla na okna a dialogy
|
.frosted-windows-desc = Použít efekt ledového skla pro okna a dialogy
|
||||||
.frosted-panels = Panely
|
.frosted-panels = Panely
|
||||||
.frosted-panels-desc = Použije efekt ledového skla na dok a panel
|
.frosted-panels-desc = Použít efekt ledového skla pro dok a panel
|
||||||
.frosted-applets = Applety
|
.frosted-applets = Applety
|
||||||
.frosted-applets-desc = Použije efekt ledového skla na nabídky appletů v doku a na panelu
|
.frosted-applets-desc = Použít efekt ledového skla pro nabídky appletů na panelu a doku
|
||||||
.frosted-thickness = Tloušťka ledu
|
.frosted-thickness = Tloušťka ledu
|
||||||
.less = menší
|
.less = menší
|
||||||
.more = větší
|
.more = větší
|
||||||
|
|
|
||||||
2
i18n/da/cosmic_settings.ftl
vendored
2
i18n/da/cosmic_settings.ftl
vendored
|
|
@ -514,7 +514,7 @@ show-extended-input-sources = Vis udvidede inputkilder
|
||||||
|
|
||||||
keyboard-shortcuts = Tastaturgenveje
|
keyboard-shortcuts = Tastaturgenveje
|
||||||
.desc = Se og tilpas genveje
|
.desc = Se og tilpas genveje
|
||||||
cancel = Annuller
|
cancel = Afbryd
|
||||||
command = Kommando
|
command = Kommando
|
||||||
custom = Brugerdefineret
|
custom = Brugerdefineret
|
||||||
debug = Debug
|
debug = Debug
|
||||||
|
|
|
||||||
3
i18n/de/cosmic_settings.ftl
vendored
3
i18n/de/cosmic_settings.ftl
vendored
|
|
@ -124,6 +124,8 @@ accessibility = Barrierefreiheit
|
||||||
.high-contrast = Modus für hohen Kontrast
|
.high-contrast = Modus für hohen Kontrast
|
||||||
.invert-colors = Farben invertieren
|
.invert-colors = Farben invertieren
|
||||||
.color-filters = Farbfilter
|
.color-filters = Farbfilter
|
||||||
|
.shake-cursor = Mauszeiger schütteln, um ihn zu finden
|
||||||
|
.shake-cursor-desc = Schüttle die Maus kurz, um den Mauszeiger vorübergehend zu vergrößern
|
||||||
hearing = Hören
|
hearing = Hören
|
||||||
.mono = Stereo-Audio als Mono abspielen
|
.mono = Stereo-Audio als Mono abspielen
|
||||||
default = Standard
|
default = Standard
|
||||||
|
|
@ -431,6 +433,7 @@ sound-alerts = Alarmsignale
|
||||||
.sound = Alarmsignalklang
|
.sound = Alarmsignalklang
|
||||||
sound-applications = Anwendungen
|
sound-applications = Anwendungen
|
||||||
.desc = Lautstärken und Einstellungen von Anwendungen
|
.desc = Lautstärken und Einstellungen von Anwendungen
|
||||||
|
.none = Keine Anwendungen verwenden einen Klang
|
||||||
|
|
||||||
## Energie
|
## Energie
|
||||||
|
|
||||||
|
|
|
||||||
1
i18n/el/cosmic_settings.ftl
vendored
1
i18n/el/cosmic_settings.ftl
vendored
|
|
@ -603,6 +603,7 @@ connected-devices = Συνδεδεμένες συσκευές
|
||||||
icons-and-toolkit = Εικονίδια και θέματα συνόλου εργαλείων
|
icons-and-toolkit = Εικονίδια και θέματα συνόλου εργαλείων
|
||||||
sound-applications = Εφαρμογές
|
sound-applications = Εφαρμογές
|
||||||
.desc = Ένταση και ρυθμίσεις ήχου εφαρμογών
|
.desc = Ένταση και ρυθμίσεις ήχου εφαρμογών
|
||||||
|
.none = Καμία εφαρμογή δεν χρησιμοποιεί ήχο
|
||||||
time-zone = Ζώνη ώρας
|
time-zone = Ζώνη ώρας
|
||||||
.auto = Αυτόματη ζώνη ώρας
|
.auto = Αυτόματη ζώνη ώρας
|
||||||
.auto-info = Απαιτεί τη χρήση υπηρεσιών τοποθεσίας και πρόσβαση στο διαδίκτυο
|
.auto-info = Απαιτεί τη χρήση υπηρεσιών τοποθεσίας και πρόσβαση στο διαδίκτυο
|
||||||
|
|
|
||||||
2
i18n/en/cosmic_settings.ftl
vendored
2
i18n/en/cosmic_settings.ftl
vendored
|
|
@ -275,6 +275,8 @@ accessibility = Accessibility
|
||||||
.high-contrast = High contrast mode
|
.high-contrast = High contrast mode
|
||||||
.invert-colors = Invert colors
|
.invert-colors = Invert colors
|
||||||
.color-filters = Color filters
|
.color-filters = Color filters
|
||||||
|
.shake-cursor = Shake pointer to find it
|
||||||
|
.shake-cursor-desc = Quickly shake the mouse to temporarily enlarge the pointer
|
||||||
|
|
||||||
hearing = Hearing
|
hearing = Hearing
|
||||||
.mono = Play stereo audio as mono
|
.mono = Play stereo audio as mono
|
||||||
|
|
|
||||||
2
i18n/fi/cosmic_settings.ftl
vendored
2
i18n/fi/cosmic_settings.ftl
vendored
|
|
@ -791,6 +791,8 @@ accessibility = Esteettömyys
|
||||||
.high-contrast = Suurikontrastinen tila
|
.high-contrast = Suurikontrastinen tila
|
||||||
.invert-colors = Käänteiset värit
|
.invert-colors = Käänteiset värit
|
||||||
.color-filters = Värisuodattimet
|
.color-filters = Värisuodattimet
|
||||||
|
.shake-cursor = Ravista osoitinta paikantaaksesi sen
|
||||||
|
.shake-cursor-desc = Ravista nopeasti hiirtä suurentaaksesi osoittimen väliaikaisesti
|
||||||
debug = Vianjäljitys
|
debug = Vianjäljitys
|
||||||
system-shortcut = Järjestelmä
|
system-shortcut = Järjestelmä
|
||||||
.app-library = Avaa sovelluskirjasto
|
.app-library = Avaa sovelluskirjasto
|
||||||
|
|
|
||||||
3
i18n/fr/cosmic_settings.ftl
vendored
3
i18n/fr/cosmic_settings.ftl
vendored
|
|
@ -441,6 +441,7 @@ sound-alerts = Alertes
|
||||||
.sound = Alertes sonores
|
.sound = Alertes sonores
|
||||||
sound-applications = Applications
|
sound-applications = Applications
|
||||||
.desc = Volumes et paramètres d'application
|
.desc = Volumes et paramètres d'application
|
||||||
|
.none = Aucune application n'utilise le son
|
||||||
|
|
||||||
## Printers
|
## Printers
|
||||||
|
|
||||||
|
|
@ -895,6 +896,8 @@ accessibility = Accessibilité
|
||||||
.high-contrast = Mode contraste élevé
|
.high-contrast = Mode contraste élevé
|
||||||
.invert-colors = Inverser les couleurs
|
.invert-colors = Inverser les couleurs
|
||||||
.color-filters = Filtres de couleurs
|
.color-filters = Filtres de couleurs
|
||||||
|
.shake-cursor = Secouer le curseur pour le localiser
|
||||||
|
.shake-cursor-desc = Secouez rapidement la souris pour agrandir temporairement le curseur
|
||||||
color-filter = Type de filtre de couleurs
|
color-filter = Type de filtre de couleurs
|
||||||
.unknown = Filtre inconnu actif
|
.unknown = Filtre inconnu actif
|
||||||
.greyscale = Niveaux de gris
|
.greyscale = Niveaux de gris
|
||||||
|
|
|
||||||
3
i18n/gl/cosmic_settings.ftl
vendored
3
i18n/gl/cosmic_settings.ftl
vendored
|
|
@ -211,7 +211,7 @@ bluetooth-display-pin = Emparellamento Bluetooth
|
||||||
.description = Introduce o seguinte PIN en { $device } e preme Intro
|
.description = Introduce o seguinte PIN en { $device } e preme Intro
|
||||||
bluetooth-available = Dispositivos próximos
|
bluetooth-available = Dispositivos próximos
|
||||||
bluetooth-adapters = Adaptadores Bluetooth
|
bluetooth-adapters = Adaptadores Bluetooth
|
||||||
accessibility = Accessibility
|
accessibility = Accessibilidade
|
||||||
.vision = Visión
|
.vision = Visión
|
||||||
.on = Activado
|
.on = Activado
|
||||||
.off = Desactivado
|
.off = Desactivado
|
||||||
|
|
@ -502,6 +502,7 @@ sound-alerts = Alertas
|
||||||
.sound = Son das alertas
|
.sound = Son das alertas
|
||||||
sound-applications = Aplicacións
|
sound-applications = Aplicacións
|
||||||
.desc = Volumes e configuracións das aplicacións
|
.desc = Volumes e configuracións das aplicacións
|
||||||
|
.none = Ningún aplicativo esta a soar
|
||||||
sound-device-port-unplugged = Desconectado
|
sound-device-port-unplugged = Desconectado
|
||||||
sound-hd-audio = Audio HD
|
sound-hd-audio = Audio HD
|
||||||
sound-usb-audio = Audio USB
|
sound-usb-audio = Audio USB
|
||||||
|
|
|
||||||
5
i18n/hu/cosmic_settings.ftl
vendored
5
i18n/hu/cosmic_settings.ftl
vendored
|
|
@ -182,6 +182,8 @@ accessibility = Akadálymentesség
|
||||||
.high-contrast = Magas kontraszt mód
|
.high-contrast = Magas kontraszt mód
|
||||||
.invert-colors = Színek invertálása
|
.invert-colors = Színek invertálása
|
||||||
.color-filters = Színszűrők
|
.color-filters = Színszűrők
|
||||||
|
.shake-cursor = Mutató rázása a megtalálásához
|
||||||
|
.shake-cursor-desc = Az egér gyors megrázásával ideiglenesen megnövelhető a mutató mérete
|
||||||
hearing = Hallás
|
hearing = Hallás
|
||||||
.mono = Sztereó hang lejátszása monóként
|
.mono = Sztereó hang lejátszása monóként
|
||||||
default = Alapértelmezett
|
default = Alapértelmezett
|
||||||
|
|
@ -483,7 +485,8 @@ sound-alerts = Figyelmeztetések
|
||||||
.volume = Figyelmeztetések hangereje
|
.volume = Figyelmeztetések hangereje
|
||||||
.sound = Figyelmeztető hang
|
.sound = Figyelmeztető hang
|
||||||
sound-applications = Alkalmazások
|
sound-applications = Alkalmazások
|
||||||
.desc = Alkalmazások hangerejei és beállításai
|
.desc = Alkalmazások hangereje és beállításai
|
||||||
|
.none = Egyetlen alkalmazás sem használ hangot
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
|
||||||
3
i18n/id/cosmic_settings.ftl
vendored
3
i18n/id/cosmic_settings.ftl
vendored
|
|
@ -116,6 +116,8 @@ accessibility = Aksesibilitas
|
||||||
.high-contrast = Mode kontras tinggi
|
.high-contrast = Mode kontras tinggi
|
||||||
.invert-colors = Balikkan warna
|
.invert-colors = Balikkan warna
|
||||||
.color-filters = Filter warna
|
.color-filters = Filter warna
|
||||||
|
.shake-cursor = Goyangkan penunjuk untuk menemukannya
|
||||||
|
.shake-cursor-desc = Goyangkan tetikus dengan cepat untuk memperbesar penunjuk untuk sementara
|
||||||
hearing = Pendengaran
|
hearing = Pendengaran
|
||||||
.mono = Mainkan audio stereo sebagai mono
|
.mono = Mainkan audio stereo sebagai mono
|
||||||
default = Bawaan
|
default = Bawaan
|
||||||
|
|
@ -397,6 +399,7 @@ sound-alerts = Peringatan
|
||||||
.sound = Suara peringatan
|
.sound = Suara peringatan
|
||||||
sound-applications = Aplikasi
|
sound-applications = Aplikasi
|
||||||
.desc = Volume dan pengaturan aplikasi
|
.desc = Volume dan pengaturan aplikasi
|
||||||
|
.none = Tidak ada aplikasi yang menggunakan suara
|
||||||
sound-device-port-unplugged = Tercabut
|
sound-device-port-unplugged = Tercabut
|
||||||
sound-hd-audio = Audio HD
|
sound-hd-audio = Audio HD
|
||||||
sound-usb-audio = Audio USB
|
sound-usb-audio = Audio USB
|
||||||
|
|
|
||||||
3
i18n/kk/cosmic_settings.ftl
vendored
3
i18n/kk/cosmic_settings.ftl
vendored
|
|
@ -116,6 +116,8 @@ accessibility = Арнайы мүмкіндіктер
|
||||||
.high-contrast = Жоғары контраст режимі
|
.high-contrast = Жоғары контраст режимі
|
||||||
.invert-colors = Түстерді инверсиялау
|
.invert-colors = Түстерді инверсиялау
|
||||||
.color-filters = Түс сүзгілері
|
.color-filters = Түс сүзгілері
|
||||||
|
.shake-cursor = Шайқаған кезде курсорды үлкейту
|
||||||
|
.shake-cursor-desc = Курсорды уақытша үлкейту үшін, тышқанды жылдам шайқаңыз
|
||||||
hearing = Есту қабілеті
|
hearing = Есту қабілеті
|
||||||
.mono = Стерео аудионы моно ретінде ойнату
|
.mono = Стерео аудионы моно ретінде ойнату
|
||||||
default = Әдепкі
|
default = Әдепкі
|
||||||
|
|
@ -394,6 +396,7 @@ sound-alerts = Ескертулер
|
||||||
.sound = Ескертулер дыбысы
|
.sound = Ескертулер дыбысы
|
||||||
sound-applications = Қолданбалар
|
sound-applications = Қолданбалар
|
||||||
.desc = Қолданбалардың дыбыс деңгейі мен баптаулары
|
.desc = Қолданбалардың дыбыс деңгейі мен баптаулары
|
||||||
|
.none = Ешбір қолданба дыбысты қолданып жатқан жоқ
|
||||||
sound-device-port-unplugged = Ажыратылған
|
sound-device-port-unplugged = Ажыратылған
|
||||||
sound-hd-audio = HD аудио
|
sound-hd-audio = HD аудио
|
||||||
sound-usb-audio = USB аудио
|
sound-usb-audio = USB аудио
|
||||||
|
|
|
||||||
3
i18n/kmr/cosmic_settings.ftl
vendored
3
i18n/kmr/cosmic_settings.ftl
vendored
|
|
@ -121,6 +121,8 @@ accessibility = Gihîştin
|
||||||
.high-contrast = Awayê berevajiya bilind
|
.high-contrast = Awayê berevajiya bilind
|
||||||
.invert-colors = Rengan berevajî bike
|
.invert-colors = Rengan berevajî bike
|
||||||
.color-filters = Parzûnên rengan
|
.color-filters = Parzûnên rengan
|
||||||
|
.shake-cursor = Nîşanderê bihejîne da ku wê bibînî
|
||||||
|
.shake-cursor-desc = Ji bo ku nîşander demkî mezin bibe, mişkê bi lez bihejîne
|
||||||
container-background = Paşrûyê konteynirê
|
container-background = Paşrûyê konteynirê
|
||||||
.desc-detail = Rengê paşrûyêa konteynirê ji bo gerandina darika kêlekê, kaşoya alî, gotûbêj û alavokên wekhev tê bikaranîn. Bi berdestî, rengê paşrûya konteynirê xweber ji paşrûyê çarçoveyê tê girtin.
|
.desc-detail = Rengê paşrûyêa konteynirê ji bo gerandina darika kêlekê, kaşoya alî, gotûbêj û alavokên wekhev tê bikaranîn. Bi berdestî, rengê paşrûya konteynirê xweber ji paşrûyê çarçoveyê tê girtin.
|
||||||
.reset = Vegere awayê xweber
|
.reset = Vegere awayê xweber
|
||||||
|
|
@ -561,6 +563,7 @@ connected-devices = Amûrên girêdayî
|
||||||
icons-and-toolkit = Rûkara îkon û amûran
|
icons-and-toolkit = Rûkara îkon û amûran
|
||||||
sound-applications = Sepan
|
sound-applications = Sepan
|
||||||
.desc = Dengê sepanan û sazkarî
|
.desc = Dengê sepanan û sazkarî
|
||||||
|
.none = Tu sepan dengê bi kar nayîne
|
||||||
time-zone = Herêma demê
|
time-zone = Herêma demê
|
||||||
.auto = Herêma dema xweber
|
.auto = Herêma dema xweber
|
||||||
.auto-info = Pêdiviya wê bi rajekarên cîh û gihîştina înternetê heye
|
.auto-info = Pêdiviya wê bi rajekarên cîh û gihîştina înternetê heye
|
||||||
|
|
|
||||||
3
i18n/pl/cosmic_settings.ftl
vendored
3
i18n/pl/cosmic_settings.ftl
vendored
|
|
@ -180,6 +180,8 @@ accessibility = Dostępność
|
||||||
.high-contrast = Tryb wysokiego kontrastu
|
.high-contrast = Tryb wysokiego kontrastu
|
||||||
.invert-colors = Odwróć kolory
|
.invert-colors = Odwróć kolory
|
||||||
.color-filters = Filtry kolorów
|
.color-filters = Filtry kolorów
|
||||||
|
.shake-cursor = Porusz energicznie kursorem by go znaleźć
|
||||||
|
.shake-cursor-desc = Szybko ruszaj myszką by czasowo powiększyć kursor
|
||||||
hearing = Słuchanie
|
hearing = Słuchanie
|
||||||
.mono = Odtwarzaj dźwięk stereo jako mono
|
.mono = Odtwarzaj dźwięk stereo jako mono
|
||||||
default = Domyślne
|
default = Domyślne
|
||||||
|
|
@ -496,6 +498,7 @@ sound-alerts = Alerty
|
||||||
.sound = Dźwięk alertów
|
.sound = Dźwięk alertów
|
||||||
sound-applications = Aplikacje
|
sound-applications = Aplikacje
|
||||||
.desc = Ustawienia i głośność aplikacji
|
.desc = Ustawienia i głośność aplikacji
|
||||||
|
.none = Żadna z aplikacji nie wydaje dźwięków
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
|
||||||
7
i18n/pt-BR/cosmic_settings.ftl
vendored
7
i18n/pt-BR/cosmic_settings.ftl
vendored
|
|
@ -124,6 +124,8 @@ accessibility = Acessibilidade
|
||||||
.high-contrast = Modo de alto contraste
|
.high-contrast = Modo de alto contraste
|
||||||
.invert-colors = Inverter cores
|
.invert-colors = Inverter cores
|
||||||
.color-filters = Filtros de cor
|
.color-filters = Filtros de cor
|
||||||
|
.shake-cursor = Agite o ponteiro para encontrá-lo
|
||||||
|
.shake-cursor-desc = Agite rapidamente o mouse para ampliar temporariamente o ponteiro
|
||||||
hearing = Audição
|
hearing = Audição
|
||||||
.mono = Reproduzir áudio estéreo como mono
|
.mono = Reproduzir áudio estéreo como mono
|
||||||
default = Padrão
|
default = Padrão
|
||||||
|
|
@ -426,8 +428,9 @@ amplification = Amplificação
|
||||||
sound-alerts = Alertas
|
sound-alerts = Alertas
|
||||||
.volume = Volume dos alertas
|
.volume = Volume dos alertas
|
||||||
.sound = Som dos alertas
|
.sound = Som dos alertas
|
||||||
sound-applications = Aplicações
|
sound-applications = Aplicativos
|
||||||
.desc = Volume e configurações das aplicações
|
.desc = Volumes e configurações de aplicativo
|
||||||
|
.none = Nenhum aplicativo está usando som
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
|
||||||
5
i18n/ru/cosmic_settings.ftl
vendored
5
i18n/ru/cosmic_settings.ftl
vendored
|
|
@ -277,7 +277,8 @@ sound-alerts = Предупреждения
|
||||||
.volume = Громкость предупреждений
|
.volume = Громкость предупреждений
|
||||||
.sound = Звук предупреждений
|
.sound = Звук предупреждений
|
||||||
sound-applications = Приложения
|
sound-applications = Приложения
|
||||||
.desc = Громкость и настройки приложений
|
.desc = Громкость приложений и настройки
|
||||||
|
.none = Нет приложений, использующих звук
|
||||||
|
|
||||||
## System
|
## System
|
||||||
|
|
||||||
|
|
@ -648,6 +649,8 @@ accessibility = Специальные возможности
|
||||||
.high-contrast = Режим высокой контрастности
|
.high-contrast = Режим высокой контрастности
|
||||||
.invert-colors = Инвертирование цвета
|
.invert-colors = Инвертирование цвета
|
||||||
.color-filters = Цветовые фильтры
|
.color-filters = Цветовые фильтры
|
||||||
|
.shake-cursor = Увеличивать курсор при встряхивании
|
||||||
|
.shake-cursor-desc = Быстро встряхните мышь, чтобы временно увеличить курсор
|
||||||
hearing = Слух
|
hearing = Слух
|
||||||
.mono = Проигрывать стереозвук как монозвук
|
.mono = Проигрывать стереозвук как монозвук
|
||||||
default = По умолчанию
|
default = По умолчанию
|
||||||
|
|
|
||||||
3
i18n/sv/cosmic_settings.ftl
vendored
3
i18n/sv/cosmic_settings.ftl
vendored
|
|
@ -206,6 +206,8 @@ accessibility = Tillgänglighet
|
||||||
.high-contrast = Högkontrastläge
|
.high-contrast = Högkontrastläge
|
||||||
.invert-colors = Invertera färger
|
.invert-colors = Invertera färger
|
||||||
.color-filters = Färgfilter
|
.color-filters = Färgfilter
|
||||||
|
.shake-cursor = Skaka muspekaren för att hitta den
|
||||||
|
.shake-cursor-desc = Skaka musen snabbt för att tillfälligt förstora muspekaren
|
||||||
hearing = Hörsel
|
hearing = Hörsel
|
||||||
.mono = Spela stereoljud som mono
|
.mono = Spela stereoljud som mono
|
||||||
default = Standard
|
default = Standard
|
||||||
|
|
@ -490,6 +492,7 @@ sound-alerts = Larm
|
||||||
.sound = Larmljud
|
.sound = Larmljud
|
||||||
sound-applications = Program
|
sound-applications = Program
|
||||||
.desc = Programvolym och inställningar
|
.desc = Programvolym och inställningar
|
||||||
|
.none = Inga program använder ljud
|
||||||
|
|
||||||
## System
|
## System
|
||||||
|
|
||||||
|
|
|
||||||
5
i18n/uk/cosmic_settings.ftl
vendored
5
i18n/uk/cosmic_settings.ftl
vendored
|
|
@ -267,6 +267,7 @@ sound-alerts = Попередження
|
||||||
.sound = Звук попереджень
|
.sound = Звук попереджень
|
||||||
sound-applications = Застосунки
|
sound-applications = Застосунки
|
||||||
.desc = Гучність та налаштування для застосунків
|
.desc = Гучність та налаштування для застосунків
|
||||||
|
.none = Жоден застосунок не відтворює звук
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
@ -652,8 +653,10 @@ accessibility = Доступність
|
||||||
.unavailable = Недоступно
|
.unavailable = Недоступно
|
||||||
.screen-reader = Екранний читач
|
.screen-reader = Екранний читач
|
||||||
.high-contrast = Висока контрастність
|
.high-contrast = Висока контрастність
|
||||||
.invert-colors = Інвертація кольорів
|
.invert-colors = Інверсія кольорів
|
||||||
.color-filters = Фільтри кольорів
|
.color-filters = Фільтри кольорів
|
||||||
|
.shake-cursor = Потрусіть вказівником, щоб знайти його
|
||||||
|
.shake-cursor-desc = Швидко потрусіть мишею, щоби тимчасово збільшити вказівник
|
||||||
hearing = Слух
|
hearing = Слух
|
||||||
.mono = Відтворювати стерео звук у моно
|
.mono = Відтворювати стерео звук у моно
|
||||||
default = Типовий
|
default = Типовий
|
||||||
|
|
|
||||||
3
i18n/zh-CN/cosmic_settings.ftl
vendored
3
i18n/zh-CN/cosmic_settings.ftl
vendored
|
|
@ -184,6 +184,8 @@ accessibility = 无障碍
|
||||||
.high-contrast = 高对比度模式
|
.high-contrast = 高对比度模式
|
||||||
.invert-colors = 颜色反转
|
.invert-colors = 颜色反转
|
||||||
.color-filters = 色彩滤镜
|
.color-filters = 色彩滤镜
|
||||||
|
.shake-cursor = 晃动指针来寻找它
|
||||||
|
.shake-cursor-desc = 快速晃动鼠标以暂时放大指标
|
||||||
hearing = 听觉
|
hearing = 听觉
|
||||||
.mono = 播放立体声音频为单声道
|
.mono = 播放立体声音频为单声道
|
||||||
default = 默认
|
default = 默认
|
||||||
|
|
@ -486,6 +488,7 @@ sound-alerts = 警告音
|
||||||
.sound = 警告音效
|
.sound = 警告音效
|
||||||
sound-applications = 应用程序
|
sound-applications = 应用程序
|
||||||
.desc = 应用程序音量和设置
|
.desc = 应用程序音量和设置
|
||||||
|
.none = 没有任何应用程序正在使用声音
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
|
||||||
3
i18n/zh-TW/cosmic_settings.ftl
vendored
3
i18n/zh-TW/cosmic_settings.ftl
vendored
|
|
@ -124,6 +124,8 @@ accessibility = 無障礙功能
|
||||||
.high-contrast = 高對比模式
|
.high-contrast = 高對比模式
|
||||||
.invert-colors = 反轉顏色
|
.invert-colors = 反轉顏色
|
||||||
.color-filters = 色彩濾鏡
|
.color-filters = 色彩濾鏡
|
||||||
|
.shake-cursor = 晃動指標以能找到所在
|
||||||
|
.shake-cursor-desc = 快速晃動游標來暫時性地放大指標
|
||||||
hearing = 聽覺
|
hearing = 聽覺
|
||||||
.mono = 將立體聲播放為單聲道
|
.mono = 將立體聲播放為單聲道
|
||||||
default = 預設
|
default = 預設
|
||||||
|
|
@ -426,6 +428,7 @@ sound-alerts = 提示音
|
||||||
.sound = 提示音音效
|
.sound = 提示音音效
|
||||||
sound-applications = 應用程式
|
sound-applications = 應用程式
|
||||||
.desc = 應用程式音量與設定
|
.desc = 應用程式音量與設定
|
||||||
|
.none = 無應用程式使用音效
|
||||||
|
|
||||||
## Power
|
## Power
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-page"
|
name = "cosmic-settings-page"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-sound"
|
name = "cosmic-settings-sound"
|
||||||
version = "0.1.0"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-wallpaper"
|
name = "cosmic-settings-wallpaper"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "1.93.0"
|
channel = "1.95.0"
|
||||||
components = ["clippy", "rustfmt"]
|
components = ["clippy", "rustfmt"]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-a11y-manager-subscription"
|
name = "cosmic-settings-a11y-manager-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-accessibility-subscription"
|
name = "cosmic-settings-accessibility-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-airplane-mode-subscription"
|
name = "cosmic-settings-airplane-mode-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-bluetooth-subscription"
|
name = "cosmic-settings-bluetooth-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-daemon-subscription"
|
name = "cosmic-settings-daemon-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
publish = true
|
publish = true
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "cosmic-settings-upower-subscription"
|
name = "cosmic-settings-upower-subscription"
|
||||||
version = "1.0.7"
|
version = "1.7.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
rust-version.workspace = true
|
rust-version.workspace = true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue