diff options
Diffstat (limited to 'polybar/cuts')
26 files changed, 3919 insertions, 0 deletions
diff --git a/polybar/cuts/bars.ini b/polybar/cuts/bars.ini new file mode 100644 index 0000000..43edc3a --- /dev/null +++ b/polybar/cuts/bars.ini @@ -0,0 +1,542 @@ +;; ┌────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▄░█▀█░█▀▄░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▄░█▀█░█▀▄░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀░░▀░▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar] +fill = ﭳ +empty = ﭳ +indicator = +width = 6 +format = %{T4}%fill%%indicator%%empty%%{F-}%{T-} + +[module/volume] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <bar-volume> +format-volume-background = ${color.background} +format-volume-padding = 1 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-background = ${color.background} +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.foreground} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +; Only applies if <bar-volume> is used +bar-volume-format = ${bar.format} +bar-volume-width = ${bar.width} +bar-volume-gradient = false + +bar-volume-indicator = ${bar.indicator} +bar-volume-indicator-foreground = ${color.foreground} + +bar-volume-fill = ${bar.fill} +bar-volume-foreground-0 = ${color.green} +bar-volume-foreground-1 = ${color.green} +bar-volume-foreground-2 = ${color.yellow} +bar-volume-foreground-3 = ${color.yellow} +bar-volume-foreground-4 = ${color.red} + +bar-volume-empty = ${bar.empty} +bar-volume-empty-foreground = ${color.foreground-alt} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +;type = internal/xbacklight +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +;card = intel_backlight +card = amdgpu_bl0 + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <bar> +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +; Only applies if <bar> is used +bar-format = ${bar.format} +bar-width = ${bar.width} +bar-gradient = false + +bar-indicator = ${bar.indicator} +bar-indicator-foreground = ${color.foreground} + +bar-fill = ${bar.fill} +bar-foreground-0 = ${color.green} +bar-foreground-1 = ${color.green} +bar-foreground-2 = ${color.yellow} +bar-foreground-3 = ${color.yellow} +bar-foreground-4 = ${color.red} + +bar-empty = ${bar.empty} +bar-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery_bar] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = BAT1 +adapter = ACAD + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <bar-capacity> +format-charging-prefix = " " +format-charging-background = ${color.background} +format-charging-padding = 1 + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <bar-capacity> +format-discharging-prefix = " " +format-discharging-background = ${color.background} +format-discharging-padding = 1 + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = " " +format-full-background = ${color.background} +format-full-padding = 1 + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = " Full" + +; Only applies if <bar-capacity> is used +bar-capacity-format = ${bar.format} +bar-capacity-width = ${bar.width} +bar-capacity-gradient = false + +bar-capacity-indicator = ${bar.indicator} +bar-capacity-indicator-foreground = ${color.foreground} + +bar-capacity-fill = ${bar.fill} +bar-capacity-foreground-0 = ${color.green} +bar-capacity-foreground-1 = ${color.green} +bar-capacity-foreground-2 = ${color.yellow} +bar-capacity-foreground-3 = ${color.yellow} +bar-capacity-foreground-4 = ${color.red} + +bar-capacity-empty = ${bar.empty} +bar-capacity-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu_bar] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <bar-load> <label> +format-prefix = " " +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = "%percentage%%" + +; Only applies if <bar-load> is used +bar-load-format = ${bar.format} +bar-load-width = ${bar.width} +bar-load-gradient = false + +bar-load-indicator = ${bar.indicator} +bar-load-indicator-foreground = ${color.foreground} + +bar-load-fill = ${bar.fill} +bar-load-foreground-0 = ${color.green} +bar-load-foreground-1 = ${color.green} +bar-load-foreground-2 = ${color.yellow} +bar-load-foreground-3 = ${color.yellow} +bar-load-foreground-4 = ${color.red} + +bar-load-empty = ${bar.empty} +bar-load-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem_bar] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = false + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <bar-used> <label-mounted> +format-mounted-prefix = " " +format-mounted-background = ${color.background} +format-mounted-padding = 1 + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = " " +format-unmounted-background = ${color.background} +format-unmounted-padding = 1 + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = %used%/%total% + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = "%mountpoint%: not mounted" + +; Only applies if <bar-used> is used +bar-used-format = ${bar.format} +bar-used-width = ${bar.width} +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-foreground = ${color.foreground} + +bar-used-fill = ${bar.fill} +bar-used-foreground-0 = ${color.green} +bar-used-foreground-1 = ${color.green} +bar-used-foreground-2 = ${color.yellow} +bar-used-foreground-3 = ${color.yellow} +bar-used-foreground-4 = ${color.red} + +bar-used-empty = ${bar.empty} +bar-used-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory_bar] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 2 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <bar-used> <label> +format-prefix = " " +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = "%mb_used%" + +; Only applies if <bar-used> is used +bar-used-format = ${bar.format} +bar-used-width = ${bar.width} +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-foreground = ${color.foreground} + +bar-used-fill = ${bar.fill} +bar-used-foreground-0 = ${color.green} +bar-used-foreground-1 = ${color.green} +bar-used-foreground-2 = ${color.yellow} +bar-used-foreground-3 = ${color.yellow} +bar-used-foreground-4 = ${color.red} + +bar-used-empty = ${bar.empty} +bar-used-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd_bar] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <bar-progress> <label-time> +format-online-prefix = +format-online-background = ${color.background} +format-online-padding = 1 + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = +format-offline-background = ${color.background} +format-offline-padding = 1 + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-next = +icon-prev = +icon-seekf = +icon-seekb = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = ${color.green} +toggle-off-foreground = ${color.red} + +; Only applies if <bar-progress> is used +bar-progress-format = ${bar.format} +bar-progress-width = ${bar.width} +bar-progress-gradient = false + +bar-progress-indicator = ${bar.indicator} +bar-progress-indicator-foreground = ${color.foreground} + +bar-progress-fill = ${bar.fill} +bar-progress-foreground-0 = ${color.green} +bar-progress-foreground-1 = ${color.green} +bar-progress-foreground-2 = ${color.yellow} +bar-progress-foreground-3 = ${color.yellow} +bar-progress-foreground-4 = ${color.red} + +bar-progress-empty = ${bar.empty} +bar-progress-empty-foreground = ${color.foreground-alt} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/polybar/cuts/colors.ini b/polybar/cuts/colors.ini new file mode 100644 index 0000000..011de7f --- /dev/null +++ b/polybar/cuts/colors.ini @@ -0,0 +1,32 @@ +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[color] + +;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. + +;; Colors +background-alt = #8C100f0e +foreground-alt = #33e5e5e8 +primary = #717986 +green = #43a047 + +;; Xresources +background = ${xrdb:background} +foreground = ${xrdb:foreground} +color0 = ${xrdb:color0} +color1 = ${xrdb:color1} +color2 = ${xrdb:color2} +color3 = ${xrdb:color3} +color4 = ${xrdb:color4} +color5 = ${xrdb:color5} +color6 = ${xrdb:color6} +color7 = ${xrdb:color7} +color8 = ${xrdb:color8} +color9 = ${xrdb:color9} +color10 = ${xrdb:color10} +color11 = ${xrdb:color11} +color12 = ${xrdb:color12} +color13 = ${xrdb:color13} +color14 = ${xrdb:color14} +color15 = ${xrdb:color15} +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/polybar/cuts/config.ini b/polybar/cuts/config.ini new file mode 100644 index 0000000..2bfa4fa --- /dev/null +++ b/polybar/cuts/config.ini @@ -0,0 +1,308 @@ +;; ┌────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░█░█▀▀░░█░░█░█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀│ +;; │░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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/cuts/bars.ini +include-file = ~/.config/polybar/cuts/colors.ini +include-file = ~/.config/polybar/cuts/modules.ini +include-file = ~/.config/polybar/cuts/user_modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = HDMI-1 + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = HDMI-1 + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; 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 + +; Put the bar at the bottom of the screen +bottom = false + +; 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 = 100% +height = 28 + +; 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% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.background-alt} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; 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.primary} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 0 +border-color = ${color.primary} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; Text Fonts +font-0 = Iosevka Nerd Font:style=Regular:size=10.3;4 +; Icons Fonts +font-1 = feather:style=Medium:size=12;3 +; Powerline Glyphs +font-2 = Iosevka Nerd Font:style=Medium:size=19;3 +; Larger font size for bar fill icons +font-3 = Iosevka Nerd Font:style=Medium:size=12;4 +; Smaller font size for shorter spaces +font-4 = Iosevka Nerd Font:style=Medium:size=7;4 +; Japanese +font-5 = Sazanami Gothic:style=Gothic-Regular:size=10;2.5 + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar/top] +inherit = bar/main +modules-left = workspaces decor1 decor2 updates decor1 +modules-right = decor4 memory date +modules-center = decor2 mpd decor3 +enable-ipc = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +;enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; 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 +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; 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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/polybar/cuts/launch.sh b/polybar/cuts/launch.sh new file mode 100755 index 0000000..22fe096 --- /dev/null +++ b/polybar/cuts/launch.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# Add this script to your wm startup file. +DIR="$HOME/.config/polybar/cuts" + +# Terminate already running bar instances +killall -q polybar + +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +# Launch the bar +polybar -q top -c "$DIR"/config.ini & +polybar -q bottom -c "$DIR"/config.ini & diff --git a/polybar/cuts/modules.ini b/polybar/cuts/modules.ini new file mode 100644 index 0000000..58ad006 --- /dev/null +++ b/polybar/cuts/modules.ini @@ -0,0 +1,1108 @@ +;; ┌────────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.background} +format-volume-padding = 1 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-background = ${color.background} +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.foreground} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +;type = internal/xbacklight +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +;card = intel_backlight +card = amdgpu_bl0 + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = BAT1 +adapter = ACAD + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <label-charging> +format-charging-prefix = " " +format-charging-background = ${color.background} +format-charging-padding = 1 + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <label-discharging> +format-discharging-prefix = " " +format-discharging-background = ${color.background} +format-discharging-padding = 1 + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = " " +format-full-background = ${color.background} +format-full-padding = 1 + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = Full + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = + +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = ${battery.anim0} +;;animation-discharging-1 = ${battery.anim1} + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;;[module/bspwm] +;;type = internal/bspwm + +; Only show workspaces defined on the same output as the bar +; NOTE: The bspwm and XRandR monitor names must match, which they do by default. +; Default: true +;;pin-workspaces = true + +; Output mode flags after focused state label +; Default: false +;;inline-mode = false + +; Create click handler used to focus workspace +; Default: true +;;enable-click = false + +; Create scroll handlers used to cycle workspaces +; Default: true +;;enable-scroll = false + +; Set the scroll cycle direction +; Default: true +;;reverse-scroll = false + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +;;fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +;;ws-icon-0 = code;♚ +;;ws-icon-1 = office;♛ +;;ws-icon-2 = graphics;♜ +;;ws-icon-3 = mail;♝ +;;ws-icon-4 = web;♞ +;;ws-icon-default = ♟ + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(focused|urgent|occupied|empty)> +; <label-mode> - gets replaced with <label-(monocle|tiled|fullscreen|floating|locked|sticky|private)> +; Default: <label-state> +;;format = <label-state> <label-mode> + +; Available tokens: +; %name% +; Default: %name% +;;label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;;label-dimmed-foreground = #555 +;;label-dimmed-underline = ${bar/top.background} +;;label-dimmed-focused-background = #f00 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-focused = %icon% +;;label-focused-foreground = #ffffff +;;label-focused-background = #3f3f3f +;;label-focused-underline = #fba922 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-occupied = %icon% +;;label-occupied-underline = #555555 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-urgent = %icon% +;;label-urgent-foreground = #000000 +;;label-urgent-background = #bd2c40 +;;label-urgent-underline = #9b0a20 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +;;label-empty = %icon% +;;label-empty-foreground = #55 + +; The following labels will be used to indicate the layout/mode +; for the focused workspace. Requires <label-mode> +; +; Available tokens: +; None +;label-monocle = +;label-tiled = +;label-fullscreen = +;label-floating = +;label-pseudotiled = P +;label-locked = +;label-locked-foreground = #bd2c40 +;label-sticky = +;label-sticky-foreground = #fba922 +;label-private = +;label-private-foreground = #bd2c40 + +; Separator in between workspaces +;;label-separator = | +;;label-separator-padding = 2 +;;label-separator-foreground = #ffb52a + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = ${cpu.load0} +;;ramp-coreload-1 = ${cpu.load1} + +;;ramp-load-0 = ${cpu.load0} +;;ramp-load-1 = ${cpu.load1} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = " %I:%M %p" + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +time-alt = " %a, %d %b %Y" + +; Available tags: +; <label> (default) +format = <label> +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-prefix = +format-mounted-background = ${color.background} +format-mounted-padding = 1 + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = +format-unmounted-background = ${color.background} +format-unmounted-padding = 1 + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: not mounted" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;;[module/github] +;;type = internal/github + +; Accessing an access token stored in file +;;token = ${file:/path/to/file/containing/github/access.token} + +; Accessing an access token stored in an environment variable +;;token = ${env:GITHUB_ACCESS_TOKEN} + +; Whether empty notifications should be displayed or not +;;empty-notifications = false + +; Number of seconds in between requests +;;interval = 10 + +; Available tags: +; <label> (default) +;;format = <label> +;;format-prefix = + +; Available tokens: +; %notifications% (default) +; Default: Notifications: %notifications% +;;label = %notifications% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;;[module/i3] +;;type = internal/i3 + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +;;pin-workspaces = true + +; This will split the workspace name on ':' +; Default: false +;;strip-wsnumbers = true + +; Sort the workspaces by index instead of the default +; sorting that groups the workspaces by output +; Default: false +;;index-sort = true + +; Create click handler used to focus workspace +; Default: true +;;enable-click = false + +; Create scroll handlers used to cycle workspaces +; Default: true +;;enable-scroll = false + +; Wrap around when reaching the first/last workspace +; Default: true +;;wrapping-scroll = false + +; Set the scroll cycle direction +; Default: true +;;reverse-scroll = false + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +;;fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; NOTE: The label needs to match the name of the i3 workspace +;;ws-icon-0 = 1;♚ +;;ws-icon-1 = 2;♛ +;;ws-icon-2 = 3;♜ +;;ws-icon-3 = 4;♝ +;;ws-icon-4 = 5;♞ +;;ws-icon-default = ♟ +; NOTE: You cannot skip icons, e.g. to get a ws-icon-6 +; you must also define a ws-icon-5. + +; Available tags: +; <label-state> (default) - gets replaced with <label-(focused|unfocused|visible|urgent)> +; <label-mode> (default) +;;format = <label-state> <label-mode> + +; Available tokens: +; %mode% +; Default: %mode% +;;label-mode = %mode% +;;label-mode-padding = 2 +;;label-mode-background = #e60053 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-focused = %index% +;;label-focused-foreground = #ffffff +;;label-focused-background = #3f3f3f +;;label-focused-underline = #fba922 +;;label-focused-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-unfocused = %index% +;;label-unfocused-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-visible = %index% +;;label-visible-underline = #555555 +;;label-visible-padding = 4 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +;;label-urgent = %index% +;;label-urgent-foreground = #000000 +;;label-urgent-background = #bd2c40 +;;label-urgent-padding = 4 + +; Separator in between workspaces +;;label-separator = | +;;label-separator-padding = 2 +;;label-separator-foreground = #ffb52a + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-prefix = +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = ${memory.used0} +;;ramp-used-1 = ${memory.used1} +;;ramp-used-2 = ${memory.used2} + +; Only applies if <ramp-free> is used +;;ramp-free-0 = ${memory.free0} +;;ramp-free-1 = ${memory.free1} +;;ramp-free-2 = ${memory.free2} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = +format-online-background = ${color.background} +format-online-padding = 1 + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = +format-offline-background = ${color.background} +format-offline-padding = 1 + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-next = +icon-prev = +icon-seekf = +icon-seekb = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = ${color.green} +toggle-off-foreground = ${color.red} + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, just add 2 module definitions. For example +[module/wired-network] +type = internal/network +interface = eth0 + +[module/wireless-network] +type = internal/network +interface = wlp3s0 + +; Normal Module +[module/network] +type = internal/network +interface = wlan0 + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = +format-connected-background = ${color.background} +format-connected-padding = 1 + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = +format-disconnected-background = ${color.background} +format-disconnected-padding = 1 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:networkmanager_dmenu &:} %essid% %downspeed% %upspeed%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:networkmanager_dmenu &:} Offline%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_03_00.6.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.background} +format-volume-padding = 1 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-background = ${color.background} +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Muted" +label-muted-foreground = ${color.foreground} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input +hwmon-path = /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/hwmon/hwmon0/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 65 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> +format-background = ${color.background} +format-padding = 1 + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> +format-warn-background = ${color.background} +format-warn-padding = 1 + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.red} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-background = ${color.background} +format-padding = 1 +format-prefix = + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = " %layout%" + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = %name% +label-indicator-on-foreground = ${color.primary} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-background = ${color.background} +format-padding = 0 +;format-prefix = + +; Available tokens: +; %title% +; Default: %title% +label = "%title%" +label-maxlen = 30 + +; Used instead of label when there is no window title +;;label-empty = Arch Linux + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1;I +icon-1 = 2;II +icon-2 = 3;III +icon-3 = 4;IV +icon-4 = 5;V +icon-default = VI + + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-background = ${color.background} +format-padding = 0 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = %icon% +label-active-foreground = ${color.red} +label-active-overline = ${color.red} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = %icon% +label-occupied-foreground = ${color.yellow} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = ${color.green} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/polybar/cuts/preview.ini b/polybar/cuts/preview.ini new file mode 100644 index 0000000..3377f74 --- /dev/null +++ b/polybar/cuts/preview.ini @@ -0,0 +1,323 @@ +;; ┌────────────────────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀█░█▀▄░█▀▀░█░█░▀█▀░█▀▀░█░█░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▀░█▀▄░█▀▀░▀▄▀░░█░░█▀▀░█▄█░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀░░░▀░▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀│ +;; │░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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/cuts/bars.ini +include-file = ~/.config/polybar/cuts/colors.ini +include-file = ~/.config/polybar/cuts/modules.ini +include-file = ~/.config/polybar/cuts/user_modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; 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 + +; Put the bar at the bottom of the screen +bottom = false + +; 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 = 100% +height = 28 + +; 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% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.background-alt} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; 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.primary} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 0 +border-color = ${color.primary} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; Text Fonts +font-0 = Iosevka Nerd Font:style=Medium:size=10;4 +; Icons Fonts +font-1 = feather:style=Medium:size=12;3 +; Powerline Glyphs +font-2 = Iosevka Nerd Font:style=Medium:size=19;3 +; Larger font size for bar fill icons +font-3 = Iosevka Nerd Font:style=Medium:size=12;4 +; Smaller font size for shorter spaces +font-4 = Iosevka Nerd Font:style=Medium:size=7;4 + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar/top] +inherit = bar/main +bottom = true +offset-y = 71 +modules-left = launcher title decor1 decor2 workspaces decor1 decor2 color-switch decor1 +modules-right = decor4 updates decor3 decor4 temperature battery keyboard decor3 decor4 date sysmenu +enable-ipc = true + +[bar/mid] +inherit = bar/main +bottom = true +offset-y = 38 +modules-left = menu decor1 decor2 mpd_bar decor1 decor2 term files browser settings decor1 decor2 cpu_bar decor1 +modules-right = decor4 memory_bar decor3 decor4 alsa backlight decor3 decor4 filesystem_bar decor3 decor4 battery_bar pulseaudio decor3 decor4 powermenu +enable-ipc = true + +[bar/bottom] +inherit = bar/main +bottom = true +offset-y = 5 +modules-left = mpd decor3 decor4 cpu memory filesystem decor3 +modules-right = decor2 network decor1 decor2 volume brightness +enable-ipc = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background-alt} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +;enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; 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 +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; 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 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/polybar/cuts/preview.sh b/polybar/cuts/preview.sh new file mode 100755 index 0000000..9bb0ae6 --- /dev/null +++ b/polybar/cuts/preview.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +DIR="$HOME/.config/polybar/cuts" + +# Terminate already running bar instances +killall -q polybar + +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +# Launch the preview bar +polybar -q top -c "$DIR"/preview.ini & +polybar -q mid -c "$DIR"/preview.ini & +polybar -q bottom -c "$DIR"/preview.ini & diff --git a/polybar/cuts/scripts/checkupdates b/polybar/cuts/scripts/checkupdates new file mode 100755 index 0000000..4d8a5e8 --- /dev/null +++ b/polybar/cuts/scripts/checkupdates @@ -0,0 +1,117 @@ +#!/usr/bin/bash +# +# checkupdates: Safely print a list of pending updates. +# +# Copyright (c) 2013 Kyle Keen <keenerd@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +declare -r myname='checkupdates' +declare -r myver='1.0.0' + +plain() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg() { + (( QUIET )) && return + local mesg=$1; shift + printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg2() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +ask() { + local mesg=$1; shift + printf "${BLUE}::${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&1 +} + +warning() { + local mesg=$1; shift + printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +error() { + local mesg=$1; shift + printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +# check if messages are to be printed using color +unset ALL_OFF BOLD BLUE GREEN RED YELLOW +if [[ -t 2 && ! $USE_COLOR = "n" ]]; then + # prefer terminal safe colored and bold text when tput is supported + if tput setaf 0 &>/dev/null; then + ALL_OFF="$(tput sgr0)" + BOLD="$(tput bold)" + BLUE="${BOLD}$(tput setaf 4)" + GREEN="${BOLD}$(tput setaf 2)" + RED="${BOLD}$(tput setaf 1)" + YELLOW="${BOLD}$(tput setaf 3)" + else + ALL_OFF="\e[1;0m" + BOLD="\e[1;1m" + BLUE="${BOLD}\e[1;34m" + GREEN="${BOLD}\e[1;32m" + RED="${BOLD}\e[1;31m" + YELLOW="${BOLD}\e[1;33m" + fi +fi +readonly ALL_OFF BOLD BLUE GREEN RED YELLOW + + +if (( $# > 0 )); then + echo "${myname} v${myver}" + echo + echo "Safely print a list of pending updates" + echo + echo "Usage: ${myname}" + echo + echo 'Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.' + exit 0 +fi + +if ! type -P fakeroot >/dev/null; then + error 'Cannot find the fakeroot binary.' + exit 1 +fi + +if [[ -z $CHECKUPDATES_DB ]]; then + CHECKUPDATES_DB="${TMPDIR:-/tmp}/checkup-db-${USER}/" +fi + +trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT + +DBPath="$(pacman-conf DBPath)" +if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then + DBPath="/var/lib/pacman/" +fi + +mkdir -p "$CHECKUPDATES_DB" +ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null +if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then + error 'Cannot fetch updates' + exit 1 +fi +pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]' + +exit 0 + +# vim: set noet: diff --git a/polybar/cuts/scripts/color-switch.sh b/polybar/cuts/scripts/color-switch.sh new file mode 100755 index 0000000..83941b6 --- /dev/null +++ b/polybar/cuts/scripts/color-switch.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +SDIR="$HOME/.config/polybar/cuts/scripts" + +# Launch Rofi +MENU="$(rofi -no-config -no-lazy-grab -sep "|" -dmenu -i -p '' \ +-theme $SDIR/rofi/styles.rasi \ +<<< " amber| blue| blue-gray| brown| cyan| deep-orange|\ + deep-purple| green| gray| indigo| blue-light| green-light|\ + lime| orange| pink| purple| red| teal| yellow| amber-dark|\ + blue-dark| blue-gray-dark| brown-dark| cyan-dark| deep-orange-dark|\ + deep-purple-dark| green-dark| gray-dark| indigo-dark| blue-light-dark|\ + green-light-dark| lime-dark| orange-dark| pink-dark| purple-dark| red-dark| teal-dark| yellow-dark|")" + case "$MENU" in + ## Light Colors + *amber) "$SDIR"/colors-light.sh --amber ;; + *blue) "$SDIR"/colors-light.sh --blue ;; + *blue-gray) "$SDIR"/colors-light.sh --blue-gray ;; + *brown) "$SDIR"/colors-light.sh --brown ;; + *cyan) "$SDIR"/colors-light.sh --cyan ;; + *deep-orange) "$SDIR"/colors-light.sh --deep-orange ;; + *deep-purple) "$SDIR"/colors-light.sh --deep-purple ;; + *green) "$SDIR"/colors-light.sh --green ;; + *gray) "$SDIR"/colors-light.sh --gray ;; + *indigo) "$SDIR"/colors-light.sh --indigo ;; + *blue-light) "$SDIR"/colors-light.sh --light-blue ;; + *green-light) "$SDIR"/colors-light.sh --light-green ;; + *lime) "$SDIR"/colors-light.sh --lime ;; + *orange) "$SDIR"/colors-light.sh --orange ;; + *pink) "$SDIR"/colors-light.sh --pink ;; + *purple) "$SDIR"/colors-light.sh --purple ;; + *red) "$SDIR"/colors-light.sh --red ;; + *teal) "$SDIR"/colors-light.sh --teal ;; + *yellow) "$SDIR"/colors-light.sh --yellow ;; + ## Dark Colors + *amber-dark) "$SDIR"/colors-dark.sh --amber ;; + *blue-dark) "$SDIR"/colors-dark.sh --blue ;; + *blue-gray-dark) "$SDIR"/colors-dark.sh --blue-gray ;; + *brown-dark) "$SDIR"/colors-dark.sh --brown ;; + *cyan-dark) "$SDIR"/colors-dark.sh --cyan ;; + *deep-orange-dark) "$SDIR"/colors-dark.sh --deep-orange ;; + *deep-purple-dark) "$SDIR"/colors-dark.sh --deep-purple ;; + *green-dark) "$SDIR"/colors-dark.sh --green ;; + *gray-dark) "$SDIR"/colors-dark.sh --gray ;; + *indigo-dark) "$SDIR"/colors-dark.sh --indigo ;; + *blue-light-dark) "$SDIR"/colors-dark.sh --light-blue ;; + *green-light-dark) "$SDIR"/colors-dark.sh --light-green ;; + *lime-dark) "$SDIR"/colors-dark.sh --lime ;; + *orange-dark) "$SDIR"/colors-dark.sh --orange ;; + *pink-dark) "$SDIR"/colors-dark.sh --pink ;; + *purple-dark) "$SDIR"/colors-dark.sh --purple ;; + *red-dark) "$SDIR"/colors-dark.sh --red ;; + *teal-dark) "$SDIR"/colors-dark.sh --teal ;; + *yellow-dark) "$SDIR"/colors-dark.sh --yellow + esac diff --git a/polybar/cuts/scripts/colors-dark.sh b/polybar/cuts/scripts/colors-dark.sh new file mode 100755 index 0000000..22f1ca8 --- /dev/null +++ b/polybar/cuts/scripts/colors-dark.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/cuts/colors.ini" +RFILE="$HOME/.config/polybar/cuts/scripts/rofi/colors.rasi" + +BG="0a0a0a" +FG="f5f5f5" + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = #${BG}/g" $PFILE + sed -i -e "s/background-alt = #.*/background-alt = #8C${BG}/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = #${FG}/g" $PFILE + sed -i -e "s/foreground-alt = #.*/foreground-alt = #33${FG}/g" $PFILE + sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: #${BG}BF; + bga: #${BG}FF; + fg: #${FG}FF; + ac: ${AC}FF; + se: ${AC}1A; + } + EOF + + polybar-msg cmd restart +} + +if [[ $1 = "--amber" ]]; then + AC="#ffb300" + change_color +elif [[ $1 = "--blue" ]]; then + AC="#1e88e5" + change_color +elif [[ $1 = "--blue-gray" ]]; then + AC="#546e7a" + change_color +elif [[ $1 = "--brown" ]]; then + AC="#6d4c41" + change_color +elif [[ $1 = "--cyan" ]]; then + AC="#00acc1" + change_color +elif [[ $1 = "--deep-orange" ]]; then + AC="#f4511e" + change_color +elif [[ $1 = "--deep-purple" ]]; then + AC="#5e35b1" + change_color +elif [[ $1 = "--green" ]]; then + AC="#43a047" + change_color +elif [[ $1 = "--gray" ]]; then + AC="#757575" + change_color +elif [[ $1 = "--indigo" ]]; then + AC="#3949ab" + change_color +elif [[ $1 = "--light-blue" ]]; then + AC="#039be5" + change_color +elif [[ $1 = "--light-green" ]]; then + AC="#7cb342" + change_color +elif [[ $1 = "--lime" ]]; then + AC="#c0ca33" + change_color +elif [[ $1 = "--orange" ]]; then + AC="#fb8c00" + change_color +elif [[ $1 = "--pink" ]]; then + AC="#d81b60" + change_color +elif [[ $1 = "--purple" ]]; then + AC="#8e24aa" + change_color +elif [[ $1 = "--red" ]]; then + AC="#e53935" + change_color +elif [[ $1 = "--teal" ]]; then + AC="#00897b" + change_color +elif [[ $1 = "--yellow" ]]; then + AC="#fdd835" + change_color +else + cat <<- _EOF_ + No option specified, Available options: + --amber --blue --blue-gray --brown + --cyan --deep-orange --deep-purple --green + --gray --indigo --light-blue --light-green + --lime --orange --pink --purple + --red --teal --yellow + _EOF_ +fi diff --git a/polybar/cuts/scripts/colors-light.sh b/polybar/cuts/scripts/colors-light.sh new file mode 100755 index 0000000..d7151e9 --- /dev/null +++ b/polybar/cuts/scripts/colors-light.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/cuts/colors.ini" +RFILE="$HOME/.config/polybar/cuts/scripts/rofi/colors.rasi" + +BG="FFFFFF" +FG="0A0A0A" + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = #${BG}/g" $PFILE + sed -i -e "s/background-alt = #.*/background-alt = #8C${BG}/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = #${FG}/g" $PFILE + sed -i -e "s/foreground-alt = #.*/foreground-alt = #33${FG}/g" $PFILE + sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: #${BG}BF; + bga: #${BG}FF; + fg: #${FG}FF; + ac: ${AC}FF; + se: ${AC}1A; + } + EOF + + polybar-msg cmd restart +} + +if [[ $1 = "--amber" ]]; then + AC="#ffb300" + change_color +elif [[ $1 = "--blue" ]]; then + AC="#1e88e5" + change_color +elif [[ $1 = "--blue-gray" ]]; then + AC="#546e7a" + change_color +elif [[ $1 = "--brown" ]]; then + AC="#6d4c41" + change_color +elif [[ $1 = "--cyan" ]]; then + AC="#00acc1" + change_color +elif [[ $1 = "--deep-orange" ]]; then + AC="#f4511e" + change_color +elif [[ $1 = "--deep-purple" ]]; then + AC="#5e35b1" + change_color +elif [[ $1 = "--green" ]]; then + AC="#43a047" + change_color +elif [[ $1 = "--gray" ]]; then + AC="#757575" + change_color +elif [[ $1 = "--indigo" ]]; then + AC="#3949ab" + change_color +elif [[ $1 = "--light-blue" ]]; then + AC="#039be5" + change_color +elif [[ $1 = "--light-green" ]]; then + AC="#7cb342" + change_color +elif [[ $1 = "--lime" ]]; then + AC="#c0ca33" + change_color +elif [[ $1 = "--orange" ]]; then + AC="#fb8c00" + change_color +elif [[ $1 = "--pink" ]]; then + AC="#d81b60" + change_color +elif [[ $1 = "--purple" ]]; then + AC="#8e24aa" + change_color +elif [[ $1 = "--red" ]]; then + AC="#e53935" + change_color +elif [[ $1 = "--teal" ]]; then + AC="#00897b" + change_color +elif [[ $1 = "--yellow" ]]; then + AC="#fdd835" + change_color +else + cat <<- _EOF_ + No option specified, Available options: + --amber --blue --blue-gray --brown + --cyan --deep-orange --deep-purple --green + --gray --indigo --light-blue --light-green + --lime --orange --pink --purple + --red --teal --yellow + _EOF_ +fi diff --git a/polybar/cuts/scripts/launcher.sh b/polybar/cuts/scripts/launcher.sh new file mode 100755 index 0000000..0386394 --- /dev/null +++ b/polybar/cuts/scripts/launcher.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +rofi -no-config -no-lazy-grab -show drun -modi drun -theme ~/.config/polybar/cuts/scripts/rofi/launcher.rasi diff --git a/polybar/cuts/scripts/powermenu.sh b/polybar/cuts/scripts/powermenu.sh new file mode 100755 index 0000000..7017be5 --- /dev/null +++ b/polybar/cuts/scripts/powermenu.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya +## Mail : adi1090x@gmail.com +## Github : @adi1090x +## Twitter : @adi1090x + +dir="~/.config/polybar/cuts/scripts/rofi" +uptime=$(uptime -p | sed -e 's/up //g') + +rofi_command="rofi -theme $dir/powermenu.rasi" + +# Options +shutdown=" Shutdown" +reboot=" Restart" +lock=" Lock" +suspend=" Sleep" +logout=" Logout" + +# Confirmation +confirm_exit() { + rofi -dmenu\ + -i\ + -no-fixed-num-lines\ + -p "Are You Sure? : "\ + -theme $dir/confirm.rasi +} + +# Message +msg() { + rofi -theme "$dir/message.rasi" -e "Available Options - yes / y / no / n" +} + +# Variable passed to rofi +options="$lock\n$suspend\n$logout\n$reboot\n$shutdown" + +chosen="$(echo -e "$options" | $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 0)" +case $chosen in + $shutdown) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + systemctl poweroff + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $reboot) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + systemctl reboot + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $lock) + if [[ -f /usr/bin/i3lock ]]; then + i3lock + elif [[ -f /usr/bin/betterlockscreen ]]; then + betterlockscreen -l + fi + ;; + $suspend) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + mpc -q pause + amixer set Master mute + systemctl suspend + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; + $logout) + ans=$(confirm_exit &) + if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then + if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then + openbox --exit + elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then + bspc quit + elif [[ "$DESKTOP_SESSION" == "i3" ]]; then + i3-msg exit + fi + elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then + exit 0 + else + msg + fi + ;; +esac diff --git a/polybar/cuts/scripts/pywal.sh b/polybar/cuts/scripts/pywal.sh new file mode 100755 index 0000000..fac5fbc --- /dev/null +++ b/polybar/cuts/scripts/pywal.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/cuts/colors.ini" +RFILE="$HOME/.config/polybar/cuts/scripts/rofi/colors.rasi" + +# Get colors +pywal_get() { + wal -i "$1" -q -t +} + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = #${BG}/g" $PFILE + sed -i -e "s/background-alt = #.*/background-alt = #8C${BG}/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = #${FG}/g" $PFILE + sed -i -e "s/foreground-alt = #.*/foreground-alt = #33${FG}/g" $PFILE + sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: #${BG}BF; + bga: #${BG}FF; + fg: #${FG}FF; + ac: ${AC}FF; + se: ${AC}1A; + } + EOF + + polybar-msg cmd restart +} + +# Main +if [[ -f "/usr/bin/wal" ]]; then + if [[ "$1" ]]; then + pywal_get "$1" + + # Source the pywal color file + . "$HOME/.cache/wal/colors.sh" + + BGC=`printf "%s\n" "$background"` + BG=${BGC:1} + FGC=`printf "%s\n" "$foreground"` + FG=${FGC:1} + AC=`printf "%s\n" "$color1"` + + change_color + else + echo -e "[!] Please enter the path to wallpaper. \n" + echo "Usage : ./pywal.sh path/to/image" + fi +else + echo "[!] 'pywal' is not installed." +fi diff --git a/polybar/cuts/scripts/random.sh b/polybar/cuts/scripts/random.sh new file mode 100755 index 0000000..6addb58 --- /dev/null +++ b/polybar/cuts/scripts/random.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/cuts/colors.ini" +RFILE="$HOME/.config/polybar/cuts/scripts/rofi/colors.rasi" + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = #${BG}/g" $PFILE + sed -i -e "s/background-alt = #.*/background-alt = #8C${BG}/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = #${FG}/g" $PFILE + sed -i -e "s/foreground-alt = #.*/foreground-alt = #33${FG}/g" $PFILE + sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: #${BG}BF; + bga: #${BG}FF; + fg: #${FG}FF; + ac: ${AC}FF; + se: ${AC}1A; + } + EOF + + polybar-msg cmd restart +} + +get_random_number() { + RNUM=$(( ($RANDOM % $1) + 1 )) +} + +get_random_color() { + RCOLOR="#" + for i in 1 2 3 4 5 6 + do + get_random_number "16" + case $RNUM in + "1") NEXTDIGIT="1";; + "2") NEXTDIGIT="2";; + "3") NEXTDIGIT="3";; + "4") NEXTDIGIT="4";; + "5") NEXTDIGIT="5";; + "6") NEXTDIGIT="6";; + "7") NEXTDIGIT="7";; + "8") NEXTDIGIT="8";; + "9") NEXTDIGIT="9";; + "10") NEXTDIGIT="A";; + "11") NEXTDIGIT="B";; + "12") NEXTDIGIT="C";; + "13") NEXTDIGIT="D";; + "14") NEXTDIGIT="E";; + "15") NEXTDIGIT="F";; + "16") NEXTDIGIT="0";; + esac + RCOLOR="$RCOLOR$NEXTDIGIT" + done + echo $RCOLOR +} + +hex_to_rgb() { + # Convert a hex value WITHOUT the hashtag (#) + R=$(printf "%d" 0x${1:0:2}) + G=$(printf "%d" 0x${1:2:2}) + B=$(printf "%d" 0x${1:4:2}) +} + +get_fg_color(){ + INTENSITY=$(calc "$R*0.299 + $G*0.587 + $B*0.114") + + if [ $(echo "$INTENSITY>186" | bc) -eq 1 ]; then + FG="0a0a0a" + AC="#0a0a0a" + else + FG="F5F5F5" + AC="#F5F5F5" + fi +} + +# Main +BGC=`get_random_color` +BG=${BGC:1} +HEX=$BG + +hex_to_rgb $HEX +get_fg_color +change_color diff --git a/polybar/cuts/scripts/rofi/colors.rasi b/polybar/cuts/scripts/rofi/colors.rasi new file mode 100644 index 0000000..9ca84d0 --- /dev/null +++ b/polybar/cuts/scripts/rofi/colors.rasi @@ -0,0 +1,10 @@ +/* colors */ + +* { + al: #00000000; + bg: #100f0eBF; + bga: #100f0eFF; + fg: #e5e5e8FF; + ac: #717986FF; + se: #7179861A; +} diff --git a/polybar/cuts/scripts/rofi/confirm.rasi b/polybar/cuts/scripts/rofi/confirm.rasi new file mode 100644 index 0000000..bd82b52 --- /dev/null +++ b/polybar/cuts/scripts/rofi/confirm.rasi @@ -0,0 +1,25 @@ +/* Confirm Dialog */ + +@import "colors.rasi" + +* { + background-color: @bga; + text-color: @fg; + font: "Iosevka Nerd Font 10"; +} + +window { + width: 225px; + padding: 25px; + border: 0px; + border-radius: 0px; + border-color: @ac; + location: center; + y-offset: -2em; +} + +entry { + expand: true; + text-color: @ac; +} + diff --git a/polybar/cuts/scripts/rofi/launcher.rasi b/polybar/cuts/scripts/rofi/launcher.rasi new file mode 100644 index 0000000..f9be5dd --- /dev/null +++ b/polybar/cuts/scripts/rofi/launcher.rasi @@ -0,0 +1,115 @@ +/* + * + * Author : Aditya Shakya + * Mail : adi1090x@gmail.com + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px; + border-color: @ac; + border-radius: 0px; + width: 500px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px; + background-color: @al; + text-color: @ac; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 8px; + blink: true; +} + +inputbar { + children: [ prompt, entry ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; + margin: 0px; + padding: 12px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 6; + spacing: 5px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 0px; + padding: 0px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @fg; + border: 0px 0px 0px 2px; + border-radius: 0px; + border-color: @ac; +} diff --git a/polybar/cuts/scripts/rofi/message.rasi b/polybar/cuts/scripts/rofi/message.rasi new file mode 100644 index 0000000..434f16b --- /dev/null +++ b/polybar/cuts/scripts/rofi/message.rasi @@ -0,0 +1,24 @@ +/* Confirm Dialog */ + +@import "colors.rasi" + +* { + background-color: @bga; + text-color: @fg; + font: "Iosevka Nerd Font 10"; +} + +window { + width: 320px; + padding: 25px; + border: 0px; + border-radius: 0px; + border-color: @ac; + location: center; + y-offset: -2em; +} + +entry { + expand: true; + text-color: @ac; +} diff --git a/polybar/cuts/scripts/rofi/networkmenu.rasi b/polybar/cuts/scripts/rofi/networkmenu.rasi new file mode 100644 index 0000000..2ac18b8 --- /dev/null +++ b/polybar/cuts/scripts/rofi/networkmenu.rasi @@ -0,0 +1,123 @@ +/* + * + * Author : Aditya Shakya + * Mail : adi1090x@gmail.com + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px; + border-color: @ac; + border-radius: 0px; + width: 400px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 5px; + background-color: @al; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px 0px 0px 2px; + background-color: @al; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, prompt ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; + margin: 0px; + padding: 12px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 8; + spacing: 0px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 0px; + padding: 0px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -15px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @fg; + border: 0px 0px 0px 2px; + border-radius: 0px; + border-color: @ac; +} diff --git a/polybar/cuts/scripts/rofi/powermenu.rasi b/polybar/cuts/scripts/rofi/powermenu.rasi new file mode 100644 index 0000000..7c83572 --- /dev/null +++ b/polybar/cuts/scripts/rofi/powermenu.rasi @@ -0,0 +1,123 @@ +/* + * + * Author : Aditya Shakya + * Mail : adi1090x@gmail.com + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px; + border-color: @ac; + border-radius: 0px; + width: 300px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 5px; + background-color: @al; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px 0px 0px 2px; + background-color: @al; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, prompt ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; + margin: 0px; + padding: 12px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 5; + spacing: 0px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 0px; + padding: 0px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -15px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @fg; + border: 0px 0px 0px 2px; + border-radius: 0px; + border-color: @ac; +} diff --git a/polybar/cuts/scripts/rofi/styles.rasi b/polybar/cuts/scripts/rofi/styles.rasi new file mode 100644 index 0000000..6d3b7f2 --- /dev/null +++ b/polybar/cuts/scripts/rofi/styles.rasi @@ -0,0 +1,123 @@ +/* + * + * Author : Aditya Shakya + * Mail : adi1090x@gmail.com + * Github : @adi1090x + * Twitter : @adi1090x + * + */ + +configuration { + font: "Iosevka Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus"; + display-drun: ""; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; +} + +@import "colors.rasi" + +window { + transparency: "real"; + background-color: @bg; + text-color: @fg; + border: 0px; + border-color: @ac; + border-radius: 0px; + width: 300px; + location: center; + x-offset: 0; + y-offset: 0; +} + +prompt { + enabled: true; + padding: 0px 0px 0px 5px; + background-color: @al; + text-color: @fg; +} + +textbox-prompt-colon { + padding: 0px 0px 0px 2px; + background-color: @al; + text-color: @ac; + expand: false; + str: ""; + font: "feather 12"; +} + +entry { + background-color: @al; + text-color: @fg; + placeholder-color: @fg; + expand: true; + horizontal-align: 0; + placeholder: "Search..."; + padding: 0px 0px 0px 5px; + blink: true; +} + +inputbar { + children: [ textbox-prompt-colon, entry ]; + background-color: @bga; + text-color: @fg; + expand: false; + border: 0px 0px 0px 0px; + border-radius: 0px; + border-color: @ac; + margin: 0px; + padding: 12px; +} + +listview { + background-color: @al; + padding: 0px; + columns: 1; + lines: 5; + spacing: 0px; + cycle: true; + dynamic: true; + layout: vertical; +} + +mainbox { + background-color: @al; + border: 0px; + border-radius: 0px; + border-color: @ac; + children: [ inputbar, listview ]; + spacing: 0px; + padding: 0px; +} + +element { + background-color: @al; + text-color: @fg; + orientation: horizontal; + border-radius: 0px; + padding: 8px 8px 8px -15px; +} + +element-icon { + size: 24px; + border: 0px; +} + +element-text { + expand: true; + horizontal-align: 0; + vertical-align: 0.5; + margin: 0px 2.5px 0px 2.5px; +} + +element selected { + background-color: @se; + text-color: @fg; + border: 0px 0px 0px 2px; + border-radius: 0px; + border-color: @ac; +} diff --git a/polybar/cuts/scripts/style-switch.sh b/polybar/cuts/scripts/style-switch.sh new file mode 100755 index 0000000..e693e53 --- /dev/null +++ b/polybar/cuts/scripts/style-switch.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +SDIR="$HOME/.config/polybar/cuts/scripts" + +# Launch Rofi +MENU="$(rofi -no-config -no-lazy-grab -sep "|" -dmenu -i -p '' \ +-theme $SDIR/rofi/styles.rasi \ +<<< " Black| Adapta| Dark| Red| Green| Teal| Gruvbox| Nord| Solarized| Cherry|")" + case "$MENU" in + *Black) "$SDIR"/styles.sh --mode1 ;; + *Adapta) "$SDIR"/styles.sh --mode2 ;; + *Dark) "$SDIR"/styles.sh --mode3 ;; + *Red) "$SDIR"/styles.sh --mode4 ;; + *Green) "$SDIR"/styles.sh --mode5 ;; + *Teal) "$SDIR"/styles.sh --mode6 ;; + *Gruvbox) "$SDIR"/styles.sh --mode7 ;; + *Nord) "$SDIR"/styles.sh --mode8 ;; + *Solarized) "$SDIR"/styles.sh --mode9 ;; + *Cherry) "$SDIR"/styles.sh --mode10 ;; + esac diff --git a/polybar/cuts/scripts/styles.sh b/polybar/cuts/scripts/styles.sh new file mode 100755 index 0000000..94b6739 --- /dev/null +++ b/polybar/cuts/scripts/styles.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +# Color files +PFILE="$HOME/.config/polybar/cuts/colors.ini" +RFILE="$HOME/.config/polybar/cuts/scripts/rofi/colors.rasi" + +# Change colors +change_color() { + # polybar + sed -i -e "s/background = #.*/background = #${BG}/g" $PFILE + sed -i -e "s/background-alt = #.*/background-alt = #8C${BG}/g" $PFILE + sed -i -e "s/foreground = #.*/foreground = #${FG}/g" $PFILE + sed -i -e "s/foreground-alt = #.*/foreground-alt = #33${FG}/g" $PFILE + sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE + + # rofi + cat > $RFILE <<- EOF + /* colors */ + + * { + al: #00000000; + bg: #${BG}BF; + bga: #${BG}FF; + fg: #${FG}FF; + ac: ${AC}FF; + se: ${AC}1A; + } + EOF + + polybar-msg cmd restart +} + +if [[ $1 = "--mode1" ]]; then + BG="0a0a0a" + FG="f5f5f5" + AC="#fdd835" + change_color +elif [[ $1 = "--mode2" ]]; then + BG="263238" + FG="DFDFDF" + AC="#00BCD4" + change_color +elif [[ $1 = "--mode3" ]]; then + BG="112526" + FG="C4AAA5" + AC="#EE7313" + change_color +elif [[ $1 = "--mode4" ]]; then + BG="461320" + FG="f5f5f5" + AC="#fdd835" + change_color +elif [[ $1 = "--mode5" ]]; then + BG="092F1C" + FG="f5f5f5" + AC="#fdd835" + change_color +elif [[ $1 = "--mode6" ]]; then + BG="003C3C" + FG="CFCFCF" + AC="#00acc1" + change_color +elif [[ $1 = "--mode7" ]]; then + BG="3C3836" + FG="EBDBB2" + AC="#FB4934" + change_color +elif [[ $1 = "--mode8" ]]; then + BG="2E3440" + FG="D8DEE9" + AC="#BF616A" + change_color +elif [[ $1 = "--mode9" ]]; then + BG="002b36" + FG="839496" + AC="#b58900" + change_color +elif [[ $1 = "--mode10" ]]; then + BG="1F1626" + FG="FFFFFF" + AC="#FFD16F" + change_color +else + cat <<- _EOF_ + No option specified, Available options: + --mode1 --mode2 --mode3 --mode4 --mode5 + --mode6 --mode7 --mode8 --mode9 --mode10 + _EOF_ +fi diff --git a/polybar/cuts/scripts/updates.sh b/polybar/cuts/scripts/updates.sh new file mode 100755 index 0000000..9dcc903 --- /dev/null +++ b/polybar/cuts/scripts/updates.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg + +get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); } + +while true; do + get_total_updates + + # notify user of updates + #if hash notify-send &>/dev/null; then + # if (( UPDATES > 50 )); then + # notify-send -u critical -i $NOTIFY_ICON \ + # "You really need to update!!" "$UPDATES New packages" + # elif (( UPDATES > 25 )); then + # notify-send -u normal -i $NOTIFY_ICON \ + # "You should update soon" "$UPDATES New packages" + # elif (( UPDATES > 2 )); then + # notify-send -u low -i $NOTIFY_ICON \ + # "$UPDATES New packages" + # fi + #fi + + # when there are updates available + # every 10 seconds another check for updates is done + while (( UPDATES > 0 )); do + if (( UPDATES == 1 )); then + echo " $UPDATES" + elif (( UPDATES > 1 )); then + echo " $UPDATES" + else + echo " None" + fi + sleep 10 + get_total_updates + done + + # when no updates are available, use a longer loop, this saves on CPU + # and network uptime, only checking once every 30 min for new updates + while (( UPDATES == 0 )); do + echo " None" + sleep 1800 + get_total_updates + done +done diff --git a/polybar/cuts/user_modules.ini b/polybar/cuts/user_modules.ini new file mode 100644 index 0000000..a1a250c --- /dev/null +++ b/polybar/cuts/user_modules.ini @@ -0,0 +1,258 @@ +[module/updates] +type = custom/script + +; Available tokens: +; %counter% +; Command to be executed (using "/usr/bin/env sh -c [command]") +exec = ~/.config/polybar/cuts/scripts/updates.sh + +; Conditional command that, if defined, needs to exit successfully +; before the main exec command is invoked. +; Default: "" +;;exec-if = "" + +; Will the script output continous content? +; Default: false +tail = true + +; Seconds to sleep between updates +; Default: 2 (0 if `tail = true`) +interval = 5 + +; Available tags: +; <output> - deprecated +; <label> (default) +format = <label> +format-prefix = +format-background = ${color.background} +format-padding = 1 + +; Available tokens: +; %output% +; Default: %output% +label = %output% + +; Available tokens: +; %counter% +; %pid% +; +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]" +click-left = exo-open --launch TerminalEmulator & +click-right = exo-open --launch TerminalEmulator & +;;double-click-left = echo double left %counter% +;;double-click-middle = echo double middle %counter% +;;double-click-right = echo double right %counter% + +; Available tokens: +; %counter% +; %pid% +; +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]" +;;scroll-up = echo scroll up %counter% +;;scroll-down = echo scroll down %counter% + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/launcher] +type = custom/text +content = + +; "content" has the same properties as "format-NAME" +content-background = ${color.background} +content-foreground = ${color.primary} +content-padding = 1 + +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c $COMMAND" +click-left = ~/.config/polybar/cuts/scripts/launcher.sh & +;;click-middle = ~/.config/polybar/cuts/scripts/launcher-full +click-right = ~/.config/polybar/cuts/scripts/color-switch.sh & + +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c $COMMAND" +;;scroll-up = ~/.config/polybar/cuts/scripts/launcher.sh & +;;scroll-down = ~/.config/polybar/cuts/scripts/color-switch.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text +content = + +content-background = ${color.background} +content-foreground = ${color.primary} +content-padding = 1 + +click-left = ~/.config/polybar/cuts/scripts/powermenu.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/color-switch] +type = custom/text +content = + +content-background = ${color.background} +content-foreground = ${color.foreground} +content-padding = 1 + +click-left = ~/.config/polybar/cuts/scripts/style-switch.sh & +click-right = ~/.config/polybar/cuts/scripts/color-switch.sh & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/apps] +type = custom/text +content-background = ${color.background} +content-padding = 1 + +[module/term] +inherit = module/apps +content = +content-foreground = #fdd835 +click-left = termite & +click-middle = urxvt & +click-right = xfce4-terminal & + +[module/files] +inherit = module/apps +content-foreground = #1e88e5 +content = +click-left = thunar & +click-right = pcmanfm & + +[module/browser] +inherit = module/apps +content-foreground = #fb8c00 +content = +click-left = firefox & +click-right = chromium & + +[module/settings] +inherit = module/apps +content-foreground = #00897b +content = +click-left = xfce4-settings-manager & +click-right = lxappearance & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/powermenu] +type = custom/menu + +; If true, <label-toggle> will be to the left of the menu items (default). +; If false, it will be on the right of all the items. +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Available exec commands: +; menu-open-LEVEL +; menu-close +; Other commands will be executed using "/usr/bin/env sh -c $COMMAND" +menu-0-0 = reboot +menu-0-0-exec = menu-open-1 +menu-0-1 = shutdown +menu-0-1-exec = menu-open-2 + +menu-1-0 = back +menu-1-0-exec = menu-open-0 +menu-1-1 = reboot +menu-1-1-exec = systemctl reboot + +menu-2-0 = shutdown +menu-2-0-exec = systemctl poweroff +menu-2-1 = back +menu-2-1-exec = menu-open-0 + +; Available tags: +; <label-toggle> (default) - gets replaced with <label-(open|close)> +; <menu> (default) +; Note that if you use <label-toggle> you must also include +; the definition for <label-open> + +format = <label-toggle> <menu> +format-background = ${color.background} +format-padding = 1 + +label-open = +label-close = + +; Optional item separator +; Default: none +label-separator = " | " + +label-open-foreground = ${color.primary} +label-close-foreground = ${color.primary} +;;label-separator-foreground = ${color.background} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/menu + +; If true, <label-toggle> will be to the left of the menu items (default). +; If false, it will be on the right of all the items. +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Available exec commands: +; menu-open-LEVEL +; menu-close +; Other commands will be executed using "/usr/bin/env sh -c $COMMAND" +menu-0-0 = Menu +menu-0-0-exec = ~/.config/polybar/cuts/scripts/launcher.sh & +menu-0-1 = Files +menu-0-1-exec = thunar & +menu-0-2 = Terminal +menu-0-2-exec = termite & +menu-0-3 = Browser +menu-0-3-exec = firefox & + +; Available tags: +; <label-toggle> (default) - gets replaced with <label-(open|close)> +; <menu> (default) +; Note that if you use <label-toggle> you must also include +; the definition for <label-open> + +format = <label-toggle> <menu> +format-background = ${color.background} +format-padding = 1 + +label-open = +label-close = + +; Optional item separator +; Default: none +label-separator = " | " + +label-open-foreground = ${color.primary} +label-close-foreground = ${color.primary} +;;label-separator-foreground = ${color.background} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/decor-glyph] +type = custom/text +content-background = ${color.background-alt} +content-foreground = ${color.background} + +[module/decor1] +inherit = module/decor-glyph +content = "%{T3}%{T-}" + +[module/decor2] +inherit = module/decor-glyph +content = "%{T3}%{T-}" + +[module/decor3] +inherit = module/decor-glyph +content = "%{T3}%{T-}" + +[module/decor4] +inherit = module/decor-glyph +content = "%{T3}%{T-}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + |