mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-04-21 08:11:30 +02:00
refactor(bar): use native apis for positioning
This commit replaces almost all uses of the egui API for bar window positioning with calls to SetWindowPos via komorebi_client's Window struct. This seems to play much more smoothly with multi-monitor setups where each monitor has a different scaling factor, opening the door for multiple instances of komorebi-bar.exe to run against multiple monitors. As a result of this change, the "viewport" configuration option has been renamed to "position" and doc strings have been changed to remove the reference to the egui crate docs. Similarly, "viewport.position" and "viewport.inner_size" have been renamed to "position.start" and "position.end" respectively. Backwards-compatibility aliases have been included for all renames.
This commit is contained in:
@@ -2050,7 +2050,7 @@ if (!(Get-Process komorebi-bar -ErrorAction SilentlyContinue))
|
||||
println!("* Join the Discord https://discord.gg/mGkn66PHkx - Chat, ask questions, share your desktops");
|
||||
println!("* Read the docs https://lgug2z.github.io/komorebi - Quickly search through all komorebic commands");
|
||||
|
||||
let static_config = arg.config.map_or_else(
|
||||
let static_config = arg.config.clone().map_or_else(
|
||||
|| {
|
||||
let komorebi_json = HOME_DIR.join("komorebi.json");
|
||||
if komorebi_json.is_file() {
|
||||
@@ -2062,12 +2062,30 @@ if (!(Get-Process komorebi-bar -ErrorAction SilentlyContinue))
|
||||
Option::from,
|
||||
);
|
||||
|
||||
let bar_config = arg.config.map_or_else(
|
||||
|| {
|
||||
let bar_json = HOME_DIR.join("komorebi.bar.json");
|
||||
if bar_json.is_file() {
|
||||
Option::from(bar_json)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
},
|
||||
Option::from,
|
||||
);
|
||||
|
||||
if let Some(config) = static_config {
|
||||
let path = resolve_home_path(config)?;
|
||||
let raw = std::fs::read_to_string(path)?;
|
||||
StaticConfig::aliases(&raw);
|
||||
StaticConfig::deprecated(&raw);
|
||||
}
|
||||
|
||||
if bar_config.is_some() {
|
||||
let output = Command::new("komorebi-bar.exe").arg("--aliases").output()?;
|
||||
let stdout = String::from_utf8(output.stdout)?;
|
||||
println!("{stdout}");
|
||||
}
|
||||
}
|
||||
SubCommand::Stop(arg) => {
|
||||
if arg.whkd {
|
||||
|
||||
Reference in New Issue
Block a user