feat: ability to configure image icon sizes

Adds `icon_size` option to following widgets:

- `clipboard`
- `launcher`
- `music`
- `workspaces`

Also adds `cover_image_size` option to `music`.
This commit is contained in:
Jake Stanger
2023-04-22 22:18:36 +01:00
parent 618e97f1e8
commit 2da28b9bf5
10 changed files with 83 additions and 25 deletions

View File

@@ -6,6 +6,7 @@ use self::open_state::OpenState;
use crate::clients::wayland::{self, ToplevelChange};
use crate::config::CommonConfig;
use crate::desktop_file::find_desktop_file;
use crate::modules::launcher::item::AppearanceOptions;
use crate::modules::{Module, ModuleInfo, ModuleUpdateEvent, ModuleWidget, WidgetContext};
use crate::{lock, read_lock, try_send, write_lock};
use color_eyre::{Help, Report};
@@ -33,10 +34,17 @@ pub struct LauncherModule {
#[serde(default = "crate::config::default_true")]
show_icons: bool,
#[serde(default = "default_icon_size")]
icon_size: i32,
#[serde(flatten)]
pub common: Option<CommonConfig>,
}
const fn default_icon_size() -> i32 {
32
}
#[derive(Debug, Clone)]
pub enum LauncherUpdate {
/// Adds item
@@ -318,8 +326,13 @@ impl Module<gtk::Box> for LauncherModule {
let controller_tx = context.controller_tx.clone();
let appearance_options = AppearanceOptions {
show_names: self.show_names,
show_icons: self.show_icons,
icon_size: self.icon_size,
};
let show_names = self.show_names;
let show_icons = self.show_icons;
let orientation = info.bar_position.get_orientation();
let mut buttons = IndexMap::<String, ItemButton>::new();
@@ -334,10 +347,9 @@ impl Module<gtk::Box> for LauncherModule {
} else {
let button = ItemButton::new(
&item,
show_names,
show_icons,
orientation,
appearance_options,
&icon_theme,
orientation,
&context.tx,
&controller_tx,
);