chore: remove graphics modes and night light

This commit is contained in:
Vukašin Vojinović 2024-05-13 22:20:40 +02:00 committed by GitHub
parent c4224ff36f
commit bed629563e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 122 additions and 678 deletions

View file

@ -1,245 +0,0 @@
// Copyright 2023 System76 <info@system76.com>
// SPDX-License-Identifier: GPL-3.0-only
use super::{Message, NightLight};
use crate::pages;
use cosmic::iced_core::{Alignment, Length, Padding};
use cosmic::prelude::CollectionWidget;
use cosmic::widget::{button, column, icon, list_column, row, toggler};
use cosmic::{Apply, Command, Element};
use std::sync::Arc;
pub const INTEGRATED: &str = "integrated";
pub const NVIDIA: &str = "nvidia";
pub const HYBRID: &str = "hybrid";
pub const COMPUTE: &str = "compute";
pub async fn fetch() -> Option<Arc<std::io::Result<Mode>>> {
let switchable = tokio::process::Command::new("system76-power")
.args(["graphics", "switchable"])
.output()
.await
.map(|output| {
std::str::from_utf8(&output.stdout).map_or(false, |text| text.trim() == "switchable")
});
match switchable {
Ok(false) => None,
Ok(true) => Some(Arc::new(
tokio::process::Command::new("system76-power")
.arg("graphics")
.output()
.await
.and_then(|output| {
if let Ok(mut mode) = std::str::from_utf8(&output.stdout) {
mode = mode.trim();
if mode == COMPUTE {
Ok(Mode::Compute)
} else if mode == HYBRID {
Ok(Mode::Hybrid)
} else if mode == INTEGRATED {
Ok(Mode::Integrated)
} else if mode == NVIDIA {
Ok(Mode::Nvidia)
} else {
Err(std::io::Error::new(
std::io::ErrorKind::InvalidData,
"unknown graphics mode",
))
}
} else {
Err(std::io::Error::new(
std::io::ErrorKind::InvalidData,
"system76-power output was not UTF-8",
))
}
}),
)),
Err(why) => Some(Arc::new(Err(why))),
}
}
pub fn view(
mode: &'static str,
description: &'static str,
button: Option<(&'static str, Message)>,
) -> Element<'static, Message> {
let theme = cosmic::theme::active();
let theme = theme.cosmic();
let has_checkmark = button.is_none();
let content = column::with_capacity(3)
.padding(Padding::from([theme.space_xxs(), theme.space_l()]))
.push(cosmic::widget::text::body(mode))
.push(cosmic::widget::text::caption(description))
.push(cosmic::widget::Space::new(Length::Fill, 12))
.push_maybe(button.map(|(text, message)| {
button::text(text)
.style(cosmic::theme::Button::Link)
.trailing_icon(icon::from_name("go-next-symbolic").size(16))
.padding(0)
.on_press(message)
}));
if has_checkmark {
row::with_capacity(2)
.align_items(Alignment::Center)
.push(content)
.push(icon::from_name("object-select-symbolic").size(24))
.apply(Element::from)
.apply(cosmic::widget::list::container)
.into()
} else {
cosmic::widget::list::container(content).into()
}
}
/// Switchable graphics mode
#[derive(Clone, Copy, Debug)]
pub enum Mode {
Compute,
Hybrid,
Integrated,
Nvidia,
}
impl Mode {
#[must_use]
pub fn argument_str(self) -> &'static str {
match self {
Self::Compute => COMPUTE,
Self::Hybrid => HYBRID,
Self::Integrated => INTEGRATED,
Self::Nvidia => NVIDIA,
}
}
#[must_use]
pub fn localized_str(self) -> &'static str {
match self {
Self::Compute => &super::text::GRAPHICS_MODE_COMPUTE,
Self::Hybrid => &super::text::GRAPHICS_MODE_HYBRID,
Self::Integrated => &super::text::GRAPHICS_MODE_INTEGRATED,
Self::Nvidia => &super::text::GRAPHICS_MODE_NVIDIA,
}
}
}
impl super::Page {
pub fn graphics_mode_view(&self) -> Element<pages::Message> {
let mut container = list_column();
if let Some(graphics_mode) = self.config.graphics_mode {
// Displays the active graphics mode, and a button for configuring it.
container = container.add(cosmic::widget::settings::item(
&*super::text::GRAPHICS_MODE,
row()
.align_items(Alignment::Center)
.push(cosmic::widget::text::body(graphics_mode.localized_str()))
.push(
button::icon(icon::from_name("go-next-symbolic"))
.extra_small()
.on_press(Message::GraphicsModeContext),
),
));
}
// Displays the night light status, and a button for configuring it.
container = container.add(
cosmic::widget::settings::item::builder(&*super::text::NIGHT_LIGHT)
.description(&*super::text::NIGHT_LIGHT_DESCRIPTION)
.control(
row()
.align_items(Alignment::Center)
.push(toggler(None, self.config.night_light_enabled, |enable| {
Message::NightLight(NightLight::Toggle(enable))
}))
.push(
button::icon(icon::from_name("go-next-symbolic"))
.extra_small()
.on_press(Message::NightLightContext),
),
),
);
container
.apply(Element::from)
.map(crate::pages::Message::Displays)
}
pub fn graphics_mode_context_view(&self) -> Element<pages::Message> {
let theme = cosmic::theme::active();
let theme = theme.cosmic();
column::with_capacity(4)
.spacing(theme.space_xs())
.push(view(
&super::text::GRAPHICS_MODE_INTEGRATED,
&super::text::GRAPHICS_MODE_INTEGRATED_DESC,
if let Some(Mode::Integrated) = self.config.graphics_mode {
None
} else {
Some((
&super::text::GRAPHICS_MODE_INTEGRATED_ENABLE,
Message::GraphicsMode(Mode::Integrated),
))
},
))
.push(view(
&super::text::GRAPHICS_MODE_NVIDIA,
&super::text::GRAPHICS_MODE_NVIDIA_DESC,
if let Some(Mode::Nvidia) = self.config.graphics_mode {
None
} else {
Some((
&super::text::GRAPHICS_MODE_NVIDIA_ENABLE,
Message::GraphicsMode(Mode::Nvidia),
))
},
))
.push(view(
&super::text::GRAPHICS_MODE_HYBRID,
&super::text::GRAPHICS_MODE_HYBRID_DESC,
if let Some(Mode::Hybrid) = self.config.graphics_mode {
None
} else {
Some((
&super::text::GRAPHICS_MODE_HYBRID_ENABLE,
Message::GraphicsMode(Mode::Hybrid),
))
},
))
.push(view(
&super::text::GRAPHICS_MODE_COMPUTE,
&super::text::GRAPHICS_MODE_COMPUTE_DESC,
if let Some(Mode::Compute) = self.config.graphics_mode {
None
} else {
Some((
&super::text::GRAPHICS_MODE_COMPUTE_ENABLE,
Message::GraphicsMode(Mode::Compute),
))
},
))
.apply(Element::from)
.map(pages::Message::Displays)
}
/// Change the graphics mode.
pub fn set_graphics_mode(&mut self, mode: Mode) -> Command<crate::app::Message> {
self.config.graphics_mode = Some(mode);
// Runs `system76-power graphics {{mode}}`
cosmic::command::future(async move {
let result = tokio::process::Command::new("system76-power")
.args(["graphics", mode.argument_str()])
.status()
.await;
let page_message =
crate::pages::Message::Displays(Message::GraphicsModeResult(Arc::new(result)));
crate::app::Message::PageMessage(page_message)
})
}
}

View file

@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-3.0-only
pub mod arrangement;
pub mod graphics;
// pub mod night_light;
pub mod text;
use crate::{app, pages};
@ -25,10 +25,9 @@ use std::{process::ExitStatus, sync::Arc};
pub struct ColorDepth(usize);
/// Identifies the content to display in the context drawer
pub enum ContextDrawer {
GraphicsMode,
NightLight,
}
// pub enum ContextDrawer {
// NightLight,
// }
/// Display mirroring options
#[derive(Clone, Copy, Debug)]
@ -40,17 +39,17 @@ pub enum Mirroring {
}
/// Night light preferences
#[derive(Clone, Copy, Debug)]
pub enum NightLight {
// #[derive(Clone, Copy, Debug)]
// pub enum NightLight {
/// Toggles night light's automatic scheduling.
AutoSchedule(bool),
// AutoSchedule(bool),
/// Sets the night light schedule.
ManualSchedule,
// ManualSchedule,
/// Changes the preferred night light temperature.
Temperature(f32),
// Temperature(f32),
/// Toggles night light mode
Toggle(bool),
}
// Toggle(bool),
// }
#[derive(Clone, Debug)]
pub enum Message {
@ -64,18 +63,12 @@ pub enum Message {
ColorProfile(usize),
/// Toggles display on or off.
DisplayToggle(bool),
/// Changes the hybrid graphics mode.
GraphicsMode(graphics::Mode),
/// Shows the graphics mode context drawer.
GraphicsModeContext,
/// Status of an applied graphics mode change
GraphicsModeResult(Arc<std::io::Result<ExitStatus>>),
/// Configures mirroring status of a display.
Mirroring(Mirroring),
/// Handle night light preferences.
NightLight(NightLight),
// NightLight(NightLight),
/// Show the night light mode context drawer.
NightLightContext,
// NightLightContext,
/// Set the orientation of a display.
Orientation(Transform),
/// Status of an applied display change.
@ -90,9 +83,6 @@ pub enum Message {
Scale(usize),
/// Refreshes display outputs.
Update {
/// The current graphics mode
graphics: Option<Arc<std::io::Result<graphics::Mode>>>,
/// Available outputs from cosmic-randr.
randr: Arc<Result<List, cosmic_randr_shell::Error>>,
},
@ -123,7 +113,7 @@ pub struct Page {
background_service: Option<tokio::task::JoinHandle<()>>,
config: Config,
cache: ViewCache,
context: Option<ContextDrawer>,
// context: Option<ContextDrawer>,
display_arrangement_scrollable: cosmic::widget::Id,
}
@ -136,7 +126,7 @@ impl Default for Page {
background_service: None,
config: Config::default(),
cache: ViewCache::default(),
context: None,
// context: None,
display_arrangement_scrollable: cosmic::widget::Id::unique(),
}
}
@ -145,8 +135,7 @@ impl Default for Page {
#[derive(Default)]
struct Config {
/// Whether night light is enabled.
night_light_enabled: bool,
graphics_mode: Option<graphics::Mode>,
// night_light_enabled: bool,
refresh_rate: Option<u32>,
resolution: Option<(u32, u32)>,
scale: u32,
@ -173,21 +162,16 @@ impl page::Page<crate::pages::Message> for Page {
sections: &mut SlotMap<section::Entity, Section<crate::pages::Message>>,
) -> Option<page::Content> {
Some(vec![
// Graphics switching and light mode
sections.insert(
Section::default()
.descriptions(vec![
text::GRAPHICS_MODE.as_str().into(),
text::GRAPHICS_MODE_COMPUTE_DESC.as_str().into(),
text::GRAPHICS_MODE_HYBRID_DESC.as_str().into(),
text::GRAPHICS_MODE_INTEGRATED_DESC.as_str().into(),
text::GRAPHICS_MODE_NVIDIA_DESC.as_str().into(),
text::NIGHT_LIGHT.as_str().into(),
text::NIGHT_LIGHT_AUTO.as_str().into(),
text::NIGHT_LIGHT_DESCRIPTION.as_str().into(),
])
.view::<Page>(|_binder, page, _section| page.graphics_mode_view()),
),
// Night light
// sections.insert(
// Section::default()
// .descriptions(vec![
// text::NIGHT_LIGHT.as_str().into(),
// text::NIGHT_LIGHT_AUTO.as_str().into(),
// text::NIGHT_LIGHT_DESCRIPTION.as_str().into(),
// ])
// .view::<Page>(|_binder, page, _section| page.night_light_view()),
// ),
// Display arrangement
sections.insert(
Section::default()
@ -309,21 +293,19 @@ impl page::Page<crate::pages::Message> for Page {
});
crate::pages::Message::Displays(Message::Update {
graphics: graphics::fetch().await,
randr: Arc::new(Ok(randr)),
})
})
}
// fn context_drawer(&self) -> Option<Element<pages::Message>> {
// Some(match self.context {
fn context_drawer(&self) -> Option<Element<pages::Message>> {
Some(match self.context {
Some(ContextDrawer::GraphicsMode) => self.graphics_mode_context_view(),
// Some(ContextDrawer::NightLight) => self.night_light_context_view(),
Some(ContextDrawer::NightLight) => self.night_light_context_view(),
None => return None,
})
}
// None => return None,
// })
// }
}
impl Page {
@ -343,36 +325,21 @@ impl Page {
Message::DisplayToggle(enable) => return self.toggle_display(enable),
Message::GraphicsMode(mode) => return self.set_graphics_mode(mode),
Message::GraphicsModeContext => {
self.context = Some(ContextDrawer::GraphicsMode);
return cosmic::command::message(app::Message::OpenContextDrawer(
text::GRAPHICS_MODE.clone().into(),
));
}
Message::GraphicsModeResult(result) => {
if let Some(Err(why)) = Arc::into_inner(result) {
tracing::error!(?why, "system76-power error");
}
}
Message::Mirroring(mirroring) => match mirroring {
Mirroring::Disable => (),
Mirroring::Mirror(target_display) => (),
Mirroring::Project(target_display) => (),
Mirroring::ProjectToAll => (),
},
Message::NightLight(night_light) => {}
Message::NightLightContext => {
self.context = Some(ContextDrawer::NightLight);
return cosmic::command::message(app::Message::OpenContextDrawer(
text::NIGHT_LIGHT.clone().into(),
));
}
// Message::NightLight(night_light) => {}
//
// Message::NightLightContext => {
// self.context = Some(ContextDrawer::NightLight);
// return cosmic::command::message(app::Message::OpenContextDrawer(
// text::NIGHT_LIGHT.clone().into(),
// ));
// }
Message::Orientation(orientation) => return self.set_orientation(orientation),
@ -390,19 +357,7 @@ impl Page {
Message::Scale(scale) => return self.set_scale(scale),
Message::Update { graphics, randr } => {
match graphics.and_then(Arc::into_inner) {
Some(Ok(mode)) => {
self.config.graphics_mode = Some(mode);
}
Some(Err(why)) => {
tracing::error!(?why, "error fetching graphics switching mode");
}
None => (),
}
Message::Update { randr } => {
match Arc::into_inner(randr) {
Some(Ok(outputs)) => self.update_displays(outputs),
@ -529,11 +484,11 @@ impl Page {
.apply(Element::from)
.map(pages::Message::Displays)
}
/// Displays the night light context drawer.
pub fn night_light_context_view(&self) -> Element<pages::Message> {
column().into()
}
// pub fn night_light_context_view(&self) -> Element<pages::Message> {
// column().into()
// }
/// Reloads the display list, and all information relevant to the active display.
pub fn update_displays(&mut self, list: List) {
@ -867,12 +822,10 @@ fn cache_rates(cached_rates: &mut Vec<String>, rates: &[u32]) {
}
pub async fn on_enter() -> crate::pages::Message {
let graphics_fut = graphics::fetch();
let randr_fut = cosmic_randr_shell::list();
let (graphics, randr) = futures::future::zip(graphics_fut, randr_fut).await;
let randr = futures::future::ready(randr_fut).await;
crate::pages::Message::Displays(Message::Update {
graphics,
randr: Arc::new(randr),
randr: Arc::new(randr.await),
})
}

View file

@ -0,0 +1,73 @@
// Copyright 2023 System76 <info@system76.com>
// SPDX-License-Identifier: GPL-3.0-only
use super::{Message, NightLight};
use crate::pages;
use cosmic::iced_core::{Alignment, Length, Padding};
use cosmic::prelude::CollectionWidget;
use cosmic::widget::{button, column, icon, list_column, row, toggler};
use cosmic::{Apply, Command, Element};
use std::sync::Arc;
pub fn view(
mode: &'static str,
description: &'static str,
button: Option<(&'static str, Message)>,
) -> Element<'static, Message> {
let theme = cosmic::theme::active();
let theme = theme.cosmic();
let has_checkmark = button.is_none();
let content = column::with_capacity(3)
.padding(Padding::from([theme.space_xxs(), theme.space_l()]))
.push(cosmic::widget::text::body(mode))
.push(cosmic::widget::text::caption(description))
.push(cosmic::widget::Space::new(Length::Fill, 12))
.push_maybe(button.map(|(text, message)| {
button::text(text)
.style(cosmic::theme::Button::Link)
.trailing_icon(icon::from_name("go-next-symbolic").size(16))
.padding(0)
.on_press(message)
}));
if has_checkmark {
row::with_capacity(2)
.align_items(Alignment::Center)
.push(content)
.push(icon::from_name("object-select-symbolic").size(24))
.apply(Element::from)
.apply(cosmic::widget::list::container)
.into()
} else {
cosmic::widget::list::container(content).into()
}
}
impl super::Page {
pub fn night_light_view(&self) -> Element<pages::Message> {
let mut container = list_column();
// Displays the night light status, and a button for configuring it.
container = container.add(
cosmic::widget::settings::item::builder(&*super::text::NIGHT_LIGHT)
.description(&*super::text::NIGHT_LIGHT_DESCRIPTION)
.control(
row()
.align_items(Alignment::Center)
.push(toggler(None, self.config.night_light_enabled, |enable| {
Message::NightLight(NightLight::Toggle(enable))
}))
.push(
button::icon(icon::from_name("go-next-symbolic"))
.extra_small()
.on_press(Message::NightLightContext),
),
),
);
container
.apply(Element::from)
.map(crate::pages::Message::Displays)
}
}

View file

@ -19,35 +19,6 @@ crate::cache_dynamic_lazy! {
pub static DISPLAY_RESOLUTION: String = fl!("display", "resolution");
pub static DISPLAY_SCALE: String = fl!("display", "scale");
pub static GRAPHICS_MODE: String = fl!("graphics-mode");
pub static GRAPHICS_MODE_COMPUTE: String =
fl!("graphics-mode", "mode", mode = super::graphics::COMPUTE);
pub static GRAPHICS_MODE_COMPUTE_ENABLE: String =
fl!("graphics-mode", "enable", mode = super::graphics::COMPUTE);
pub static GRAPHICS_MODE_COMPUTE_DESC: String =
fl!("graphics-mode", "desc", mode = super::graphics::COMPUTE);
pub static GRAPHICS_MODE_HYBRID: String =
fl!("graphics-mode", "mode", mode = super::graphics::HYBRID);
pub static GRAPHICS_MODE_HYBRID_ENABLE: String =
fl!("graphics-mode", "enable", mode = super::graphics::HYBRID);
pub static GRAPHICS_MODE_HYBRID_DESC: String =
fl!("graphics-mode", "desc", mode = super::graphics::HYBRID);
pub static GRAPHICS_MODE_INTEGRATED: String =
fl!("graphics-mode", "mode", mode = super::graphics::INTEGRATED);
pub static GRAPHICS_MODE_INTEGRATED_ENABLE: String = fl!(
"graphics-mode",
"enable",
mode = super::graphics::INTEGRATED
);
pub static GRAPHICS_MODE_INTEGRATED_DESC: String =
fl!("graphics-mode", "desc", mode = super::graphics::INTEGRATED);
pub static GRAPHICS_MODE_NVIDIA: String =
fl!("graphics-mode", "mode", mode = super::graphics::NVIDIA);
pub static GRAPHICS_MODE_NVIDIA_ENABLE: String =
fl!("graphics-mode", "enable", mode = super::graphics::NVIDIA);
pub static GRAPHICS_MODE_NVIDIA_DESC: String =
fl!("graphics-mode", "desc", mode = super::graphics::NVIDIA);
pub static MIRRORING: String = fl!("mirroring");
pub static NIGHT_LIGHT: String = fl!("night-light");

View file

@ -92,28 +92,6 @@ display = Displays
.resolution = Resolution
.scale = Scale
graphics-mode = Graphics mode
.mode = { $mode ->
[compute] Compute
*[hybrid] Hybrid
[integrated] Integrated
[nvidia] NVIDIA
} graphics
.enable = Enable { $mode ->
[compute] compute
*[hybrid] hybrid
[integrated] integrated
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Uses dedicated graphics for computational workloads only. Disables external displays. { -requires-restart }.
*[hybrid] Applications use integrated graphics unless explicitly requested to use dedicated graphics. { -requires-restart }.
[integrated] Turns off dedicated graphics for a longer battery life and less fan noise.
[nvidia] Better graphical experience and highest power usage. { -requires-restart }.
}
.restart = Restart and switch to { $mode }?
.restart-desc = Switching to { $mode } will close all open applications
mirroring = Mirroring
.id = Mirroring { $id }
.dont = Don't mirror

View file

@ -90,28 +90,6 @@ display = Écrans
.resolution = Résolution
.scale = Échelle
graphics-mode = Graphics mode
.mode = { $mode ->
[compute] Calcul
*[hybrid] Hybride
[integrated] Intégré
[nvidia] NVIDIA
} graphics
.enable = Enable { $mode ->
[compute] Calcul
*[hybrid] Hybride
[integrated] Intégré
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Utilise les graphiques dédies seulement pour les charges de calcul. Désactive les écrans externes. { -requires-restart }.
*[hybrid] Les applications utilisent des graphiques intégrés, sauf s'il est explicitement demandé d'utiliser des graphiques dédiés. { -requires-restart }.
[integrated] Désactive les graphiques dédiés pour une meilleure autonomie de la batterie et moins de bruit de ventilateur.
[nvidia] Meilleure expérience graphique et plus grande consommation d'énergie. { -requires-restart }.
}
.restart = Redémarrer et basculer vers { $mode } ?
.restart-desc = Basculer vers { $mode } fermera toutes les applications ouvertes
mirroring = Duplication de l'écran
.id = Duplication de { $id }
.dont = Ne pas dupliquer

View file

@ -81,28 +81,6 @@ display = Schermi
.resolution = Risoluzione
.scale = Scala
graphics-mode = Modalità GPU
.mode = { $mode ->
[compute] Compute
*[hybrid] Ibrida
[integrated] Integrata
[nvidia] NVIDIA
}
.enable = Abilita modalità { $mode ->
[compute] compute
*[hybrid] ibrida
[integrated] integrata
[nvidia] NVIDIA
}
.desc = { $mode ->
[compute] Usa la GPU dedicata solo per l'elaborazione. Disabilita gli schermi esterni. { -requires-restart }.
*[hybrid] Le applicazioni useranno la GPU integrata a meno che non venga richiesto esplicitamente l'uso della GPU dedicata. { -requires-restart }.
[integrated] Disattiva la GPU dedicata per una maggior durata della batteria e meno rumore proveniente dalle ventole.
[nvidia] Miglior esperienza grafica ma maggior consumo energetico. { -requires-restart }.
}
.restart = Riavviare in modalità { $mode }?
.restart-desc = Il riavvio in modalità { $mode } chiuderà tutte le applicazioni aperte.
mirroring = Duplicazione
.id = Duplicazione { $id }
.dont = Non duplicare

View file

@ -81,28 +81,6 @@ display = ディスプレイ
.resolution = 解像度
.scale = スケーリング
graphics-mode = グラフィックスモード
.mode = { $mode ->
[compute] 計算
*[hybrid] ハイブリッド
[integrated] 内蔵
[nvidia] NVIDIA
}モード
.enable = { $mode ->
[compute] 計算
*[hybrid] ハイブリッド
[integrated] 内蔵
[nvidia] NVIDIA
}モードを有効にする
.desc = { $mode ->
[compute] 計算の作業負荷だけで専用グラフィックスを使います。外付けディスプレイを無効にします。{ -requires-restart }
*[hybrid] 専用グラフィックスを使用する要求がない限り、プログラムは統合グラフィックスを使用します。{ -requires-restart }
[integrated] バッテリー寿命を強化してファン騒音を低減するように専用グラフィックスを無効にします。
[nvidia] 改善されたグラッフィク体験と最高消費電力です。{ -requires-restart }
}
.restart = 再起動して{ $mode }に切り替えますか?
.restart-desc = { $mode }に切り替えると全てのアプリケーションを閉じます。
mirroring = ミラーリング
.id = { $id }をミラーリングしています
.dont = ミラーリングしない

View file

@ -90,28 +90,6 @@ display = Wyświetlacz
.resolution = Rozdzielczość
.scale = Skala
graphics-mode = Tryb Graficzny
.mode = { $mode ->
[compute] Obliczeniowy
*[hybrid] Hybrydowy
[integrated] Zintegrowany
[nvidia] NVIDIA
} graphics
.enable = Włącz { $mode ->
[compute] Obliczeniowy
*[hybrid] Hybrydowy
[integrated] Zintegrowany
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Używa dedykowanej karty graficznej tylko do pracy obliczeniowej. Wyłącza zewnętrzne ekrany. { -requires-restart }.
*[hybrid] Aplikacje używają zintegrowanej karty graficznej, chyba że bezpośredio kazano im używać dedykowanej karty graficznej. { -requires-restart }.
[integrated] Wyłącz dedykowaną kartę graficzną by zwiększyć czas pracy na baterii i zmniejszyć głośność wentylatorów.
[nvidia] Najwydajniejszy tryb graficzny wiążący się z najwyższym zapotrzebowaniem na prąd. { -requires-restart }.
}
.restart = Uruchomić ponownie i zmienić na { $mode }?
.restart-desc = Zmiana na { $mode } zamknie wszystkie otwarte aplikacje
mirroring = Lustrzane Odbicie
.id = Lustrzane Odbicie { $id }
.dont = Nie stosuj Lustrzanego Odbicia

View file

@ -92,28 +92,6 @@ display = Ecrãs
.resolution = Resolução
.scale = Escala
graphics-mode = Modo gráfico
.mode = { $mode ->
[compute] Calcular
*[hybrid] Híbrido
[integrated] Integrado
[nvidia] NVIDIA
} graphics
.enable = Ativar { $mode ->
[compute] calcular
*[hybrid] híbrido
[integrated] integrado
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Utiliza gráficos dedicados apenas para cargas de trabalho computacionais. Desativa os ecrãs externos. { -requires-restart }.
*[hybrid] As aplicações utilizam gráficos integrados, exceto se for explicitamente solicitada a utilização de gráficos dedicados. { -requires-restart }.
[integrated] Desliga os gráficos dedicados para uma maior duração da bateria e menos ruído da ventoinha.
[nvidia] Melhor experiência gráfica e maior consumo de energia. { -requires-restart }.
}
.restart = Reiniciar e mudar para { $mode }?
.restart-desc = Mudar para { $mode } fechará todas as aplicações abertas
mirroring = Espelhar
.id = Espelhar { $id }
.dont = Não espelhar

View file

@ -90,28 +90,6 @@ display = Monitores
.resolution = Resolução
.scale = Escala
graphics-mode = Graphics mode
.mode = { $mode ->
[compute] Calcular
*[hybrid] Híbrido
[integrated] Integrado
[nvidia] NVIDIA
} graphics
.enable = Ativar { $mode ->
[compute] calcular
*[hybrid] híbrido
[integrated] integrado
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Utiliza gráficos dedicados apenas para cargas de trabalho computacionais. Desativa monitores externos. { -requires-restart }.
*[hybrid] Aplicativos usam os gráficos integrados, a menos que solicitado explicitamente para usar os gráficos dedicados. { -requires-restart }.
[integrated] Desativa os gráficos integrados, exceto se for explicitamente solicitada a utilização de gráficos dedicados.
[nvidia] Melhor experiência gráfica e maior consumo de energia. { -requires-restart }.
}
.restart = Reiniciar e alterar para { $mode }?
.restart-desc = Alterar para { $mode } fechará todos as aplicações abertas
mirroring = Espelhar
.id = Espelhar { $id }
.dont = Não espelhar

View file

@ -92,28 +92,6 @@ display = Ecrane
.resolution = Rezoluție
.scale = Scală
graphics-mode = Modul de grafică
.mode = { $mode ->
[compute] Compute
*[hybrid] Hibrid
[integrated] Integrat
[nvidia] NVIDIA
} graphics
.enable = Activează { $mode ->
[compute] compute
*[hybrid] hibrid
[integrated] integrat
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Folosește grafica dedicată doar pentru activități computaționale. { -requires-restart }.
*[hybrid] Aplicațiile folosesc grafica integrată numai dacă nu cer folosirea graficii dedicate. { -requires-restart }.
[integrated] Dezactivează grafica dedicată pentru o durată de viață mai lungă a bateriei și mai puțin zgomot.
[nvidia] O experiență grafică superioară cu consum de energie ridicat. { -requires-restart }.
}
.restart = Reporniți și utilizați { $mode }?
.restart-desc = Schimbarea la modul { $mode } va închide toate aplicațiile
mirroring = Oglindire
.id = Oglindirea { $id }
.dont = Nu oglindiți

View file

@ -90,28 +90,6 @@ display = Мониторы
.resolution = Разрешение
.scale = Масштабирование
graphics-mode = Режим графики
.mode = { $mode ->
[compute] Вычислительная
*[hybrid] Гибридная
[integrated] Встроенная
[nvidia] NVIDIA
} графика
.enable = Включить { $mode ->
[compute] вычислительную
*[hybrid] гибридную
[integrated] встроенную
[nvidia] NVIDIA
} графику
.desc = { $mode ->
[compute] Выделенная графика используется только для вычислительных нагрузок. Отключает внешние мониторы. { -requires-restart }.
*[hybrid] Приложения используют интегрированную графику, если только нет явного запроса на использование выделенной графики. { -requires-restart }.
[integrated] Отключение выделенной графики для увеличения времени автономной работы и снижения шума вентилятора.
[nvidia] Улучшенные графические возможности и максимальное энергопотребление. { -requires-restart }.
}
.restart = Перезапустить и переключиться на { $mode }?
.restart-desc = Переключение на { $mode } приведет к закрытию всех открытых приложений
mirroring = Зеркальное отображение
.id = Зеркальное отображение { $id }
.dont = Не зеркалить

View file

@ -81,28 +81,6 @@ display = Екрани
.resolution = Резолуција
.scale = Размера
graphics-mode = Графички режим
.mode = { $mode ->
[compute] Рачунска
*[hybrid] Хибридна
[integrated] Интегрисана
[nvidia] NVIDIA
} графика
.enable = Омогући { $mode ->
[compute] рачунску
*[hybrid] хибридну
[integrated] интегрисану
[nvidia] NVIDIA
} графику
.desc = { $mode ->
[compute] Користи наменску графику само за рачунска оптерећења. Исључује спољне екране. { -requires-restart }.
*[hybrid] Апликације користе интегрисану графику осим ако се изричито не захтева коришћење наменске графике. { -requires-restart }.
[integrated] Искључује наменску графику ради дужег трајања батерије и мање буке вентилатора.
[nvidia] Боље графичко искуство и највећа потрошња енергије. { -requires-restart }.
}
.restart = Поново покрени и пребаци на { $mode }?
.restart-desc = Пребацивање на { $mode } ће затворити све отворене апликације
mirroring = Пресликавање
.id = Пресликавање { $id }
.dont = Не пресликавај

View file

@ -81,28 +81,6 @@ display = Ekrani
.resolution = Rezolucija
.scale = Razmera
graphics-mode = Grafički režim
.mode = { $mode ->
[compute] Računska
*[hybrid] Hibridna
[integrated] Integrisana
[nvidia] NVIDIA
} grafika
.enable = Omogući { $mode ->
[compute] računsku
*[hybrid] hibridnu
[integrated] integrisanu
[nvidia] NVIDIA
} grafiku
.desc = { $mode ->
[compute] Koristi namensku grafiku samo za računska opterećenja. Isljučuje spoljne ekrane. { -requires-restart }.
*[hybrid] Aplikacije koriste integrisanu grafiku osim ako se izričito ne zahteva korišćenje namenske grafike. { -requires-restart }.
[integrated] Isključuje namensku grafiku radi dužeg trajanja baterije i manje buke ventilatora.
[nvidia] Bolje grafičko iskustvo i najveća potrošnja energije. { -requires-restart }.
}
.restart = Ponovo pokreni i prebaci na { $mode }?
.restart-desc = Prebacivanje na { $mode } će zatvoriti sve otvorene aplikacije
mirroring = Preslikavanje
.id = Preslikavanje { $id }
.dont = Ne preslikavaj

View file

@ -78,28 +78,6 @@ display = Skärmar
.resolution = Upplösning
.scale = Skala
graphics-mode = Grafikläge
.mode = { $mode ->
[compute] Beräkna
*[hybrid] Hybrid
[integrated] Integrerad
[nvidia] NVIDIA
} graphics
.enable = Enable { $mode ->
[compute] beräkna
*[hybrid] hybrid
[integrated] integrerad
[nvidia] NVIDIA
} graphics
.desc = { $mode ->
[compute] Använder dedikerad grafik endast för beräkningsarbete. Inaktiverar externa bildskärmar. { -requires-restart }.
*[hybrid] Applikationer använder integrerad grafik om det inte uttryckligen uppmanas att använda dedikerad grafik. { -requires-restart }.
[integrated] Stänger av dedikerad grafik för längre batteritid och mindre fläktljud.
[nvidia] Bättre grafisk upplevelse och högsta strömförbrukning. { -requires-restart }.
}
.restart = Starta om och ändra till { $mode }?
.restart-desc = Om du byter till { $mode } stängs alla öppna applikationer
mirroring = Spegling
.id = Spegling { $id }
.dont = Spegla inte

View file

@ -92,28 +92,6 @@ display = 显示器
.resolution = 分辨率
.scale = 缩放
graphics-mode = 显示模式
.mode = { $mode ->
[compute] 计算
*[hybrid] 混合
[integrated] 集成
[nvidia] NVIDIA
} 图形
.enable = 启用 { $mode ->
[compute] 计算
*[hybrid] 混合
[integrated] 集成
[nvidia] NVIDIA
} 图形
.desc = { $mode ->
[compute] 仅将独立显卡用于计算工作负载。禁用外部显示器。 { -requires-restart }。
*[hybrid] 应用程序使用集成显卡,除非明确要求使用独立显卡。 { -requires-restart }。
[integrated] 关闭独立显卡以延长电池寿命并减少风扇噪音。
[nvidia] 更好的显示体验和最高的功耗。 { -requires-restart }。
}
.restart = 重新启动并切换到 { $mode }
.restart-desc = 切换到 { $mode } 将关闭所有打开的应用程序
mirroring = 镜像显示
.id = 镜像 { $id }
.dont = 不镜像显示

View file

@ -92,28 +92,6 @@ display = 螢幕
.resolution = 解析度
.scale = 縮放比例
graphics-mode = 顯卡運作模式
.mode = { $mode ->
[compute] 高效能模式
*[hybrid] 混合模式
[integrated] 省電模式
[nvidia] NVIDIA 模式
} graphics
.enable = Enable { $mode ->
[compute] 高效能模式
*[hybrid] 混合模式
[integrated] 省電模式
[nvidia] NVIDIA 模式
} graphics
.desc = { $mode ->
[compute] 只啟用獨立顯示卡獲得最好的運算效能,可能會關閉外接螢幕。{ -requires-restart }.
*[hybrid] 應用程式預設使用整合式顯示卡,除非程式主動要求使用獨立顯示卡。{ -requires-restart }.
[integrated] 關閉獨立顯示卡,只啟用整合式顯示卡以獲得更好的省電效果及更低的風扇噪音。
[nvidia] Nvidia 顯示卡將消耗更多的電源來獲得更好的運算與顯示體驗。 { -requires-restart }.
}
.restart = 重啟並切換至 { $mode }?
.restart-desc = 切換至 { $mode } 將關閉全部的應用程式
mirroring = 投影
.id = 正在投影 { $id }
.dont = 不要投影