-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Show off your Wired config here! #63
Comments
Config(
max_notifications: 5,
timeout: 4000,
poll_interval: 16, // 16ms ~= 60hz / 7ms ~= 144hz.
history_length: 20,
replacing_enabled: true,
replacing_resets_timeout: true,
min_window_width: 300,
min_window_height: 100,
debug: false,
debug_color: Color(r: 0.0, g: 1.0, b: 0.0, a: 1.0),
debug_color_alt: Color(r: 1.0, g: 0.0, b: 0.0, a: 1.0),
layout_blocks: [
(
name: "app_root",
parent: "",
hook: Hook(parent_anchor: MM, self_anchor: MM),
offset: Vec2(x: 0, y: 0),
render_criteria: [AppImage],
params: NotificationBlock((
monitor: 0,
border_width: 0,
border_rounding: 8,
background_color: Color(hex: "#F5F5F5"),
border_color: Color(hex: "#00000000"),
border_color_low: Color(hex: "#00000000"),
border_color_critical: Color(hex: "#FF0000"),
border_color_paused: Color(hex: "#00000000"),
gap: Vec2(x: 0.0, y: 8.0),
notification_hook: Hook(parent_anchor: BM, self_anchor: TM),
)),
),
(
name: "app_notification",
parent: "app_root",
hook: Hook(parent_anchor: TM, self_anchor: TM),
offset: Vec2(x: 0, y: 0),
params: ImageBlock((
image_type: App,
padding: Padding(left: 40, right: 40, top: 40, bottom: 8),
rounding: 4.0,
scale_width: 152,
scale_height: 152,
filter_mode: Lanczos3,
)),
),
(
name: "app_summary",
parent: "app_notification",
hook: Hook(parent_anchor: BM, self_anchor: TM),
offset: Vec2(x: 0, y: 12),
params: TextBlock((
text: "%s",
font: "Arial Bold 16",
ellipsize: End,
color: Color(hex: "#000000"),
padding: Padding(left: 0, right: 0, top: 0, bottom: 0),
dimensions: (width: (min: -1, max: 185), height: (min: 0, max: 0)),
)),
),
(
name: "app_body",
parent: "app_summary",
hook: Hook(parent_anchor: BM, self_anchor: TM),
offset: Vec2(x: 0, y: 0),
params: TextBlock((
text: "%b",
font: "Arial Bold 16",
ellipsize: End,
color: Color(hex: "#000000"),
padding: Padding(left: 0, right: 0, top: 0, bottom: 24),
dimensions: (width: (min: -1, max: 250), height: (min: 0, max: 0)),
)),
),
(
name: "app_progress",
parent: "app_notification",
hook: Hook(parent_anchor: BM, self_anchor: TM),
offset: Vec2(x: 0, y: 50),
render_criteria: [Progress],
params: ProgressBlock((
padding: Padding(left: 0, right: 0, top: 0, bottom: 32),
border_width: 2,
border_rounding: 2,
border_color: Color(hex: "#000000"),
fill_rounding: 1,
background_color: Color(hex: "#00000000"),
fill_color: Color(hex: "#000000"),
width: -1.0,
height: 30.0,
)),
),
(
name: "status_root",
parent: "",
hook: Hook(parent_anchor: TM, self_anchor: TM),
offset: Vec2(x: 0.0, y: 60),
// render_anti_criteria: [AppImage],
render_criteria: [HintImage],
params: NotificationBlock((
monitor: 0,
border_width: 0,
border_rounding: 8,
background_color: Color(hex: "#F5F5F5"),
border_color: Color(hex: "#00000000"),
border_color_low: Color(hex: "#00000000"),
border_color_critical: Color(hex: "#FF0000"),
border_color_paused: Color(hex: "#00000000"),
gap: Vec2(x: 0.0, y: 8.0),
notification_hook: Hook(parent_anchor: BM, self_anchor: TM),
)),
),
(
name: "status_notification",
parent: "status_root",
hook: Hook(parent_anchor: TL, self_anchor: TL),
offset: Vec2(x: 0, y: 0),
params: TextBlock((
text: "%s",
font: "Arial Bold 16",
ellipsize: End,
color: Color(hex: "#000000"),
padding: Padding(left: 8, right: 8, top: 8, bottom: 8),
dimensions: (width: (min: 400, max: 400), height: (min: 84, max: 0)),
)),
),
(
name: "status_body",
parent: "status_notification",
hook: Hook(parent_anchor: ML, self_anchor: TL),
offset: Vec2(x: 0, y: -24),
params: TextBlock((
text: "%b",
font: "Arial 14",
ellipsize: End,
color: Color(hex: "#000000"),
padding: Padding(left: 8, right: 8, top: 8, bottom: 8),
dimensions: (width: (min: 400, max: 400), height: (min: 0, max: 84)),
)),
),
(
name: "status_image",
parent: "status_notification",
hook: Hook(parent_anchor: TL, self_anchor: TR),
offset: Vec2(x: 0, y: 0),
params: ImageBlock((
image_type: Hint,
padding: Padding(left: 8, right: 0, top: 8, bottom: 8),
rounding: 4.0,
scale_width: 84,
scale_height: 84,
filter_mode: Lanczos3,
)),
),
],
// https://github.com/Toqozz/wired-notify/wiki/Shortcuts
shortcuts: ShortcutsConfig (
notification_interact: 1,
notification_close: 2,
notification_action1: 3,
),
) |
Nothing special. Config:
|
(Color of volume bar is muted because volume is muted) Config:(
max_notifications: 10,
timeout: 20000,
poll_interval: 16,
shortcuts: (
notification_interact: 2,
notification_close: 1,
notification_closeall: 3,
),
history_length: 100,
replacing_resets_timeout: true,
min_window_width: 768,
layout_blocks: [
(
name: "root",
parent: "",
hook: (parent_anchor: TR, self_anchor: TR),
offset: (x: -48, y: 48),
params: NotificationBlock((
monitor: 0,
border_width: 3.0,
border_rounding: 0.0,
gap: (x: 0.0, y: 24.0),
background_color: (hex: "#1D1F21"),
border_color: (hex: "#66D9EF"),
border_color_low: (hex: "#403D3D"),
border_color_critical: (hex: "#661512"),
notification_hook: (parent_anchor: BL, self_anchor: TL),
)),
),
(
name: "image",
parent: "summary",
hook: (parent_anchor: TL, self_anchor: TR),
offset: (x: 0, y: 0),
render_criteria: [ HintImage ],
params: ImageBlock((
image_type: Hint,
padding: (left: 0.0, right: 24.0, top: 24.0, bottom: 24.0),
rounding: 0.0,
scale_width: 144,
scale_height: 144,
filter_mode: Lanczos3,
)),
),
(
name: "summary",
parent: "root",
offset: (x: 0, y: 0),
hook: (parent_anchor: TR, self_anchor: TR),
params: TextBlock((
text: "%s",
padding: (left: 18.0, right: 18.0, top: 18.0, bottom: 12.0),
font: "Dejavu Sans 36",
color: Color(hex: "#f8f8f2"),
dimensions: (
width: (min: 768, max: 768),
height: (min: 0, max: 300),
),
dimensions_image_hint: (
width: (min: 600, max: 600),
height: (min: 0, max: 300),
),
)),
),
(
name: "body",
parent: "summary",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ Body ],
render_anti_criteria: [ AppName("progress") ],
params: ScrollingTextBlock((
text: "%b",
padding: (left: 18.0, right: 18.0, top: 0.0, bottom: 24.0),
font: "DejaVu Sans 36",
color: (hex: "#f8f8f2"),
scroll_speed: 0.1,
lhs_dist: 24.0,
rhs_dist: 24.0,
scroll_t: 1.0,
width: (min: 768, max: 768),
width_image_hint: (min: 544, max: 544),
)),
),
(
name: "progress",
parent: "body",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ Progress ],
render_anti_criteria: [ Body ],
params: ProgressBlock((
padding: (left: 18.0, right: 18.0, top: 15.0, bottom: 42.0),
border_width: 0.0,
border_rounding: 0.0,
fill_rounding: 0.0,
border_color: (hex: "#1D1F21"),
background_color: (hex: "#403D3D"),
fill_color: (hex: "#66D9EF"),
width: 705.0,
height: 24.0,
)),
),
(
name: "progress_muted",
parent: "body",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ And([Progress, Body]) ],
params: ProgressBlock((
padding: (left: 18.0, right: 18.0, top: 15.0, bottom: 42.0),
border_width: 0.0,
border_rounding: 0.0,
fill_rounding: 0.0,
border_color: (hex: "#1D1F21"),
background_color: (hex: "#403D3D"),
fill_color: (hex: "#64888F"),
width: 705.0,
height: 24.0,
)),
),
],
) Fixed config for last Wired version(
max_notifications: 10,
timeout: 20000,
poll_interval: 16,
shortcuts: (
notification_interact: 2,
notification_close: 1,
notification_closeall: 3,
),
history_length: 100,
replacing_resets_timeout: true,
min_window_width: 768,
layout_blocks: [
(
name: "root",
parent: "",
hook: (parent_anchor: TR, self_anchor: TR),
offset: (x: -48, y: 48),
params: NotificationBlock((
monitor: 0,
border_width: 3.0,
border_rounding: 0.0,
gap: (x: 0.0, y: 24.0),
background_color: (hex: "#1D1F21"),
border_color: (hex: "#66D9EF"),
border_color_low: (hex: "#403D3D"),
border_color_critical: (hex: "#661512"),
notification_hook: (parent_anchor: BL, self_anchor: TL),
)),
),
(
name: "summary",
parent: "root",
offset: (x: 0, y: 0),
hook: (parent_anchor: TR, self_anchor: TR),
params: TextBlock((
text: "%s",
padding: (left: 48.0, right: 18.0, top: 28.0, bottom: 24.0),
font: "Dejavu Sans 36",
color: Color(hex: "#f8f8f2"),
dimensions: (
width: (min: 768, max: 768),
height: (min: 0, max: 300),
),
dimensions_image_hint: (
width: (min: 600, max: 600),
height: (min: 0, max: 300),
),
)),
),
(
name: "image",
parent: "summary",
hook: (parent_anchor: TL, self_anchor: TR),
offset: (x: 0, y: 0),
render_criteria: [ HintImage ],
params: ImageBlock((
image_type: Hint,
padding: (left: 28, right: -24.0, top: 24.0, bottom: 24.0),
rounding: 0.0,
scale_width: 144,
scale_height: 144,
filter_mode: Lanczos3,
)),
),
(
name: "body",
parent: "summary",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ Body ],
render_anti_criteria: [ AppName("progress") ],
params: ScrollingTextBlock((
text: "%b",
padding: (left: 48.0, right: 18.0, top: -12.0, bottom: 30.0),
font: "DejaVu Sans 36",
color: (hex: "#f8f8f2"),
scroll_speed: 0.1,
lhs_dist: 24.0,
rhs_dist: 24.0,
scroll_t: 1.0,
width: (min: 768, max: 768),
width_image_hint: (min: 580, max: 580),
)),
),
(
name: "progress",
parent: "body",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ Progress ],
render_anti_criteria: [ Body ],
params: ProgressBlock((
padding: (left: 48.0, right: 12.0, top: 15.0, bottom: 42.0),
border_width: 0.0,
border_rounding: 0.0,
fill_rounding: 0.0,
border_color: (hex: "#1D1F21"),
background_color: (hex: "#403D3D"),
fill_color: (hex: "#66D9EF"),
width: 735.0,
height: 24.0,
)),
),
(
name: "progress_muted",
parent: "body",
offset: (x: 0, y: 0),
hook: (parent_anchor: BL, self_anchor: TL),
render_criteria: [ And([Progress, Body]) ],
params: ProgressBlock((
padding: (left: 18.0, right: 18.0, top: 15.0, bottom: 42.0),
border_width: 0.0,
border_rounding: 0.0,
fill_rounding: 0.0,
border_color: (hex: "#1D1F21"),
background_color: (hex: "#403D3D"),
fill_color: (hex: "#64888F"),
width: 705.0,
height: 24.0,
)),
),
],
) Script#!/bin/sh
notify_volume() {
if [ "$(pamixer --get-mute)" = "true" ]; then
notify-send -a progress -t 1000 -h 'string:wired-tag:volume' -h "int:value:$(pamixer --get-volume)" 'Volume' 'muted'
else
notify-send -a progress -t 1000 -h 'string:wired-tag:volume' -h "int:value:$(pamixer --get-volume)" 'Volume'
fi
}
notify_brightness() {
notify-send -a progress -t 1000 -h 'string:wired-tag:brightness' -h "int:value:$target" 'Brightness'
}
notify_track() {
# wait for mpris to update
sleep 0.4
art_url="$(playerctl metadata -f '{{mpris:artUrl}}' | sed 's/file:\/\///')"
if [ -z "$art_url" ]; then
notify-send -h 'string:wired-tag:player' -t 10000 'Player' "$(playerctl metadata -f '{{artist}} — {{title}}')"
else
notify-send -h 'string:wired-tag:player' -t 10000 -h "string:image-path:$art_url" 'Player' "$(playerctl metadata -f '{{artist}} — {{title}}')"
fi
}
case "$1" in
up)
pamixer -i 5
notify_volume
;;
down)
pamixer -d 5
notify_volume
;;
mutetoggle)
pamixer --toggle-mute
notify_volume
;;
light_up)
curr="$(printf '%.*f\n' 0 "$(light)")"
target="$(( curr + 5 ))"
light -S "$target"
notify_brightness
;;
light_down)
curr="$(printf '%.*f\n' 0 "$(light)")"
target="$(( curr - 5 ))"
light -S "$target"
notify_brightness
;;
play_pause)
playerctl play-pause
notify_track
;;
next)
playerctl next
notify_track
;;
previous)
playerctl previous
notify_track
;;
esac |
@GoldsteinE where do you put the script ? |
@Haxeil It doesn’t really matter, you just need to run it when you want to change volume/brightness/send command to media player. In my case it’s in
|
@lukelex how did you do to display volume icon? |
I use Font Awesome but you can use your font pack of choice. notify-send -a System \
-i "$YOUR_ICON_PACK_PATH/volume.svg" \
-h string:wired-tag:system \
-h int:value:69 \
"Volume" https://github.com/lukelex/dotfiles/blob/master/linux/scripts/audio |
Colors are based on Catppuccin color scheme. You can find my config here :) |
@Itsnexn thanks for sharing! Can you also share the test cases you use to display notifications on your screenshot? Thanks |
@welcoMattic Yes of course. I don't usually keep scripts like this. However, rewriting it wasn't that difficult :^) here you go: Scriptnotify-send.py "Notification" "Normal urgency"
notify-send.py -u low "Notification" "Low urgency"
notify-send.py -u critical "Notification" "Critical urgency"
notify-send.py -i /usr/share/icons/breeze-dark/status/22/audio-volume-high.svg \
"Notification" "Appimage / Hintimage"
notify-send.py "Progress" \
-i /usr/share/icons/breeze-dark/status/22/audio-volume-high.svg \
--hint int:value:90
notify-send.py "Yes or no?" \
-i /usr/share/icons/breeze-dark/status/22/audio-volume-high.svg \
--action Cancel:cancel OK:ok Idk:idk &
notify-send.py "Yes or no?" --action Idk:idk Cancel:cancel OK:ok & the tool I use to send notifications is notify-send.py. and I also used this icon pack as an example. |
@faynopi do you still have the dotfiles for the wired-notify config? I like the way it looks very much and would love to use it on my machine |
My configuration, compatible with any base16 colorscheme. Notification positions were rearranged for better visibility. All notifications appear in the top right corner, except for the brightness and volume indicator which show in the middle of the monitor and replace each other.
The colors and details are all baked in, since there is no variable support in wired. If you are familiar with nix, you can use my nix configuration for wired if you want to customize it more easily (supports base16 colors via stylix and a scaling factor). |
I like your config, but it's 404 now I want to use it. Seems like pretty much what I was planning |
I have created a simple mockup of Faynopi's config, for future readers. However, it is extremely feature-lacking; it's difficult to make it more useful without adding a ton of blocks; this is due to the limitation of a static Config
|
It's about time we had something like this.
Uploading your
wired.ron
file alongside a screenshot is encouraged but not mandatory.Note: you can format your config like the following to make the code block collapsible:
Here's the default Wired config -- pretty simple!:
Config
The text was updated successfully, but these errors were encountered: