Justering/expand/marginaler, hover-popup med peek, appikon
All checks were successful
check / check (push) Successful in 1m37s
All checks were successful
check / check (push) Successful in 1m37s
- Ny layoutmodell: alignment (center/start/end längs kanten), expand (ö eller täck hela kanten) och tre marginaler — A från kanten, B/C i början/slutet av kanten. Funkar för alla fyra positionerna. - Settings → Layout har en ritad illustration (cairo) som visar vad A/B/C betyder för vald position och uppdateras live. - Fönsterlistan för grupper kan öppnas vid hover (group_popup) och stängs när pekaren lämnar den; hover på en rad kan peeka (alla andra fönster tonas ner via Wayfires alpha-plugin) eller fokusera fönstret (list_hover: peek/focus/none). - Appikon (assets/waydock.svg) + .desktop-fil; installeras av install.sh och används av settings-fönstret. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,34 @@ pub enum Layer {
|
||||
Bottom,
|
||||
}
|
||||
|
||||
/// Var längs kanten ön ligger (start = vänster/topp, end = höger/botten).
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum Alignment {
|
||||
Center,
|
||||
Start,
|
||||
End,
|
||||
}
|
||||
|
||||
/// Hur fönsterlistan för en grupperad app öppnas.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum GroupPopup {
|
||||
Click,
|
||||
Hover,
|
||||
}
|
||||
|
||||
/// Vad som händer när man hovrar en rad i fönsterlistan.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum ListHover {
|
||||
/// tona ner alla andra fönster så bara det hovrade syns tydligt
|
||||
Peek,
|
||||
/// fokusera/lyft fönstret direkt vid hover
|
||||
Focus,
|
||||
None,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum ClickAction {
|
||||
@@ -151,6 +179,8 @@ pub struct Behavior {
|
||||
pub group_apps: bool,
|
||||
pub tooltips: bool,
|
||||
pub urgent_pulse: bool,
|
||||
pub group_popup: GroupPopup,
|
||||
pub list_hover: ListHover,
|
||||
}
|
||||
impl Default for Behavior {
|
||||
fn default() -> Self {
|
||||
@@ -161,6 +191,8 @@ impl Default for Behavior {
|
||||
group_apps: true,
|
||||
tooltips: true,
|
||||
urgent_pulse: true,
|
||||
group_popup: GroupPopup::Click,
|
||||
list_hover: ListHover::Peek,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -268,8 +300,15 @@ impl Default for LogConfig {
|
||||
#[serde(default)]
|
||||
pub struct Config {
|
||||
pub position: Position,
|
||||
pub centered: bool,
|
||||
pub alignment: Alignment,
|
||||
/// false = ö som är så stor som innehållet; true = täck hela kanten
|
||||
pub expand: bool,
|
||||
/// avstånd från kanten baren ligger mot (px)
|
||||
pub margin: i32,
|
||||
/// marginal i början av kanten: vänster (topp/botten) resp. topp (vänster/höger)
|
||||
pub margin_start: i32,
|
||||
/// marginal i slutet av kanten: höger resp. botten
|
||||
pub margin_end: i32,
|
||||
pub layer: Layer,
|
||||
pub avoid_windows: bool,
|
||||
pub appearance: Appearance,
|
||||
@@ -287,8 +326,11 @@ impl Default for Config {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
position: Position::Bottom,
|
||||
centered: true,
|
||||
alignment: Alignment::Center,
|
||||
expand: false,
|
||||
margin: 8,
|
||||
margin_start: 0,
|
||||
margin_end: 0,
|
||||
layer: Layer::Top,
|
||||
avoid_windows: false,
|
||||
appearance: Appearance::default(),
|
||||
|
||||
Reference in New Issue
Block a user