feat(settings): add grouped configuration hub, languages and tray controls

This commit is contained in:
aria committed 2026-10-28 03:37:22 +09:00
1 parent 6f34fd080f
commit cc3b6f903f
90 files changed
+3625 -408

No files matched your search

+1
View File
@@ -324,6 +324,7 @@ async fn run_agent() -> Result<(), Box<dyn std::error::Error>> {
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
ferese_config::locale::load(ferese_config::config_path().as_deref());
// SAFETY: PR_SET_DUMPABLE takes an integer value and does not dereference caller memory.
unsafe {
libc::prctl(libc::PR_SET_DUMPABLE, 0);
+24 -19
View File
@@ -475,13 +475,15 @@ impl cosmic::Application for Prompt {
Message::Submit
});
}
let action = button::custom(ferese_theme::text("Authenticate", palette.font).size(13))
.class(ferese_theme::controls::authentication_button(
palette.palette(),
))
.height(Length::Fixed(36.))
.padding([8, 16])
.on_press_maybe((!self.waiting && !self.answer.is_empty()).then_some(Message::Submit));
let action = button::custom(
ferese_theme::text(ferese_config::tr!("Authenticate"), palette.font).size(13),
)
.class(ferese_theme::controls::authentication_button(
palette.palette(),
))
.height(Length::Fixed(36.))
.padding([8, 16])
.on_press_maybe((!self.waiting && !self.answer.is_empty()).then_some(Message::Submit));
let lock_icon = if let Some(icon) = &self.action_icon {
widget::icon(icon.clone()).size(20)
} else {
@@ -506,7 +508,8 @@ impl cosmic::Application for Prompt {
12.,
)),
column![
ferese_theme::text("Authentication required", palette.font).size(18),
ferese_theme::text(ferese_config::tr!("Authentication required"), palette.font)
.size(18),
ferese_theme::text(format!("Confirm as {user}"), palette.font)
.size(12)
.class(theme::Text::Color(palette.muted)),
@@ -524,9 +527,9 @@ impl cosmic::Application for Prompt {
button::custom(
ferese_theme::text(
if self.details_expanded {
"Hide details"
ferese_config::tr!("Hide details")
} else {
"Show details"
ferese_config::tr!("Show details")
},
palette.font,
)
@@ -563,7 +566,7 @@ impl cosmic::Application for Prompt {
body = body.push(
container(
row![
ferese_theme::text("Account", palette.font)
ferese_theme::text(ferese_config::tr!("Account"), palette.font)
.size(12)
.class(theme::Text::Color(palette.muted)),
widget::dropdown(
@@ -610,14 +613,16 @@ impl cosmic::Application for Prompt {
}
body = body.push(
row![
button::custom(ferese_theme::text("Cancel", palette.font).size(13))
.class(ferese_theme::controls::material_button_style(
palette.palette(),
false,
material_opacity,
))
.padding([8, 14])
.on_press(Message::Cancel),
button::custom(
ferese_theme::text(ferese_config::tr!("Cancel"), palette.font).size(13)
)
.class(ferese_theme::controls::material_button_style(
palette.palette(),
false,
material_opacity,
))
.padding([8, 14])
.on_press(Message::Cancel),
action
]
.spacing(8)