summaryrefslogtreecommitdiffstatshomepage
path: root/wired/.config/wired/wired.ron
blob: 59b8a4d05b21e2d13bcc92c079b5b187d52f0b6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
(
    // Maximum number of notifications to show at any one time.
    // A value of 0 means that there is no limit.
    max_notifications: 0,

    // The default timeout, in miliseconds, for notifications that don't have an initial timeout set.
    // 1000ms = 1s.
    timeout: 10000,

    // `poll_interval` decides decides how often (in milliseconds) Wired checks for new notifications, events,
    // draws notifications (if necessary), etc.
    // Note that when no notifications are present, Wired always polls at 500ms.
    // 16ms ~= 60hz / 7ms ~= 144hz.
    poll_interval: 16,

    // Wired will pause notifications if you are idle (no mouse or keyboard input) for longer than
    // `idle_threshold` seconds.
    // Note that notifications will not be automatically unpaused on wake, and will need to be manually
    // cleared, unless `unpause_on_input` is set to true.
    // Also note that no distinction is made between manually paused and idle paused notifications.
    // If `idle_threshold` is not specified, the behavior will be disabled entirely.
    //idle_threshold: 3600,

    // Notifications will spawn paused, and have to be manually unpaused or cleared by the user,
    // unless `unpause_on_input` is also set.
    //notifications_spawn_paused: false,

    // Unpause notifications when we receive any input after being idle for longer than 1 second.
    // Note that no distinction is made between manually paused notifications and idle paused/spawned notifications.
    //unpause_on_input: false,

    // Enable/disable replacement functionality.
    // If this is disabled, replacement requests will just send a new notification.
    // E.g., with replacing_enabled: true, Pidgin will only show the latest message from each contact,
    // instead of sending a new one for each message.
    // Default: true
    //replacing_enabled: true,

    // Whether a notification should reset its timeout when it is replaced.
    // No effect if replacing_enabled is set to false.
    // Default: false
    //replacing_resets_timeout: false,

    // Some apps/programs close notifications on their own by sending a request to dbus.
    // Sometimes this is not desired.
    // Default: true
    //closing_enabled: true,

    // How many notifications are kept in history.
    // Each notification is roughly 256 bytes (excluding buffers!), so there's some math to do here.
    // Default: 10
    //history_length: 10,

    // When a `NotificationBlock` has monitorr: -1 (i.e. should follow active monitor), then what input
    // should we use to determine the active monitor?
    // Options: Mouse, Window
    // Default: Mouse
    //focus_follows: Mouse,

    // Enable printing notification data to a file.
    // Useful for scripting purposes.
    // The data is written as JSON.
    // Default: None
    //print_to_file: "/tmp/wired.log",

    // Minimum window width and height.  This is used to create the base rect that the notification
    // grows within.
    // The notification window will never be smaller than this.
    // A value of 1 means that the window will generally always resize with notification, unless
    // you have a 1x1 pixel notification...
    // Generally, you shouldn't need to set this.
    //min_window_width: 1,
    //min_window_height: 1,

    // Enable/disable debug rendering.
    debug: false,
    debug_color: Color(r: 0.0, g: 1.0, b: 0.0, a: 1.0), // Primary color for debug rectangles.
    debug_color_alt: Color(r: 1.0, g: 0.0, b: 0.0, a: 1.0), // Secondary color for debug rectangles.

    layout_blocks: [
        // Layout 1, when an image is present.
        (
            name: "root",
            parent: "",
            hook: Hook(parent_anchor: TR, self_anchor: TR),
            offset: Vec2(x: -7.0, y: 7.0),
            //render_criteria: [HintImage],
            // https://github.com/Toqozz/wired-notify/wiki/NotificationBlock
            params: NotificationBlock((
                monitor: 0,
                border_width: 3.0,
                border_rounding: 3.0,
                //background_color: Color(r: 0.15686, g: 0.15686, b: 0.15686, a: 1.0),
                background_color: Color(hex: "#282828"),
                border_color: Color(hex: "#ebdbb2"),
                border_color_low: Color(hex: "#282828"),
                border_color_critical: Color(hex: "#fb4934"),
                border_color_paused: Color(hex: "#fabd2f"),

                gap: Vec2(x: 0.0, y: 8.0),
                notification_hook: Hook(parent_anchor: BR, self_anchor: TR),
            )),
        ),

        (
            name: "image",
            parent: "root",
            hook: Hook(parent_anchor: TL, self_anchor: TL),
            offset: Vec2(x: 0.0, y: 0.0),
            // https://github.com/Toqozz/wired-notify/wiki/ImageBlock
            params: ImageBlock((
                image_type: Hint,
                // We actually want 4px padding, but the border is 3px.
                padding: Padding(left: 7.0, right: 0.0, top: 7.0, bottom: 7.0),
                rounding: 3.0,
                scale_width: 48,
                scale_height: 48,
                filter_mode: Lanczos3,
            )),
        ),

        (
            name: "summary",
            parent: "image",
            hook: Hook(parent_anchor: MR, self_anchor: BL),
            offset: Vec2(x: 0.0, y: 0.0),
            // https://github.com/Toqozz/wired-notify/wiki/TextBlock
            params: TextBlock((
                text: "%s",
                font: "Arial Bold 11",
                ellipsize: Middle,
                color: Color(hex: "#ebdbb2"),
                color_hovered: Color(hex: "#fbf1c7"),
                padding: Padding(left: 7.0, right: 7.0, top: 7.0, bottom: 0.0),
                dimensions: (width: (min: 50, max: 150), height: (min: 0, max: 0)),
            )),
        ),

        (
            name: "body",
            parent: "summary",
            hook: Hook(parent_anchor: BL, self_anchor: TL),
            offset: Vec2(x: 0.0, y: -3.0),
            // https://github.com/Toqozz/wired-notify/wiki/ScrollingTextBlock
            params: ScrollingTextBlock((
                text: "%b",
                font: "Arial 11",
                color: Color(hex: "#ebdbb2"),
                color_hovered: Color(hex: "#fbf1c7"),
                padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0),
                width: (min: 150, max: 250),
                scroll_speed: 0.1,
                lhs_dist: 35.0,
                rhs_dist: 35.0,
                scroll_t: 1.0,
            )),
        ),
    ],

    // https://github.com/Toqozz/wired-notify/wiki/Shortcuts
    shortcuts: ShortcutsConfig (
        notification_interact: 1,
        notification_close: 2,
        // notification_closeall: 99,
        // notification_pause: 99,

        notification_action1: 3,
        // notification_action2: 99,
        // notification_action3: 99,
        // notification_action4: 99,
    ),
)