mirror of
https://github.com/Zedfrigg/ironbar.git
synced 2025-08-16 22:31:03 +02:00
feat(truncate): explicit off
mode
This commit is contained in:
parent
39f02a1023
commit
df4bfc83d0
4 changed files with 54 additions and 41 deletions
|
@ -12,15 +12,15 @@ Supports plain text and images.
|
||||||
|
|
||||||
> Type: `clipboard`
|
> Type: `clipboard`
|
||||||
|
|
||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
|-----------------------|---------------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------|------------------------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `icon` | `string` or [image](images) | `` | Icon to show on the widget button. |
|
| `icon` | `string` or [image](images) | `` | Icon to show on the widget button. |
|
||||||
| `icon_size` | `integer` | `32` | Size to render icon at (image icons only). |
|
| `icon_size` | `integer` | `32` | Size to render icon at (image icons only). |
|
||||||
| `max_items` | `integer` | `10` | Maximum number of items to show in the popup. |
|
| `max_items` | `integer` | `10` | Maximum number of items to show in the popup. |
|
||||||
| `truncate` | `'start'` or `'middle'` or `'end'` or `Map` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
| `truncate` | `'start'` or `'middle'` or `'end'` or `off` or `Map` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
||||||
| `truncate.mode` | `'start'` or `'middle'` or `'end'` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
| `truncate.mode` | `'start'` or `'middle'` or `'end'` or `off` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
||||||
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
||||||
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>JSON</summary>
|
<summary>JSON</summary>
|
||||||
|
|
|
@ -10,15 +10,15 @@ Displays the title and/or icon of the currently focused window.
|
||||||
|
|
||||||
> Type: `focused`
|
> Type: `focused`
|
||||||
|
|
||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
|-----------------------|---------------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------|------------------------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `show_icon` | `boolean` | `true` | Whether to show the app's icon. |
|
| `show_icon` | `boolean` | `true` | Whether to show the app's icon. |
|
||||||
| `show_title` | `boolean` | `true` | Whether to show the app's title. |
|
| `show_title` | `boolean` | `true` | Whether to show the app's title. |
|
||||||
| `icon_size` | `integer` | `32` | Size of icon in pixels. |
|
| `icon_size` | `integer` | `32` | Size of icon in pixels. |
|
||||||
| `truncate` | `'start'` or `'middle'` or `'end'` or `Map` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
| `truncate` | `'start'` or `'middle'` or `'end'` or `off` or `Map` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
||||||
| `truncate.mode` | `'start'` or `'middle'` or `'end'` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
| `truncate.mode` | `'start'` or `'middle'` or `'end'` or `off` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
||||||
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
||||||
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>JSON</summary>
|
<summary>JSON</summary>
|
||||||
|
|
|
@ -11,27 +11,27 @@ in MPRIS mode, the widget will listen to all players and automatically detect/di
|
||||||
|
|
||||||
> Type: `music`
|
> Type: `music`
|
||||||
|
|
||||||
| | Type | Default | Description |
|
| | Type | Default | Description |
|
||||||
|-----------------------|---------------------------------------------|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------|------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `player_type` | `'mpris'` or `'mpd'` | `mpris` | Whether to connect to MPRIS players or an MPD server. |
|
| `player_type` | `'mpris'` or `'mpd'` | `mpris` | Whether to connect to MPRIS players or an MPD server. |
|
||||||
| `format` | `string` | `{title} / {artist}` | Format string for the widget. More info below. |
|
| `format` | `string` | `{title} / {artist}` | Format string for the widget. More info below. |
|
||||||
| `truncate` | `'start'` or `'middle'` or `'end'` or `Map` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
| `truncate` | `'start'` or `'middle'` or `'end'` or `off` or `Map` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand `Map` version if specifying a length. |
|
||||||
| `truncate.mode` | `'start'` or `'middle'` or `'end'` | `null` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
| `truncate.mode` | `'start'` or `'middle'` or `'end'` or `off` | `off` | The location of the ellipses and where to truncate text from. Leave null to avoid truncating. |
|
||||||
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
| `truncate.length` | `integer` | `null` | The fixed width (in chars) of the widget. Leave blank to let GTK automatically handle. |
|
||||||
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
| `truncate.max_length` | `integer` | `null` | The maximum number of characters before truncating. Leave blank to let GTK automatically handle. |
|
||||||
| `icons.play` | `string` or [image](images) | `` | Icon to show when playing. |
|
| `icons.play` | `string` or [image](images) | `` | Icon to show when playing. |
|
||||||
| `icons.pause` | `string` or [image](images) | `` | Icon to show when paused. |
|
| `icons.pause` | `string` or [image](images) | `` | Icon to show when paused. |
|
||||||
| `icons.prev` | `string` or [image](images) | `` | Icon to show on previous button. |
|
| `icons.prev` | `string` or [image](images) | `` | Icon to show on previous button. |
|
||||||
| `icons.next` | `string` or [image](images) | `` | Icon to show on next button. |
|
| `icons.next` | `string` or [image](images) | `` | Icon to show on next button. |
|
||||||
| `icons.volume` | `string` or [image](images) | `` | Icon to show under popup volume slider. |
|
| `icons.volume` | `string` or [image](images) | `` | Icon to show under popup volume slider. |
|
||||||
| `icons.track` | `string` or [image](images) | `` | Icon to show next to track title. |
|
| `icons.track` | `string` or [image](images) | `` | Icon to show next to track title. |
|
||||||
| `icons.album` | `string` or [image](images) | `` | Icon to show next to album name. |
|
| `icons.album` | `string` or [image](images) | `` | Icon to show next to album name. |
|
||||||
| `icons.artist` | `string` or [image](images) | `` | Icon to show next to artist name. |
|
| `icons.artist` | `string` or [image](images) | `` | Icon to show next to artist name. |
|
||||||
| `show_status_icon` | `boolean` | `true` | Whether to show the play/pause icon on the widget. |
|
| `show_status_icon` | `boolean` | `true` | Whether to show the play/pause icon on the widget. |
|
||||||
| `icon_size` | `integer` | `32` | Size to render icon at (image icons only). |
|
| `icon_size` | `integer` | `32` | Size to render icon at (image icons only). |
|
||||||
| `cover_image_size` | `integer` | `128` | Size to render album art image at inside popup. |
|
| `cover_image_size` | `integer` | `128` | Size to render album art image at inside popup. |
|
||||||
| `host` | `string` | `localhost:6600` | [MPD Only] TCP or Unix socket for the MPD server. |
|
| `host` | `string` | `localhost:6600` | [MPD Only] TCP or Unix socket for the MPD server. |
|
||||||
| `music_dir` | `string` | `$HOME/Music` | [MPD Only] Path to MPD server's music directory on disc. Required for album art. |
|
| `music_dir` | `string` | `$HOME/Music` | [MPD Only] Path to MPD server's music directory on disc. Required for album art. |
|
||||||
|
|
||||||
See [here](images) for information on images.
|
See [here](images) for information on images.
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ use serde::Deserialize;
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
|
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
|
||||||
pub enum EllipsizeMode {
|
pub enum EllipsizeMode {
|
||||||
|
None,
|
||||||
Start,
|
Start,
|
||||||
Middle,
|
Middle,
|
||||||
End,
|
End,
|
||||||
|
@ -14,6 +15,7 @@ pub enum EllipsizeMode {
|
||||||
impl From<EllipsizeMode> for GtkEllipsizeMode {
|
impl From<EllipsizeMode> for GtkEllipsizeMode {
|
||||||
fn from(value: EllipsizeMode) -> Self {
|
fn from(value: EllipsizeMode) -> Self {
|
||||||
match value {
|
match value {
|
||||||
|
EllipsizeMode::None => Self::None,
|
||||||
EllipsizeMode::Start => Self::Start,
|
EllipsizeMode::Start => Self::Start,
|
||||||
EllipsizeMode::Middle => Self::Middle,
|
EllipsizeMode::Middle => Self::Middle,
|
||||||
EllipsizeMode::End => Self::End,
|
EllipsizeMode::End => Self::End,
|
||||||
|
@ -31,6 +33,17 @@ impl From<EllipsizeMode> for GtkEllipsizeMode {
|
||||||
#[serde(untagged)]
|
#[serde(untagged)]
|
||||||
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
|
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
|
||||||
pub enum TruncateMode {
|
pub enum TruncateMode {
|
||||||
|
/// Do not truncate content.
|
||||||
|
///
|
||||||
|
/// Setting this option may cause excessively long content to overflow other widgets,
|
||||||
|
/// shifting them off-screen.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```corn
|
||||||
|
/// { truncate = "off" }
|
||||||
|
Off,
|
||||||
|
|
||||||
/// Auto mode lets GTK decide when to ellipsize.
|
/// Auto mode lets GTK decide when to ellipsize.
|
||||||
///
|
///
|
||||||
/// To use this mode, set the truncate option to a string
|
/// To use this mode, set the truncate option to a string
|
||||||
|
@ -97,14 +110,14 @@ impl TruncateMode {
|
||||||
|
|
||||||
const fn length(&self) -> Option<i32> {
|
const fn length(&self) -> Option<i32> {
|
||||||
match self {
|
match self {
|
||||||
Self::Auto(_) => None,
|
Self::Auto(_) | Self::Off => None,
|
||||||
Self::Length { length, .. } => *length,
|
Self::Length { length, .. } => *length,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const fn max_length(&self) -> Option<i32> {
|
const fn max_length(&self) -> Option<i32> {
|
||||||
match self {
|
match self {
|
||||||
Self::Auto(_) => None,
|
Self::Auto(_) | Self::Off => None,
|
||||||
Self::Length { max_length, .. } => *max_length,
|
Self::Length { max_length, .. } => *max_length,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue