2020-08-01 14:46:05 +00:00
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
;;
|
|
|
|
;; ____ __ __
|
|
|
|
;; / __ \____ / /_ __/ /_ ____ ______
|
|
|
|
;; / /_/ / __ \/ / / / / __ \/ __ `/ ___/
|
|
|
|
;; / ____/ /_/ / / /_/ / /_/ / /_/ / /
|
|
|
|
;; /_/ \____/_/\__, /_.___/\__,_/_/
|
|
|
|
;; /____/
|
|
|
|
;;
|
|
|
|
;; Created By Aditya Shakya @adi1090x
|
|
|
|
;;
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
;; Global WM Settings
|
|
|
|
|
|
|
|
[global/wm]
|
|
|
|
; Adjust the _NET_WM_STRUT_PARTIAL top value
|
|
|
|
; Used for top aligned bars
|
|
|
|
margin-bottom = 0
|
|
|
|
|
|
|
|
; Adjust the _NET_WM_STRUT_PARTIAL bottom value
|
|
|
|
; Used for bottom aligned bars
|
|
|
|
margin-top = 0
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
;; Bar Settings
|
|
|
|
|
|
|
|
[bar/main]
|
2020-08-03 18:59:39 +00:00
|
|
|
monitor = ${env:MONITOR:}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
monitor-fallback =
|
|
|
|
|
|
|
|
; Require the monitor to be in connected state
|
|
|
|
; XRandR sometimes reports my monitor as being disconnected (when in use)
|
2020-08-03 18:59:39 +00:00
|
|
|
monitor-strict = true
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
; Tell the Window Manager not to configure the window.
|
|
|
|
; Use this to detach the bar if your WM is locking its size/position.
|
|
|
|
override-redirect = false
|
|
|
|
|
2020-09-14 19:10:32 +00:00
|
|
|
; Hide when using fullscreen applications
|
|
|
|
wm-restack = bspwm
|
|
|
|
|
2020-08-01 14:46:05 +00:00
|
|
|
; Put the bar at the bottom of the screen
|
|
|
|
bottom = true
|
|
|
|
|
|
|
|
; Prefer fixed center position for the `modules-center` block
|
|
|
|
; When false, the center position will be based on the size of the other blocks.
|
|
|
|
fixed-center = true
|
|
|
|
|
|
|
|
; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%),
|
|
|
|
; the percentage can optionally be extended with a pixel offset like so:
|
|
|
|
; 50%:-10, this will result in a width or height of 50% minus 10 pixels
|
|
|
|
width = 99%
|
2020-08-03 18:59:39 +00:00
|
|
|
height = 30
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
|
|
|
; the percentage can optionally be extended with a pixel offset like so:
|
|
|
|
; 50%:-10, this will result in an offset in the x or y direction
|
|
|
|
; of 50% minus 10 pixels
|
|
|
|
offset-x = 0.5%
|
2020-08-03 18:59:39 +00:00
|
|
|
offset-y = 0%
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
|
|
|
background = ${color.alpha}
|
|
|
|
|
|
|
|
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
|
|
|
foreground = ${color.fg}
|
|
|
|
|
|
|
|
; Value used for drawing rounded corners
|
|
|
|
; Note: This shouldn't be used together with border-size because the border
|
|
|
|
; doesn't get rounded
|
|
|
|
; Individual top/bottom values can be defined using:
|
|
|
|
; radius-{top,bottom}
|
|
|
|
radius-top = 0.0
|
|
|
|
radius-bottom = 0.0
|
|
|
|
|
|
|
|
; Under-/overline pixel size and argb color
|
|
|
|
; Individual values can be defined using:
|
|
|
|
; {overline,underline}-size
|
|
|
|
; {overline,underline}-color
|
|
|
|
line-size = 2
|
|
|
|
line-color = ${color.shade5}
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
font-0 = "scientifica:size=8;2"
|
2020-08-03 20:15:12 +00:00
|
|
|
font-1 = "Siji:size=8;2"
|
2020-08-01 14:46:05 +00:00
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
modules-left = xwindow sep
|
|
|
|
modules-center = workspaces
|
|
|
|
modules-right = sep memory cpu pulseaudio battery date
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
wm-name = bspwm
|
|
|
|
locale = ro_RO.UTF-8
|
|
|
|
|
|
|
|
tray-position = right
|
|
|
|
tray-detached = false
|
|
|
|
tray-maxsize = 16
|
2020-08-03 18:59:39 +00:00
|
|
|
tray-background = ${color.bg}
|
2020-08-01 14:46:05 +00:00
|
|
|
tray-offset-x = 0
|
|
|
|
tray-offset-y = 0
|
|
|
|
tray-padding = 0
|
|
|
|
tray-scale = 1.0
|
|
|
|
|
|
|
|
enable-ipc = true
|
|
|
|
|
|
|
|
; Requires polybar to be built with xcursor support (xcb-util-cursor)
|
|
|
|
; Possible values are:
|
|
|
|
; - default : The default pointer as before, can also be an empty string (default)
|
|
|
|
; - pointer : Typically in the form of a hand
|
|
|
|
; - ns-resize : Up and down arrows, can be used to indicate scrolling
|
2020-08-03 18:59:39 +00:00
|
|
|
cursor-click = pointer
|
|
|
|
cursor-scroll = default
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
;; Application Settings
|
|
|
|
|
|
|
|
[settings]
|
|
|
|
; The throttle settings lets the eventloop swallow up til X events
|
|
|
|
; if they happen within Y millisecond after first event was received.
|
|
|
|
; This is done to prevent flood of update event.
|
|
|
|
;
|
|
|
|
; For example if 5 modules emit an update event at the same time, we really
|
|
|
|
; just care about the last one. But if we wait too long for events to swallow
|
|
|
|
; the bar would appear sluggish so we continue if timeout
|
|
|
|
; expires or limit is reached.
|
|
|
|
throttle-output = 5
|
|
|
|
throttle-output-for = 10
|
|
|
|
|
|
|
|
; Time in milliseconds that the input handler will wait between processing events
|
|
|
|
throttle-input-for = 30
|
|
|
|
|
|
|
|
; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events
|
|
|
|
screenchange-reload = false
|
|
|
|
|
|
|
|
; Compositing operators
|
|
|
|
; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
|
|
|
|
compositing-background = source
|
|
|
|
compositing-foreground = over
|
|
|
|
compositing-overline = over
|
|
|
|
compositing-underline = over
|
|
|
|
compositing-border = over
|
|
|
|
|
|
|
|
; Define fallback values used by all module formats
|
|
|
|
format-foreground =
|
|
|
|
format-background =
|
|
|
|
format-underline =
|
|
|
|
format-overline =
|
|
|
|
format-spacing =
|
|
|
|
format-padding =
|
|
|
|
format-margin =
|
|
|
|
format-offset =
|
|
|
|
|
|
|
|
; Enables pseudo-transparency for the bar
|
|
|
|
; If set to true the bar can be transparent without a compositor.
|
|
|
|
pseudo-transparency = false
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
;;
|
|
|
|
;; ______ __
|
|
|
|
;; / ____/___ / /___ __________
|
|
|
|
;; / / / __ \/ / __ \/ ___/ ___/
|
|
|
|
;; / /___/ /_/ / / /_/ / / (__ )
|
|
|
|
;; \____/\____/_/\____/_/ /____/
|
|
|
|
;;
|
|
|
|
;; Created By Aditya Shakya @adi1090x
|
|
|
|
;;
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[color]
|
|
|
|
|
2020-08-22 16:04:56 +00:00
|
|
|
; bg = #141C21
|
2020-08-03 18:59:39 +00:00
|
|
|
; fg = #D9DBDF this is something white
|
2020-08-22 16:04:56 +00:00
|
|
|
; fg = #AFB42B
|
|
|
|
; fg-alt = #141C21
|
|
|
|
|
|
|
|
; alpha = #00000000
|
|
|
|
|
|
|
|
; shade1 = #AFB42B
|
|
|
|
; shade2 = #C0CA33
|
|
|
|
; shade3 = #CDDC39
|
|
|
|
; shade4 = #D4E157
|
|
|
|
; shade5 = #DCE775
|
|
|
|
; shade6 = #E6EE9C
|
|
|
|
bg = ${xrdb:background}
|
|
|
|
fg = ${xrdb:foreground}
|
|
|
|
fg-alt = ${xrdb:color0}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
alpha = #00000000
|
|
|
|
|
2021-02-19 08:20:01 +00:00
|
|
|
shade1 = ${xrdb:color4}
|
|
|
|
shade2 = ${xrdb:color12}
|
2021-04-10 15:26:18 +00:00
|
|
|
shade3 = ${xrdb:color1}
|
|
|
|
shade4 = ${xrdb:color9}
|
2021-02-19 08:20:01 +00:00
|
|
|
shade5 = ${xrdb:color7}
|
|
|
|
shade6 = ${xrdb:color15}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
;;
|
|
|
|
;; __ ___ __ __
|
|
|
|
;; / |/ /___ ____/ /_ __/ /__ _____
|
|
|
|
;; / /|_/ / __ \/ __ / / / / / _ \/ ___/
|
|
|
|
;; / / / / /_/ / /_/ / /_/ / / __(__ )
|
|
|
|
;; /_/ /_/\____/\__,_/\__,_/_/\___/____/
|
|
|
|
;;
|
|
|
|
;; Created By Aditya Shakya @adi1090x
|
|
|
|
;;
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
[module/pulseaudio]
|
|
|
|
type = internal/pulseaudio
|
|
|
|
|
|
|
|
use-ui-max = true
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format-volume = <ramp-volume> <label-volume>
|
|
|
|
format-volume-background = ${color.shade4}
|
|
|
|
format-volume-foreground = ${color.fg-alt}
|
|
|
|
format-volume-padding = 2
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
# Shows percentage and launches pavucntrol on left click
|
|
|
|
label-volume = %{A3:pavucontrol &:}%percentage%%%{A}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format-muted-background = ${color.shade4}
|
|
|
|
format-muted-foreground = ${color.fg-alt}
|
|
|
|
format-muted-padding = 2
|
2020-08-22 16:04:56 +00:00
|
|
|
label-muted = %{A3:pavucntrol &:}%{A}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
2020-08-03 20:15:12 +00:00
|
|
|
ramp-volume-0 =
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/battery]
|
|
|
|
type = internal/battery
|
|
|
|
|
|
|
|
full-at = 99
|
2020-08-03 18:59:39 +00:00
|
|
|
battery = BAT0
|
|
|
|
adapter = AC
|
|
|
|
poll-interval = 5
|
2020-08-01 14:46:05 +00:00
|
|
|
time-format = %H:%M
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
format-charging = <label-charging>
|
2020-08-01 14:46:05 +00:00
|
|
|
format-charging-background = ${color.shade3}
|
|
|
|
format-charging-foreground = ${color.fg-alt}
|
|
|
|
format-charging-padding = 2
|
|
|
|
|
|
|
|
format-discharging = <ramp-capacity> <label-discharging>
|
|
|
|
format-discharging-background = ${color.shade3}
|
|
|
|
format-discharging-foreground = ${color.fg-alt}
|
|
|
|
format-discharging-padding = 2
|
|
|
|
|
|
|
|
format-full = <label-full>
|
|
|
|
format-full-background = ${color.shade3}
|
|
|
|
format-full-foreground = ${color.fg-alt}
|
|
|
|
format-full-padding = 2
|
|
|
|
|
2020-08-13 10:58:36 +00:00
|
|
|
label-charging = %{A1:xfce4-power-manager-settings &:} %percentage%%%{A}
|
2020-08-03 18:59:39 +00:00
|
|
|
label-discharging = %{A1:xfce4-power-manager-settings &:}%percentage%%%{A}
|
2020-08-13 10:58:36 +00:00
|
|
|
label-full = %{A1:xfce4-power-manager-settings &:} 100%%{A}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
; Only applies if <ramp-capacity> is used
|
2020-08-03 18:59:39 +00:00
|
|
|
ramp-capacity-0 =
|
|
|
|
ramp-capacity-1 =
|
|
|
|
ramp-capacity-2 =
|
|
|
|
ramp-capacity-3 =
|
|
|
|
ramp-capacity-4 =
|
|
|
|
ramp-capacity-5 =
|
|
|
|
ramp-capacity-6 =
|
|
|
|
ramp-capacity-7 =
|
|
|
|
ramp-capacity-8 =
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/cpu]
|
|
|
|
type = internal/cpu
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
interval = 5
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format = <label>
|
|
|
|
format-prefix =
|
|
|
|
format-background = ${color.shade5}
|
|
|
|
format-foreground = ${color.fg-alt}
|
|
|
|
format-padding = 2
|
|
|
|
|
|
|
|
label = " %percentage%%"
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/date]
|
|
|
|
type = internal/date
|
|
|
|
|
|
|
|
interval = 1.0
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
time = %H:%M
|
2020-09-24 16:46:14 +00:00
|
|
|
time-alt = %d-%m-%Y%
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format = <label>
|
|
|
|
format-background = ${color.bg}
|
2020-08-03 18:59:39 +00:00
|
|
|
format-foreground = ${color.fg}
|
2020-08-01 14:46:05 +00:00
|
|
|
format-padding = 2
|
2020-08-03 18:59:39 +00:00
|
|
|
;TODO on-click calendar (`cal` output) similar to what's used in awesomewm
|
2020-08-01 14:46:05 +00:00
|
|
|
label = %time%
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/memory]
|
|
|
|
type = internal/memory
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
interval = 5
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format = <label>
|
|
|
|
format-prefix =
|
|
|
|
format-background = ${color.shade6}
|
|
|
|
format-foreground = ${color.fg-alt}
|
|
|
|
format-padding = 2
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
label = " %gb_used%"
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/mpd]
|
|
|
|
type = internal/mpd
|
|
|
|
|
|
|
|
interval = 2
|
|
|
|
|
|
|
|
format-online = <label-song>
|
|
|
|
format-online-background = ${color.bg}
|
|
|
|
format-online-foreground = ${color.fg}
|
|
|
|
format-online-padding = 2
|
|
|
|
|
|
|
|
label-song = "%artist% - %title%"
|
|
|
|
label-song-maxlen = 30
|
|
|
|
label-song-ellipsis = true
|
|
|
|
|
|
|
|
label-offline = "MPD is offline"
|
|
|
|
|
|
|
|
[module/mpd_i]
|
|
|
|
type = internal/mpd
|
|
|
|
|
|
|
|
interval = 2
|
|
|
|
|
|
|
|
format-online = <icon-prev> <toggle> <icon-next>
|
|
|
|
format-online-background = ${color.shade5}
|
|
|
|
format-online-foreground = ${color.fg-alt}
|
|
|
|
format-online-padding = 2
|
|
|
|
|
|
|
|
label-offline = "MPD is offline"
|
|
|
|
|
|
|
|
; Only applies if <icon-X> is used
|
|
|
|
icon-play =
|
|
|
|
icon-pause =
|
|
|
|
icon-stop =
|
|
|
|
icon-prev =
|
|
|
|
icon-next =
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/workspaces]
|
2020-08-03 18:59:39 +00:00
|
|
|
type = internal/bspwm
|
2020-08-01 14:46:05 +00:00
|
|
|
|
2020-11-05 08:26:43 +00:00
|
|
|
pin-workspaces = false
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
enable-click = true
|
|
|
|
enable-scroll = true
|
2020-08-03 18:59:39 +00:00
|
|
|
reverse-scroll = true
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
format = <label-state>
|
2020-08-03 18:59:39 +00:00
|
|
|
|
|
|
|
ws-icon-0 = 1;I
|
|
|
|
ws-icon-1 = 2;II
|
|
|
|
ws-icon-2 = 3;III
|
|
|
|
ws-icon-3 = 4;IV
|
|
|
|
ws-icon-4 = 5;V
|
|
|
|
ws-icon-5 = 6;VI
|
|
|
|
ws-icon-6 = 7;VII
|
|
|
|
ws-icon-7 = 8;VIII
|
|
|
|
ws-icon-8 = 9;IX
|
2020-11-05 08:26:43 +00:00
|
|
|
ws-icon-9 = 0;X
|
2020-08-03 18:59:39 +00:00
|
|
|
ws-icon-default = o
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
label-monitor = %name%
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
label-focused = %icon%
|
|
|
|
label-focused-foreground = ${color.fg-alt}
|
|
|
|
label-focused-background = ${color.shade6}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
label-occupied = %icon%
|
2020-08-03 18:59:39 +00:00
|
|
|
label-occupied-underline = ${color.shade4}
|
|
|
|
label-occupied-background = ${color.bg}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
|
|
|
label-urgent = %icon%
|
2020-08-03 18:59:39 +00:00
|
|
|
label-urgent-foreground = ${color.fg}
|
2020-08-01 14:46:05 +00:00
|
|
|
label-urgent-background = ${color.bg}
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
label-empty = %icon%
|
2020-08-01 14:46:05 +00:00
|
|
|
label-empty-foreground = ${color.fg}
|
2020-08-03 18:59:39 +00:00
|
|
|
label-empty-background = ${color.bg}
|
2020-08-01 14:46:05 +00:00
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
label-focused-padding = 2
|
2020-08-01 14:46:05 +00:00
|
|
|
label-urgent-padding = 2
|
|
|
|
label-occupied-padding = 2
|
|
|
|
label-empty-padding = 2
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/sep]
|
|
|
|
type = custom/text
|
|
|
|
content = "| "
|
|
|
|
|
|
|
|
content-background = ${color.alpha}
|
|
|
|
content-foreground = ${color.alpha}
|
|
|
|
content-padding = 0
|
|
|
|
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/colors]
|
|
|
|
type = custom/text
|
|
|
|
content =
|
|
|
|
content-background = #FFFFFF
|
|
|
|
content-foreground = #CC6666
|
|
|
|
content-padding = 2
|
|
|
|
|
|
|
|
click-left = ~/.config/polybar/scripts/colors_rofi.sh &
|
|
|
|
|
2020-08-03 18:59:39 +00:00
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
|
|
|
|
[module/xwindow]
|
|
|
|
type = internal/xwindow
|
|
|
|
format = <label>
|
|
|
|
format-background = ${color.bg}
|
|
|
|
format-foreground = ${color.fg}
|
|
|
|
format-padding = 4
|
|
|
|
|
|
|
|
label = %title%
|
2020-11-05 08:26:43 +00:00
|
|
|
label-maxlen = 100
|
2020-08-03 18:59:39 +00:00
|
|
|
|
|
|
|
; Used instead of label when there is no window title
|
|
|
|
; Available tokens:
|
|
|
|
; None
|
|
|
|
label-empty =
|
|
|
|
label-empty-foreground = #707880
|
|
|
|
|
2020-08-01 14:46:05 +00:00
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
|
|
|
;; __________ ______
|
|
|
|
;; / ____/ __ \/ ____/
|
|
|
|
;; / __/ / / / / /_
|
|
|
|
;; / /___/ /_/ / __/
|
|
|
|
;; /_____/\____/_/
|
|
|
|
;;
|
|
|
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|