Merge remote-tracking branch 'upstream/master' into local/yoda-main-1.3.0

# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	cosmic-settings/Cargo.toml
This commit is contained in:
Lionel DARNIS 2026-08-19 21:58:13 +02:00
commit 02eccba3f8
62 changed files with 2908 additions and 625 deletions

803
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ rust-version = "1.93"
[workspace.dependencies]
cosmic-randr = { path = "../cosmic-randr/lib" }
tokio = { version = "1.49.0", features = ["macros"] }
tokio = { version = "1.53.1", features = ["macros"] }
iced_winit = { path = "/home/lionel/Projets/COSMIC/libcosmic/iced/winit", default-features = false }
image = { version = "0.25.10", default-features = false, features = [
"jpeg",

View file

@ -48,7 +48,13 @@ This document provides a regression testing checklist for COSMIC Settings and th
### Sound
TBD after devices/profiles are fixed.
- [ ] Output & Input volume sliders work independently
- [ ] Output balance slider works & doesn't get reset by volume slider
- [ ] Amplification toggles work as expected
- [ ] Device profiles can be changed & reflect as expected on the main Sound page
- [ ] Applications using sound appear on the Applications sub-page
- [ ] Application volume and mute controls only affect the selected playback stream
- [ ] Closing an playback stream removes it from the Applications sub-page
### Power & Battery

View file

@ -1,6 +1,6 @@
[package]
name = "cosmic-settings"
version = "1.0.12"
version = "1.5.0"
edition = "2024"
license = "GPL-3.0-only"
publish = false
@ -16,7 +16,7 @@ ashpd = { version = "0.12", default-features = false, features = [
], optional = true }
chrono = "0.4"
jiff = "0.2"
clap = { version = "4.5.59", features = ["derive"] }
clap = { version = "4.6.4", features = ["derive"] }
color-eyre = "0.6.5"
cosmic-bg-config.workspace = true
cosmic-comp-config = { workspace = true, optional = true }
@ -41,28 +41,28 @@ derive_setters = "0.1.9"
dirs = "6.0.0"
eyre = "0.6.12"
freedesktop-desktop-entry = "0.8.1"
futures = "0.3.32"
futures = "0.3.33"
hostname-validator = "1.1.1"
hostname1-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
i18n-embed-fl = "0.10.0"
i18n-embed-fl = "0.10.1"
image.workspace = true
indexmap = "2.13.0"
indexmap = "2.14.0"
itertools = "0.14.0"
itoa = "1.0.17"
itoa = "1.0.18"
cosmic.workspace = true
iced_winit.workspace = true
locale1 = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
sysinfo = { version = "=0.38.0", optional = true }
mime-apps = { package = "cosmic-mime-apps", git = "https://github.com/pop-os/cosmic-mime-apps", features = ["tokio"], optional = true }
notify = "8.2.0"
nmrs = { version = "3.4.0", optional = true }
regex = "1.12.3"
nmrs = { version = "3.4.2", optional = true }
regex = "1.13.1"
ron = "0.12"
rust-embed = "8.11.0"
rust-embed = "8.12.0"
sctk = { workspace = true, optional = true }
secure-string = "0.3.0"
secret-service = { version = "5.1.0", features = ["rt-tokio-crypto-rust"], optional = true }
serde = { version = "1.0.228", features = ["derive"] }
serde = { version = "1.0.229", features = ["derive"] }
slab = "0.4.12"
slotmap = "1.1.1"
static_init = "1.0.4"
@ -70,26 +70,26 @@ sunrise = "3.0.0"
timedate-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
tokio = { workspace = true, features = ["fs", "io-util", "process", "sync"] }
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
udev = { version = "0.9.3", optional = true }
upower_dbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
bluez-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
url = "2.5.8"
xkb-data = "0.2.2"
xkeysym = { version = "0.2.1", optional = true }
zbus = { version = "5.13.2", default-features = false, features = [
zbus = { version = "5.18.0", default-features = false, features = [
"tokio",
], optional = true }
zbus_polkit = { version = "5.0.0", optional = true }
fontdb = "0.23.0"
mime = "0.3.17"
rustix = { version = "1.1.3", features = ["process"] }
rustix = { version = "1.1.4", features = ["process"] }
gettext-rs = { version = "0.7.7", features = [
"gettext-system",
], optional = true }
num-traits = "0.2"
pwhash = "1"
which = "8.0.0"
which = "8.0.5"
zlink = "0.5.0"
intmap = "3.1.3"
@ -99,7 +99,7 @@ features = ["codec"]
optional = true
[dependencies.icu]
version = "2.1.1"
version = "2.2.0"
features = ["compiled_data"]
[dependencies.i18n-embed]
@ -196,6 +196,6 @@ cosmic-comp-config = ["dep:cosmic-comp-config"]
dbus-config = ["cosmic/dbus-config", "cosmic-config/dbus"]
single-instance = ["cosmic/single-instance"]
test = []
wayland = ["cosmic/wayland", "dep:cosmic-panel-config", "dep:cosmic-randr", "iced_winit/cctk"]
wayland = ["cosmic/wayland", "dep:cosmic-panel-config", "dep:cosmic-randr", "iced_winit/wayland"]
wgpu = ["cosmic/wgpu"]
xdg-portal = ["ashpd", "cosmic/xdg-portal"]

View file

@ -584,6 +584,13 @@ impl cosmic::Application for SettingsApp {
}
}
#[cfg(feature = "page-sound")]
crate::pages::Message::SoundApplications(message) => {
if let Some(page) = self.pages.page_mut::<sound::applications::Page>() {
return page.update(message).map(Into::into);
}
}
#[cfg(feature = "page-sound")]
crate::pages::Message::SoundDeviceProfiles(message) => {
if let Some(page) = self.pages.page_mut::<sound::device_profiles::Page>() {
@ -1158,6 +1165,9 @@ impl SettingsApp {
}
for page in unload {
if page == self.active_page {
continue;
}
self.loaded_pages.remove(&page);
self.pages.on_leave(page);
}

View file

@ -1,7 +1,7 @@
use cosmic::app::ContextDrawer;
use cosmic::iced::{Alignment, Length};
use cosmic::widget::text_input::focus;
use cosmic::widget::{Id, button, icon, settings, text};
use cosmic::widget::{button, icon, settings, text};
use cosmic::{Apply, Element, Task, task, widget};
use cosmic_settings_page::section::Entity;
use cosmic_settings_page::{self as page, Content, Info, Section};

View file

@ -153,6 +153,16 @@ impl Content {
}
}
pub fn preserve_from(&mut self, previous: &mut Content) {
self.font_config
.take_families_from(&mut previous.font_config);
self.icons_fetched = previous.icons_fetched;
self.icon_theme_active = previous.icon_theme_active;
self.icon_themes = std::mem::take(&mut previous.icon_themes);
self.icon_handles = std::mem::take(&mut previous.icon_handles);
}
pub fn update_font(
&mut self,
message: FontMessage,

View file

@ -6,7 +6,6 @@ use std::sync::{Arc, LazyLock};
use cosmic::config::{CosmicTk, FontConfig};
use cosmic::{Apply, Element, Task, widget};
use cosmic_config::ConfigSet;
use mime::FONT;
use crate::app;
use crate::widget::selection_context_item;
@ -94,6 +93,11 @@ impl Model {
self.font_filter.clear();
}
pub fn take_families_from(&mut self, other: &mut Model) {
self.interface_font_families = std::mem::take(&mut other.interface_font_families);
self.monospace_font_families = std::mem::take(&mut other.monospace_font_families);
}
pub fn font_loaded(
&mut self,
mono: Vec<Arc<str>>,

View file

@ -200,7 +200,9 @@ impl Page {
Message::DrawerOpen(context_view) => {
self.context_view = Some(context_view);
self.drawer = drawer::Content::from(&self.theme_manager);
let mut previous =
std::mem::replace(&mut self.drawer, drawer::Content::from(&self.theme_manager));
self.drawer.preserve_from(&mut previous);
tasks.push(cosmic::task::message(
crate::app::Message::OpenContextDrawer(self.entity),
));

View file

@ -65,7 +65,7 @@ pub enum Message {
AddFolder(Arc<Result<Url, file_chooser::Error>>),
/// Adds a new image file the system wallpaper folder.
#[cfg(feature = "xdg-portal")]
AddFile(Arc<Result<Url, file_chooser::Error>>),
AddFiles(Arc<Result<Vec<Url>, file_chooser::Error>>),
/// Cache currently displayed image.
CacheDisplayImage,
/// Selects an option in the category dropdown menu.
@ -787,11 +787,11 @@ impl Page {
.title(fl!("wallpaper", "image-dialog"))
.accept_label(fl!("dialog-add"))
.modal(false)
.open_file()
.open_files()
.await
.map(|response| response.url().to_owned());
.map(|response| response.urls().to_vec());
let message = Message::AddFile(Arc::new(dialog_result));
let message = Message::AddFiles(Arc::new(dialog_result));
let page_message = crate::pages::Message::DesktopWallpaper(message);
crate::Message::PageMessage(page_message)
});
@ -862,6 +862,11 @@ impl Page {
#[cfg(feature = "xdg-portal")]
Message::AddFolder(result) => {
let path = match dialog_response(result) {
DialogResponse::Paths(_) => {
// TODO find if there is a use of multi folder addition.
tracing::warn!("unexpected multi-path response for folder dialog");
return Task::none();
}
DialogResponse::Path(path) => path,
DialogResponse::Error(why) => {
tracing::error!(why, "dialog response error");
@ -887,27 +892,30 @@ impl Page {
}
#[cfg(feature = "xdg-portal")]
Message::AddFile(result) => {
let path = match dialog_response(result) {
DialogResponse::Path(path) => path,
Message::AddFiles(result) => {
let paths = match dialog_response_multi(result) {
DialogResponse::Paths(paths) => paths,
DialogResponse::Path(path) => vec![path], // not really but for the sake of consistency..
DialogResponse::Error(why) => {
tracing::error!(why, "dialog response error");
return Task::none();
}
};
if path.is_file() {
let tasks = paths.into_iter().filter(|path| path.is_file()).map(|path| {
tracing::info!(?path, "opening custom image");
// Loads a single custom image and its thumbnail for display in the backgrounds view.
return cosmic::Task::future(async move {
cosmic::Task::future(async move {
let result = wallpaper::load_image_with_thumbnail(path);
let message = Message::ImageAdd(result.map(Arc::new));
let page_message = crate::pages::Message::DesktopWallpaper(message);
crate::Message::PageMessage(page_message)
});
}
})
});
return Task::batch(tasks);
}
Message::Event(event) => match event {
@ -1417,27 +1425,33 @@ pub fn settings() -> Section<crate::pages::Message> {
enum DialogResponse {
Error(String),
Path(PathBuf),
Paths(Vec<PathBuf>),
}
#[cfg(feature = "xdg-portal")]
fn unwrap_dialog_response<T>(result: Arc<Result<T, file_chooser::Error>>) -> Result<T, String> {
let Some(result) = Arc::into_inner(result) else {
return Err(String::from("Arc::into_inner returned None"));
};
result.map_err(|why| {
let mut source: &dyn std::error::Error = &why;
let mut string = format!("open dialog subscription errored\n cause: {source}");
while let Some(new_source) = source.source() {
string.push_str(&format!("\n cause: {new_source}"));
source = new_source;
}
string
})
}
#[cfg(feature = "xdg-portal")]
fn dialog_response(result: Arc<Result<Url, file_chooser::Error>>) -> DialogResponse {
let Some(result) = Arc::into_inner(result) else {
return DialogResponse::Error(String::from("Arc::into_inner returned None"));
};
let selection = match result {
Ok(response) => response,
Err(why) => {
let mut source: &dyn std::error::Error = &why;
let mut string = format!("open dialog subscription errored\n cause: {source}");
while let Some(new_source) = source.source() {
string.push_str(&format!("\n cause: {new_source}"));
source = new_source;
}
return DialogResponse::Error(string);
}
let selection = match unwrap_dialog_response(result) {
Ok(selection) => selection,
Err(why) => return DialogResponse::Error(why),
};
let Ok(path) = selection.to_file_path() else {
@ -1446,3 +1460,22 @@ fn dialog_response(result: Arc<Result<Url, file_chooser::Error>>) -> DialogRespo
DialogResponse::Path(path)
}
#[cfg(feature = "xdg-portal")]
fn dialog_response_multi(result: Arc<Result<Vec<Url>, file_chooser::Error>>) -> DialogResponse {
let selections = match unwrap_dialog_response(result) {
Ok(selections) => selections,
Err(why) => return DialogResponse::Error(why),
};
let mut paths = Vec::with_capacity(selections.len());
for selection in selections {
let Ok(path) = selection.to_file_path() else {
tracing::warn!("not a valid file path: {}", selection.path());
continue;
};
paths.push(path);
}
DialogResponse::Paths(paths)
}

View file

@ -244,11 +244,13 @@ impl<Message: Clone> Widget<Message, cosmic::Theme, Renderer> for Arrangement<'_
if let Some(ref on_placement) = self.on_placement {
shell.publish(on_placement(
output_key,
((region.x - state.max_dimensions.0 - bounds.x) * UNIT_PIXELS) as i32,
((region.x - state.max_dimensions.0 - bounds.x) * UNIT_PIXELS).round()
as i32,
((region.y
- (state.max_dimensions.1 / VERTICAL_DISPLAY_OVERHEAD)
- bounds.y)
* UNIT_PIXELS) as i32,
* UNIT_PIXELS)
.round() as i32,
));
}

View file

@ -91,6 +91,8 @@ pub enum Message {
#[cfg(feature = "page-sound")]
Sound(sound::Message),
#[cfg(feature = "page-sound")]
SoundApplications(sound::applications::Message),
#[cfg(feature = "page-sound")]
SoundDeviceProfiles(sound::device_profiles::Message),
StartupApps(applications::startup_apps::Message),
#[cfg(feature = "page-users")]

View file

@ -12,7 +12,7 @@ use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender, unbounded};
use futures::{FutureExt, SinkExt, StreamExt};
use nmrs::agent::{SecretAgent, SecretAgentFlags, SecretRequest, SecretResponder, SecretSetting};
use nmrs::raw::zbus;
use nmrs::raw::zvariant::{OwnedObjectPath, OwnedValue, Str, Value};
use nmrs::raw::zvariant::{Dict, OwnedObjectPath, OwnedValue, Str, Value};
use nmrs::{
ActiveConnection, ConnectType, ConnectionOptions, EapOptions, NetworkEvent, NetworkManager,
SavedConnection, SettingsSummary, WifiKeyMgmt, WifiSecurity,
@ -514,6 +514,10 @@ pub enum Request {
Option<String>,
),
SetAirplaneMode(bool),
SetVpnUsername {
uuid: UUID,
username: String,
},
SetWiFi(bool),
}
@ -720,12 +724,64 @@ async fn handle_request(nm: &NetworkManager, req: Request) -> Event {
result.is_ok()
}
Request::SetAirplaneMode(enabled) => nm.set_airplane_mode(*enabled).await.is_ok(),
Request::SetVpnUsername { uuid, username } => {
let result = set_vpn_username(nm, uuid, username).await;
if let Err(err) = &result {
tracing::error!(%err, %uuid, "failed to store VPN username");
}
result.is_ok()
}
Request::SetWiFi(enabled) => nm.set_wireless_enabled(*enabled).await.is_ok(),
};
request_response(nm, req, success).await
}
/// Stores a VPN username in `vpn.data`, which is where NetworkManager and the VPN
/// plugins read it from.
///
/// The username must not be sent through the secret agent: openvpn fails to
/// reconnect when it receives a `username` key in the VPN secrets dictionary.
async fn set_vpn_username(
nm: &NetworkManager,
uuid: &str,
username: &str,
) -> Result<(), nmrs::ConnectionError> {
let settings = nm.get_saved_connection_raw(uuid).await?;
// The whole dict is rewritten, so the keys already in it have to be carried over.
let mut data = HashMap::<String, String>::new();
if let Some(stored) = settings.get("vpn").and_then(|vpn| vpn.get("data"))
&& let Ok(dict) = Dict::try_from(stored.clone())
{
for (key, value) in dict.iter() {
if let (Ok(key), Ok(value)) = (Str::try_from(key.clone()), Str::try_from(value.clone()))
{
data.insert(key.to_string(), value.to_string());
}
}
}
if data
.get("username")
.is_some_and(|stored| stored == username)
{
return Ok(());
}
data.insert("username".to_string(), username.to_string());
let data = OwnedValue::try_from(Value::from(data))
.map_err(|err| nmrs::ConnectionError::VpnFailed(err.to_string()))?;
let mut patch = nmrs::SettingsPatch::default();
patch.raw_overlay = Some(HashMap::from([(
"vpn".to_string(),
HashMap::from([("data".to_string(), data)]),
)]));
nm.update_saved_connection(uuid, patch).await
}
async fn request_response(nm: &NetworkManager, req: Request, success: bool) -> Event {
Event::RequestResponse {
req,
@ -1649,15 +1705,28 @@ pub mod nm_secret_agent {
}
}
SecretSetting::Vpn { .. } => {
let secrets = stored
// Earlier versions stored the username next to the password. openvpn
// fails to reconnect when one is present in the secrets dictionary, so
// profiles saved by those versions have to be filtered on read too.
let secrets: HashMap<String, String> = stored
.into_iter()
.filter(|(key, _)| key != "username")
.map(|(key, value)| (key, value.unsecure().to_string()))
.collect();
request
.responder
.vpn_secrets(secrets)
.await
.map_err(|err| Error(err.to_string()))?;
if secrets.is_empty() {
request
.responder
.no_secrets()
.await
.map_err(|err| Error(err.to_string()))?;
} else {
request
.responder
.vpn_secrets(secrets)
.await
.map_err(|err| Error(err.to_string()))?;
}
}
_ => {
let setting_name = setting_name(&request.setting).to_string();

View file

@ -612,7 +612,7 @@ impl Page {
} = dialog
&& let Some(NmState { ref sender, .. }) = self.nm_state
{
let username_unwrapped = username.clone().unwrap_or_default();
let username = username.clone().unwrap_or_default();
let sec_tx = self.secret_tx.clone();
let nm_sender = sender.clone();
return Task::future(async move {
@ -626,10 +626,10 @@ impl Page {
.send(nm_secret_agent::Request::SetSecrets {
setting_name: "vpn".to_string(),
uuid: uuid.to_string(),
secrets: HashMap::from_iter([
("username".to_string(), username_unwrapped.into()),
("password".to_string(), password),
]),
secrets: HashMap::from_iter([(
"password".to_string(),
password,
)]),
applied_tx,
})
.await
@ -645,6 +645,16 @@ impl Page {
tracing::error!(%err, "failed to apply secret");
}
}
if !username.is_empty() {
_ = nm_sender.unbounded_send(
network_manager::Request::SetVpnUsername {
uuid: uuid.clone(),
username,
},
);
}
_ = nm_sender
.unbounded_send(network_manager::Request::ActivateVpn(uuid));
}
@ -668,7 +678,7 @@ impl Page {
} = dialog
&& let Some(NmState { ref sender, .. }) = self.nm_state
{
let username_unwrapped = username.unwrap_or_default();
let username = username.unwrap_or_default();
let sec_tx = self.secret_tx.clone();
let nm_sender = sender.clone();
return Task::future(async move {
@ -678,10 +688,10 @@ impl Page {
.send(nm_secret_agent::Request::SetSecrets {
setting_name: "vpn".to_string(),
uuid: uuid.to_string(),
secrets: HashMap::from_iter([
("username".to_string(), username_unwrapped.into()),
("password".to_string(), password),
]),
secrets: HashMap::from_iter([(
"password".to_string(),
password,
)]),
applied_tx,
})
.await;
@ -689,6 +699,16 @@ impl Page {
tokio::time::timeout(std::time::Duration::from_secs(1), applied_rx)
.await;
}
if !username.is_empty() {
_ = nm_sender.unbounded_send(
network_manager::Request::SetVpnUsername {
uuid: uuid.clone(),
username,
},
);
}
_ = nm_sender.unbounded_send(network_manager::Request::ActivateVpn(uuid));
Message::Refresh
})

View file

@ -0,0 +1,465 @@
// Copyright 2026 System76 <info@system76.com>
// SPDX-License-Identifier: GPL-3.0-only
use super::model;
use cosmic::desktop::{
DesktopEntryCache, DesktopLookupContext, DesktopResolveOptions, resolve_desktop_entry,
};
use cosmic::iced::futures;
use cosmic::iced::{self, Alignment, Length, window};
use cosmic::widget::space::horizontal as horizontal_space;
use cosmic::{Apply, Element, surface, widget};
use cosmic_config::{Config, ConfigGet};
use cosmic_settings_audio_client::{self as audio_client, CosmicAudioProxy};
use cosmic_settings_page::{self as page, Section, section};
use futures::executor::block_on;
use intmap::IntMap;
use slotmap::SlotMap;
use std::cell::RefCell;
use std::rc::Rc;
use std::sync::Arc;
const AUDIO_CONFIG: &str = "com.system76.CosmicAudio";
const AMPLIFICATION_SINK: &str = "amplification_sink";
#[derive(Clone, Debug)]
pub enum Message {
Model(cosmic_settings_sound::Message),
SetBalance(u32, f32),
SetMute(u32, bool),
SetSink(u32, usize),
SetVolume(u32, u32),
Surface(surface::Action),
ToggleExpanded(u32),
}
impl From<Message> for crate::pages::Message {
fn from(message: Message) -> Self {
crate::pages::Message::SoundApplications(message)
}
}
impl From<Message> for crate::Message {
fn from(message: Message) -> Self {
crate::Message::PageMessage(message.into())
}
}
#[derive(Default)]
pub struct Page {
entity: page::Entity,
model: model::Model,
client: Option<Rc<RefCell<audio_client::Client>>>,
desktop_entries: DesktopEntryCache,
playback_icons: IntMap<u32, String>,
amplification_sink: bool,
expanded: Option<u32>,
}
impl page::AutoBind<crate::pages::Message> for Page {}
impl page::Page<crate::pages::Message> for Page {
fn on_enter(&mut self) -> cosmic::Task<crate::pages::Message> {
self.amplification_sink = Config::new(AUDIO_CONFIG, 1)
.ok()
.and_then(|config| config.get::<bool>(AMPLIFICATION_SINK).ok())
.unwrap_or(true);
cosmic::Task::none()
}
fn info(&self) -> page::Info {
page::Info::new("sound-applications", "preferences-sound-symbolic")
.title(fl!("sound-applications"))
}
fn content(
&self,
sections: &mut SlotMap<section::Entity, Section<crate::pages::Message>>,
) -> Option<page::Content> {
Some(vec![sections.insert(view())])
}
fn set_id(&mut self, entity: page::Entity) {
self.entity = entity;
}
fn on_leave(&mut self) -> cosmic::Task<crate::pages::Message> {
*self = Page {
entity: self.entity,
..Page::default()
};
cosmic::Task::none()
}
fn subscription(&self, _core: &cosmic::Core) -> iced::Subscription<crate::pages::Message> {
iced::Subscription::run(|| {
iced::stream::channel(
1,
move |emitter: futures::channel::mpsc::Sender<crate::pages::Message>| async move {
cosmic_settings_sound::subscribe(emitter, |m| Message::Model(m).into()).await
},
)
})
}
}
impl Page {
fn resolve_playback_icon(&mut self, node_id: u32, info: &audio_client::PlaybackInfo) {
let Some(candidate) = [
info.application_id.as_deref(),
info.icon_name.as_deref(),
info.application_name.as_deref(),
]
.into_iter()
.flatten()
.find(|value| !value.is_empty()) else {
return;
};
let mut context = DesktopLookupContext::new(candidate);
if let Some(icon_name) = info.icon_name.as_deref().filter(|value| !value.is_empty()) {
context = context.with_identifier(icon_name);
}
if let Some(application_name) = info
.application_name
.as_deref()
.filter(|value| !value.is_empty())
{
context = context.with_title(application_name);
}
let entry = resolve_desktop_entry(
&mut self.desktop_entries,
&context,
&DesktopResolveOptions::default(),
);
let entry_icon = entry.icon();
let icon_name = entry_icon
.filter(|value| !value.is_empty())
.or(info.icon_name.as_deref())
.or(info.application_id.as_deref())
.unwrap_or("application-default");
self.playback_icons.insert(node_id, icon_name.to_owned());
}
pub fn update(&mut self, message: Message) -> cosmic::Task<crate::app::Message> {
match message {
Message::Model(cosmic_settings_sound::Message::Subscription(message)) => {
match &message {
audio_client::Event::Playback(node_id, info) => {
self.resolve_playback_icon(*node_id, info);
}
audio_client::Event::RemoveNode(node_id) => {
self.playback_icons.remove(*node_id);
}
_ => {}
}
self.model.update(message);
}
Message::Model(cosmic_settings_sound::Message::Client(client)) => {
if let Some(client) = Arc::into_inner(client) {
self.client = Some(Rc::new(RefCell::new(client)));
self.model = model::Model::default();
self.playback_icons = IntMap::new();
}
}
Message::SetMute(node_id, mute) => {
self.model
.update(audio_client::Event::NodeMute(node_id, mute));
if let Some(client) = &self.client {
match block_on(client.borrow_mut().conn.set_node_mute(node_id, mute)) {
Ok(Ok(_)) => {}
Ok(Err(why)) => {
tracing::error!(?why, node_id, mute, "daemon rejected playback mute");
}
Err(why) => {
tracing::error!(?why, node_id, mute, "failed to set playback mute");
}
}
} else {
tracing::warn!(node_id, mute, "audio client is not connected");
}
}
Message::SetBalance(playback_id, balance) => {
if let Some(playback) = self
.model
.playback
.iter_mut()
.find(|playback| playback.id == playback_id)
{
playback.balance = Some(balance);
}
if let Some(client) = &self.client {
match block_on(
client
.borrow_mut()
.conn
.set_node_volume_balance(playback_id, Some(balance)),
) {
Ok(Ok(volume)) => {
self.model.update(audio_client::Event::NodeVolume(
playback_id,
volume.volume,
volume.balance,
));
}
Ok(Err(why)) => {
tracing::error!(
?why,
playback_id,
balance,
"daemon rejected playback balance"
);
}
Err(why) => {
tracing::error!(
?why,
playback_id,
balance,
"failed to set playback balance"
);
}
}
} else {
tracing::warn!(playback_id, balance, "audio client is not connected");
}
}
Message::SetSink(playback_id, sorted_pos) => {
let Some(&sink_pos) = self.model.sinks.sorted_index.get(sorted_pos) else {
return cosmic::Task::none();
};
let Some(&sink_id) = self.model.sinks.id.get(sink_pos as usize) else {
return cosmic::Task::none();
};
if let Some(client) = &self.client {
match block_on(
client
.borrow_mut()
.conn
.set_playback_sink(playback_id, sink_id),
) {
Ok(Ok(())) => {
if let Some(playback) = self
.model
.playback
.iter_mut()
.find(|playback| playback.id == playback_id)
{
playback.sink_id = Some(sink_id);
}
}
Ok(Err(why)) => {
tracing::error!(
?why,
playback_id,
sink_id,
"daemon rejected playback output"
);
}
Err(why) => {
tracing::error!(
?why,
playback_id,
sink_id,
"failed to set playback output"
);
}
}
} else {
tracing::warn!(playback_id, sink_id, "audio client is not connected");
}
}
Message::SetVolume(node_id, volume) => {
if let Some(playback) = self
.model
.playback
.iter_mut()
.find(|playback| playback.id == node_id)
{
playback.volume = volume;
}
if let Some(client) = &self.client {
match block_on(client.borrow_mut().conn.set_node_volume(node_id, volume)) {
Ok(Ok(_)) => {}
Ok(Err(why)) => {
tracing::error!(
?why,
node_id,
volume,
"daemon rejected playback volume"
);
}
Err(why) => {
tracing::error!(?why, node_id, volume, "failed to set playback volume");
}
}
} else {
tracing::warn!(node_id, volume, "audio client is not connected");
}
}
Message::Surface(action) => {
return cosmic::task::message(crate::app::Message::Surface(action));
}
Message::ToggleExpanded(node_id) => {
self.expanded = if self.expanded == Some(node_id) {
None
} else {
Some(node_id)
};
}
}
cosmic::Task::none()
}
}
pub fn view() -> Section<crate::pages::Message> {
Section::default().view::<Page>(move |_, page, _section| {
if page.model.playback.is_empty() {
return widget::settings::section()
.add(
widget::text::body(fl!("sound-applications", "none"))
.width(Length::Fill)
.align_x(Alignment::Center),
)
.into();
}
let mut applications = widget::settings::section();
for playback in page.model.playback.iter().cloned() {
let node_id = playback.id;
let mute = playback.mute;
let volume = playback.volume;
let expanded = page.expanded == Some(node_id);
let icon_name = page
.playback_icons
.get(node_id)
.map(String::as_str)
.unwrap_or("application-default");
let slider = if page.amplification_sink {
widget::slider(0..=150, volume, move |volume| {
Message::SetVolume(node_id, volume)
})
.breakpoints(&[100])
} else {
widget::slider(0..=100, volume, move |volume| {
Message::SetVolume(node_id, volume)
})
}
.width(Length::Fill)
.apply(widget::container)
.max_width(250.);
let volume_controls = widget::row::with_capacity(5)
.align_y(Alignment::Center)
.push(
widget::button::icon(widget::icon::from_name(if mute {
"audio-volume-muted-symbolic"
} else {
"audio-volume-high-symbolic"
}))
.on_press(Message::SetMute(node_id, !mute)),
)
.push(
widget::text::body(volume.to_string())
.width(Length::Fixed(22.))
.align_x(Alignment::Center),
)
.push(horizontal_space().width(8.))
.push(slider)
.push(
widget::button::icon(widget::icon::from_name(if expanded {
"go-up-symbolic"
} else {
"go-down-symbolic"
}))
.on_press(Message::ToggleExpanded(node_id)),
)
.apply(Element::from)
.map(crate::pages::Message::from);
applications = applications.add(
widget::settings::item::builder(playback.name().to_owned())
.icon(widget::icon::from_name(icon_name).size(16))
.flex_control(volume_controls)
.align_items(Alignment::Center),
);
if !expanded {
continue;
}
let selected_sink =
playback
.selected_sink(page.model.default_sink)
.and_then(|sink_id| {
let sink_pos = page.model.sinks.id.iter().position(|id| *id == sink_id)?;
page.model
.sinks
.sorted_index
.iter()
.position(|pos| usize::from(*pos) == sink_pos)
});
let output = widget::dropdown::popup_dropdown(
&page.model.sinks.sorted_display,
selected_sink,
move |pos| Message::SetSink(node_id, pos),
window::Id::RESERVED,
Message::Surface,
crate::Message::from,
)
.apply(Element::from)
.map(crate::pages::Message::from);
let balance = widget::row::with_capacity(5)
.align_y(Alignment::Center)
.push(
widget::column::with_capacity(2)
.align_x(Alignment::Center)
.push(widget::text::body(fl!("sound-output", "left")))
.push(horizontal_space().width(22.)),
)
.push(horizontal_space().width(8.))
.push(
widget::slider(0.0..=2.0, playback.balance.unwrap_or(1.0), move |balance| {
Message::SetBalance(node_id, balance)
})
.step(0.01)
.breakpoints(&[1.0]),
)
.push(horizontal_space().width(8.))
.push(
widget::column::with_capacity(2)
.align_x(Alignment::Center)
.push(widget::text::body(fl!("sound-output", "right")))
.push(horizontal_space().width(22.)),
)
.apply(Element::from)
.map(crate::pages::Message::from);
applications = applications
.add(widget::settings::item(
fl!("sound-output", "device"),
output,
))
.add(widget::settings::item(
fl!("sound-output", "balance"),
balance,
));
}
applications.into()
})
}

View file

@ -1,6 +1,7 @@
// Copyright 2023 System76 <info@system76.com>
// SPDX-License-Identifier: GPL-3.0-only
pub mod applications;
pub mod device_profiles;
use cosmic::iced::{self, Alignment, Length, window};
@ -63,6 +64,7 @@ impl From<Message> for crate::Message {
pub struct Page {
entity: page::Entity,
applications: page::Entity,
device_profiles: page::Entity,
client: Option<audio_client::Client>,
model: model::Model,
@ -78,6 +80,7 @@ impl Default for Page {
fn default() -> Self {
Self {
entity: page::Entity::default(),
applications: page::Entity::default(),
device_profiles: page::Entity::default(),
client: None,
model: model::Model {
@ -122,6 +125,7 @@ impl page::Page<crate::pages::Message> for Page {
Some(vec![
sections.insert(output()),
sections.insert(input()),
sections.insert(applications()),
sections.insert(device_profiles()),
])
}
@ -150,6 +154,7 @@ impl page::Page<crate::pages::Message> for Page {
fn on_leave(&mut self) -> Task<crate::pages::Message> {
*self = Page {
entity: self.entity,
applications: self.applications,
device_profiles: self.device_profiles,
..Page::default()
};
@ -163,8 +168,10 @@ impl page::AutoBind<crate::pages::Message> for Page {
mut page: page::Insert<crate::pages::Message>,
) -> page::Insert<crate::pages::Message> {
let id = page.sub_page_with_id::<device_profiles::Page>();
let applications_id = page.sub_page_with_id::<applications::Page>();
let model = page.model.page_mut::<Page>().unwrap();
model.device_profiles = id;
model.applications = applications_id;
page
}
}
@ -265,7 +272,7 @@ impl Page {
tokio::time::sleep(Duration::from_millis(128)).await;
_ = client
.conn
.set_sink_volume(volume.load(atomic::Ordering::Relaxed))
.set_source_volume(volume.load(atomic::Ordering::Relaxed))
.await;
Message::ReattachClient(Arc::new(client)).into()
});
@ -534,6 +541,24 @@ fn device_profiles() -> Section<crate::pages::Message> {
})
}
/// A section for opening the application volume controls sub-page.
fn applications() -> Section<crate::pages::Message> {
crate::slab!(descriptions {
button_txt = fl!("sound-applications");
});
Section::default()
.descriptions(descriptions)
.view::<Page>(move |_binder, page, section| {
settings::section()
.add(crate::widget::go_next_item(
&section.descriptions[button_txt],
crate::pages::Message::Page(page.applications),
))
.into()
})
}
// fn alerts() -> Section<crate::pages::Message> {
// let mut descriptions = Slab::new();
// let volume = descriptions.insert(fl!("sound-alerts", "volume"));
@ -549,21 +574,3 @@ fn device_profiles() -> Section<crate::pages::Message> {
// .into()
// })
// }
// fn applications() -> Section<crate::pages::Message> {
// let mut descriptions = Slab::new();
// let applications = descriptions.insert(fl!("sound-applications", "desc"));
// Section::default()
// .title(fl!("sound-applications"))
// .descriptions(descriptions)
// .view::<Page>(move |_binder, _page, section| {
// settings::section().title(&section.title)
// .add(settings::item(
// &*section.descriptions[applications],
// text::body("TODO"),
// ))
// .into()
// })
// }

6
flake.lock generated
View file

@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1760533177,
"narHash": "sha256-OwM1sFustLHx+xmTymhucZuNhtq98fHIbfO8Swm5L8A=",
"lastModified": 1785747939,
"narHash": "sha256-D740uKsMbgsfK2oaDenJLLPIZfq7W0/g4KN/Fls8eKs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "35f590344ff791e6b1d6d6b8f3523467c9217caf",
"rev": "104240a772428cc2e20d8fd86c9ddbb886bbaff2",
"type": "github"
},
"original": {

View file

@ -41,6 +41,7 @@
libinput
libpulseaudio.dev
pipewire.dev
dav1d
];
RUST_SRC_PATH = rustPlatform.rustLibSrc;

View file

@ -16,7 +16,7 @@ xdg-entry-date-time-comment = المنطقة الزمنية وإعدادات ا
xdg-entry-default-apps = التطبيقات المبدئية
xdg-entry-default-apps-comment = متصفح الويب المبدئي، عميل البريد، متصفح الملفات، والتطبيقات الأخرى
xdg-entry-desktop = سطح المكتب
xdg-entry-desktop-comment = إعدادات خلفية الشاشة والمظهر واللوحة والمنصة وإدارة النوافذ ومساحة العمل
xdg-entry-desktop-comment = إعدادات خلفية الشاشة والمظهر واللوحة والإرساء وإدارة النوافذ ومساحة العمل
xdg-entry-displays = شاشات العرض
xdg-entry-displays-comment = أدِر إعدادات تضبيط العرض
xdg-entry-dock = الإرساء
@ -275,13 +275,26 @@ frosted = تأثير الزجاج البلوري على واجهة النظام
enable-export = قم بتطبيق هذا المظهر على تطبيقات GNOME.
.desc = لا تدعم جميع مجموعات الأدوات التبديل التلقائي. قد تحتاج التطبيقات غير التابعة لـ COSMIC إلى إعادة التشغيل بعد تغيير المظهر.
icon-theme = نسق الأيقونات
.desc = يطبق مجموعة مختلفة من الأيقونات على التطبيقات
.desc = يطبِّق مجموعة مختلفة من الأيقونات على التطبيقات
text-tint = لون نص الواجهة
.desc = اللون المستخدم لاشتقاق ألوان نص الواجهة التي تتمتع بتباين كافٍ على الأسطح المختلفة
style = المظهر
style = الأسلوب
.round = دائري
.slightly-round = دائري قليلاً
.square = مربع
.frosted-glass = زجاج بلوري
.frosted-system-interface = واجهة النظام
.frosted-system-interface-desc = يُطبِّق مظهر الزجاج البلوري على المشغّل، ومكتبة التطبيقات، ونظرة عامة على مساحة العمل، وعناصر التحكم التي تظهر على الشاشة
.frosted-windows = النوافذ
.frosted-windows-desc = يطبِّق مظهر الزجاج البلوري على النوافذ ومربعات الحوار
.frosted-panels = اللوحات
.frosted-panels-desc = يطبِّق الزجاج البلوري على اللوحة وقاعدة الإرساء
.frosted-applets = البريمجات
.frosted-applets-desc = يطبِّق الزجاج البلوري على قوائم البريمجات الموجودة على اللوحة والإرساء
.frosted-thickness = السماكة البلورية
.less = أقل
.more = أكثر
.glass-opacity = عتامة الزجاج
interface-density = كثافة الواجهة
.comfortable = مريحة
.compact = صغير ة
@ -354,7 +367,7 @@ super-key = إجراءات مفتاح Super
.launcher = فتح مشغل التطبيقات
.workspaces = فتح مساحات العمل
.applications = فتح التطبيقات
.disable = تعطيل
.none = لا شيء
edge-gravity = تنجذب النوافذ العائمة إلى الحواف القريبة
window-controls = تحكمات النوافذ
.maximize = أظهر زر التكبير
@ -535,11 +548,27 @@ keyboard-sources = مصادر الإدخال
.view-layout = اعرض تخطيط لوحة المفاتيح
.remove = أزِل
.add = أضِف مصدر إدخال
keyboard-special-char = إدخال أحرف خاصة
keyboard-special-char = إدخال الأحرف الخاصة
.alternate = مفتاح الأحرف البديلة
.compose = مفتاح التركيب
.compose-desc = مفتاح التركيب يسمح بإدخال مجموعة واسعة من الأحرف. لاستخدامه، اضغط على مفتاح التركيب ثم اكتب تسلسلًا من الأحرف. على سبيل المثال، الضغط على مفتاح التركيب متبوعًا بـ C و o سيدخل الرمز ©، بينما الضغط على مفتاح التركيب متبوعًا بـ a و ‘ سيدخل الحرف á.
.caps = مفتاح Caps Lock
.compose = مفتاح التكوين
.compose-desc = يتيح مفتاح التكوين إدخال مجموعة متنوعة من الأحرف. لاستخدامه، اضغط على مفتاح التكوين ثم سلسلة من الأحرف. على سبيل المثال، سيؤدي الضغط على مفتاح التكوين متبوعًا بالحرفين C و o إلى إدخال الرمز ©، بينما سيؤدي الضغط على مفتاح «التكوين» متبوعًا بالحرفين a و ‘ إلى إدخال الحرف á.
.caps = مفتاح قفل الحروف
.ctrl = مفتاح التحكم
.ctrl-right = مفتاح Ctrl الأيمن
.swap-with-ctrl = تبديل مع مفتاح التحكم
.alt = مفتاح Alt
.alt-left = مفتاح Alt الأيسر
.alt-right = Alt الأيمن
.super = Super
.super-left = Super الأيسر
.super-right = Super الأيمن
.menu = مفتاح القائمة
.backspace = مسافة للخلف
.escape = هروب (ESC)
.swap-with-escape = التبديل مع مفتاح الهروب
.print-screen = اطبع الشاشة
.scroll-lock = قفل التمرير
.none = لا شيء
keyboard-typing-assist = الكتابة
.repeat-rate = معدل التكرار
.repeat-delay = تأخير التكرار

View file

@ -5,3 +5,7 @@ identity = Identitat
password-confirm = Confirmeu la contrasenya
connected = Connectat
settings = Configuració
save = Desa
forget-dialog = Oblidar aquesta xarxa Wi-Fi?
.description = Caldrà tornar a introduir la contrasenya per utilitzar aquesta xarxa en el futur.
close = Tancar

View file

@ -32,7 +32,7 @@ xdg-entry-network = Síť a Wi-Fi
xdg-entry-network-comment = Správa síťových připojení
xdg-entry-notifications = Oznámení
xdg-entry-notifications-comment = Režim Nerušit, oznámení na zamykací obrazovce a nastavení jednotlivých aplikací
xdg-entry-panel-comment = Hlavní systémová lišta pro menu a applety
xdg-entry-panel-comment = Hlavní systémová lišta pro nabídky a applety
xdg-entry-power = Napájení a baterie
xdg-entry-power-comment = Režimy napájení a možnosti úspory energie
xdg-entry-region-language = Region a jazyk
@ -116,9 +116,9 @@ panel-missing = Nastavení panelu chybí
.desc = Soubor nastavení panelu chybí kvůli poškození nebo použití vlastního nastavení.
.fix = Obnovit výchozí
applets = Applety
start-segment = Začínající segment
start-segment = Počáteční segment
center-segment = Prostřední segment
end-segment = Konečný segment
end-segment = Koncový segment
add = Přidat
add-applet = Přidat applet
search-applets = Vyhledat applety...
@ -282,6 +282,22 @@ keyboard-special-char = Zadávání speciálních znaků
.compose = Klávesa Compose
.compose-desc = Klávesa Compose umožňuje zadávat širokou škálu znaků. Pro její použití stiskněte Compose a poté zadejte sekvenci znaků. Například Compose, C, O vloží znak „©“, zatímco Compose, A, ‘ vloží znak „á“.
.caps = Klávesa Caps Lock
.ctrl = Control
.ctrl-right = Pravý Ctrl
.swap-with-ctrl = Zaměnit s klávesou Control
.alt = Alt
.alt-left = Levý Alt
.alt-right = Pravý Alt
.super = Super
.super-left = Levý Super
.super-right = Pravý Super
.menu = Klávesa Menu
.backspace = Backspace
.escape = Escape
.swap-with-escape = Zaměnit s klávesou Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Žádná
## Input: Keyboard: Shortcuts
@ -445,7 +461,7 @@ container-background = Pozadí kontejneru
.desc = Používá se pro navigační postranní panel, výsuvný panel, dialogy a podobné prvky
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
frosted = Efekt zmrazeného okna 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í
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.
@ -469,7 +485,7 @@ super-key = Akce klávesy Super
.launcher = Otevřít spouštěč
.workspaces = Otevřít pracovní plochy
.applications = Otevřít aplikace
.disable = Zakázat
.none = Žádná
edge-gravity = Plovoucí okna se přichytávají k blízkým okrajům
focus-navigation = Navigace zaměření
.focus-follows-cursor = Zaměření následuje kurzor
@ -532,8 +548,21 @@ display = Obrazovky
.additional-scale-options = Další možnosti měřítka
style = Styl
.round = Kulatý
.slightly-round = Lehce kulatý
.slightly-round = Mírně zaoblený
.square = Hranatý
.frosted-glass = Efekt ledového skla
.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-windows = Okna
.frosted-windows-desc = Použije efekt ledového skla na okna a dialogy
.frosted-panels = Panely
.frosted-panels-desc = Použije efekt ledového skla na dok a panel
.frosted-applets = Applety
.frosted-applets-desc = Použije efekt ledového skla na nabídky appletů v doku a na panelu
.frosted-thickness = Tloušťka ledu
.less = menší
.more = větší
.glass-opacity = Krytí skla
interface-density = Hustota rozhraní
.comfortable = Pohodlné
.compact = Kompaktní

View file

@ -11,8 +11,8 @@ add-network = Tilføj Netværk
add-vpn = Tilføj VPN
airplane-on = Airplane mode is on. Flytilstand er slået til
cable-unplugged = Kabel frakoblet
connect = Tilslut
connected = Tilsluttet
connect = Opret forbindelse
connected = Forbundet
connecting = Tilslutter…
disconnect = Afbryd
forget = Glem
@ -21,14 +21,14 @@ network-and-wireless = Netværk & trådløst
no-networks = Der blev ikke fundet nogen netværk.
no-vpn = Ingen VPN-forbindelser tilgængelige.
password = Adgangskode
password-confirm = Godkend Adgangskode
password-confirm = Bekræft adgangskode
remove = Fjern
settings = Indstillinger
username = Brugernavn
visible-networks = Synlige Netværk
identity = Identitet
forget-dialog = Glem dette Wi-Fi-netværk?
.description = Du skal indtaste en adgangskode igen for at bruge dette Wi-Fi-netværk i fremtiden.
.description = Du skal indtaste adgangskoden igen for at bruge dette Wi-Fi-netværk i fremtiden.
network-device-state =
.activated = Tilsluttet
.config = Opretter forbindelse
@ -192,7 +192,6 @@ never = Aldrig
## Desktop: Udseende
appearance = Udseende
.desc = Accentfarver og tema.
accent-color = Accentfarve
app-background = Applikation eller vinduesbaggrund
auto = Auto
@ -200,11 +199,11 @@ close = Luk
color-picker = Farvevælger
copied-to-clipboard = Kopieret til udklipsholder
copy-to-clipboard = Kopiér til udklipsholder
dark = Mørk
dark = Mørkt
export = Eksporter
hex = Hex
import = Importer
light = Lys
light = Lyst
mode-and-colors = Tilstand og farver
recent-colors = Seneste farver
reset-to-default = Nulstil til standard
@ -714,7 +713,7 @@ region = Region
## Applications
applications = Applikationer
applications = Programmer
## Applications: Default Applications

View file

@ -9,7 +9,7 @@ number = { $number }
add-network = Netzwerk hinzufügen
.profile = Profil hinzufügen
add-vpn = VPN hinzufügen
airplane-on = Flugzeugmodus ist eingeschaltet.
airplane-on = Flugmodus ist eingeschaltet.
cable-unplugged = Kabel ausgesteckt
connect = Verbinden
connected = Verbunden
@ -236,6 +236,19 @@ style = Stil
.round = Rund
.slightly-round = Leicht rund
.square = Quadratisch
.frosted-glass = Milchglas
.frosted-system-interface = Systemschnittstelle
.frosted-system-interface-desc = Wendet einen Milchglaseffekt auf den Starter, die Anwendungsbibliothek, die Arbeitsflächenübersicht und die Bildschirmsteuerelemente an
.frosted-windows = Fenster
.frosted-windows-desc = Wendet einen Milchglaseffekt auf Fenster und Dialoge an
.frosted-panels = Panels
.frosted-panels-desc = Wendet einen Milchglaseffekt auf das Panel und das Dock an
.frosted-applets = Applets
.frosted-applets-desc = Wendet einen Milchglaseffekt auf die Applet-Menüs im Panel und im Dock an
.frosted-thickness = Dicke der Mattierung
.less = weniger
.more = mehr
.glass-opacity = Glastrübung
interface-density = Dichte der Benutzeroberfläche
.comfortable = Komfortabel
.compact = Kompakt
@ -265,12 +278,12 @@ applets = Applets
center-segment = Mittelsegment
end-segment = Endsegment
large = Groß
no-applets-found = Keine Applets gefunden...
no-applets-found = Keine Applets gefunden ...
panel-bottom = Unten
panel-left = Links
panel-right = Rechts
panel-top = Oben
search-applets = Applets suchen...
search-applets = Applets suchen ...
small = Klein
start-segment = Anfangssegment
panel-appearance = Aussehen
@ -308,7 +321,7 @@ super-key = Super-Tasten-Aktion
.launcher = Starter öffnen
.workspaces = Arbeitsflächen öffnen
.applications = Anwendungen öffnen
.disable = Deaktivieren
.none = Keine
edge-gravity = Schwebende Fenster werden von nahe gelegenen Kanten angezogen
window-controls = Fenstersteuerung
.minimize = Minimieren-Schaltfläche anzeigen
@ -497,6 +510,22 @@ keyboard-special-char = Eingabe von Sonderzeichen
.compose = Compose-Taste
.compose-desc = Mit der Compose-Taste kannst du viele verschiedene Zeichen eingeben. Drück einfach die Compose-Taste und dann die Zeichen, die du brauchst. Wenn du zum Beispiel die Compose-Taste und dann C und o drückst, kommt ©, und wenn du die Compose-Taste und dann a und ' drückst, kommt á.
.caps = Feststelltaste
.ctrl = Steuerungstaste
.ctrl-right = Rechte Strg-Taste
.swap-with-ctrl = Mit der Steuerungstaste tauschen
.alt = Alt-Taste
.alt-left = Linke Alt-Taste
.alt-right = Rechte Alt-Taste
.super = Super-Taste
.super-left = Linke Super-Taste
.super-right = Rechte Super-Taste
.menu = Menü-Taste
.backspace = Rücktaste
.escape = Escape-Taste
.swap-with-escape = Mit der Escape-Taste tauschen
.print-screen = Druck-Taste
.scroll-lock = Rollen-Taste
.none = Keine
keyboard-typing-assist = Tippen
.repeat-rate = Wiederholungsrate
.repeat-delay = Wiederholungsverzögerung
@ -507,7 +536,7 @@ keyboard-numlock-boot = Numlock
.off = Deaktiviert
.set = Numlock-Boot-Status setzen
added = Hinzugefügt
type-to-search = Zum Suchen tippen...
type-to-search = Zum Suchen tippen ...
show-extended-input-sources = Erweiterte Eingabequellen anzeigen
## Input: Keyboard: Shortcuts

View file

@ -119,7 +119,7 @@ super-key = Ενέργεια πλήκτρου Super
.launcher = Άνοιγμα μενού εκκίνησης
.workspaces = Άνοιγμα χώρων εργασίας
.applications = Άνοιγμα εφαρμογών
.disable = Απενεργοποίηση
.none = Καμία
x-minutes =
{ $number } { $number ->
[one] λεπτό
@ -378,6 +378,19 @@ style = Στυλ
.round = Στρογγυλό
.slightly-round = Ελαφρώς στρογγυλό
.square = Τετράγωνο
.frosted-glass = Ημιδιαφανές γυαλί
.frosted-system-interface = Περιβάλλον συστήματος
.frosted-system-interface-desc = Εφαρμόζει το εφέ ημιδιαφανούς γυαλιού στο μενού εκκίνησης, τη βιβλιοθήκη εφαρμογών, την επισκόπηση χώρων εργασίας και τα στοιχεία ελέγχου στην οθόνη
.frosted-windows = Παράθυρα
.frosted-windows-desc = Εφαρμόζει το εφέ ημιδιαφανούς γυαλιού στα παράθυρα και τους διαλόγους
.frosted-panels = Γραμμές συστήματος
.frosted-panels-desc = Εφαρμόζει το εφέ ημιδιαφανούς γυαλιού στη γραμμή συστήματος και την μπάρα εφαρμογών
.frosted-applets = Μικροεφαρμογές
.frosted-applets-desc = Εφαρμόζει το εφέ ημιδιαφανούς γυαλιού στα μενού των μικροεφαρμογών στη γραμμή συστήματος και την μπάρα εφαρμογών
.frosted-thickness = Βαθμός θολότητας
.less = λίγο
.more = πολύ
.glass-opacity = Διαφάνεια γυαλιού
panel-applets = Διαμόρφωση
.dock-desc = Διαμόρφωση των μικροεφαρμογών της μπάρας εφαρμογών
.desc = Διαμόρφωση των μικροεφαρμογών της γραμμής συστήματος
@ -819,6 +832,22 @@ keyboard-special-char = Εισαγωγή ειδικών χαρακτήρων
.compose = Πλήκτρο σύνθεσης
.compose-desc = Το πλήκτρο σύνθεσης επιτρέπει την εισαγωγή μιας ευρείας ποικιλίας χαρακτήρων. Για να το χρησιμοποιήσετε, πατήστε το πλήκτρο σύνθεσης και έπειτα, μια ακολουθία χαρακτήρων. Για παράδειγμα, μπορείτε να εισαγάγετε τον χαρακτήρα «©» πατώντας το πλήκτρο σύνθεσης, ακολουθούμενο από τα «C» και «o», ή τον χαρακτήρα «á» πατώντας το πλήκτρο σύνθεσης, ακολουθούμενο από τα «a» και «‘» .
.caps = Πλήκτρο Caps Lock
.ctrl = Control
.ctrl-right = Δεξί Ctrl
.swap-with-ctrl = Εναλλαγή με Control
.alt = Alt
.alt-left = Αριστερό Alt
.alt-right = Δεξί Alt
.super = Super
.super-left = Αριστερό Super
.super-right = Δεξί Super
.menu = Πλήκτρο μενού
.backspace = Backspace
.escape = Escape
.swap-with-escape = Εναλλαγή με Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Κανένα
no-search-results = Δεν αντιστοιχεί κανένα δίκτυο στην αναζήτησή σας.
workspaces-navigation = Πλοήγηση
.wraparound = Μετακίνηση μεταξύ του πρώτου και του τελευταίου χώρου εργασίας με συντομεύσεις πληκτρολογίου και χειρονομίες

View file

@ -0,0 +1,9 @@
save = Save
cancel = Cancel
connected = Connected
confirm = Confirm
replace = Replace
settings = Settings
appearance = Appearance
dark = Dark
light = Light

View file

@ -633,6 +633,7 @@ sound-alerts = Alerts
sound-applications = Applications
.desc = Application volumes and settings
.none = No applications are using sound
# No speaker, headphones, or microphone plugged into sound card port
sound-device-port-unplugged = Unplugged

View file

@ -167,3 +167,5 @@ firmware = فریمور
users = کاربران
.desc = احراز هویت و ورود، قفل صفحه.
save = ذخیره
cancel = لغو

View file

@ -516,6 +516,19 @@ style = Tyyli
.round = Pyöristetty
.slightly-round = Hieman pyöristetty
.square = Nelikulmainen
.frosted-glass = Huurteinen lasi
.frosted-system-interface = Järjestelmän käyttöliittymä
.frosted-system-interface-desc = Toteuttaa huurteisen lasin käynnistimeen, sovelluskirjastoon, työtilan yleiskuvaan ja näytöllä näkyviin säätimiin
.frosted-windows = Ikkunat
.frosted-windows-desc = Toteuttaa huurteisen lasin ikkunoihin ja vahvistusikkunoihin
.frosted-panels = Paneelit
.frosted-panels-desc = Toteuttaa huurteisen lasin paneeliin ja telakkaan
.frosted-applets = Sovelmat
.frosted-applets-desc = Toteuttaa huurteisen lasin sovelmavalikkoihin paneelissa ja telakassa
.frosted-thickness = Huurteen tiheys
.less = vähemmän
.more = enemmän
.glass-opacity = Lasin peittävyys
panel-applets = Asetukset
.dock-desc = Telakkasovelmien asetukset
.desc = Paneelisovelmien asetukset
@ -820,3 +833,7 @@ shadows-tiling = Asetellut ikkunat
no-search-results = Hakuasi vastaavia verkkoja ei löytynyt.
workspaces-navigation = Liikkuminen
.wraparound = Siirry ensimmäisen ja viimeisen työtilan välillä käyttäen pikanäppäimiä ja eleitä
bluetooth-display-passkey = Bluetooth-parinmuodostus
.description = Syötä seuraava turva-avain laitteelle { $device }, ja paina sitten Enter
bluetooth-display-pin = Bluetooth-parinmuodostus
.description = Syötä seuraava PIN-koodi laitteelle { $device }, ja paina sitten Enter

View file

@ -70,7 +70,7 @@ add-network = Ajouter un réseau
add-vpn = Ajouter un VPN
airplane-on = Mode avion activé.
cable-unplugged = Câble débranché
connect = Connecter
connect = Se connecter
connected = Connecté
connecting = Connexion…
disconnect = Se déconnecter
@ -235,7 +235,7 @@ container-background = Arrière-plan
.desc = La couleur principale de l'arrière-plan est utilisée pour la barre latérale de navigation, le panneau latéral, les boîtes de dialogue et les widgets similaires
control-tint = Teinte des composants de contrôle
.desc = Utilisé pour les arrière-plans des boutons standards, les entrées de recherche, les entrées de texte et les composants similaires
frosted = Effet de verre sur l'interface système
frosted = Effet de verre dépoli dans l'interface système
.desc = Applique un effet de flou d'arrière-plan au panneau, au dock, aux applets, au lanceur et à la bibliothèque d'applications
enable-export = Appliquer ce thème aux applications GNOME
.desc = Certaines boîtes à outils ne supportent pas le changement automatique de thème. Les applications non-COSMIC peuvent nécessiter un redémarrage après un changement de thème.
@ -244,9 +244,22 @@ icon-theme = Thème d'icônes
text-tint = Teinte du texte de l'interface
.desc = Utilisée pour obtenir des couleurs de texte d'interface offrant un contraste suffisant sur différentes surfaces
style = Style
.round = Rond
.slightly-round = Légèrement rond
.round = Arrondi
.slightly-round = Légèrement arrondi
.square = Carré
.frosted-glass = Verre dépoli
.frosted-system-interface = Interface système
.frosted-system-interface-desc = Applique un effet de verre dépoli au lanceur, à la bibliothèque d’applications, à la vue d’ensemble de l’espace de travail et aux contrôles à l’écran
.frosted-windows = Fenêtres
.frosted-windows-desc = Applique un effet de verre dépoli aux fenêtres et aux boîtes de dialogue
.frosted-panels = Panneaux
.frosted-panels-desc = Applique un effet de verre dépoli au panneau et au dock
.frosted-applets = Applets
.frosted-applets-desc = Applique un effet de verre dépoli aux menus des applets du panneau et du dock
.frosted-thickness = Épaisseur du verre dépoli
.less = moins
.more = plus
.glass-opacity = Opacité du verre
interface-density = Densité de l'interface
.comfortable = Confortable
.compact = Compact
@ -319,7 +332,7 @@ super-key = Action de la touche Super
.launcher = Ouvrir le Lanceur
.workspaces = Ouvrir les Espaces de travail
.applications = Ouvrir les Applications
.disable = Désactiver
.none = Aucun
window-controls = Contrôles des fenêtres
.maximize = Afficher le bouton maximiser
.minimize = Afficher le bouton minimiser
@ -593,7 +606,23 @@ keyboard-special-char = Saisie de caractères spéciaux
.alternate = Touche de caractères alternatifs
.compose = Touche de composition
.compose-desc = La touche de composition permet d'entrer une grande variété de caractères. Pour l'utiliser, appuyez sur composition puis une séquence de caractères. Par exemple, la touche composition suivie de C et o entrera ©, tandis que la touche composition suivie de a et ‘ entrera á.
.caps = Touche Verr Màj
.caps = Touche de verrouillage des majuscules
.ctrl = Ctrl
.ctrl-right = Ctrl Droite
.swap-with-ctrl = Echanger avec Ctrl
.alt = Alt
.alt-left = Alt Gauche
.alt-right = Alt Droite
.super = Super
.super-left = Super Gauche
.super-right = Super Droite
.menu = Touche de menu
.backspace = Retour arrière
.escape = Echap
.swap-with-escape = Echanger avec Echap
.print-screen = Impression Ecran
.scroll-lock = Arrêt Défilement
.none = Aucune
keyboard-typing-assist = Saisie
.repeat-rate = Taux de répétition
.repeat-delay = Délai de répétition

View file

@ -60,9 +60,11 @@ vpn-error = Earráid VPN
.connect = Theip ar nascadh le VPN
.connection-editor = Theip ar an eagarthóir ceangail
.connection-settings = Theip ar na socruithe a fháil le haghaidh naisc ghníomhacha
.openvpn-config-path = Cosán comhaid neamhbhailí do chumraíocht OpenVPN
.openvpn-config-path-desc = Ní mór an comhad roghnaithe a bheith ar chóras comhad áitiúil.
.updating-state = Theip ar staid an bhainisteora líonra a nuashonrú
.wireguard-config-path = Cosán comhaid neamhbhailí le haghaidh cumraíochta WireGuard
.wireguard-config-path-desc = Caithfidh an comhad roghnaithe a bheith ar chóras comhad áitiúil.
.wireguard-config-path-desc = Ní mór an comhad roghnaithe a bheith ar chóras comhad áitiúil.
.wireguard-device = Theip ar chruthú gléas WireGuard
.with-password =
Theip ar VPN a shocrú { $field ->
@ -234,6 +236,19 @@ style = Stíl
.round = Ciorclach
.slightly-round = Ciorclach beagán
.square = Cearnógach
.frosted-glass = Gloine sioctha
.frosted-system-interface = Comhéadan córais
.frosted-system-interface-desc = Cuireann sé gloine sioctha i bhfeidhm ar an Tosaitheoir, leabharlann feidhmchlár, forbhreathnú ar an spás oibre, rialuithe ar an scáileán
.frosted-windows = Fuinneoga
.frosted-windows-desc = Cuireann sé gloine sioctha i bhfeidhm ar fhuinneoga agus ar dhialóga
.frosted-panels = Painéil
.frosted-panels-desc = Cuireann sé gloine sioctha i bhfeidhm ar an bpainéal agus ar an duga
.frosted-applets = Feidhmchláiríní
.frosted-applets-desc = Cuireann sé gloine sioctha i bhfeidhm ar bhiachláir feidhmchláiríní ar an bpainéal agus ar an duga
.frosted-thickness = Tiús sioctha
.less = níos lú
.more = níos mó
.glass-opacity = Teimhneacht gloine
interface-density = Dlús comhéadan
.comfortable = Compordach
.compact = Dlúth
@ -306,7 +321,7 @@ super-key = Gníomh na heochrach Super
.launcher = Oscail lainseálaí
.workspaces = Oscail spásanna oibre
.applications = Oscail feidhmchláir
.disable = Díchumasaigh
.none = Dada
edge-gravity = Imtharraingítear fuinneoga snámhacha chuig imill in aice láimhe
window-controls = Rialuithe fuinneoige
.maximize = Taispeáin an cnaipe uasmhéadaithe
@ -490,6 +505,22 @@ keyboard-special-char = Iontráil Carachtar Speisialta
.compose = Eochair chumadóireachta
.compose-desc = Ligeann an eochair chumadóireachta raon leathan carachtar a iontráil. Chun í a úsáid, brúigh an eochair chumadóireachta agus ansin sraith carachtar. Mar shampla, má bhrúnn tú an eochair chumadóireachta agus C agus o ina dhiaidh sin, cuirfear © isteach; agus má bhrúnn tú an eochair chumadóireachta agus a agus ‘ ina dhiaidh sin, cuirfear á isteach.
.caps = Eochair Caps Lock
.ctrl = Ctrl
.ctrl-right = Ctrl ar Dheas
.swap-with-ctrl = Malartú le Ctrl
.alt = Alt
.alt-left = Alt ar Chlé
.alt-right = Alt ar Dheas
.super = Super
.super-left = Super ar Chlé
.super-right = Super ar Dheas
.menu = Eochair Roghchláir
.backspace = Spás Cúil
.escape = Éalú
.swap-with-escape = Malartú le hÉalú
.print-screen = Priontáil Scáileáin
.scroll-lock = Glas Scrollaithe
.none = Dada
keyboard-typing-assist = Ag clóscríobh
.repeat-rate = Ráta athuair
.repeat-delay = Moill athrá
@ -913,3 +944,7 @@ xdg-entry-wired-comment = Naisc sreangaithe agus próifílí nasc
no-search-results = Níl aon líonra ag teacht leis an gcuardach seo.
workspaces-navigation = Nascleanúint
.wraparound = Bog idir an chéad spás oibre agus an spás oibre deireanach ag baint úsáide as aicearraí méarchláir agus gothaí
bluetooth-display-passkey = Péireáil Bluetooth
.description = Clóscríobh an eochair phas seo a leanas ar { $device }, ansin brúigh Iontráil
bluetooth-display-pin = Péireáil Bluetooth
.description = Clóscríobh an PIN seo a leanas ar { $device }, ansin brúigh Iontráil

857
i18n/gl/cosmic_settings.ftl vendored Normal file
View file

@ -0,0 +1,857 @@
save = Gardar
cancel = Cancelar
connected = Conectado
confirm = Confirmar
settings = Axustes
appearance = Apariencia
dark = Escuro
light = Claro
replace = Remplazar
remove = Eliminar
connect = Conectar
password = Contrasinal
username = Nome de usuario
identity = Identidade
password-confirm = Confirmar o contrasinal
forget-dialog = Esquecer esta rede Wi-Fi?
.description = Terás que introducir o contrasinal de novo para usar esta rede Wi-Fi no futuro.
applications = Aplicacións
dbus-connection-error = Non foi posible conectarse a DBus
ok = Aceptar
unknown = Descoñecido
number = { $number }
app = Configuración COSMIC
xdg-entry-comment = Aplicación de configuracións para o escritorio COSMIC
xdg-entry-keywords = COSMIC;Configuracións;
xdg-entry-about = Sobre
xdg-entry-about-comment = Nome do dispositivo, información do hardware, valores predeterminados do sistema operativo
xdg-entry-about-keywords = COSMIC;Sobre
xdg-entry-a11y = Accesibilidade
xdg-entry-a11y-comment = Lector de pantalla, ampliador, alto contraste e filtros de cor
xdg-entry-a11y-keywords = COSMIC;Accesibilidade;A11y;Pantalla;Lector;Ampliador;Contraste;Cor;
xdg-entry-appearance = Apariencia
xdg-entry-appearance-comment = Cores de acento e temas
xdg-entry-appearance-keywords = COSMIC;Acento;Cor;Icona;Tipo de letra;Tema
xdg-entry-applications = Aplicacións
xdg-entry-applications-comment = Aplicacións predeterminadas, aplicacións de inicio e configuracións de compatibilidade con aplicacións X11
xdg-entry-applications-keywords = COSMIC;Predeterminada;Aplicación;Inicio;X11;Compatibilidade
xdg-entry-bluetooth-comment = Xestionar dispositivos Bluetooth
xdg-entry-bluetooth-keywords = COSMIC;Bluetooth;
xdg-entry-date-time = Data e hora
xdg-entry-date-time-comment = Fuso horario, axustes automáticos do reloxo e formato da hora
xdg-entry-date-time-keywords = COSMIC;Fuso;Horario;
xdg-entry-default-apps = Aplicacións por defecto
xdg-entry-default-apps-comment = Navegador web predeterminado, cliente de correo, xestor de ficheiros e outras aplicacións
xdg-entry-default-apps-keywords = COSMIC;Aplicación;Predeterminada
xdg-entry-desktop = Escritorio
xdg-entry-desktop-comment = Fondo de pantalla, aparencia, panel, dock, xestión de xanelas e configuración dos espazos de traballo
xdg-entry-desktop-keywords = COSMIC;Escritorio;
xdg-entry-displays = Pantallas
xdg-entry-displays-comment = Xestionar a configuración da pantalla
xdg-entry-displays-keywords = COSMIC;Monitor;
xdg-entry-dock = Dock
xdg-entry-dock-comment = Unha barra opcional para aplicacións e miniaplicacións
xdg-entry-dock-keywords = COSMIC;Dock;Panel;Miniaplicativo
xdg-entry-input = Dispositivos de Entrada
xdg-entry-input-comment = Axustes de teclado e rato
xdg-entry-input-keywords = COSMIC;Entrada;Teclado;Rato;Ratos;
xdg-entry-keyboard = Teclado
xdg-entry-keyboard-comment = Fontes de entrada, cambio, introdución de caracteres especiais e atallos de teclado
xdg-entry-keyboard-keywords = COSMIC;Teclado;Entrada;Fonte;Atallos;
xdg-entry-mouse = Rato
xdg-entry-mouse-comment = Velocidade do rato, aceleración e desprazamento natural
xdg-entry-mouse-keywords = COSMIC;Rato;Aceleración;Desprazamento;Natural;
xdg-entry-network = Rede e conexións sen fíos
xdg-entry-network-comment = Xestionar as conexións de rede
xdg-entry-network-keywords = COSMIC;Rede;SenFíos;WiFi;VPN;
xdg-entry-notifications = Notificacións
xdg-entry-notifications-comment = Non molestar, notificacións da pantalla de bloqueo e configuración por aplicación
xdg-entry-notifications-keywords = COSMIC;Notificación;Bloqueo;
xdg-entry-panel = Panel
xdg-entry-panel-comment = Barra principal do sistema para menús e miniaplicativos
xdg-entry-panel-keywords = COSMIC;Panel;Miniaplicativo
xdg-entry-power = Enerxía e batería
xdg-entry-power-comment = Modos de enerxía e opcións de aforro de enerxía
xdg-entry-power-keywords = COSMIC;Enerxía;Batería
xdg-entry-region-language = Rexión e Linguaxe
xdg-entry-region-language-comment = Formatar datas, horas e números segundo a túa rexión
xdg-entry-region-language-keywords = COSMIC;Rexión;Lingua;Data;Formato;Hora;Configuración rexional;Localización;
xdg-entry-sound = Son
xdg-entry-sound-comment = Configuración de son para dispositivos, alertas e aplicacións
xdg-entry-sound-keywords = COSMIC;Son;Audio;Alerta;PipeWire;
xdg-entry-startup-apps = Aplicacións de Inicio
xdg-entry-startup-apps-comment = Configurar as aplicacións que se executan ao iniciar sesión
xdg-entry-startup-apps-keywords = COSMIC;Inicio;Aplicación;
xdg-entry-system = Sistema e contas
xdg-entry-system-comment = Información do sistema, contas e actualizacións de firmware
xdg-entry-system-keywords = COSMIC;Sistema;Información;Contas;Firmware;
xdg-entry-time-language = Hora e lingua
xdg-entry-time-language-comment = Xestionar a data, a hora, a rexión e a lingua do sistema
xdg-entry-time-language-keywords = COSMIC;Sistema;Hora;Data;Rexión;Lingua;
xdg-entry-touchpad = Panel táctil
xdg-entry-touchpad-comment = Velocidade do panel táctil, opcións de clic e xestos
xdg-entry-touchpad-keywords = COSMIC;PanelTáctil;Xesto;
xdg-entry-users = Usuarios
xdg-entry-users-comment = Autenticación e contas de usuario
xdg-entry-users-keywords = COSMIC;Usuario;Conta;
xdg-entry-vpn-comment = Conexións VPN e perfís de conexión
xdg-entry-vpn-keywords = COSMIC;VPN;Rede;Conexión;OpenVPN;OpenConnect;
xdg-entry-wallpaper = Fondo de pantalla
xdg-entry-wallpaper-comment = Imaxes de fondo de pantalla, cores e opcións da presentación de diapositivas
xdg-entry-wallpaper-keywords = COSMIC;FondoDePantalla;Fondo;PresentaciónDeDiapositivas;
xdg-entry-window-management = Xestión de xanelas
xdg-entry-window-management-comment = Acción da tecla Super, opcións de control das xanelas e opcións adicionais de mosaico de xanelas
xdg-entry-window-management-keywords = COSMIC;Xanela;Xestión;Mosaico;Super;Tecla;
xdg-entry-wired = Cableado
xdg-entry-wired-comment = Conexións con fíos e perfís de conexión
xdg-entry-wired-keywords = COSMIC;Con Fíos;LAN;Rede;Conexión;
xdg-entry-wireless = WiFi
xdg-entry-wireless-comment = Conexións Wi-Fi e perfís de conexión
xdg-entry-wireless-keywords = COSMIC;WiFi;Wi-Fi;Rede;Conexión;
xdg-entry-workspaces = Espazos de traballo
xdg-entry-workspaces-comment = Orientación dos espazos de traballo, vista xeral e comportamento con varias pantallas
xdg-entry-workspaces-keywords = COSMIC;EspazoDeTraballo;Orientación;VistaXeral;Monitor;
xdg-entry-x11-applications = Compatibilidade de aplicacións X11
xdg-entry-x11-applications-comment = Escala das aplicacións do sistema de xanelas X11, pantalla principal e atallos globais
xdg-entry-x11-applications-keywords = COSMIC;X11;Aplicación;Xogo;Compatibilidade;
add-network = Engadir rede
.profile = Engadir perfil
add-vpn = Engadir VPN
airplane-on = O modo avión está activado.
cable-unplugged = Cable desconectado
connecting = Conectando…
disconnect = Desconectar
forget = Olvidar
known-networks = Redes coñecidas
network-and-wireless = Rede e conexións sen fíos
network-name = Nome da rede
no-networks = Non se atoparon redes.
no-vpn = Non hay conexións VPN dispoñibles.
qr-code-unavailable = O codigo QR non está dispoñible
scan-to-connect-description = Escanea o código QR para conectarte a esta rede.
share = Compartir rede
visible-networks = Redes visibles
auth-dialog = Autenticación necesaria
.vpn-description = Introduce o nome de usuario e o contrasinal requiridos polo servizo VPN.
.wifi-description = Introduce o contrasinal ou a chave de cifrado. Tamén podes conectarte premendo o botón «WPS» do router.
network-device-state =
.activated = Conectado
.config = Conectando
.deactivating = Desconectando
.disconnected = Desconectado
.failed = Fallou a conexión
.ip-check = Comprobando conexión
.ip-config = Solicitando IP e información de enrutamento
.need-auth = Precisa autenticación
.prepare = Preparando a conexión
.secondaries = Agardando pola conexión secundaria
.unavailable = Non dispoñible
.unknown = Estado descoñecido
.unmanaged = Non xestionado
.unplugged = Cable desconectado
remove-connection-dialog = Eliminar o perfil de conexión?
.vpn-description = Terás que introducir o contrasinal de novo para usar esta rede no futuro.
.wired-description = Terás que crear de novo este perfil para usalo no futuro.
vpn = VPN
.connections = Conexións VPN
.error = Fallou ao engadir a configuración VPN
.remove = Eliminar perfil de conexión
.select-file = Seleccionar un ficheiro de configuración VPN
vpn-error = Erro VPN
.config = Fallou ao engadir a configuración VPN
.connect = Fallou ao conectar coa VPN
.connection-editor = Fallou o editor de conexións
.connection-settings = Fallou ao obter a configuración das conexións activas
.openvpn-config-path = Ruta de ficheiro de configuración OpenVPN non válida
.openvpn-config-path-desc = O ficheiro seleccionado debe estar nun sistema de ficheiros local.
.updating-state = Fallou ao actualizar o estado do xestor de rede
.wireguard-config-path = Ruta de ficheiro de configuración WireGuard non válida
.wireguard-config-path-desc = O ficheiro seleccionado debe estar nun sistema de ficheiros local.
.wireguard-device = Fallou ao crear o dispositivo WireGuard
.with-password =
Fallou ao establecer { $field ->
*[username] o nome de usuario
[password] o contrasinal
[password-flags] as marcas do contrasinal
} da VPN con nmcli
wired = Wired
.adapter = Adaptador con fíos { $id }
.connections = Conexións con fíos
.devices = Dispositivos con fíos
.remove = Eliminar perfil de conexión
wifi = Wi-Fi
.adapter = Adaptador Wi-Fi { $id }
.forget = Esquecer esta rede
wireguard-dialog = Engadir dispositivo WireGuard
.description = Escolle un nome de dispositivo para a configuración de WireGuard.
online-accounts = Contas en liña
.desc = Engade contas, IMAP e SMTP, inicios de sesión empresariais
activate = Activar
enable = Activar
bluetooth = Bluetooth
.status = Este sistema é visible como { $aliases } mentres a configuración de Bluetooth está aberta.
.connected = Conectado
.connecting = Conectando
.disconnecting = Desconectando
.connect = Conectar
.disconnect = Desconectar
.forget = Esquecer
.dbus-error = Produciuse un erro ao interactuar con DBus: { $why }
.disabled = O servizo Bluetooth está desactivado
.inactive = O servizo Bluetooth non está activo
.unknown = Non se puido activar o servizo Bluetooth. Está instalado BlueZ?
bluetooth-paired = Dispositivos conectados anteriormente
.connect = Conectar
.battery = Batería ao { $percentage }%
bluetooth-confirm-pin = Confirmar PIN de Bluetooth
.description = Confirma que o seguinte PIN coincide co que se mostra en { $device }
bluetooth-display-passkey = Emparellamento Bluetooth
.description = Introduce a seguinte clave de acceso en { $device } e preme Intro
bluetooth-display-pin = Emparellamento Bluetooth
.description = Introduce o seguinte PIN en { $device } e preme Intro
bluetooth-available = Dispositivos próximos
bluetooth-adapters = Adaptadores Bluetooth
accessibility = Accessibility
.vision = Visión
.on = Activado
.off = Desactivado
.unavailable = Non dispoñible
.screen-reader = Lector de pantalla
.high-contrast = Modo de alto contraste
.invert-colors = Inverter cores
.color-filters = Filtros de cor
hearing = Audición
.mono = Reproducir o audio estéreo como mono
default = Por defecto
magnifier = Lupa
.controls =
Ou usa estes atallos: { $zoom_in ->
[zero] { "" }
*[other]
{ "" }
{ $zoom_in } para achegar,
}{ $zoom_out ->
[zero] { "" }
*[other]
{ "" }
{ $zoom_out } para afastar,
}
Super + desprazamento co rato
.scroll_controls = Activar o zoom co rato ou panel táctil mediante Super + desprazamento
.show_overlay = Mostrar a superposición da lupa
.increment = Incremento do zoom
.signin = Iniciar a lupa ao iniciar sesión
.applet = Activar ou desactivar a lupa no miniaplicativo do panel
.movement = O movemento da vista ampliada
.continuous = Continuamente co punteiro
.onedge = Cando o punteiro chega ao bordo
.centered = Para manter o punteiro centrado
color-filter = Tipo de filtro de cor
.unknown = Filtro activo descoñecido
.greyscale = Escala de grises
.deuteranopia = Verde/Vermello (debilidade do verde, Deuteranopia)
.protanopia = Vermello/Verde (debilidade do vermello, Protanopia)
.tritanopia = Azul/Amarelo (debilidade do azul, Tritanopia)
desktop = Escritorio
wallpaper = Wallpaper
.change = Cambiar imaxe cada
.fit = Axuste do fondo de pantalla
.folder-dialog = Escoller cartafol de fondos de pantalla
.image-dialog = Escoller imaxe de fondo de pantalla
.plural = Fondos de pantalla
.same = O mesmo fondo de pantalla en todas as pantallas
.slide = Presentación de diapositivas
add-color = Engadir color
add-image = Engadir imaxe
all-displays = Todas as pantallas
colors = Cores
dialog-add = Engadir
fill = Encher
fit-to-screen = Axustar a pantalla
open-new-folder = Abrir novo cartafol
recent-folders = Cartafoles recentes
x-minutes =
{ $number } { $number ->
[one] minuto
*[other] minutos
}
x-hours =
{ $number } { $number ->
[one] hora
*[other] horas
}
never = Nunca
accent-color = Cor de acento
app-background = Fondo da xanela
auto = Automatico
close = Pechar
color-picker = Selector de cor
copied-to-clipboard = Copiado ao portapapeis
copy-to-clipboard = Copiar ao portapapeis
export = Exportar
hex = Hexadecimal
import = Importar
mode-and-colors = Modo e cores
recent-colors = Cores recentes
reset-to-default = Restablecer aos valores predeterminados
rgb = RGB
window-hint-accent = Cor de indicación da xanela activa
window-hint-accent-toggle = Usar a cor de acento do tema como indicación da xanela activa
auto-switch = Cambiar automaticamente entre os modos claro e escuro
.sunrise = Cambia ao modo claro ao amencer
.sunset = Cambia ao modo escuro ao solpor
.next-sunrise = Cambia ao modo claro no seguinte amencer
.next-sunset = Cambia ao modo escuro no seguinte solpor
shadows-floating = Xanelas flotantes
.clip = Coincidir coas esquinas do sistema e aplicar sombras
shadows-tiling = Xanelas en mosaico
.clip = Coincidir coas esquinas do sistema
.shadow = Aplicar sombras
container-background = Fondo do contedor
.desc-detail = A cor do fondo do contedor úsase para a barra lateral de navegación, o caixón lateral, os diálogos e outros elementos similares. Por defecto, a cor do fondo do contedor derívase automaticamente do fondo da xanela.
.reset = Restablecer a automático
.desc = Úsase para a barra lateral de navegación, o caixón lateral, os diálogos e outros elementos similares
control-tint = Matiz dos compoñentes de control
.desc = Úsase para os fondos dos botóns estándar, campos de busca, campos de texto e compoñentes similares
frosted = Efecto de vidro esmerilado na interface do sistema
.desc = Aplica desenfoque de fondo ao panel, Dock, miniaplicativos, lanzador e biblioteca de aplicacións
enable-export = Aplicar o tema actual ás aplicacións de GNOME
.desc = Non todos os kits de ferramentas son compatibles co cambio automático. As aplicacións que non son COSMIC poden precisar reiniciarse despois dun cambio de tema.
icon-theme = Tema de iconas
.desc = Aplica un conxunto diferente de iconas ás aplicacións
text-tint = Matiz do texto da interface
.desc = Úsase para derivar as cores do texto da interface que teñen contraste suficiente en varias superficies
style = Style
.round = Redondeado
.slightly-round = Lixeiramente redondeado
.square = Cadrado
.frosted-glass = Vidro esmerilado
.frosted-system-interface = Interface do sistema
.frosted-system-interface-desc = Aplica vidro esmerilado ao Lanzador, biblioteca de aplicacións, vista xeral dos espazos de traballo e controis en pantalla
.frosted-windows = Xanelas
.frosted-windows-desc = Aplica vidro esmerilado ás xanelas e diálogos
.frosted-panels = Paneis
.frosted-panels-desc = Aplica vidro esmerilado ao panel e ao Dock
.frosted-applets = Miniaplicativos
.frosted-applets-desc = Aplica vidro esmerilado aos menús dos miniaplicativos do panel e do Dock
.frosted-thickness = Grosor do esmerilado
.less = menos
.more = máis
.glass-opacity = Opacidade do vidro
interface-density = Densidade da interface
.comfortable = Cómoda
.compact = Compacta
.spacious = Espazosa
window-management-appearance = Xestión de xanelas
.active-hint = Tamaño da indicación da xanela activa
.gaps = Separacións arredor das xanelas en mosaico
experimental-settings = Axustes experimentais
icons-and-toolkit = Tematización de iconas e kits de ferramentas
interface-font = Tipografía do sistema
monospace-font = Tipografia monoespaciada
shadow-and-corners = Sombra e esquinas das xanelas
notifications = Notificacións
panel = Panel
add = Engadir
add-applet = Engadir miniaplicativo
all = Todo
applets = Miniaplicativo
center-segment = Segmento central
place-here = Coloca os miniaplicativos aquí
end-segment = Segmento final
large = Grande
no-applets-found = Non se atoparon miniaplicativos...
panel-bottom = Abaixo
panel-left = Esquerda
panel-right = Dereita
panel-top = Arriba
search-applets = Buscar miniaplicativos...
small = Pequeno
start-segment = Segmento inicial
panel-appearance = Aparencia
.match = Coincidir co escritorio
.light = Claro
.dark = Escuro
panel-behavior-and-position = Comportamento e posicións
.autohide = Ocultar automaticamente o panel
.dock-autohide = Ocultar automaticamente o Dock
.position = Posición na pantalla
.display = Mostrar na pantalla
panel-style = Style
.anchor-gap = Separación entre o panel e os bordos da pantalla
.dock-anchor-gap = Separación entre o Dock e os bordos da pantalla
.extend = Estender o panel ata os bordos da pantalla
.dock-extend = Estender o Dock ata os bordos da pantalla
.appearance = Aparencia
.size = Tamaño
.background-opacity = Opacidade do fondo
panel-applets = Configuración
.dock-desc = Configura os miniaplicativos do Dock
.desc = Configura os miniaplicativos do panel
panel-missing = Falta a configuración do panel
.desc = O ficheiro de configuración do panel non está dispoñible debido ao uso dunha configuración personalizada ou está danado.
.fix = Restablecer aos valores predeterminados
dock = Dock
window-management = Xestión de xanelas
super-key = Acción da tecla Super
.launcher = Abrir o Lanzador
.workspaces = Abrir os Espazos de traballo
.applications = Abrir as Aplicacións
.none = Ningunha
edge-gravity = As xanelas flotantes axústanse aos bordos próximos
window-controls = Controis das xanelas
.maximize = Mostrar o botón de maximizar
.minimize = Mostrar o botón de minimizar
.active-window-hint = Mostrar indicación da xanela activa
focus-navigation = Navegación do foco
.focus-follows-cursor = O foco segue o cursor
.focus-follows-cursor-delay = Retardo do foco ao seguir o cursor en ms
.cursor-follows-focus = O cursor segue o foco
workspaces = Espazos de traballo
workspaces-overview = Vista xeral dos espazos de traballo
.action-on-typing = Acción ao escribir
.none = Ningunha
.launcher = Abrir o Lanzador
.applications = Abrir as Aplicacións
workspaces-behavior = Comportamento dos espazos de traballo
.dynamic = Espazos de traballo dinámicos
.dynamic-desc = Elimina automaticamente os espazos de traballo baleiros.
.fixed = Número fixo de espazos de traballo
.fixed-desc = Engade ou elimina espazos de traballo na vista xeral.
workspaces-multi-behavior = Comportamento con varios monitores
.span = Os espazos de traballo abranguen todas as pantallas
.separate = As pantallas teñen espazos de traballo separados
workspaces-overview-thumbnails = Miniaturas da vista xeral dos espazos de traballo
.show-number = Mostrar o número do espazo de traballo
.show-name = Mostrar o nome do espazo de traballo
workspaces-orientation = Orientación dos espazos de traballo
.vertical = Vertical
.horizontal = Horizontal
hot-corner = Esquina activa
.top-left-corner = Activar a esquina activa superior esquerda para os Espazos de traballo
workspaces-navigation = Navegación
.wraparound = Moverse entre o primeiro e o último espazo de traballo usando atallos de teclado e xestos
-requires-restart = Require reinicio
color = Cor
.depth = Profundidade de cor
.profile = Perfil de cor
.sidebar = Perfís de cor
.temperature = Temperatura da cor
display = Pantallas
.arrangement = Disposición das pantallas
.arrangement-desc = Arrastra as pantallas para reorganizalas
.enable = Activar pantalla
.external = Pantalla externa { $size } { $output }
.laptop = Pantalla de portátil { $size }
.options = Opcións da pantalla
.refresh-rate = Frecuencia de actualización
.resolution = Resolución
.scale = Escala
.additional-scale-options = Opcións adicionais de escala
mirroring = Espello
.id = Espello { $id }
.dont = Non facer espello
.mirror = Facer espello de { $display }
.project =
Proxectar en { $display ->
[all] todas as pantallas
*[other] { $display }
}
.project-count =
Proxectando noutras { $count } { $count ->
[1] pantalla
*[other] pantallas
}
night-light = Luz nocturna
.auto = Automática (do solpor ao amencer)
.desc = Reduce a luz azul usando cores máis cálidas
orientation = Orientación
.standard = Estándar
.rotate-90 = Xirar 90°
.rotate-180 = Xirar 180°
.rotate-270 = Xirar 270°
vrr = Frecuencia de actualización variable
.enabled = Activada
.force = Sempre
.auto = Automática
.disabled = Desactivada
scheduling = Programación
.manual = Programación manual
dialog = Diálogo
.title = Manter esta configuración da pantalla?
.keep-changes = Manter os cambios
.change-prompt = Os cambios de configuración reverteranse automaticamente en { $time } segundos.
.revert-settings = Reverter a configuración
sound = Son
sound-output = Saída
.volume = Volume de saída
.device = Dispositivo de saída
.level = Nivel de saída
.config = Configuración
.balance = Balance
.left = Esquerda
.right = Dereita
sound-input = Entrada
.volume = Volume de entrada
.device = Dispositivo de entrada
.level = Nivel de entrada
amplification = Amplificación
.desc = Permite aumentar o volume ata o 150%
sound-alerts = Alertas
.volume = Volume das alertas
.sound = Son das alertas
sound-applications = Aplicacións
.desc = Volumes e configuracións das aplicacións
sound-device-port-unplugged = Desconectado
sound-hd-audio = Audio HD
sound-usb-audio = Audio USB
sound-device-profiles = Perfís dos dispositivos
power = Enerxía e batería
battery = Batería
.minute =
{ $value } { $value ->
[one] minuto
*[other] minutos
}
.hour =
{ $value } { $value ->
[one] hora
*[other] horas
}
.day =
{ $value } { $value ->
[one] día
*[other] días
}
.less-than-minute = Menos dun minuto
.and = e
.remaining-time =
{ $time } ata { $action ->
[full] completo
*[other] baleiro
}
connected-devices = Dispositivos conectados
.unknown = Dispositivo descoñecido
power-mode = Modo de enerxía
.battery = Maior duración da batería
.battery-desc = Menor consumo de enerxía e funcionamento silencioso
.balanced = Equilibrado
.balanced-desc = Funcionamento silencioso e consumo moderado de enerxía
.performance = Alto rendemento
.performance-desc = Máximo rendemento e consumo de enerxía
.no-backend = Non se atopou o backend. Instala system76-power ou power-profiles-daemon.
power-saving = Opcións de aforro de enerxía
.turn-off-screen-after = Apagar a pantalla despois de
.auto-suspend = Suspensión automática
.auto-suspend-ac = Suspensión automática ao estar conectado á corrente
.auto-suspend-battery = Suspensión automática usando a batería
acceleration-desc = Axuste automático da sensibilidade de seguimento segundo a velocidade
disable-while-typing = Desactivar ao escribir
input-devices = Dispositivos de entrada
primary-button = Botón principal
.desc = Establece a orde dos botóns físicos
.left = Esquerdo
.right = Dereito
scrolling = Desprazamento
.two-finger = Desprazamento con dous dedos
.edge = Desprazamento polo bordo cun dedo
.speed = Velocidade de desprazamento
.natural = Desprazamento natural
.natural-desc = Desprazar o contido en vez da vista
slow = Amodo
fast = Rápido
short = Curto
long = Longo
keyboard = Teclado
keyboard-sources = Fontes de entrada
.desc = As fontes de entrada pódense cambiar usando a combinación de teclas Super+Espazo. Isto pódese personalizar na configuración dos atallos de teclado.
.move-up = Mover arriba
.move-down = Mover abaixo
.settings = Configuracións
.view-layout = Ver a distribución do teclado
.remove = Eliminar
.add = Engadir fonte de entrada
keyboard-special-char = Entrada de caracteres especiais
.alternate = Tecla de caracteres alternativos
.compose = Tecla Compose
.compose-desc = A tecla Compose permite introducir unha gran variedade de caracteres. Para usala, preme Compose e despois unha secuencia de caracteres. Por exemplo, a tecla Compose seguida de C e o introduce ©, mentres que a tecla Compose seguida de a e ‘ introduce á.
.caps = Tecla Bloq Maiús
.ctrl = Control
.ctrl-right = Ctrl dereito
.swap-with-ctrl = Intercambiar con Control
.alt = Alt
.alt-left = Alt esquerda
.alt-right = Alt dereita
.super = Super
.super-left = Super esquerda
.super-right = Super dereita
.menu = Tecla Menú
.backspace = Retroceso
.escape = Escape
.swap-with-escape = Intercambiar con Escape
.print-screen = Imprimir pantalla
.scroll-lock = Bloq Desprazamento
.none = Ningunha
keyboard-typing-assist = Escritura
.repeat-rate = Velocidade de repetición
.repeat-delay = Retardo de repetición
keyboard-numlock-boot = Bloq Num
.boot-state = Estado no arranque
.last-boot = Último arranque
.on = Activado
.off = Desactivado
.set = Establecer o estado de Bloq Num no arranque
added = Engadido
type-to-search = Escribe para buscar...
no-search-results = Non hai redes que coincidan coa túa busca.
show-extended-input-sources = Mostrar fontes de entrada ampliadas
keyboard-shortcuts = Atallos de teclado
.desc = Ver e personalizar os atallos de teclado
add-another-keybinding = Engadir outro atallo de teclado
command = Comando
custom = Personalizado
debug = Depuración
disabled = Deshabilitado
input-source-switch = Cambiar fonte de entrada do idioma do teclado
migrate-workspace-prev = Migrar espazo de traballo á pantalla anterior
migrate-workspace-next = Migrar espazo de traballo á seguinte pantalla
migrate-workspace =
Migrar espazo de traballo á pantalla { $direction ->
*[down] abaixo
[left] esquerda
[right] dereita
[up] arriba
}
navigate = Navegar
shortcut-name = Nome do atallo
system-controls = Controles do sistema
terminate = Finalizar
toggle-stacking = Alternar pila de xanelas
type-key-combination = Escribir combinación de teclas
custom-shortcuts = Atallos personalizados
.add = Engadir atallo
.context = Engadir atallo personalizado
.none = Non hai atallos personalizados
modified = { $count } modificado
nav-shortcuts = Navegación
.prev-output = Enfocar a pantalla anterior
.next-output = Enfocar a seguinte pantalla
.last-workspace = Enfocar o último espazo de traballo
.prev-workspace = Enfocar o espazo de traballo anterior
.next-workspace = Enfocar o seguinte espazo de traballo
.focus =
Enfocar ventá { $direction ->
*[down] abaixo
[in] dentro
[left] esquerda
[out] fóra
[right] dereita
[up] arriba
}
.output =
Cambiar á pantalla { $direction ->
*[down] abaixo
[left] esquerda
[right] dereita
[up] arriba
}
.workspace = Cambiar ao espazo de traballo { $num }
manage-windows = Xestionar ventás
.close = Pechar ventá
.maximize = Maximizar ventá
.fullscreen = Ventá a pantalla completa
.minimize = Minimizar ventá
.resize-inwards = Reducir tamaño da ventá cara dentro
.resize-outwards = Aumentar tamaño da ventá cara fóra
.toggle-sticky = Alternar ventá persistente
move-windows = Mover ventás
.direction =
Mover ventá { $direction ->
*[down] abaixo
[left] esquerda
[right] dereita
[up] arriba
}
.display =
Mover ventá un monitor { $direction ->
*[down] abaixo
[left] esquerda
[right] dereita
[up] arriba
}
.workspace =
Mover ventá un espazo de traballo { $direction ->
*[below] abaixo
[left] esquerda
[right] dereita
[above] arriba
}
.workspace-num = Mover ventá ao espazo de traballo { $num }
.prev-workspace = Mover ventá ao espazo de traballo anterior
.next-workspace = Mover ventá ao seguinte espazo de traballo
.last-workspace = Mover ventá ao último espazo de traballo
.next-display = Mover ventá á seguinte pantalla
.prev-display = Mover ventá á pantalla anterior
.send-to-prev-workspace = Enviar ventá ao espazo de traballo anterior
.send-to-next-workspace = Enviar ventá ao seguinte espazo de traballo
system-shortcut = Sistema
.app-library = Abrir a biblioteca de aplicacións
.brightness-down = Reducir o brillo da pantalla
.brightness-up = Aumentar o brillo da pantalla
.display-toggle = Alternar a pantalla interna
.home-folder = Abrir o cartafol persoal
.keyboard-brightness-down = Reducir o brillo do teclado
.keyboard-brightness-up = Aumentar o brillo do teclado
.launcher = Abrir o Lanzador
.log-out = Pechar sesión
.lock-screen = Bloquear a pantalla
.mute = Silenciar a saída de audio
.mute-mic = Silenciar a entrada do micrófono
.play-pause = Reproducir/pausar
.play-next = Seguinte pista
.play-prev = Pista anterior
.poweroff = Apagar
.screenshot = Facer unha captura de pantalla
.suspend = Suspender
.terminal = Abrir un terminal
.touchpad-toggle = Alternar o panel táctil
.volume-lower = Reducir o volume de saída de audio
.volume-raise = Aumentar o volume de saída de audio
.web-browser = Abrir un navegador web
.window-switcher = Cambiar entre ventás abertas
.window-switcher-previous = Cambiar entre ventás abertas en orde inversa
.workspace-overview = Abrir a vista xeral dos espazos de traballo
window-tiling = Mosaico de xanelas
.horizontal = Establecer orientación horizontal
.vertical = Establecer orientación vertical
.swap-window = Intercambiar ventá
.toggle-tiling = Alternar mosaico de ventás
.toggle-stacking = Alternar empilhamento de ventás
.toggle-floating = Alternar ventá flotante
.toggle-orientation = Alternar orientación
replace-shortcut-dialog = Substituír atallo?
.desc = { $shortcut } está sendo usado por { $name }. Se o substitúes, { $name } será desactivado.
zoom-in = Ampliar Zoom
zoom-out = Reducir Zoom
mouse = Rato
.speed = Velocidade do rato
.acceleration = Activar aceleración do rato
click-behavior = Comportamento dos clics
.click-finger = Clic secundario con dous dedos e clic central con tres dedos
.button-areas = Clic secundario na esquina inferior dereita e clic central no centro inferior
pinch-to-zoom = Zoom con pinza
.desc = Usa dous dedos para ampliar o contido nas aplicacións que admitan zoom
tap-to-click = Tocar para facer clic
.desc = Activa o toque cun dedo para o clic principal, o toque con dous dedos para o clic secundario e o toque con tres dedos para o clic central
touchpad = Panel táctil
.acceleration = Activar aceleración do panel táctil
.speed = Velocidade do panel táctil
gestures = Xestos
.four-finger-down = Desprazamento cara abaixo con catro dedos
.four-finger-left = Desprazamento cara á esquerda con catro dedos
.four-finger-right = Desprazamento cara á dereita con catro dedos
.four-finger-up = Desprazamento cara arriba con catro dedos
.three-finger-any = Desprazamento en calquera dirección con tres dedos
switch-workspaces = Cambiar de espazos de traballo
.horizontal = Desprazamento horizontal con catro dedos (esquerda/dereita)
.vertical = Desprazamento vertical con catro dedos (arriba/abaixo)
switch-between-windows = Alternar entre xanelas
open-application-library = Abrir a biblioteca de aplicacións
open-workspaces-view = Abrir a vista xeral dos espazos de traballo
time = Hora e linguaxe
time-date = Data e hora
.auto = Establecer automaticamente
.auto-ntp = A data e hora actualizaranse automaticamente cando estea configurada a zona horaria
time-zone = Zona horaria
.auto = Zona horaria automática
.auto-info = Require servizos de localización e acceso a Internet
time-format = Formato de data e hora
.twenty-four = Formato de 24 horas
.show-seconds = Mostrar segundos
.first = Primeiro día da semana
.show-date = Mostrar a data no applet da hora
.friday = Venres
.saturday = Sábado
.sunday = Domingo
.monday = Luns
time-region = Rexión e linguaxe
formatting = Formato
.dates = Datas
.time = Hora
.date-and-time = Data e hora
.numbers = Números
.measurement = Medición
.paper = Papel
preferred-languages = Idiomas preferidos
.desc = A orde dos idiomas determina que idioma se usa para a interface de usuario. Os cambios aplicaranse no seguinte inicio de sesión.
add-language = Engadir linguaxe
.context = Engadir lingua
install-additional-languages = Instalar linguaxes adicionais
region = Rexión
default-apps = Aplicacións predeterminadas
.web-browser = Navegador web
.file-manager = Xestor de ficheiros
.mail-client = Cliente de correo
.music = Música
.video = Vídeo
.photos = Fotos
.calendar = Calendario
.terminal = Terminal
.other-associations = Outras asociacións
.text-editor = Editor de texto
.not-installed = Non instalado
startup-apps = Aplicacións de inicio
.add = Engadir aplicación
.user = Aplicacións iniciadas cando inicias sesión
.none = Non hai aplicacións de inicio engadidas
.remove-dialog-title = Eliminar { $name }?
.remove-dialog-description = Queres eliminar esta aplicación de inicio?
.add-startup-app = Engadir aplicación de inicio
legacy-applications = Compatibilidade de aplicacións X11
legacy-app-global-shortcuts = Atallos globais en aplicacións X11
.desc = Os atallos globais permiten que as pulsacións de teclas e os eventos dos botóns do rato realizados nas aplicacións sexan recoñecidos por outras aplicacións para funcións como premer para falar ou premer para silenciar. Por defecto, os atallos globais están desactivados nas aplicacións X11 para garantir que outras aplicacións non poidan supervisar eventos de teclado e rato que conteñan información sensible.
.none = Sen teclas
.modifiers = Modificadores (Super, Maiús, Control, Alt)
.combination = Todas as teclas mentres se manteñen premidos os modificadores Super, Control ou Alt
.all = Todas as teclas
.mouse = Eventos dos botóns do rato nas aplicacións X11
legacy-app-scaling = Escalado de aplicacións do sistema de ventás X11
.scaled-gaming = Optimizar para xogos e aplicacións a pantalla completa
.gaming-description = As aplicacións X11 poden aparecer lixeiramente máis grandes ou máis pequenas en comparación coas aplicacións Wayland
.scaled-applications = Optimizar para aplicacións
.applications-description = Os xogos e as aplicacións X11 a pantalla completa poden non coincidir coa resolución da túa pantalla
.scaled-compatibility = Modo de máxima compatibilidade
.compatibility-description = As aplicacións X11 poden aparecer borrosas en pantallas HiDPI
.preferred-display = Pantalla preferida para xogos e aplicacións X11 a pantalla completa
.no-display = Ningunha
system = Sistema e contas
about = Sobre
about-device = Nome do dispositivo
.desc = Este nome aparece para outros dispositivos da rede ou Bluetooth
about-hardware = Hardware
.model = Modelo de hardware
.memory = Memoria
.processor = Procesador
.graphics = Gráficos
.disk-capacity = Capacidade do disco
about-os = Sistema operativo
.os = Sistema operativo
.os-architecture = Arquitectura do sistema operativo
.kernel = Versión do kernel
.desktop-environment = Contorno de escritorio
.windowing-system = Sistema de xanelas (servidor gráfico)
about-related = Axustes relacionados
.support = Obter asistencia
firmware = Firmware
users = Usuarios
.admin = Administrador
.standard = Estándar
.profile-add = Escoller imaxe de perfil
administrator = Administrador
.desc = Os administradores poden cambiar os axustes de todos os usuarios, engadir e eliminar outros usuarios
add-user = Engadir usuario
change-password = Cambiar o contrasinal
remove-user = Eliminar o usuario
full-name = Nome completo
invalid-username = Nome de usuario non válido
password-mismatch = O contrasinal e a confirmación deben coincidir

View file

@ -21,8 +21,8 @@ network-and-wireless = नेटवर्क और वायरलेस
no-networks = कोई नेटवर्क नहीं मिला।
no-vpn = कोई वी.पी.एन कनेक्शन नहीं है।
password = पासवर्ड
remove = हटा दें
settings = सेटिंग
remove = हटाएँ
settings = सेटिंग्स
username = उपयोगकर्ता नाम
visible-networks = दृश्य नेटवर्क
auth-dialog = प्रमाणीकरण आवश्यक है
@ -145,8 +145,7 @@ x-hours =
## Desktop: Appearance
appearance = रूपरेखा
.desc = प्राधिकरण रंग और थीम।
appearance = रुप-रंग
accent-color = प्राधिकरण रंग
app-background = एप्लिकेशन या विंडो का पृष्ठभूमि
auto = स्वचालित
@ -154,11 +153,11 @@ close = बंद करें
color-picker = रंग चयनकर्ता
copied-to-clipboard = क्लिपबोर्ड में कॉपी किया गया
copy-to-clipboard = क्लिपबोर्ड में कॉपी करें
dark = गहरा
dark = डार्क
export = निर्यात
hex = हेक्स
import = आयात
light = हल्का
light = लाइट
mode-and-colors = मोड और रंग
recent-colors = हाल के रंग
reset-to-default = डिफ़ॉल्ट पर पुनर्स्थापित करें

View file

@ -224,7 +224,7 @@ desktop = Asztal
wallpaper = Háttérkép
.change = Háttérkép váltásának gyakorisága
.fit = Háttérkép illeszkedése
.folder-dialog = Háttérkép-mappa kiválasztása
.folder-dialog = Háttérképmappa kiválasztása
.image-dialog = Háttérkép kiválasztása
.plural = Háttérképek
.same = Ugyanaz a háttérkép legyen minden kijelzőn
@ -282,7 +282,7 @@ container-background = Felületi elemek háttere
.desc = Navigációs oldalsávhoz, oldalsó menühöz, párbeszédablakhoz és hasonló modulokhoz használandó
control-tint = Vezérlőelemek színezése
.desc = Szabványos gombok hátterére, keresési bemenetekre, szövegbevitelre és hasonló összetevőkre használandó
frosted = Tejüveg hatás a rendszerfelületen
frosted = Tejüveghatás a rendszerfelületen
.desc = A háttér elmosását alkalmazza a panelre, a dokkra, a kisalkalmazásokra, az indítóra és az alkalmazáskönyvtárra
enable-export = Jelenlegi téma alkalmazása a GNOME-alkalmazásokra
.desc = Nem minden eszközkészlet támogatja az automatikus váltást. Előfordulhat, hogy a téma módosítása után újra kell indítani a nem COSMIC-alkalmazásokat.
@ -294,6 +294,19 @@ style = Stílus
.round = Lekerekített
.slightly-round = Enyhén lekerekített
.square = Szögletes
.frosted-glass = Tejüveghatás
.frosted-system-interface = Rendszerfelület
.frosted-system-interface-desc = Tejüveghatás alkalmazása az Indítóra, az alkalmazáskönyvtárra, a munkaterület-áttekintőre és a képernyőn megjelenő vezérlőkre
.frosted-windows = Ablakok
.frosted-windows-desc = Tejüveghatás alkalmazása az ablakokra és a párbeszédablakokra
.frosted-panels = Panelek
.frosted-panels-desc = Tejüveghatás alkalmazása a panelre és a dokkra
.frosted-applets = Kisalkalmazások
.frosted-applets-desc = Tejüveghatás alkalmazása a panelen és a dokkon lévő kisalkalmazások menüire
.frosted-thickness = Homályosítás mértéke
.less = kevesebb
.more = több
.glass-opacity = Üveg átlátszatlansága
interface-density = Felületsűrűség
.comfortable = Kényelmes
.compact = Kompakt
@ -366,7 +379,7 @@ super-key = Super billentyű funkciója
.launcher = Indító megnyitása
.workspaces = Munkaterületek megnyitása
.applications = Alkalmazások megnyitása
.disable = Letiltás
.none = Nincs
edge-gravity = A lebegő ablakok a közeli szélekhez igazodnak
window-controls = Ablakvezérlés
.maximize = Maximalizálás gomb megjelenítése
@ -550,6 +563,22 @@ keyboard-special-char = Speciális karakter beírása
.compose = Kombináló billentyű
.compose-desc = A kombináló billentyű lehetővé teszi számos karakter bevitelét. Használatához nyomd meg a billentyűt, majd gépeld be a karakterek sorozatát. Például a kombináló billentyű, majd „C” és „o” lenyomásával a „©” jelet kapod, míg „a” és „‘” után „á” jelenik meg.
.caps = Caps Lock billentyű
.ctrl = Ctrl
.ctrl-right = Jobb Ctrl
.swap-with-ctrl = Felcserélés a Ctrl billentyűvel
.alt = Alt
.alt-left = Bal Alt
.alt-right = Jobb Alt
.super = Super
.super-left = Bal Super
.super-right = Jobb Super
.menu = Menü billentyű
.backspace = Backspace
.escape = Esc
.swap-with-escape = Felcserélés az Esc billentyűvel
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Nincs
keyboard-typing-assist = Gépelés
.repeat-rate = Ismétlési sebesség
.repeat-delay = Ismétlési késleltetés

View file

@ -229,6 +229,19 @@ style = Gaya
.round = Bulat
.slightly-round = Sedikit bulat
.square = Persegi
.frosted-glass = Kaca es
.frosted-system-interface = Antarmuka sistem
.frosted-system-interface-desc = Menerapkan kaca es ke Peluncur, pustaka aplikasi, ikhtisar ruang kerja, kontrol pada layar
.frosted-windows = Jendela
.frosted-windows-desc = Menerapkan kaca es ke jendela dan dialog
.frosted-panels = Panel
.frosted-panels-desc = Menerapkan kaca es ke panel dan dok
.frosted-applets = Applet
.frosted-applets-desc = Menerapkan kaca es ke menu applet pada panel dan dok
.frosted-thickness = Ketebalan es
.less = lebih
.more = kurang
.glass-opacity = Opasitas kaca
interface-density = Kepadatan antarmuka
.comfortable = Nyaman
.compact = Kompak
@ -291,7 +304,7 @@ super-key = Tindakan tombol super
.launcher = Buka Peluncur
.workspaces = Buka Ruang Kerja
.applications = Buka Aplikasi
.disable = Nonaktifkan
.none = Tidak Ada
edge-gravity = Jendela mengapung bergerak ke tepi terdekat
window-controls = Kontrol jendela
.maximize = Tampilkan tombol maksimalkan
@ -535,6 +548,22 @@ keyboard-special-char = Entri Karakter Spesial
.compose = Tombol compose
.compose-desc = Tombol compose memungkinkan berbagai macam karakter untuk memasukkan. Untuk menggunakannya, tekan compose dan kemudian serangkaian karakter. Misalnya, tombol compose diikuti dengan C dan o akan memasukkan ©, sedangkan tombol compose diikuti dengan a dan ‘ akan memasukkan á.
.caps = Tombol Caps Lock
.ctrl = Control
.ctrl-right = Ctrl Kanan
.swap-with-ctrl = Tukar dengan Control
.alt = Alt
.alt-left = Alt Kiri
.alt-right = Alt Kanan
.super = Super
.super-left = Super Kiri
.super-right = Super Kanan
.menu = Tombol menu
.backspace = Backspace
.escape = Escape
.swap-with-escape = Tukar dengan Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Tidak ada
keyboard-typing-assist = Pengetikan
.repeat-rate = Kecepatan pengulangan
.repeat-delay = Penundaan pengulangan

View file

@ -254,7 +254,6 @@ never = Mai
## Desktop: Appearance
appearance = Aspetto
.desc = Colore d'accento e tema COSMIC.
accent-color = Colore d'accento
app-background = Sfondo applicazione o finestra
auto = Automatico

View file

@ -61,6 +61,8 @@ vpn-error = VPN қатесі
.connect = VPN-ге қосылу сәтсіз аяқталды
.connection-editor = Байланыс редакторының жұмысы сәтсіз аяқталды
.connection-settings = Белсенді байланыстар үшін баптауларды алу сәтсіз аяқталды
.openvpn-config-path = OpenVPN баптаулары үшін файлға дейінгі жол жарамсыз
.openvpn-config-path-desc = Таңдалған файл жергілікті файлдық жүйеде болуы тиіс.
.updating-state = Желі менеджерінің күйін жаңарту сәтсіз аяқталды
.wireguard-config-path = WireGuard конфигурациясы үшін файл жолы жарамсыз
.wireguard-config-path-desc = Таңдалған файл жергілікті файлдық жүйеде болуы тиіс.
@ -175,7 +177,7 @@ x-hours =
*[other] сағат
}
never = Ешқашан
appearance = Сыртқы түрі
appearance = Сыртқы көрініс
accent-color = Акцент түсі
app-background = Терезе фоны
auto = Автоматты түрде
@ -183,11 +185,11 @@ close = Жабу
color-picker = Түс таңдаушы
copied-to-clipboard = Алмасу буферіне көшірілді
copy-to-clipboard = Алмасу буферіне көшіру
dark = Қараңғы
dark = Қою
export = Экспорттау
hex = Он алтылық
import = Импорттау
light = Жарық
light = Ашық
mode-and-colors = Режим мен түстер
recent-colors = Соңғы түстер
reset-to-default = Әдепкі күйге қайтару
@ -222,6 +224,19 @@ style = Стиль
.round = Дөңгелек
.slightly-round = Сәл дөңгелектелген
.square = Шаршы
.frosted-glass = Мөлдір емес шыны
.frosted-system-interface = Жүйелік интерфейс
.frosted-system-interface-desc = Мөлдір емес шыны эффектін іске қосқыш, қолданбалар библиотекасы, жұмыс үстелі көрінісі, экрандағы басқару элементтері үшін іске асырады
.frosted-windows = Терезелер
.frosted-windows-desc = Мөлдір емес шыны эффектін терезелер мен сұхбат терезелері үшін іске асырады
.frosted-panels = Панельдер
.frosted-panels-desc = Мөлдір емес шыны эффектін панель мен бекіту панелі (док) үшін іске асырады
.frosted-applets = Апплеттер
.frosted-applets-desc = Мөлдір емес шыны эффектін панель мен доктағы апплеттер мәзірі үшін іске асырады
.frosted-thickness = Мөлдір еместігінің шамасы
.less = азырақ
.more = көбірек
.glass-opacity = Шынының мөлдір еместігі
interface-density = Интерфейс тығыздығы
.comfortable = Ыңғайлы
.compact = Ықшам
@ -281,7 +296,7 @@ super-key = Super пернесінің әрекеті
.launcher = Іске қосқышты ашу
.workspaces = Жұмыс орындарын ашу
.applications = Қолданбаларды ашу
.disable = Сөндіру
.none = Ешнәрсе
edge-gravity = Қалқымалы терезелер жақын маңдағы шеттерге тартылады
window-controls = Терезе басқару элементтері
.maximize = Жазық қылу батырмасын көрсету
@ -453,6 +468,22 @@ keyboard-special-char = Арнайы таңбаларды енгізу
.compose = Compose пернесі
.compose-desc = Compose пернесі таңбалардың алуан түрін енгізуге мүмкіндік береді. Оны пайдалану үшін, compose пернесін, содан кейін таңбалар тізбегін басыңыз. Мысалы, compose пернесінен кейін C және o басылса, © таңбасы енгізіледі, ал compose пернесінен кейін a және ‘ басылса, á таңбасы енгізіледі.
.caps = Caps Lock пернесі
.ctrl = Control
.ctrl-right = Оң жақ Ctrl
.swap-with-ctrl = Control-мен ауыстыру
.alt = Alt
.alt-left = Сол жақ Alt
.alt-right = Оң жақ Alt
.super = Super
.super-left = Сол жақ Super
.super-right = Оң жақSuper
.menu = Menu key
.backspace = Backspace
.escape = Escape
.swap-with-escape = Escape-пен алмастыру
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Ешнәрсе
keyboard-typing-assist = Теру
.repeat-rate = Қайталау жиілігі
.repeat-delay = Қайталау кідірісі
@ -820,3 +851,7 @@ xdg-entry-wired-comment = Сымды қосылымдар және қосылы
no-search-results = Сіздің іздеуіңізге ешбір желі сәйкес келмейді.
workspaces-navigation = Навигация
.wraparound = Бірінші және соңғы жұмыс орындары арасында пернетақта жарлықтары мен ым қимылдар арқылы ауысу
bluetooth-display-passkey = Bluetooth жұптау
.description = { $device } құрылғысында келесі кілттік кодты енгізіңіз, одан кейін Enter басыңыз
bluetooth-display-pin = Bluetooth жұптау
.description = { $device } құрылғысында келесі PIN кодты енгізіңіз, одан кейін Enter басыңыз

View file

@ -25,9 +25,9 @@ connected = Hat girêdan
panel-left = Çep
super-key = Çalakiya bişkoka Super
.launcher = Destpêkerê veke
.workspaces = Cîhên xebatê veke
.workspaces = Qadên xebatê veke
.applications = Sepanan veke
.disable = Neçalak bike
.none = Ne yek
x-minutes =
{ $number } { $number ->
[one] xulek
@ -187,7 +187,7 @@ battery = Betarî
.and = û
.remaining-time =
{ $time } heya { $action ->
[full] tije
[full] tije bibe
*[other] vala
}
search-applets = Sepanokan bigere...
@ -278,8 +278,21 @@ enable-export = Rûkara heyî li ser sepanên GNOME disepîne
shortcut-name = Navê kurteriyê
style = Şêwaz
.round = Gilover
.slightly-round = Nîv gilover
.slightly-round = Hinekî gilover
.square = Çargoşe
.frosted-glass = Mijbûna camê
.frosted-system-interface = Navrûya pergalê
.frosted-system-interface-desc = Mijbûna camê li ser destpêker, pirtûkxaneya sepanan, pêşdîtina qada xebatê, kontrolên li ser dîmenderê tê sepandin.
.frosted-windows = Çarçove
.frosted-windows-desc = Mijbûna camê li ser çarçove û gotûbêjan tê sepandin.
.frosted-panels = Destgeh
.frosted-panels-desc = Mijbûna camê li ser destgeh û benderê tê sepandin.
.frosted-applets = Sepanok
.frosted-applets-desc = Mijbûna camê li ser menuyên sepanokan, destgeh û benderê tê sepandin.
.frosted-thickness = Qalindiya camê
.less = kêmtir
.more = bêtir
.glass-opacity = Zelalaliya camê
panel-applets = Rêkxistin
.dock-desc = Sepanokên benderê bi rêk bixe
.desc = Sepanokên destgehê bi rêk bixe
@ -410,8 +423,8 @@ system-shortcut = Pergal
.suspend = Rawestîne
.terminal = Termînalê veke
.touchpad-toggle = Touchpadê biguhêrîne
.volume-lower = Asta dengê derana kêm bike
.volume-raise = Asta dengê derana bêtir bike
.volume-lower = Asta dengê ya deran kêm bike
.volume-raise = Asta dengê ya deranê bêtir bike
.web-browser = Gerokeke tevnê veke
.window-switcher = Di navbera çarçoveyên vekirî de biguhêrîne
.window-switcher-previous = Di navbera çarçoveyên vekirî de berevajî biguhêrîne
@ -435,7 +448,7 @@ formatting = Awa
.dates = Dîrok
.time = Dem
.date-and-time = Dîrok & Dem
.numbers = Jimmar
.numbers = Jimar
.measurement = Pîvan
.paper = Pelik
disabled = Neçalakkirî
@ -482,9 +495,25 @@ accent-color = Rengê sereke
type-key-combination = Kombînasyona kilîtan binivîse
keyboard-special-char = Têketina tîpên taybet
.alternate = Kilîta tîpên alternatîf
.compose = Kilîta taybet
.compose = Kilîta taybe
.compose-desc = Kilîta compose mafê dide ku tîpên cûda werin nivîsandin. Ji bo bikaranînê, pêşî compose û paşê rêzek tîpan bitikîne. Bo mînak, kilîta compose li dû C û o wê © binivîse, dema ku kilîta compose li dû a û ‘ wê á binivîse.
.caps = Kilîta Caps Lock
.ctrl = Control
.ctrl-right = Ctrl a rastê
.swap-with-ctrl = Swap û Control
.alt = Alt
.alt-left = Alt a çepê
.alt-right = Alt a rastê
.super = Super
.super-left = Super a çepê
.super-right = Super a rastê
.menu = Kilîta Menu
.backspace = Backspace
.escape = Escape
.swap-with-escape = Swap û Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Ne yek
manage-windows = Rêveberê çarçoveyan
.close = Çarçoveyê bigire
.maximize = Çarçoveyê mezin bike
@ -495,7 +524,7 @@ manage-windows = Rêveberê çarçoveyan
.toggle-sticky = Çarçoveyê daliqandî biguhêrîne
never = Tu car
install-additional-languages = Zimanên vebijêrkî saz bike
sound-output = Derketin
sound-output = Deran
.volume = Asta dengê deranê
.device = Amûra deranê
.level = Asta deranê
@ -666,7 +695,7 @@ default-apps = Sepanên berdest
.file-manager = Rêveberê pelê
.mail-client = Rajigera enameyê
.music = Muzîk
.video = Vîdyo
.video = Vîdiyo
.photos = Wêne
.calendar = Salname
.terminal = Termînal
@ -784,7 +813,7 @@ touchpad = Touchpad
xdg-entry-sound = Deng
xdg-entry-power-comment = Awayên hêzê û vebijêrkên parastina hêzê
xdg-entry-displays-keywords = COSMIC;Dîmender;
time = Dem & ziman
time = Dem & Ziman
xdg-entry-workspaces = Qadên xebatê
xdg-entry-date-time-comment = Herêma demê, sazkariyên demjimêra xweber û awaya demê
xdg-entry-x11-applications = Lihevhatina sepanên X11

View file

@ -781,3 +781,5 @@ xdg-entry-region-language-comment = 지역에 기반한 날짜와 시간 및 숫
xdg-entry-time-language-keywords = COSMIC;시스템;시간;날짜;지역;언어;
xdg-entry-sound-keywords = COSMIC;소리;오디오;알림;Pipewire;
xdg-entry-sound = 소리
xdg-entry-touchpad-comment = 터치패드 속도와 클릭 옵션 및 제스처
xdg-entry-wallpaper-comment = 바탕화면 이미지와 색상 및 슬라이드 쇼 옵션

View file

@ -30,6 +30,8 @@ vpn-error = VPN klaida
.connect = Nepavyko prisijungti prie VPN
.connection-editor = Ryšio rengyklės triktis
.connection-settings = Nepavyko gauti veikiančių ryšių nuostatų
.openvpn-config-path = Neteisingas OpenVPN konfigūracinio failo kelias
.openvpn-config-path-desc = Pasirinktas failas turi egzistuoti lokalioje failų sistemoje.
.updating-state = Nepavyko atnaujinti tinklo valdytojo būsenos
.wireguard-config-path = Klaidingas WireGuard nustatymų failo kelio vardas
.wireguard-config-path-desc = Pasirinktas failas turi būti lokalioje failų sistemoje.
@ -539,7 +541,7 @@ manage-windows = Valdyti langus
.toggle-sticky = Įjungti/išjungti lipnų langą
never = Niekada
install-additional-languages = Pridėti papildomas kalbas
settings = Nuostatos
settings = Nuostatai
sound-output = Išvestis
.volume = Išvesties garsumas
.device = Išvesties įrenginys
@ -787,17 +789,17 @@ xdg-entry-about-comment = Įrenginio pavadinimas, techninė informacija, operaci
xdg-entry-vpn-keywords = COSMIC;VPN;Ryšys;Prisijungimai;OpenVPN;OpenConnect;
xdg-entry-time-language-keywords = COSMIC;Sistema;Laikas;Data;Regionas;Kalba;
xdg-entry-input-keywords = COSMIC;Įvestis;Klaviatūra;Pelė;Pelytė;
xdg-entry-comment = COSMIC desktop aplikacijų nustatymai
xdg-entry-comment = COSMIC darbalaukio nuostatų programa
xdg-entry-notifications-comment = Režimas „Netrukdyti“, užrakinto ekrano pranešimai ir programų nuostatos
xdg-entry-applications = Programos
xdg-entry-sound-keywords = COSMIC;Garsas;Audio;Pranešimai;Pipewire;
xdg-entry-power-keywords = COSMIC;Energija;Baterija
xdg-entry-default-apps-keywords = COSMIC;Numatyta;Programa
xdg-entry-keywords = COSMIC;Nustatymai;
xdg-entry-keywords = COSMIC;Nuostatos;
xdg-entry-region-language-keywords = COSMIC;Regionas;Kalba;Data;Formatas;Laikas;Vietovė;Lokalizavimas;
xdg-entry-about = Apie
xdg-entry-input = Įvesties Įrenginiai
xdg-entry-applications-keywords = COSMIC;Numatytas;Aplikacija;Paleidimas;X11;Suderinamumas
xdg-entry-applications-keywords = COSMIC;Numatytieji;Programa;Paleistis;X11;Suderinamumas
xdg-entry-sound-comment = Įrenginių, pranešimų ir programų garso nuostatos
xdg-entry-touchpad-comment = Jutiklinis kilimėlio greitis, valdymo parinktys, gestai
xdg-entry-keyboard-keywords = COSMIC;Klaviatūra;Įvestis;Šaltinis;Spartieji klavišai;
@ -814,3 +816,8 @@ xdg-entry-date-time-comment = Laiko juosta, automatinės laikrodžio nuostatos i
xdg-entry-x11-applications = Suderinamumas su X11 programomis
xdg-entry-wired-comment = Laidiniai ryšiai ir ryšių profiliai
no-search-results = Joks tinklas neatitinka jūsų paieškos.
xdg-entry-appearance-comment = Akcentų spalvos ir stiliai
xdg-entry-window-management-keywords = COSMIC;Langas;Valdymas;Išklojimas;Super;Klavišas;
xdg-entry-window-management-comment = „Super“ klavišo veiksmas, langų valdymo parinktys, papildomos langų klojimo parinktys
workspaces-navigation = Judėjimas
.wraparound = Judėkite tarp pirmos ir paskutinės darbo sričių naudodamiesi sparčiaisias klavišais ir gestais

View file

@ -8,16 +8,16 @@ number = { $number }
xdg-entry-about = Over
xdg-entry-about-comment = Apparaatnaam, hardware-informatie, standaardinstellingen van het besturingssysteem
xdg-entry-a11y = Toegankelijkheden
xdg-entry-a11y-comment = Toegankelijkheidsinstellingen
xdg-entry-appearance = Weergave
xdg-entry-a11y = Toegankelijkheid
xdg-entry-a11y-comment = Schermlezer, vergrootglas, hoog contrast, en kleurenfilters
xdg-entry-appearance = Uiterlijk
xdg-entry-appearance-comment = Accentkleuren en thema's
xdg-entry-applications = Toepassingen
xdg-entry-applications-comment = Instellingen voor toepassingen beheren
xdg-entry-applications-comment = Standaardtoepassingen, autostart-toepassingen, en X11-compatibiliteitsinstellingen
xdg-entry-date-time = Datum en tijd
xdg-entry-date-time-comment = Tijdszone, automatische klokinstellingen en tijdformatering
xdg-entry-default-apps = Standaard toepassingen
xdg-entry-default-apps-comment = Standaard webbrowser, mailprogramma, bestandsbeheerder en andere apps
xdg-entry-date-time-comment = Tijdszone, automatische tijdinstellingen en tijdnotatie
xdg-entry-default-apps = Standaardtoepassingen
xdg-entry-default-apps-comment = Standaard webbrowser, e-mailclient, bestandsbeheerder, en andere toepassingen
xdg-entry-desktop = Bureaublad
xdg-entry-displays = Beeldschermen
xdg-entry-displays-comment = Weergaveopties, grafische modi en nachtlicht
@ -248,7 +248,6 @@ never = Nooit
## Desktop: Appearance
appearance = Uiterlijk
.desc = Accentkleuren en thema's
accent-color = Accentkleur
app-background = Vensterachtergrond
auto = Automatisch
@ -265,8 +264,8 @@ mode-and-colors = Kleuren en lichte/donkere modus
recent-colors = Recente kleuren
reset-to-default = Naar standaardinstellingen terugzetten
rgb = RGB
window-hint-accent = Accentkleur als visuele hint voor het actieve venster
window-hint-accent-toggle = Gebruik de accentkleur van het thema als visuele hint voor het actieve venster
window-hint-accent = Kleur van vensterfocus-aanduiding
window-hint-accent-toggle = Gebruik de accentkleur van het thema voor de vensterfocus-aanduiding
auto-switch = Automatisch wisselen tussen lichte en donkere modus
.sunrise = Wissel naar lichte modus bij zonsopgang
.sunset = Wissel naar donkere modus bij zonsondergang
@ -295,7 +294,7 @@ interface-density = Interfacedichtheid
.compact = Compact
.spacious = Ruim
window-management-appearance = Vensterbeheer
.active-hint = Grootte visuele hint voor het actieve venster
.active-hint = Grootte van vensterfocus-aanduiding
.gaps = Ruimte rondom getegelde vensters
### Experimental
@ -371,7 +370,7 @@ edge-gravity = Zwevende vensters worden door de randen van het scherm aangetrokk
window-controls = Vensterbeheer
.maximize = Maximaliseerknop tonen
.minimize = Minimaliseerknop tonen
.active-window-hint = Gebruik visuele hint voor het actieve venster
.active-window-hint = Vensterfocus-aanduiding tonen
focus-navigation = Focusbesturing
.focus-follows-cursor = Focus volgt de cursor
.focus-follows-cursor-delay = Vertraging voor focus volgt de cursor in ms
@ -871,3 +870,17 @@ sound-hd-audio = HD-audio
sound-device-profiles = Apparaatprofielen
amplification = Verhoog maximum volume
.desc = Hiermee kan het volume tot 150% worden verhoogd
xdg-entry-appearance-keywords = COSMIC;Accent;Kleur;Accentkleur;Icoon;Iconen;Lettertype;Thema
xdg-entry-a11y-keywords = COSMIC;Toegankelijkheid;A11y;Scherm;Lezer;Schermlezer;Vergrootglas;Contrast;Kleur;
xdg-entry-comment = Instellingentoepassing voor COSMIC
xdg-entry-keywords = COSMIC;Instellingen;
workspaces-navigation = Navigatie
.wraparound = Ga met sneltoetsen en gebaren ook tussen het eerste en laatste werkblad heen en weer
xdg-entry-bluetooth-comment = Bluetooth-apparaten beheren
xdg-entry-desktop-keywords = COSMIC;Bureaublad;
xdg-entry-about-keywords = COSMIC;Over;
xdg-entry-date-time-keywords = COSMIC;Tijd;Zone;Tijdzone;
xdg-entry-desktop-comment = Schermachtergrond, uiterlijk, paneel, dock, vensterbeheer, en werkbladinstellingen
xdg-entry-bluetooth-keywords = COSMIC;Bluetooth;
xdg-entry-default-apps-keywords = COSMIC;Standaard;Toepassing;Standaardtoepassing
xdg-entry-applications-keywords = COSMIC;Standaard;Opstart;Autostart;Toepassingen;Standaardtoepassingen;Autostarttoepassingen;X11;Compatibiliteit;

View file

@ -24,3 +24,6 @@ add-network = Apondre una ret
.profile = Apondre perfil
unknown = Desconegut
ok = D’acòrdi
light = Clar
dark = Fosc
appearance = Aparéncia

View file

@ -123,7 +123,7 @@ dock = ਡੌਕ
sound-hd-audio = HD ਆਡੀਓ
network-and-wireless = ਨੈੱਟਵਰਕ ਅਤੇ ਬੇਤਾਰ
username = ਵਰਤੋਂਕਾਰ ਦਾ ਨਾਂ
light = ਹਲਕਾ
light = ਫਿੱਕਾ
no-vpn = ਕੋਈ VPN ਕਨੈਕਸ਼ਨ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
start-segment = ਸ਼ੁਰੂ ਭਾਗ
desktop = ਡੈਸਕਟਾਪ
@ -149,7 +149,7 @@ terminate = ਖ਼ਤਮ
type-to-search = ਖੋਜਣ ਲਈ ਲਿਖੋ...
workspaces = ਵਰਕਸਪੇਸ
password-confirm = ਪਾਸਵਰਡ ਦੀ ਤਸਦੀਕ ਕਰੋ
applications = ਐਪਲੀਕੇਸ਼ਨਾਂ
applications = ਐਪਲੀਕੇਸ਼ਨ
dbus-connection-error = DBus ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ ਅਸਫ਼ਲ ਹੈ
system-controls = ਸਿਸਟਮ ਕੰਟਰੋਲ
dark = ਗੂੜ੍ਹਾ

View file

@ -294,6 +294,19 @@ style = Styl
.round = Okrągły
.slightly-round = Lekko zaokrąglony
.square = Kwadratowy
.frosted-glass = Oszronione szkło
.frosted-system-interface = Interfejs systemu
.frosted-system-interface-desc = Użyj oszronionego szkła do Programu startowego, biblioteki aplikacji, podglądu obszarów roboczych i elementów kontrolnych na ekranie
.frosted-windows = Okna
.frosted-windows-desc = Użyj oszronionego szkła w oknach i dialogach
.frosted-panels = Panele
.frosted-panels-desc = Użyj oszronionego szkła w panelach i doku
.frosted-applets = Aplety
.frosted-applets-desc = Użyj oszronionego szkła w apletach menu na panelu i doku
.frosted-thickness = Grubość szronu
.less = mniej
.more = więcej
.glass-opacity = Przeźroczystość szkła
interface-density = Zagęszczenie interfejsu
.comfortable = Wygodne
.compact = Zwarte
@ -366,7 +379,7 @@ super-key = Klawisz Super
.launcher = Otwórz program startowy
.workspaces = Otwórz obszary robocze
.applications = Otwórz aplikacje
.disable = Wyłącz
.none = Nie przypisany
edge-gravity = Pływające okna są przyciągane do pobliskich krawędzi
window-controls = Sterowanie oknami
.maximize = Pokaż przycisk maksymalizacji
@ -412,7 +425,7 @@ display = Wyświetlacz
.external = { $size } { $output } Zewnętrzny Wyświetlacz
.laptop = { $size } Wyświetlacz Laptopa
.options = Opcje Wyświetlacza
.refresh-rate = Prędkość odświeżania ekranu
.refresh-rate = Częstotliwość odświeżania ekranu
.resolution = Rozdzielczość
.scale = Skala
.additional-scale-options = Dodatkowe opcje skalowania
@ -564,6 +577,22 @@ keyboard-special-char = Wpis znaków specjalnych
.compose = Klawisz komponujący
.compose-desc = Klawisz komponujący umożliwia wprowadzanie różnorodnych liter. By z niego skorzystać, naciśnij go a następnie kombinację znaków. Na przykład, po naciśnięciu klawisza komponującego a następnie C i o wyjdzie ©, lub klawisz komponujący a następnie a i ' wyjdzie á.
.caps = Klawisz Caps Lock
.ctrl = Control
.ctrl-right = Prawy Ctrl
.swap-with-ctrl = Zamień z Control
.alt = Alt
.alt-left = Lewy Alt
.alt-right = Prawy Alt
.super = Super
.super-left = Lewy Super
.super-right = Prawy Super
.menu = Klawisz Menu
.backspace = Backspace
.escape = Escape
.swap-with-escape = Zamień zEscape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Nie Przypisany
keyboard-typing-assist = Pisanie
.repeat-rate = Tempo powtarzania
.repeat-delay = Opóźnienie powtarzania

View file

@ -202,11 +202,11 @@ close = Fechar
color-picker = Seletor de cores
copied-to-clipboard = Copiado para a área de transferência
copy-to-clipboard = Copiar para a área de transferência
dark = Escuro
dark = Estilo escuro
export = Exportar
hex = Hex
import = Importar
light = Claro
light = Estilo claro
mode-and-colors = Modo e cores
recent-colors = Cores recentes
reset-to-default = Restaurar padrão
@ -219,13 +219,13 @@ auto-switch = Alternar automaticamente entre os modos claro e escuro
.next-sunrise = Altera para o modo claro no próximo nascer do sol
.next-sunset = Altera para o modo escuro no próximo pôr do sol
container-background = Fundo do contêiner
.desc-detail = A cor de fundo do contêiner é usada para a barra lateral de navegação, a gaveta lateral, as caixas de diálogos e widgets similares. Por padrão, a cor de fundo do contêiner é automaticamente derivada do fundo da janela.
.desc-detail = A cor de fundo do contêiner é usada para a barra lateral de navegação, a gaveta lateral, as caixas de diálogo e widgets similares. Por padrão, a cor de fundo do contêiner é automaticamente derivada do fundo da janela.
.reset = Restaurar para automático
.desc = Usada para a barra lateral de navegação, a gaveta lateral, as caixas de diálogos e widgets similares
.desc = Usada para a barra lateral de navegação, a gaveta lateral, as caixas de diálogo e widgets similares
control-tint = Tonalidade dos componentes de controle
.desc = Usado para os fundos dos botões padrão, entradas de busca, entradas de texto e componentes similares
frosted = Efeito de vidro fosco na interface do sistema
.desc = Ativa desfoque de fundo ao painel, à dock, aos miniaplicativos, ao lançador e à biblioteca de aplicativos
.desc = Aplica um desfoque de fundo ao painel, à dock, aos miniaplicativos, ao lançador e à biblioteca de aplicativos
enable-export = Aplicar o tema atual para aplicativos GNOME
.desc = Nem todos os toolkits suportam trocar automaticamente. Aplicativos que não são de COSMIC podem precisar ser reiniciados após uma mudança de tema.
icon-theme = Tema de ícones
@ -236,6 +236,19 @@ style = Estilo
.round = Arredondado
.slightly-round = Levemente arredondado
.square = Quadrado
.frosted-glass = Vidro fosco
.frosted-system-interface = Interface do sistema
.frosted-system-interface-desc = Aplica efeito de vidro fosco ao lançador, à biblioteca de aplicativos, à visão geral dos espaços de trabalho e aos controles na tela
.frosted-windows = Janelas
.frosted-windows-desc = Aplica efeito de vidro fosco a janelas e caixas de diálogo
.frosted-panels = Painéis
.frosted-panels-desc = Aplica efeito de vidro fosco ao painel e à dock
.frosted-applets = Miniaplicativos
.frosted-applets-desc = Aplica efeito de vidro fosco aos menus dos miniaplicativos no painel e na dock
.frosted-thickness = Espessura do efeito fosco
.less = menor
.more = maior
.glass-opacity = Opacidade do vidro
interface-density = Densidade da interface
.comfortable = Confortável
.compact = Compacta
@ -308,7 +321,7 @@ super-key = Ação da tecla Super (Windows)
.launcher = Abrir o lançador
.workspaces = Abrir a visão geral dos espaços de trabalho
.applications = Abrir o menu de aplicativos
.disable = Desabilitar
.none = Nenhuma
edge-gravity = Janelas flutuantes gravitam em direção às bordas próximas
window-controls = Controles de janela
.maximize = Mostrar botão de maximizar
@ -446,7 +459,7 @@ connected-devices = Dispositivos conectados
.unknown = Dispositivo desconhecido
power-mode = Modo de energia
.battery = Economia de energia
.battery-desc = Baixo consumo de energia e desempenho silencioso
.battery-desc = Baixo consumo de energia e desempenho limitado
.balanced = Balanceado
.balanced-desc = Desempenho padrão e consumo de energia moderado
.performance = Alto desempenho
@ -492,8 +505,24 @@ keyboard-sources = Fontes de entrada
keyboard-special-char = Entrada de caracteres especiais
.alternate = Tecla de caracteres especiais
.compose = Tecla de composição
.compose-desc = A tecla de composição permite a inserção de uma grande variedade de caracteres. Para usá-la, pressione a tecla de composição seguida pela sequência de caracteres. Por exemplo, a tecla de composição seguida das teclas C e O irá inserir "©", enquanto a tecla de composição seguida das teclas A e ' irá inserir um "á".
.compose-desc = A tecla de composição permite a inserção de uma grande variedade de caracteres. Para usá-la, pressione a tecla de composição seguida pela sequência de caracteres. Por exemplo, a tecla de composição seguida de "C" e "o" irá inserir "©", enquanto a tecla de composição seguida de "a" e ‘ irá inserir "á".
.caps = Tecla Caps Lock
.ctrl = Ctrl
.ctrl-right = Ctrl direita
.swap-with-ctrl = Trocar com Ctrl
.alt = Alt
.alt-left = Alt esquerda
.alt-right = Alt direita
.super = Super
.super-left = Super esquerda
.super-right = Super direita
.menu = Tecla menu
.backspace = Backspace
.escape = Esc
.swap-with-escape = Trocar com Esc
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Nenhuma
keyboard-typing-assist = Digitação
.repeat-rate = Taxa de repetição
.repeat-delay = Taxa de atraso
@ -686,7 +715,7 @@ time-format = Formato de data e hora
.twenty-four = Formato de 24 horas
.show-seconds = Mostrar segundos
.first = Primeiro dia da semana
.show-date = Mostrar a data no painel
.show-date = Mostrar a data no miniaplicativo de hora
.friday = Sexta-feira
.saturday = Sábado
.sunday = Domingo

View file

@ -33,7 +33,7 @@ xdg-entry-notifications = Notificações
xdg-entry-notifications-comment = "Não Perturbe", notificações na tela de bloqueio e ajustes por aplicativo
xdg-entry-panel = Panel
xdg-entry-panel-comment = Barra superior com controles e menus
xdg-entry-power = Energia e Bateria
xdg-entry-power = Energia e bateria
xdg-entry-power-comment = Modos de energia e opções de poupança de energia
xdg-entry-region-language = Região e Idioma
xdg-entry-region-language-comment = Formatação de datas, horas e números baseados em sua região

View file

@ -16,22 +16,22 @@ close = Закрыть
color-picker = Выбор цвета
copied-to-clipboard = Скопировано в буфер обмена
copy-to-clipboard = Копировать в буфер обмена
dark = Тёмное
dark = Тёмная
export = Экспорт
hex = Hex
import = Импорт
light = Светлое
mode-and-colors = Цвета и оформление
light = Светлая
mode-and-colors = Цвета и тема оформления
recent-colors = Недавние цвета
reset-to-default = Вернуть по умолчанию
rgb = RGB
window-hint-accent = Цвет подсветки активного окна
window-hint-accent-toggle = Использовать акцентный цвет в качестве подсветки активного окна
auto-switch = Автоматически переключать оформление
.sunrise = Сменится на светлое при восходе
.sunset = Сменится на тёмное при закате
.next-sunrise = Сменится на светлое при следующем восходе
.next-sunset = Сменится на тёмное при следующем закате
auto-switch = Автоматически переключать тему
.sunrise = Сменится на светлую при восходе
.sunset = Сменится на тёмную при закате
.next-sunrise = Сменится на светлую при следующем восходе
.next-sunset = Сменится на тёмную при следующем закате
container-background = Фон контейнера
.desc-detail = Цвет фона контейнера используется для боковой панели навигации, бокового меню, диалоговых окон и других подобных виджетов. По умолчанию он автоматически определяется на основе фона окна.
.reset = Вернуть автоматический
@ -50,7 +50,20 @@ text-tint = Оттенок текста интерфейса
style = Стиль
.round = Округлый
.slightly-round = Слегка округлый
.square = Прямой
.square = Прямоугольный
.frosted-glass = Эффект матового стекла
.frosted-system-interface = Системный интерфейс
.frosted-system-interface-desc = Применяет эффект матового стекла к панели запуска, библиотеке приложений, обзору рабочих столов и экранным элементам управления
.frosted-windows = Окна
.frosted-windows-desc = Применяет эффект матового стекла к окнам и диалогам
.frosted-panels = Панели
.frosted-panels-desc = Применяет эффект матового стекла к панели и доку
.frosted-applets = Апплеты
.frosted-applets-desc = Применяет эффект матового стекла к меню апплетов на панели и в доке
.frosted-thickness = Степень матовости
.less = мин
.more = макс
.glass-opacity = Непрозрачность стекла
# interface density left out for now
window-management = Управление окнами
@ -116,7 +129,7 @@ super-key = Действие клавиши Super
.launcher = Открывает панель запуска
.workspaces = Открывает обзор рабочих столов
.applications = Открывает приложения
.disable = Отсутствует
.none = Отсутствует
window-controls = Элементы управления окнами
.minimize = Отображать кнопку «Свернуть»
.maximize = Отображать кнопку «Развернуть»
@ -337,6 +350,22 @@ keyboard-special-char = Ввод специальных символов
.compose = Клавиша Compose
.compose-desc = Клавиша Compose позволяет вводить широкое множество символов. Для этого нужно нажать на неё, а затем ввести последовательность «составляющих» символов. Например, нажатие Compose, латинских «o» и «c» введёт «©», а нажатие Compose, «з» и «=» — «₽».
.caps = Клавиша Caps Lock
.ctrl = Control
.ctrl-right = Правый Ctrl
.swap-with-ctrl = Замена Control
.alt = Alt
.alt-left = Левый Alt
.alt-right = Правый Alt
.super = Super
.super-left = Левый Super
.super-right = Правый Super
.menu = Клавиша «Меню»
.backspace = Backspace
.escape = Escape
.swap-with-escape = Замена Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Отсутствует
keyboard-typing-assist = Ввод текста
.repeat-rate = Скорость повторения
.repeat-delay = Задержка повторения

2
i18n/sat/cosmic_settings.ftl vendored Normal file
View file

@ -0,0 +1,2 @@
cancel = ᱵᱟᱹᱛᱤᱞ
save = ᱥᱟᱧᱪᱟᱣ

View file

@ -111,6 +111,19 @@ style = Stil
.round = Rund
.slightly-round = Lite rund
.square = Fyrkant
.frosted-glass = Frostat glas
.frosted-system-interface = Systemgränssnitt
.frosted-system-interface-desc = Tillämpar frostat glas på programstartare, programbibliotek, arbetsyteöversikten, kontroller som ritas upp på skärmen
.frosted-windows = Fönster
.frosted-windows-desc = Tillämpar frostat glas på fönster och dialogrutor
.frosted-panels = Paneler
.frosted-panels-desc = Tillämpar frostat glas på paneler och docka
.frosted-applets = Miniprogram
.frosted-applets-desc = Tillämpar frostat glas på miniprogrammenyer i panel och docka
.frosted-thickness = Frostens tjocklek
.less = mindre
.more = mer
.glass-opacity = Glasets ogenomskinlighet
interface-density = Gränssnittstäthet
.comfortable = Bekväm
.compact = Tät
@ -126,7 +139,7 @@ super-key = Åtgärd för Super-tangent
.launcher = Öppna programstartare
.workspaces = Öppna arbetsytor
.applications = Öppna program
.disable = Inaktivera
.none = Ingen
edge-gravity = Flytande fönster dras till närliggande kanter
## Testinställningar
@ -600,6 +613,22 @@ keyboard-special-char = Specialteckeninmatning
.compose = Compose-tangent
.compose-desc = Compose-tangenten tillåter en stor mängd olika tecken att matas in. För att göra det, tryck compose och sedan en teckensekvens. Om du t.ex. trycker på compose-tangenten och sedan C och o kommer du att mata in ©, medan compose-tangenten och sedan a och ' kommer att mata in á.
.caps = Caps Lock-tangent
.ctrl = Control
.ctrl-right = Höger Ctrl
.swap-with-ctrl = Byt med Control
.alt = Alt
.alt-left = Vänster Alt
.alt-right = Höger Alt
.super = Super
.super-left = Vänster Super
.super-right = Höger Super
.menu = Menytangent
.backspace = Backsteg
.escape = Escape
.swap-with-escape = Byt med Escape
.print-screen = Print Screen-tangent
.scroll-lock = Scroll Lock-tangent
.none = Inget
keyboard-typing-assist = Tangenttrycksrespons
.repeat-rate = Upprepningshastighet
.repeat-delay = Upprepningsfördröjning
@ -848,6 +877,8 @@ vpn-error = VPN Fel
.connect = Misslyckades att ansluta till VPN
.connection-editor = Anslutningsredigerare misslyckades
.connection-settings = Misslyckades att erhålla inställningar för aktiva anslutningar
.openvpn-config-path = Ogiltig sökväg for OpenVPN-konfiguration
.openvpn-config-path-desc = Vald fil måste ligga på ett lokalt filsystem.
.updating-state = Misslyckades att uppdatera tillstånd för 'network manager'
.wireguard-config-path = Ogiltig sökväg för Wireguard config
.wireguard-config-path-desc = Vald fil måste ligga på ett lokalt filsystem.

View file

@ -96,6 +96,19 @@ style = Стиль
.round = Заокруглений
.slightly-round = Трохи заокруглений
.square = Квадратний
.frosted-glass = Матове скло
.frosted-system-interface = Системні елементи
.frosted-system-interface-desc = Розмиття запускача, бібліотеки застосунків, режиму огляду й елементів керування
.frosted-windows = Вікна
.frosted-windows-desc = Розмиття вікон і діалогових вікон
.frosted-panels = Панелі
.frosted-panels-desc = Розмиття панелі й області завдань
.frosted-applets = Віджети
.frosted-applets-desc = Розмиття спливних меню віджетів
.frosted-thickness = Щільність
.less = Менше
.more = Більше
.glass-opacity = Прозорість скла
# interface density left out for now
window-management-appearance = Керування вікнами
.active-hint = Розмір підказки активного вікна
@ -158,7 +171,7 @@ super-key = Клавіша Super
.launcher = Відкриває запускач
.workspaces = Відкриває меню робочих просторів
.applications = Відкриває меню застосунків
.disable = Вимкнути
.none = Нічого
window-controls = Керування вікнами
.minimize = Показувати кнопку згортання
.maximize = Показувати кнопку розгортання
@ -303,6 +316,22 @@ keyboard-special-char = Введення спеціальних символів
.compose = Клавіша компонування
.compose-desc = Клавіша компонування дозволяє вводити широкий спектр символів. Щоб скористатися нею, натисніть Compose, а потім послідовність символів. Наприклад, клавіша Compose, а потім C і o введуть ©, а клавіша Compose, а потім a і ‘ введуть á.
.caps = Клавіша Caps Lock
.ctrl = Control
.ctrl-right = Правий Ctrl
.swap-with-ctrl = Поміняти місцями з Control
.alt = Alt
.alt-left = Лівий Alt
.alt-right = Правий Alt
.super = Super
.super-left = Лівий Super
.super-right = Правий Super
.menu = Клавіша контекстного меню
.backspace = Backspace
.escape = Escape
.swap-with-escape = Поміняти місцями з Escape
.print-screen = Print Screen
.scroll-lock = Scroll Lock
.none = Немає
keyboard-typing-assist = Введення
.repeat-rate = Частота повторів
.repeat-delay = Затримка повторів
@ -574,9 +603,11 @@ vpn = VPN
.select-file = Обрати файл налаштувань VPN
vpn-error = Помилка VPN
.config = Не вдалося додати конфігурацію VPN
.connect = Не вдалося з'єднатися з VPN
.connect = Не вдалося з’єднатися з VPN
.connection-editor = Помилка редактора з’єднань
.connection-settings = Не вдалося отримати налаштування активних з’єднань
.openvpn-config-path = Неправильний шлях до файлу конфігурації OpenVPN
.openvpn-config-path-desc = Вибраний файл повинен знаходитися в локальній файловій системі.
.updating-state = Не вдалося оновити стан мережевого менеджера
.wireguard-config-path = Недійсний шлях до профілю WireGuard
.wireguard-config-path-desc = Обраний файл має бути локальним.
@ -902,3 +933,7 @@ xdg-entry-a11y-comment = Екранний читач, лупа, високий
no-search-results = Пошук не дав результатів.
workspaces-navigation = Навігація
.wraparound = Перехід між першим і останнім робочим простором сполученнями клавіш і жестами
bluetooth-display-pin = Злучення Bluetooth
.description = Введіть PIN-код на { $device }, далі натисніть Enter
bluetooth-display-passkey = Злучення Bluetooth
.description = Введіть код для створення пари на { $device }, далі натисніть Enter

View file

@ -284,7 +284,7 @@ container-background = 容器背景
.desc = 用于导航侧栏、侧边抽屉、对话框等小部件
control-tint = 控件色调
.desc = 用于标准按钮、搜索输入框、文本输入框等组件的背景
frosted = 系统界面磨砂玻璃效果
frosted = 系统界面磨砂玻璃效应
.desc = 对面板、程序坞、小部件、启动器和应用程序库应用背景模糊效果
enable-export = 将此主题应用到 GNOME 应用程序
.desc = 并非所有工具包都支持自动切换。非 COSMIC 应用程序可能需要在主题更改后重新启动。
@ -296,6 +296,19 @@ style = 样式
.round = 圆角
.slightly-round = 微圆角
.square = 方角
.frosted-glass = 磨砂玻璃效应
.frosted-system-interface = 系统界面
.frosted-system-interface-desc = 将磨砂玻璃应用于启动器、应用程序库、 工作区总览、屏幕控件
.frosted-windows = 窗口
.frosted-windows-desc = 将磨砂玻璃应用于窗口和对话框
.frosted-panels = 面板
.frosted-panels-desc = 将磨砂玻璃应用于面板和程序坞
.frosted-applets = 小部件
.frosted-applets-desc = 将磨砂玻璃应用于处在面板与程序坞的小部件
.frosted-thickness = 磨砂厚度
.less = 少
.more = 多
.glass-opacity = 玻璃不透明度
interface-density = 界面密度
.comfortable = 适中
.compact = 紧凑
@ -335,8 +348,8 @@ small = 小
start-segment = 开始区段
panel-appearance = 外观
.match = 匹配桌面
.light = 亮色
.dark = 暗色
.light = 亮色模式
.dark = 暗色模式
panel-behavior-and-position = 行为和位置
.autohide = 自动隐藏面板
.dock-autohide = 自动隐藏程序坞
@ -368,7 +381,7 @@ super-key = Super 键动作
.launcher = 打开启动器
.workspaces = 打开工作区
.applications = 打开应用程序
.disable = 禁用
.none = 无
edge-gravity = 悬浮窗口吸附到附近边缘
window-controls = 窗口控制
.maximize = 显示最大化按钮
@ -552,6 +565,22 @@ keyboard-special-char = 特殊字符输入
.compose = 组合键 (Compose Key)
.compose-desc = 组合键允许输入种类繁多的字符。使用方法:按下组合键,然后依次输入字符序列。例如,按下组合键后依次输入 C 和 o 可输入 ©,而按下组合键后依次输入 a 和 ‘ 则可输入 á。
.caps = 大写锁定键
.ctrl = Control 键
.ctrl-right = 右 Control 键
.swap-with-ctrl = Control 键互换
.alt = Alt 键
.alt-left = 左 Alt 键
.alt-right = 右 Alt 键
.super = Super 键
.super-left = 左 Super 键
.super-right = 右 Super 键
.menu = Menu 键
.backspace = 退格键
.escape = Escape 键
.swap-with-escape = Escape 键互换
.print-screen = Print Screen 键
.scroll-lock = Scroll Lock 键
.none = 无
keyboard-typing-assist = 打字
.repeat-rate = 重复率
.repeat-delay = 重复延迟
@ -917,7 +946,7 @@ xdg-entry-window-management-keywords = COSMIC;窗口;管理;平铺;Super;键;
xdg-entry-displays-keywords = COSMIC;显示器;屏幕;
no-search-results = 无网络符合您的搜索。
workspaces-navigation = 导航
.wraparound = 使用快捷键和手势在第一个和最后个工作区间切换
.wraparound = 使用快捷键和手势在第一个和最后一个工作区间切换
bluetooth-display-passkey = 蓝牙配对
.description = 请在 { $device } 上输入以下密钥,然后按回车键
bluetooth-display-pin = 蓝牙配对

View file

@ -12,7 +12,7 @@ add-vpn = 新增 VPN
airplane-on = 飛航模式已開啟。
cable-unplugged = 網路線已拔除
connect = 連線
connected = 已經連線
connected = 已連線
connecting = 連線中…
disconnect = 中斷連線
forget = 忘記此網路
@ -70,7 +70,7 @@ vpn-error = VPN 錯誤
使用 nmcli 設定 VPN { $field ->
*[username] 使用者名稱
[password] 密碼
[password-flags] 密碼選項
[password-flags] 密碼旗標
}失敗
wired = 有線網路
.adapter = 有線網路卡 { $id }
@ -225,7 +225,7 @@ container-background = 容器背景
control-tint = 控制元件色調
.desc = 使用於標準按鈕、搜尋輸入、文字輸入和類似元件的背景
frosted = 系統介面呈現磨砂玻璃的透明效果
.desc = 將磨砂玻璃的透明效果套用至面板、程式塢、工具程式、啟動器及程式庫
.desc = 將磨砂玻璃的透明效果套用至面板、Dock、小程式、啟動器及程式庫
enable-export = 將目前主題套用至 GNOME 應用程式
.desc = 並非所有工具組都支援自動切換。非 COSMIC 應用程式在主題變更後可能需要重新啟動。
icon-theme = 圖示主題
@ -234,8 +234,21 @@ text-tint = 介面文字色調
.desc = 用來衍生出介面文字的顏色,其有足夠對比於各種表面
style = 樣式
.round = 圓角
.slightly-round = 略為圓角
.slightly-round = 略微圓角
.square = 直角
.frosted-glass = 磨砂玻璃
.frosted-system-interface = 系統介面
.frosted-system-interface-desc = 將磨砂玻璃的透明效果套用至啟動器、程式庫、工作區總覽及螢幕控制
.frosted-windows = 視窗
.frosted-windows-desc = 將磨砂玻璃的透明效果套用至視窗及對話方塊
.frosted-panels = 面板
.frosted-panels-desc = 將磨砂玻璃的透明效果套用至面板及 Dock
.frosted-applets = 小程式
.frosted-applets-desc = 將磨砂玻璃的透明效果套用至處在面板和 Dock 的小程式選單
.frosted-thickness = 磨砂厚度
.less = 少
.more = 多
.glass-opacity = 玻璃不透明度
interface-density = 介面密度
.comfortable = 舒適
.compact = 緊湊
@ -258,19 +271,19 @@ notifications = 通知
## Desktop: Panel
panel = 面板
add = 添增
add-applet = 新增工具程式
add = 新增
add-applet = 新增小程式
all = 全部
applets = 工具程式
applets = 小程式
center-segment = 中間位置
end-segment = 末尾位置
large = 大
no-applets-found = 找不到工具程式...
no-applets-found = 找不到小程式...
panel-bottom = 底部
panel-left = 左側
panel-right = 右側
panel-top = 頂部
search-applets = 搜尋工具程式...
panel-top = 頂端
search-applets = 搜尋小程式...
small = 小
start-segment = 起始位置
panel-appearance = 外觀
@ -279,27 +292,27 @@ panel-appearance = 外觀
.dark = 深色
panel-behavior-and-position = 行為和位置
.autohide = 自動隱藏面板
.dock-autohide = 自動隱藏程式塢
.dock-autohide = 自動隱藏 Dock
.position = 螢幕上的位置
.display = 顯示在螢幕上
.display = 在顯示器上顯示
panel-style = 樣式
.anchor-gap = 面板與螢幕邊緣的間距
.dock-anchor-gap = 程式塢與螢幕邊緣的間距
.dock-anchor-gap = Dock 與螢幕邊緣的間距
.extend = 將面板延伸至螢幕邊緣
.dock-extend = 將程式塢延伸至螢幕邊緣
.dock-extend = 將 Dock 延伸至螢幕邊緣
.appearance = 外觀
.size = 尺寸
.background-opacity = 背景透明度
.background-opacity = 背景不透明度
panel-applets = 配置
.dock-desc = 配置程式塢工具程式
.desc = 配置工具程式面板
.dock-desc = 配置 Dock 小程式
.desc = 配置面板小程式
panel-missing = 面板設定遺失
.desc = 面板設定檔案因使用自訂設定而遺失,或已損毀。
.fix = 重設為預設值
## Desktop: Dock
dock = 程式塢
dock = Dock
## Desktop: Window management
@ -308,7 +321,7 @@ super-key = Super 鍵動作
.launcher = 開啟啟動器
.workspaces = 開啟工作區
.applications = 開啟應用程式
.disable = 停用
.none = 無
edge-gravity = 浮動視窗吸附至附近邊緣
window-controls = 視窗控制項
.maximize = 顯示最大化按鈕
@ -347,16 +360,16 @@ color = 色彩
.profile = 色彩設定檔
.sidebar = 色彩設定檔
.temperature = 色溫
display = 顯示螢幕
.arrangement = 螢幕排列
.arrangement-desc = 拖曳螢幕來更改排列方式
.enable = 啟用顯示螢幕
.external = { $size } { $output } 外接顯示螢幕
.laptop = { $size } 筆電顯示螢幕
.options = 顯示螢幕螢幕選項
.refresh-rate = 螢幕更新頻率
display = 顯示器
.arrangement = 顯示器排列
.arrangement-desc = 拖曳顯示器以重新排列
.enable = 啟用顯示器
.external = { $size } { $output } 的外接顯示器
.laptop = { $size } 筆電顯示器
.options = 顯示選項
.refresh-rate = 更新率
.resolution = 解析度
.scale = 縮放大小
.scale = 縮放
.additional-scale-options = 其他縮放選項
mirroring = 投影
.id = 正在投影 { $id }
@ -380,7 +393,7 @@ orientation = 螢幕方向
.rotate-90 = 旋轉 90 度
.rotate-180 = 旋轉 180 度
.rotate-270 = 旋轉 270 度
vrr = 可變刷新率
vrr = 可變更新率
.enabled = 已啟用
.force = 總是
.auto = 自動
@ -395,7 +408,7 @@ dialog = 對話框
## Sound
sound = 音響
sound = 音效
sound-output = 輸出
.volume = 輸出音量
.device = 輸出裝置
@ -487,11 +500,27 @@ keyboard-sources = 輸入法
.view-layout = 檢視鍵盤布局
.remove = 移除
.add = 新增輸入法
keyboard-special-char = 特殊字輸入
.alternate = 進階按鍵
.compose = 組合按鍵
.compose-desc = 組合按鍵允許輸入多樣字元。要使用它,請按組合按鍵,再按字元依序。例如,按組合按鍵接著按 C 和 o 鍵,將輸入 ©;按組合按鍵接著按 a 和 ‘ 鍵,將輸入 á。
keyboard-special-char = 特殊字元輸入
.alternate = 替代字元鍵
.compose = 組合鍵
.compose-desc = 組合鍵可輸入多種字元。使用時,請先按下組合鍵,然後輸入一串字元。例如,先按下組合鍵,接著輸入 C 和 o 即可輸入 ©;而先按下組合鍵,接著輸入 a 和 ‘ 則可輸入 á。
.caps = 大寫鎖定鍵
.ctrl = Ctrl 鍵
.ctrl-right = 右側 Ctrl 鍵
.swap-with-ctrl = 與 Ctrl 鍵交換
.alt = Alt 鍵
.alt-left = 左側 Alt 鍵
.alt-right = 右側 Alt 鍵
.super = Super 鍵
.super-left = 左 Super 鍵
.super-right = 右 Super 鍵
.menu = 選單鍵
.backspace = Backspace 鍵
.escape = Esc 鍵
.swap-with-escape = 與 Esc 鍵互換
.print-screen = Print Screen 鍵
.scroll-lock = 捲動鎖定鍵
.none = 無
keyboard-typing-assist = 輸入
.repeat-rate = 重複速率
.repeat-delay = 重複延遲
@ -509,7 +538,7 @@ show-extended-input-sources = 顯示延伸輸入來源
keyboard-shortcuts = 鍵盤快速鍵
.desc = 顯示與修改快速鍵
add-another-keybinding = 添加另一個按鍵組合
add-another-keybinding = 新增另一個鍵盤快速鍵
cancel = 取消
command = 指令
custom = 自訂
@ -600,9 +629,9 @@ move-windows = 移動視窗
.send-to-next-workspace = 將視窗移至下一個工作區
system-shortcut = 系統
.app-library = 開啟應用程式庫
.brightness-down = 降低螢幕亮度
.brightness-up = 提高螢幕亮度
.display-toggle = 切換內部顯示螢幕
.brightness-down = 降低顯示器亮度
.brightness-up = 提高顯示器亮度
.display-toggle = 切換內部顯示器
.home-folder = 開啟家目錄
.keyboard-brightness-down = 降低鍵盤亮度
.keyboard-brightness-up = 提高鍵盤亮度
@ -615,7 +644,7 @@ system-shortcut = 系統
.play-next = 下一首
.play-prev = 上一首
.poweroff = 關機
.screenshot = 螢幕擷圖
.screenshot = 擷取螢幕畫面
.suspend = 休眠
.terminal = 開啟終端機
.touchpad-toggle = 切換觸控板
@ -685,7 +714,7 @@ time-format = 日期與時間格式
.twenty-four = 24 小時制
.show-seconds = 顯示秒數
.first = 每週第一天
.show-date = 在時間工具程式中顯示日期
.show-date = 在時間小程式中顯示日期
.friday = 星期五
.saturday = 星期六
.sunday = 星期日
@ -797,9 +826,9 @@ full-name = 全名
invalid-username = 無效的使用者名稱
password-mismatch = 密碼與確認密碼必須相符
save = 儲存
xdg-entry-dock-comment = 可選的應用程式和工具程式的工具欄
xdg-entry-dock = 程式塢
xdg-entry-displays-keywords = COSMIC;顯示器;熒幕;
xdg-entry-dock-comment = 可選應用程式和小程式的工具列
xdg-entry-dock = Dock
xdg-entry-displays-keywords = COSMIC;顯示器;螢幕;
xdg-entry-displays-comment = 管理顯示器設定
xdg-entry-displays = 顯示器
xdg-entry-desktop-keywords = COSMIC;桌面;
@ -824,21 +853,21 @@ xdg-entry-about-keywords = COSMIC;關於
xdg-entry-about-comment = 裝置名稱、硬體資訊、作業系統預設
xdg-entry-about = 關於
xdg-entry-keywords = COSMIC;設定;
xdg-entry-dock-keywords = COSMIC;程式塢;面板;工具程式
xdg-entry-dock-keywords = COSMIC;Dock;面板;小程式
xdg-entry-region-language = 地區與語言
xdg-entry-notifications-keywords = COSMIC;通知;鎖定;
xdg-entry-power = 電源與電池
xdg-entry-panel-keywords = COSMIC;面板;工具程式
xdg-entry-panel-keywords = COSMIC;面板;小程式
xdg-entry-panel = 面板
xdg-entry-notifications = 通知
xdg-entry-startup-apps = 開機啟動應用程式
xdg-entry-region-language-comment = 依據您所在的地區設定日期、時間和數字的格式
xdg-entry-notifications-comment = 勿擾模式、鎖定螢幕通知、及各個應用程式設定
xdg-entry-sound-keywords = COSMIC;音響;音訊;提醒;Pipewire;
xdg-entry-sound-keywords = COSMIC;Sound;Audio;Alert;Pipewire;音效;音訊;提醒;
xdg-entry-power-keywords = COSMIC;電源;電池
xdg-entry-region-language-keywords = COSMIC;地區;語言;日期;格式;時間;本地;本地化;
xdg-entry-sound-comment = 裝置、提醒和應用程式的音訊設定
xdg-entry-panel-comment = 主要系統列, 用於選單和工具程式
xdg-entry-panel-comment = 用於選單和小程式的主要系統列
xdg-entry-sound = 音效
xdg-entry-power-comment = 電源模式和省電選項
xdg-entry-network-keywords = COSMIC;網路;無線;WiFi;VPN;
@ -853,7 +882,7 @@ xdg-entry-keyboard = 鍵盤
xdg-entry-input-keywords = COSMIC;輸入;鍵盤;滑鼠;
xdg-entry-input-comment = 鍵盤與滑鼠設定
xdg-entry-input = 輸入裝置
xdg-entry-desktop-comment = 桌布、外觀、面板、程式塢、視窗管理和工作區設定
xdg-entry-desktop-comment = 桌布、外觀、面板、Dock、視窗管理和工作區設定
xdg-entry-default-apps-comment = 預設網頁瀏覽器、郵件用戶端、檔案管理器和其他應用程式
xdg-entry-touchpad = 觸控板
xdg-entry-wired = 有線連接
@ -870,7 +899,7 @@ xdg-entry-system-keywords = COSMIC;系統;資訊;帳號;韌體;
xdg-entry-wireless-keywords = COSMIC;WiFi;Wi-Fi;網路;連接;
xdg-entry-wireless-comment = Wi-Fi 連接與連接設定檔案
xdg-entry-wallpaper = 背景圖片
xdg-entry-users-comment = 身份驗證與使用者帳號
xdg-entry-users-comment = 身分驗證與使用者帳號
xdg-entry-wallpaper-comment = 背景圖片、顏色及投影片選項
xdg-entry-wireless = Wi-Fi
xdg-entry-workspaces-keywords = COSMIC;工作區;方向;總覽;螢幕;
@ -905,7 +934,7 @@ workspaces-overview = 工作區總覽
.none = 無
.launcher = 開啟啟動器
.applications = 開啟應用程式
place-here = 在此放置工具程式
place-here = 在此放置小程式
shadow-and-corners = 視窗陰影與角型
shadows-tiling = 平鋪視窗
.clip = 符合系統角型

View file

@ -5,7 +5,7 @@ edition = "2024"
[dependencies]
derive_setters = "0.1.9"
regex = "1.12.3"
regex = "1.13.1"
slotmap = "1.1.1"
cosmic = { workspace = true }
downcast-rs = "2.0.2"

View file

@ -5,7 +5,7 @@ edition = "2024"
rust-version.workspace = true
[dependencies]
futures = "0.3.32"
futures = "0.3.33"
intmap = "3.1.3"
tokio = { workspace = true, features = ["time"] }
tracing = "0.1.44"

View file

@ -3,7 +3,9 @@
use std::sync::Arc;
use cosmic_settings_audio_client::{self as audio_client, Availability, ProfileInfo, RouteInfo};
use cosmic_settings_audio_client::{
self as audio_client, Availability, PlaybackInfo, ProfileInfo, RouteInfo,
};
use intmap::IntMap;
pub type DeviceId = u32;
@ -18,6 +20,7 @@ pub struct Model {
pub device_profiles_active: IntMap<DeviceId, ProfileInfo>,
pub device_routes: IntMap<DeviceId, Vec<RouteInfo>>,
pub node_devices: IntMap<NodeId, Option<u32>>,
pub playback: Vec<Playback>,
pub sinks: Nodes,
pub sources: Nodes,
pub active_sink: ActiveNode,
@ -27,6 +30,43 @@ pub struct Model {
pub text: Text,
}
#[derive(Clone, Debug)]
pub struct Playback {
pub id: NodeId,
pub info: PlaybackInfo,
pub mute: bool,
pub volume: u32,
pub balance: Option<f32>,
/// Explicitly selected output. `None` means the playback follows the default sink.
pub sink_id: Option<NodeId>,
}
impl Playback {
pub fn name(&self) -> &str {
[
self.info.application_name.as_deref(),
self.info.application_id.as_deref(),
self.info.media_name.as_deref(),
Some(self.info.node_name.as_str()),
]
.into_iter()
.flatten()
.find(|value| !value.is_empty())
.unwrap_or_default()
}
pub fn description(&self) -> Option<&str> {
self.info
.media_name
.as_deref()
.filter(|description| !description.is_empty() && *description != self.name())
}
pub fn selected_sink(&self, default_sink: Option<NodeId>) -> Option<NodeId> {
self.sink_id.or(default_sink)
}
}
#[derive(Debug, Default)]
pub struct Text {
pub hd_audio: String,
@ -106,7 +146,9 @@ impl Model {
tracing::info!(target: "sound", ?event, "update");
match event {
audio_client::Event::NodeMute(node_id, mute) => {
if let Some(pos) = self.sinks.id.iter().position(|id| node_id == *id) {
if let Some(playback) = self.playback.iter_mut().find(|item| item.id == node_id) {
playback.mute = mute;
} else if let Some(pos) = self.sinks.id.iter().position(|id| node_id == *id) {
self.sinks.mute[pos] = mute;
if self.sinks.active == Some(pos) {
self.active_sink.mute = mute;
@ -120,7 +162,10 @@ impl Model {
}
audio_client::Event::NodeVolume(node_id, volume, balance) => {
if let Some(pos) = self.sinks.id.iter().position(|id| node_id == *id) {
if let Some(playback) = self.playback.iter_mut().find(|item| item.id == node_id) {
playback.volume = volume;
playback.balance = balance;
} else if let Some(pos) = self.sinks.id.iter().position(|id| node_id == *id) {
self.sinks.volume[pos] = volume;
self.sinks.balance[pos] = balance;
if self.default_sink.as_ref().is_some_and(|&id| id == node_id)
@ -304,6 +349,33 @@ impl Model {
}
}
audio_client::Event::Playback(node_id, info) => {
if let Some(playback) = self.playback.iter_mut().find(|item| item.id == node_id) {
playback.info = info;
} else {
self.playback.push(Playback {
id: node_id,
info,
mute: false,
volume: 0,
balance: None,
sink_id: None,
});
}
self.playback
.sort_by(|a, b| a.name().cmp(b.name()).then(a.id.cmp(&b.id)));
}
audio_client::Event::PlaybackTarget(playback_id, sink_id) => {
if let Some(playback) = self
.playback
.iter_mut()
.find(|playback| playback.id == playback_id)
{
playback.sink_id = sink_id;
}
}
audio_client::Event::ActiveRoute(device_id, _index, route) => {
self.update_device_names(device_id, &route);
}
@ -338,6 +410,12 @@ impl Model {
audio_client::Event::RemoveNode(node_id) => {
self.node_devices.remove(node_id);
self.playback.retain(|item| item.id != node_id);
for playback in &mut self.playback {
if playback.sink_id == Some(node_id) {
playback.sink_id = None;
}
}
if !self.sinks.remove(node_id) {
self.sources.remove(node_id);

View file

@ -13,10 +13,10 @@ fast_image_resize = { version = "6", features = [
"image",
] }
futures-lite = "2.6.1"
futures-util = "0.3.32"
futures-util = "0.3.33"
image.workspace = true
infer = "0.19.0"
jxl-oxide = { version = "0.12.5", features = ["image"] }
jxl-oxide = { version = "0.12.6", features = ["image"] }
tokio = { workspace = true, features = ["sync"] }
tracing = "0.1.44"
walkdir = "=2.5.0"

View file

@ -4,7 +4,7 @@ use fast_image_resize::SrcCropping;
use futures_lite::Stream;
use futures_util::StreamExt;
use image::imageops::FilterType;
use image::{DynamicImage, ImageBuffer, Rgba, RgbaImage};
use image::{DynamicImage, ImageBuffer, ImageDecoder, ImageResult, Limits, Rgba, RgbaImage};
use jxl_oxide::integration::JxlDecoder;
use std::borrow::Cow;
use std::collections::HashMap;
@ -134,7 +134,7 @@ pub async fn load_each_from_path(
})
.buffered(4)
.filter_map(|value| async { value.ok().flatten() })
.take(100);
.take(500);
Box::pin(future)
}
@ -304,7 +304,7 @@ fn open_image(input_buffer: &mut Vec<u8>, path: &Path) -> Option<DynamicImage> {
return None;
};
match image_decoder.decode() {
match decode(image_decoder) {
Ok(image) => Some(image),
Err(why) => {
tracing::error!(?path, ?why, "image decode failed");
@ -313,6 +313,24 @@ fn open_image(input_buffer: &mut Vec<u8>, path: &Path) -> Option<DynamicImage> {
}
}
fn decode(
mut reader: image::ImageReader<std::io::Cursor<&mut Vec<u8>>>,
) -> ImageResult<DynamicImage> {
let mut limits = Limits::default();
reader.limits(limits.clone());
let mut decoder = reader.into_decoder()?;
let orientation = decoder.orientation()?;
limits.reserve(decoder.total_bytes())?;
decoder.set_limits(limits)?;
let mut image = DynamicImage::from_decoder(decoder)?;
image.apply_orientation(orientation);
Ok(image)
}
// https://users.rust-lang.org/t/how-to-trim-image-to-circle-image-without-jaggy/70374/2
fn round(img: &mut image::ImageBuffer<image::Rgba<u8>, Vec<u8>>, radius: [u32; 4]) {
let (width, height) = img.dimensions();
@ -434,11 +452,19 @@ fn border_radius(
pub fn decode_jpegxl(path: &std::path::Path) -> eyre::Result<DynamicImage> {
let file = File::open(path).map_err(|why| eyre!("failed to open jxl image file: {why}"))?;
let decoder =
let mut decoder =
JxlDecoder::new(file).map_err(|why| eyre!("failed to read jxl image header: {why}"))?;
image::DynamicImage::from_decoder(decoder)
.map_err(|why| eyre!("failed to decode jxl image: {why}"))
let orientation = decoder
.orientation()
.map_err(|why| eyre!("failed to read jxl image orientation: {why}"))?;
let mut image = image::DynamicImage::from_decoder(decoder)
.map_err(|why| eyre!("failed to decode jxl image: {why}"))?;
image.apply_orientation(orientation);
Ok(image)
}
/// Use `fast-image-resize` crate for faster thumbnail generation.

View file

@ -12,5 +12,5 @@ iced_futures = { git = "https://github.com/pop-os/libcosmic" }
num-derive = "0.4.2"
num-traits = "0.2.19"
sctk.workspace = true
tokio = "1.49.0"
tokio = "1.53.1"
tracing = "0.1.44"

View file

@ -8,8 +8,8 @@ publish = true
[dependencies]
cosmic-dbus-a11y = { git = "https://github.com/pop-os/dbus-settings-bindings" }
futures = "0.3.32"
futures = "0.3.33"
iced_futures = { git = "https://github.com/pop-os/libcosmic" }
tokio = { version = "1.49.0", features = ["sync", "time"] }
tokio = { version = "1.53.1", features = ["sync", "time"] }
tracing = "0.1.44"
zbus = "5.13"
zbus = "5.18"

View file

@ -7,8 +7,8 @@ rust-version.workspace = true
publish = true
[dependencies]
futures = "0.3.32"
futures = "0.3.33"
iced_futures = { git = "https://github.com/pop-os/libcosmic" }
log = "0.4.29"
rustix = "1.1.3"
tokio = "1.49.0"
log = "0.4.33"
rustix = "1.1.4"
tokio = "1.53.1"

View file

@ -8,8 +8,8 @@ publish = true
[dependencies]
bluez-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings" }
futures = "0.3.32"
futures = "0.3.33"
iced_futures = { git = "https://github.com/pop-os/libcosmic" }
tokio = "1.49.0"
tokio = "1.53.1"
tracing = "0.1.44"
zbus = "5.13.2"
zbus = "5.18.0"

View file

@ -6,9 +6,9 @@ rust-version.workspace = true
publish = true
[dependencies]
futures = "0.3.32"
futures = "0.3.33"
iced_futures = { git = "https://github.com/pop-os/libcosmic" }
log = "0.4.29"
tokio = "1.49.0"
tokio-stream = "0.1.18"
zbus = "5.13.2"
log = "0.4.33"
tokio = "1.53.1"
tokio-stream = "0.1.19"
zbus = "5.18.0"

View file

@ -7,10 +7,10 @@ rust-version.workspace = true
publish = true
[dependencies]
futures = "0.3.32"
futures = "0.3.33"
iced_futures = { git = "https://github.com/pop-os/libcosmic" }
log = "0.4.29"
tokio = "1.49.0"
tokio-stream = "0.1.18"
log = "0.4.33"
tokio = "1.53.1"
tokio-stream = "0.1.19"
upower_dbus = { git = "https://github.com/pop-os/dbus-settings-bindings" }
zbus = "5.13.2"
zbus = "5.18.0"