-
Notifications
You must be signed in to change notification settings - Fork 1
/
sample_config.toml
325 lines (294 loc) · 12.8 KB
/
sample_config.toml
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
# Optionally include other config files to be merged with this one.
# These paths are relative to the main configuration file's directory.
# These paths support shell expansion - via wordexp(3) - and such can refer to dynamic paths.
include = ["sample_included_config.toml"]
# Optionally pass a path for the socket. This is really only useful if you have multiple bars and
# need to make sure they don't attempt to bind to the same socket. If not provided a default will
# be found.
# socket = "/custom/socket/path/here"
# Theme customisation
# All of these are optional, and will default to the values documented here.
[theme]
# should be the same as i3's bar.colors.background setting
bg = "#2e3440"
# should be the same as i3's bar.colors.statusline setting
fg = "#d8dee9"
# used to indicate inactive or disabled states
dim = "#4c566a"
# usually indicates a warning state
yellow = "#ebcb8b"
# be more warned than yellow
orange = "#d08770"
# it's red - everybody panic
red = "#bf616a"
# ahh green... green is good
green = "#a3be8c"
# usually indicates special states
purple = "#b48ead"
# also like purple, something special, not exactly anything specific
blue = "#8fbcbb"
# if enabled, then item separators are removed and a "powerline"-like style is used
powerline_enable = false
# you can customise the powerline separator symbol here
# the `scale` field is optional and can be used as a workaround for font icon size inconsistencies
powerline_separator = { value = "", scale = 115 }
# powerline_separator = { value = "", scale = 115 }
# the colors that are cycled through for each powerline item - at least two must be present
powerline = [
{ fg = "#d8dee9", bg = "#3b4252" },
{ fg = "#e5e9f0", bg = "#434c5e" },
{ fg = "#eceff4", bg = "#4c566a" },
{ fg = "#e5e9f0", bg = "#434c5e" },
]
## The list of bar items. Ordered left to right in the bar itself.
#
## COMMON OPTIONS
## All items share the the following config options:
# type: required; the type of the item
# name: optional; a name for the item - makes some ipc operations easier
# index: optional; where to position this item in the bar - defaults to the current index in `items`
# signal: optional; a real-time signal can be mapped to an item, and when i3stat receives this signal
# the item will be refreshed - useful for manually triggering item updates.
# The same signal can be used for multiple items.
# The `i3stat-signals` command can be used to query limits for signals on the
# current system.
# actions: optional; custom commands to run when the item is clicked.
# These actions take precedence over any item's default behaviour (e.g., the pulse
# item already does things on click, but these actions would prevent that behaviour).
# The item's fields are added to the command's environment (use `i3stat-ipc get-bar` to see fields).
# See the examples in these config files (search for `[items.actions]`).
#
## FLOAT FORMAT OPTIONS
## Some items which display a floating point integer allow customising its format with these options:
# pad: optional; character to pad with. If not provided, no padding will be done
# pad_count: optional; how long to pad the number with. If not provided then it will pad to 3 digits
# before the decimal point.
# precision: optional; how many digits to display after the decimal point. Defaults to 0.
[[items]]
# Provides statistics of upload and download rates for all network interfaces
type = "net_usage"
# How often this item should refresh
interval = "1s"
# Anything under this threshold will show as "-"
minimum = "1 kiB"
# Optionally set the display mode, one of:
# bits: display as bits 8 Mbits
# bytes: display as bytes 1 MB (default)
# bibytes: display as *bibytes 1 MiB
display = "bytes"
# Up to 5 levels can be passed, and will affect the color of the item:
# 0..1st: theme.dim
# 1st..2nd: theme.normal
# 2nd..3rd: theme.yellow
# 3rd..4th: theme.orange
# 4th..5th: theme.red
# 5th..MAX: theme.purple
thresholds = ["1kiB", "1MiB", "10MiB", "25MiB", "100MiB"]
# Optionally provide a list of interface names to ignore when calculating usage
# ignored_interfaces = ["vpn0"]
[[items]]
# A raw item - these are static items that don't change, and display the values here
type = "raw"
# See i3's bar documentation for what fields are available: https://i3wm.org/docs/i3bar-protocol.html
full_text = "raw"
short_text = "!"
# This is an example of configuring custom actions for an item.
# [items.actions] is available for every item type! (See the COMMON OPTIONS section above.)
[items.actions]
# Run a command
left_click = "paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
# Run a command with specific modifiers
middle_click = { modifiers = ["Shift"], command = "i3-msg exec nemo" }
# Define different commands for different modifier combinations
right_click = [
# Hint: triple quotes are an easy way to escape inner quotes in TOML.
{ modifiers = ['Shift'], command = """ i3-msg exec "zenity --info --text 'HELLO FROM I3STAT!'" """ },
{ modifiers = ['Control'], command = """ i3-msg exec "zenity --info --text 'hello from i3stat!'" """ },
]
[[items]]
# Kerberos item - simply calls `klist` and displays the result
type = "krb"
# How often this item should refresh
interval = "2m"
# Optionally enable this item only when specific networks are active.
# This is the same format as the `filter` property in the `nic` item.
# only_on = ["vpn0:v4"]
[[items]]
# "Network Interfaces" item, provides an interactive list of interfaces and ip addresses, as well as
# WiFi signal strength and SSIDs if found. Supports updating itself automatically on network changes.
type = "nic"
# Optionally pass an `interval` to force updates - since it updates automatically this shouldn't be
# needed.
# interval = "60s"
# Optionally define how connection details will be displayed when connected to a WiFi network
# Values are:
# - `percent`: e.g., "80% at <ssid>" (default)
# - `dbm`: e.g., "-65 dBm at <ssid>"
# - `hidden`: nothing is shown
wireless_display = "percent"
# The `wireless_display` setting can be optionally paired with this one to refresh the WiFi details
# at a desired interval. If unset, it only updates when the item itself updates.
wireless_refresh_interval = "2m"
# Optionally pass a filter. Filters are formatted as `name[:type]`, where `name` is the interface
# name, and `type` is an optional part which is either `v4` or `v6`.
#
# If `name` is an empty string, then all interfaces are matched, for example:
# - `vpn0:v4` will match ip4 addresses for the `vpn` interface
# - `:v6` will match all interfaces which have an ip6 address
# filter = [":v4", "vpn0:v6"]
[[items]]
# Disk usage item - provides an interactive list of disks and their free space.
type = "disk"
# How often this item should refresh
interval = "60s"
# Optionally provide an alias for mount points (rather than the path)
aliases = [
{ path = "/", name = "root" },
{ path = "~/some_other_mount", name = "my_cool_mount" }
]
# Optionally only include these specific mount points rather than autodetecting
# mounts = ["/"]
[items.actions]
# Open the currently displayed mount point:
left_click = """ i3-msg exec "nemo $_mount_point" """
[[items]]
# CPU usage item - provides updates of CPU usage expressed as a percentage
# Also includes FLOAT FORMAT OPTIONS
type = "cpu"
# How often this item should refresh
interval = "2s"
# Open an application on click
[items.actions]
left_click = "i3-msg exec systemmonitor"
[[items]]
# Display the temperature of a given component.
type = "sensors"
# See: COMMON OPTIONS
name = "cpu-temp"
# How often this item should refresh
interval = "5s"
# The name of the component to display temperature for.
# The `i3stat-sensors` command is provided and outputs a list of components that can be used.
component = "coretemp Package id 0"
# Optional: set a label to be shown in the item (useful if you have multiple sensor items)
label = " (cpu)"
# See: FLOAT FORMAT OPTIONS
pad = ' '
pad_count = 2
[[items]]
# Display information about the system's memory usage
type = "mem"
# How often this item should refresh
interval = "10s"
# Optionally set the display mode, one of:
# bytes: display free memory as a byte size (default)
# percentage: display used memory as a percentage
display = "bytes"
# Also includes FLOAT FORMAT OPTIONS for when displaying as a percentage
[[items]]
# Display infomation about the current sink (sound output) and source (sound input). This is a very
# versatile item and has a tight integration to pulseaudio/pipewire.
# Scrolling up/down will change the volume of the current sink.
# Middle clicking will mute the current sink.
# Left clicking will cycle between ports for the current sink (i.e., speakers, headphones, etc).
# All of the above actions will affect the source rather than the sink while `shift` is held.
#
# This item also has a highly featured ipc interface, see `i3stat-ipc custom pulse` for more info.
type = "pulse"
# Control the increment of volume changes (expressed in percent) when increasing/decreasing the volume.
# Defaults to 5
increment = 5
# Optionally provide a `.wav` file to be played each time the volume is changed.
# increment_sound = "path/to/your/volume/sound.wav"
# Set an upper limit to the volume, expressed in percent.
max_volume = 120
# Configure optional notifications, supported values are:
# none no notifications (the default)
# volume_mute notifications on volume up/down and mute
# new_source_sink notifications when new sources/sinks are added
# defaults_change notifications when the default source/sink changes
# all all notifications
notify = "none"
# server_name = "pipewire-0"
[items.actions]
left_click = { modifiers = ["Control"], command = "i3-msg exec pavucontrol" }
[[items]]
# Show current light brightness (and also adjust it).
type = "light"
# Optionally provide a path to a specific backlight:
# path = "/sys/class/backlight/intel_backlight"
# Optionally specify how much percentage to increment the light by when scrolling (default is 5):
# increment = 10
[[items]]
# Show information about CapsLock/NumLock/ScrollLock.
type = "kbd"
# Which keys to show, available options are: caps_lock, num_lock or scroll_lock
show = ["caps_lock", "num_lock"]
# This item doesn't watch any keyboard input or anything, so to make it useful it's recommended to
# assign a signal to it here, and then bind a key to that in i3' config in order to refresh it.
# For example: `bindsym --release Caps_Lock exec pkill -RTMIN+4 i3stat`.
# See: COMMON OPTIONS
signal = 4
[[items]]
# Display information about a battery
type = "battery"
# How often this item should refresh
interval = "10s"
# Should notifications be sent when an AC Adapter is plugged/unplugged?
notify_on_adapter = true
# Optionally trigger a critical (and sticky) notification under a certain percentage.
# This notification will stay unless the percentage goes above the threshold, or the battery state
# is anything other than discharging.
notify_percentage = 5
# Optionally specify a list of particular batteries to show. If not provided, it will attempt to
# discover all the batteries on the system.
# batteries = ["/sys/class/power_supply/BAT0"]
[[items]]
# Display the current date or time
type = "time"
# Format for the long display
format_long = "%Y-%m-%d %H:%M:%S"
# Format for the short display (i3bar will show the short text of an item if space is limited)
format_short = "%H:%M"
# How often this item should refresh
interval = "1s"
# Open a calendar when clicking on the time item
[items.actions]
left_click = "i3-msg exec gsimplecal"
[[items]]
# Run a script and display its output as an item. By default the command's STDOUT is displayed.
# Arguments are passed via the environment to the script:
# I3_SIGNAL set to "true" is this refresh was triggered by a signal
# The following are passed through from the i3 click event:
# I3_NAME
# I3_MODIFIERS
# I3_BUTTON
# I3_X
# I3_Y
# I3_RELATIVE_X
# I3_RELATIVE_Y
# I3_OUTPUT_X
# I3_OUTPUT_Y
# I3_WIDTH
# I3_HEIGHT
type = "script"
# See: COMMON OPTIONS
name = "clicks"
# The command to run
command = "echo -n `if [ ! -z $I3_BUTTON ]; then echo button=$I3_BUTTON; else echo bar item; fi`"
# The format of the output, either: simple or json. Defaults to simple.
output = "simple"
# The markup of the output, either: none or pango. This is the same as i3's markup property.
# Defaults to none.
markup = "none"
[[items]]
# An example of a script using pango formatting and JSON output.
type = "script"
name = "custom"
command = """ echo -n '{"full_text":"<span foreground=\\"orange\\">G'"'"'day</span>"}' """
output = "json"
markup = "pango"
[[items]]
# A simple item which will display an icon if Dunst is currently paused. Can be used as an
# indicator for a simple "do not disturb" mode.
type = "dunst"