diff --git a/.config/bat/config b/.config/bat/config new file mode 100644 index 0000000..b2fe4f8 --- /dev/null +++ b/.config/bat/config @@ -0,0 +1 @@ +--theme="rose-pine-dawn" diff --git a/.config/bat/themes/rose-pine-dawn.tmTheme b/.config/bat/themes/rose-pine-dawn.tmTheme new file mode 100644 index 0000000..bf3f90e --- /dev/null +++ b/.config/bat/themes/rose-pine-dawn.tmTheme @@ -0,0 +1,329 @@ + + + + + name + Rosé Pine Dawn + settings + + + settings + + background + #faf4ed + caret + #cecacd + foreground + #575279 + invisibles + #fffaf3 + lineHighlight + #f4ede8 + selection + #dfdad9 + + + + name + Comment + scope + comment + settings + + fontStyle + italic + foreground + #797593 + + + + name + String + scope + string, punctuation.definition.string + settings + + foreground + #ea9d34 + + + + name + Number + scope + constant.numeric + settings + + foreground + #ea9d34 + + + + name + Built-in constant + scope + constant.language + settings + + fontStyle + bold + foreground + #ea9d34 + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #ea9d34 + + + + name + Variable + scope + variable + settings + + fontStyle + italic + foreground + #575279 + + + + name + Keyword + scope + keyword + settings + + foreground + #286983 + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #56949f + + + + name + Storage type + scope + storage.type + settings + + fontStyle + + foreground + #56949f + + + + name + Class name + scope + entity.name.class, entity.name + settings + + fontStyle + bold + foreground + #286983 + + + + name + Headings + scope + markup.heading + settings + + fontStyle + bold + foreground + #d7827e + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic + foreground + #286983 + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + italic + foreground + #d7827e + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + + foreground + #907aa9 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + bold + foreground + #286983 + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #907aa9 + + + + name + Library function + scope + support.function + settings + + fontStyle + bold + foreground + #d7827e + + + + name + Library constant + scope + support.constant + settings + + fontStyle + bold + foreground + #ea9d34 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + bold + foreground + #56949f + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + bold + foreground + #b4637a + + + + name + Invalid + scope + invalid + settings + + background + #b4637a + fontStyle + + foreground + #575279 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #907aa9 + foreground + #575279 + + + + name + Punctuation, Operators + scope + punctuation, keyword.operator + settings + + foreground + #797593 + + + + colorSpaceName + sRGB + semanticClass + theme.light.rose-pine-dawn + author + arrrgi + comment + All natural pine, faux fur and a bit of soho vibes for the classy minimalist + uuid + BB4B4616-E742-41D5-BB5B-63D45FA614F + + diff --git a/.config/bat/themes/rose-pine-moon.tmTheme b/.config/bat/themes/rose-pine-moon.tmTheme new file mode 100644 index 0000000..c5c939c --- /dev/null +++ b/.config/bat/themes/rose-pine-moon.tmTheme @@ -0,0 +1,329 @@ + + + + + name + Rosé Pine Moon + settings + + + settings + + background + #232136 + caret + #56526e + foreground + #e0def4 + invisibles + #2a273f + lineHighlight + #2a283e + selection + #44415a + + + + name + Comment + scope + comment + settings + + fontStyle + italic + foreground + #908caa + + + + name + String + scope + string, punctuation.definition.string + settings + + foreground + #f6c177 + + + + name + Number + scope + constant.numeric + settings + + foreground + #f6c177 + + + + name + Built-in constant + scope + constant.language + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #f6c177 + + + + name + Variable + scope + variable + settings + + fontStyle + italic + foreground + #e0def4 + + + + name + Keyword + scope + keyword + settings + + foreground + #3e8fb0 + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Storage type + scope + storage.type + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Class name + scope + entity.name.class, entity.name + settings + + fontStyle + bold + foreground + #3e8fb0 + + + + name + Headings + scope + markup.heading + settings + + fontStyle + bold + foreground + #ea9a97 + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic + foreground + #3e8fb0 + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + italic + foreground + #ea9a97 + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + bold + foreground + #3e8fb0 + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Library function + scope + support.function + settings + + fontStyle + bold + foreground + #ea9a97 + + + + name + Library constant + scope + support.constant + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + bold + foreground + #9ccfd8 + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + bold + foreground + #eb6f92 + + + + name + Invalid + scope + invalid + settings + + background + #eb6f92 + fontStyle + + foreground + #e0def4 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #c4a7e7 + foreground + #e0def4 + + + + name + Punctuation, Operators + scope + punctuation, keyword.operator + settings + + foreground + #908caa + + + + colorSpaceName + sRGB + semanticClass + theme.dark.rose-pine-moon + author + arrrgi + comment + All natural pine, faux fur and a bit of soho vibes for the classy minimalist + uuid + CC28B8FB-96BA-43EB-B71F-5AA3D3EBB0BB + + diff --git a/.config/bat/themes/rose-pine.tmTheme b/.config/bat/themes/rose-pine.tmTheme new file mode 100644 index 0000000..3be026c --- /dev/null +++ b/.config/bat/themes/rose-pine.tmTheme @@ -0,0 +1,329 @@ + + + + + name + Rosé Pine + settings + + + settings + + background + #191724 + caret + #524f67 + foreground + #e0def4 + invisibles + #1f1d2e + lineHighlight + #21202e + selection + #403d52 + + + + name + Comment + scope + comment + settings + + fontStyle + italic + foreground + #908caa + + + + name + String + scope + string, punctuation.definition.string + settings + + foreground + #f6c177 + + + + name + Number + scope + constant.numeric + settings + + foreground + #f6c177 + + + + name + Built-in constant + scope + constant.language + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #f6c177 + + + + name + Variable + scope + variable + settings + + fontStyle + italic + foreground + #e0def4 + + + + name + Keyword + scope + keyword + settings + + foreground + #31748f + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Storage type + scope + storage.type + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Class name + scope + entity.name.class, entity.name + settings + + fontStyle + bold + foreground + #31748f + + + + name + Headings + scope + markup.heading + settings + + fontStyle + bold + foreground + #ebbcba + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic + foreground + #31748f + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + italic + foreground + #ebbcba + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + bold + foreground + #31748f + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Library function + scope + support.function + settings + + fontStyle + bold + foreground + #ebbcba + + + + name + Library constant + scope + support.constant + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + bold + foreground + #9ccfd8 + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + bold + foreground + #eb6f92 + + + + name + Invalid + scope + invalid + settings + + background + #eb6f92 + fontStyle + + foreground + #e0def4 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #c4a7e7 + foreground + #e0def4 + + + + name + Punctuation, Operators + scope + punctuation, keyword.operator + settings + + foreground + #908caa + + + + colorSpaceName + sRGB + semanticClass + theme.dark.rose-pine + author + arrrgi + comment + All natural pine, faux fur and a bit of soho vibes for the classy minimalist + uuid + 14991673-80EB-41A2-BEFF-03216A233730 + + diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf new file mode 100644 index 0000000..3ae5b7b --- /dev/null +++ b/.config/btop/btop.conf @@ -0,0 +1,286 @@ +#? Config file for btop v.1.4.7 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "/home/geoff/.config/btop/themes/rose-pine-dawn.theme" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = false + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = true + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = false + +#* Option to disable presets. Either the default preset, custom presets, or all presets. +#* "Off" All presets are enabled. +#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled. +disable_presets = "Off" + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = false + +#* Disable all mouse events. +disable_mouse = false + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = true + +#* Use terminal synchronized output sequences to reduce flickering on supported terminals. +terminal_sync = true + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "block" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "proc net mem cpu gpu0" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "user" + +#* Reverse sorting order, True or False. +proc_reversed = false + +#* Show processes as a tree. +proc_tree = false + +#* Use the cpu graph colors in the process list. +proc_colors = true + +#* Use a darkening gradient in the process list. +proc_gradient = true + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = false + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = true + +#* Show cpu graph for each process. +proc_cpu_graphs = true + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = false + +#* Show proc box on left side of screen instead of right. +proc_left = false + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = false + +#* Should the process list follow the selected process when detailed view is open. +proc_follow_detailed = true + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = false + +#* Should cpu and memory usage display be preserved for dead processes when paused. +keep_dead_proc_usage = false + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = true + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = false + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = false + +#* Shows the system uptime in the CPU box. +show_uptime = true + +#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo. +show_cpu_watts = true + +#* Show cpu temperature. +check_temp = true + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = true + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = false + +#* Show CPU frequency. +show_cpu_freq = true + +#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average". +freq_mode = "first" + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = true + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = true + +#* Show mem box below net box instead of above. +mem_below_net = false + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = true + +#* If swap memory should be shown in memory box. +show_swap = true + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = true + +#* If mem box should be split to also show disks info. +show_disks = true + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = true + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = true + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = false + +#* Set to true to show available disk space for privileged users. +disk_free_priv = false + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = true + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = false + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = false + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Swap the positions of the upload and download speed graphs. When true, upload will be on top. +swap_upload_download = false + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = true + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = true + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = true + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = true + +#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Automatically save current settings to config file on exit. +save_config_on_exit = true + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = true + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = true + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = true + +#* Set which GPU vendors to show. Available values are "nvidia amd intel apple" +shown_gpus = "nvidia amd intel" + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "3080 ti" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/.config/btop/themes/rose-pine-dawn.theme b/.config/btop/themes/rose-pine-dawn.theme new file mode 100644 index 0000000..4ff7da8 --- /dev/null +++ b/.config/btop/themes/rose-pine-dawn.theme @@ -0,0 +1,89 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#faf4ed" + +# Main text color +theme[main_fg]="#575279" + +# Title color for boxes +theme[title]="#797593" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#575279" + +# Background color of selected item in processes box +theme[selected_bg]="#cecacd" + +# Foreground color of selected item in processes box +theme[selected_fg]="#ea9d34" + +# Color of inactive/disabled text +theme[inactive_fg]="#dfdad9" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#56949f" + +# Background color of the percentage meters +theme[meter_bg]="#56949f" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#907aa9" + +# Cpu box outline color +theme[cpu_box]="#d7827e" + +# Memory/disks box outline color +theme[mem_box]="#286983" + +# Net up/down box outline color +theme[net_box]="#907aa9" + +# Processes box outline color +theme[proc_box]="#b4637a" + +# Box divider line and small boxes line color +theme[div_line]="#9893a5" + +# Temperature graph colors +theme[temp_start]="#d7827e" +theme[temp_mid]="#ea9d34" +theme[temp_end]="#b4637a" + +# CPU graph colors +theme[cpu_start]="#ea9d34" +theme[cpu_mid]="#d7827e" +theme[cpu_end]="#b4637a" + +# Mem/Disk free meter +theme[free_start]="#b4637a" +theme[free_mid]="#b4637a" +theme[free_end]="#b4637a" + +# Mem/Disk cached meter +theme[cached_start]="#907aa9" +theme[cached_mid]="#907aa9" +theme[cached_end]="#907aa9" + +# Mem/Disk available meter +theme[available_start]="#286983" +theme[available_mid]="#286983" +theme[available_end]="#286983" + +# Mem/Disk used meter +theme[used_start]="#d7827e" +theme[used_mid]="#d7827e" +theme[used_end]="#d7827e" + +# Download graph colors +theme[download_start]="#286983" +theme[download_mid]="#56949f" +theme[download_end]="#56949f" + +# Upload graph colors +theme[upload_start]="#d7827e" +theme[upload_mid]="#b4637a" +theme[upload_end]="#b4637a" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#286983" +theme[process_mid]="#56949f" +theme[process_end]="#56949f" diff --git a/.config/cava/config b/.config/cava/config new file mode 100644 index 0000000..876a277 --- /dev/null +++ b/.config/cava/config @@ -0,0 +1,330 @@ +## Configuration file for CAVA. +# Remove the ; to change parameters. + + +[general] + +# Auto reload config if the configuration file has changed. 1 = on, 0 = off. +; live-config = 0 + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-512). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 +# bar_height is only used for output in "noritake" format +; bar_height = 32 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + +# sdl_glsl have these default values, they are only used to calculate max number of bars. +; bar_width = 1 +; bar_spacing = 0 + +# ceter bars in terminal, if there is space. +; center_align = 1 + +# max height of bars in terminal, in percent of terminal height. +; max_height = 100 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff frequency if needed to satisfy the minimum bandwidth. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem' +# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with. +# On Mac it defaults to 'portaudio' or 'fifo' +# On windows this is automatic and no input settings are needed. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For pipewire 'source' will be the object name or object.serial of the device to capture from. +# Both input and output devices are supported. To capture the monitor source of a sink node, append '.monitor' to the sink's object name. +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +# +# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'. +# README.md contains further information on how to setup CAVA for sndio. +# +# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device. +# README.md contains further information on how to setup CAVA for OSS on FreeBSD. +# +# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'. +# README.md contains further information on how to setup CAVA for JACK. +# +; method = pulse +; source = auto + +; method = pipewire +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + +; method = sndio +; source = default + +; method = oss +; source = /dev/dsp + +; method = jack +; source = default + +# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods: +# sample_rate: fifo, pipewire, sndio, oss +# sample_bits: fifo, pipewire, sndio, oss +# channels: sndio, oss, jack +# autoconnect: jack +# Other methods ignore these settings. +# For pipewire, sample_rate will default to 48000, for all other input methods, sample_rate will default to 44100. +# +# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported +# by the chosen audio device, the device will use other supported values instead. +# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it +# will use 44100, 16 and 1. +# +# +# The 'pipewire' input method has three options to control linking and mixing: +# active: Force the node to always process. Useful for monitoring sources when no other application is active. +# remix: Allow pipewire to remix audio channels to match cava's channel count. Useful for surround sound. +# virtual: Set the node to virtual, to avoid recording notifications from the DE. +# +; sample_rate = 44100 +; sample_bits = 16 +; channels = 2 +; autoconnect = 2 +; active = 1 +; remix = 1 +; virtual = 1 + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' +# or 'sdl_glsl'. +# 'noncurses' (default) uses a buffer and cursor movements to only print +# changes from frame to frame in the terminal. Uses less resources and is less +# prone to tearing (vsync issues) than 'ncurses'. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 1024 bars stereo (512 bars mono), which can be adjusted in the 'bars' option above. +# +# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display +# in graphic mode. It only support the 3000 series graphical VFDs for now. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or +# use one of the predefined ones. +; method = noncurses + +# Orientation of the visualization. Can be 'bottom', 'top', 'left', 'right' or +# 'horizontal'. Default is 'bottom'. 'left and 'right' are only supported on sdl +# and ncruses output. 'horizontal' (bars go up and down from center) is only supported +# on noncurses output. +# Note: many fonts have weird or missing glyphs for characters used in orientations +# other than 'bottom', which can make output not look right. +; orientation = bottom + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +# set 'reverse' to 1 to display frequencies the other way around. +; channels = stereo +; mono_option = average +; reverse = 0 + +# Only valid if orientation is set to 'horizontal'. +# Set 'horizontal_stereo' to 1 to have left channel bars at top and right channel at bottom. +# Set 'left_bottom' to 0 to have right channel at top and left channel at bottom. +; horizontal_stereo = 0 +; left_bottom = 1 + +# Raw output target. +# On Linux, a fifo will be created if target does not exist. +# On Windows, a named pipe will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1024 +; sdl_height = 512 +; sdl_x = -1 +; sdl_y= -1 +; sdl_full_screen = 0 + +# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' +# 'frequency' displays the lower cut off frequency of the bar above. +# Only supported on ncurses and noncurses output. +; xaxis = none + +# enable synchronized sync. 1 = on, 0 = off +# removes flickering in alacritty terminal emulator. +# defaults to off since the behaviour in other terminal emulators is unknown +; synchronized_sync = 0 + +# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders +; vertex_shader = pass_through.vert +; fragment_shader = bar_spectrum.frag + +; for glsl output mode, keep rendering even if no audio +; continuous_rendering = 0 + +# disable console blank (screen saver) in tty +# (Not supported on FreeBSD) +; disable_blanking = 0 + +# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off +; show_idle_bar_heads = 1 + +# show waveform instead of frequency spectrum, 1 = on, 0 = off +; waveform = 0 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# a terminal that can change color definitions such as Gnome-terminal or rxvt. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL and sdl_glsl only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#33ffff' + + +# Gradient mode, only hex defined colors are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen +; gradient = 0 +; gradient_color_1 = '#59cc33' +; gradient_color_2 = '#80cc33' +; gradient_color_3 = '#a6cc33' +; gradient_color_4 = '#cccc33' +; gradient_color_5 = '#cca633' +; gradient_color_6 = '#cc8033' +; gradient_color_7 = '#cc5933' +; gradient_color_8 = '#cc3333' + + +# Horizontal is only supported on noncurses output. +# Only one color will be calculated per bar. +; horizontal_gradient = 0 +; horizontal_gradient_color_1 = '#c45161' +; horizontal_gradient_color_2 = '#e094a0' +; horizontal_gradient_color_3 = '#f2b6c0' +; horizontal_gradient_color_4 = '#f2dde1' +; horizontal_gradient_color_5 = '#cbc7d8' +; horizontal_gradient_color_6 = '#8db7d2' +; horizontal_gradient_color_7 = '#5e62a9' +; horizontal_gradient_color_8 = '#434279' + + +# If both vertical and horizontal gradient is enabled, vertical will be blended in this direction. +# Can be 'up', 'down', 'left' or 'right'. 'up' means the vertical gradient will be blended in from +# bottom to top. I.e. the bottom will be only the horizontal +# and top will be only the color of the vertical gradient. +; blend_direction = 'up' + +# use theme file instead of defining colors in this file +# themes are located in $HOME/.config/cava/themes +; theme = 'none' + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# DEPRECATED as of 0.8.0, use noise_reduction instead +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +# DEPRECATED as of 0.8.0, use noise_reduction instead +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +# DEPRECATED as of 0.8.0 +; ignore = 0 + +# Noise reduction, int 0 - 100. default 77 +# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth +# 100 will be very slow and smooth, 0 will be fast but noisy. +; noise_reduction = 77 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more than one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/.config/cava/shaders/bar_spectrum.frag b/.config/cava/shaders/bar_spectrum.frag new file mode 100644 index 0000000..473301c --- /dev/null +++ b/.config/cava/shaders/bar_spectrum.frag @@ -0,0 +1,73 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space between bars (configurable) + +uniform vec3 u_resolution; // window resolution + +// colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +uniform float shader_time; // shader execution time s (not used here) + +uniform sampler2D inputTexture; // Texture from the last render pass (not used here) + +vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) { + // create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() { + // find which bar to use based on where we are on the x axis + float x = u_resolution.x * fragCoord.x; + int bar = int(bars_count * fragCoord.x); + + // calculate a bar size + float bar_size = u_resolution.x / bars_count; + + // the y coordinate and bar values are the same + float y = bars[bar]; + + // make sure there is a thin line at bottom + if (y * u_resolution.y < 1.0) { + y = 1.0 / u_resolution.y; + } + + // draw the bar up to current height + if (y > fragCoord.y) { + // make some space between bars basen on settings + if (x > (bar + 1) * (bar_size)-bar_spacing) { + fragColor = vec4(bg_color, 1.0); + } else { + if (gradient_count == 0) { + fragColor = vec4(fg_color, 1.0); + } else { + // find which color in the configured gradient we are at + int color = int((gradient_count - 1) * fragCoord.y); + + // find where on y this and next color is supposed to be + float y_min = color / (gradient_count - 1.0); + float y_max = (color + 1.0) / (gradient_count - 1.0); + + // make color + fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], + gradient_colors[color + 1], y_min, y_max), + 1.0); + } + } + } else { + fragColor = vec4(bg_color, 1.0); + } +} diff --git a/.config/cava/shaders/eye_of_phi.frag b/.config/cava/shaders/eye_of_phi.frag new file mode 100644 index 0000000..b66b607 --- /dev/null +++ b/.config/cava/shaders/eye_of_phi.frag @@ -0,0 +1,117 @@ +#version 330 + +// this shader was stolen from shadertoy user ChunderFPV + +#define SCALE 8.0 +#define PI radians(180.0) +#define TAU (PI * 2.0) +#define CS(a) vec2(cos(a), sin(a)) +#define PT(u, r) smoothstep(0.0, r, r - length(u)) + +in vec2 fragCoord; +out vec4 fragColor; + +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform float shader_time; // shader execution time s +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space between bars (configurable) + +uniform vec3 u_resolution; // window resolution + +// colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +// gradient map ( color, equation, time, width, shadow, reciprocal ) +vec3 gm(vec3 c, float n, float t, float w, float d, bool i) { + float g = min(abs(n), 1.0 / abs(n)); + float s = abs(sin(n * PI - t)); + if (i) + s = min(s, abs(sin(PI / n + t))); + return (1.0 - pow(abs(s), w)) * c * pow(g, d) * 6.0; +} + +// denominator spiral, use 1/n for numerator +// ( screen xy, spiral exponent, decimal, line width, hardness, rotation ) +float ds(vec2 u, float e, float n, float w, float h, float ro) { + float ur = length(u); // unit radius + float sr = pow(ur, e); // spiral radius + float a = round(sr) * n * TAU; // arc + vec2 xy = CS(a + ro) * ur; // xy coords + float l = PT(u - xy, w); // line + float s = mod(sr + 0.5, 1.0); // gradient smooth + s = min(s, 1.0 - s); // darken filter + return l * s * h; +} + +void main() { + float t = shader_time / PI * 2.0; + vec4 m = vec4(0, 0, 0, 0); // iMouse; + m.xy = m.xy * 2.0 / u_resolution.xy - 1.0; // ±1x, ±1y + if (m.z > 0.0) + t += m.y * SCALE; // move time with mouse y + float z = (m.z > 0.0) ? pow(1.0 - abs(m.y), sign(m.y)) : 1.0; // zoom (+) + float e = (m.z > 0.0) ? pow(1.0 - abs(m.x), -sign(m.x)) + : 1.0; // screen exponent (+) + float se = (m.z > 0.0) ? e * -sign(m.y) : 1.0; // spiral exponent + vec3 bg = vec3(0); // black background + + float aa = 3.0; // anti-aliasing + + for (float j = 0.0; j < aa; j++) + for (float k = 0.0; k < aa; k++) { + vec3 c = vec3(0); + vec2 o = vec2(j, k) / aa; + vec2 uv = (fragCoord * u_resolution.xy - 0.5 * u_resolution.xy + o) / + u_resolution.y * SCALE * z; // apply cartesian, scale and zoom + if (m.z > 0.0) + uv = + exp(log(abs(uv)) * e) * sign(uv); // warp screen space with exponent + + float px = length(fwidth(uv)); // pixel width + float x = uv.x; // every pixel on x + float y = uv.y; // every pixel on y + float l = length(uv); // hypot of xy: sqrt(x*x+y*y) + + float mc = (x * x + y * y - 1.0) / y; // metallic circle at xy + float g = min(abs(mc), 1.0 / abs(mc)); // gradient + vec3 gold = vec3(1.0, 0.6, 0.0) * g * l; + vec3 blue = vec3(0.3, 0.5, 0.9) * (1.0 - g); + vec3 rgb = max(gold, blue); + + float w = 0.1; // line width + float d = 0.4; // shadow depth + c = max(c, gm(rgb, mc, -t, w * bars[0], d, false)); // metallic + c = max(c, gm(rgb, abs(y / x) * sign(y), -t, w * bars[1], d, + false)); // tangent + c = max(c, gm(rgb, (x * x) / (y * y) * sign(y), -t, w * bars[2], d, + false)); // sqrt cotangent + c = max(c, gm(rgb, (x * x) + (y * y), t, w * bars[3], d, + true)); // sqrt circles + + c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[4], 2.0, 0.0); // spiral 1a + c += rgb * ds(uv, se, t / TAU, px * 2.0 * bars[5], 2.0, PI); // spiral 1b + c += + rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[6], 2.0, 0.0); // spiral 2a + c += rgb * ds(uv, -se, t / TAU, px * 2.0 * bars[7], 2.0, PI); // spiral 2b + c = max(c, 0.0); // clear negative color + + c += pow(max(1.0 - l, 0.0), 3.0 / z); // center glow + + if (m.z > 0.0) // display grid on click + { + vec2 xyg = abs(fract(uv + 0.5) - 0.5) / px; // xy grid + c.gb += 0.2 * (1.0 - min(min(xyg.x, xyg.y), 1.0)); + } + bg += c; + } + bg /= aa * aa; + bg *= sqrt(bg) * 1.5; + + fragColor = vec4(bg, 1.0); +} diff --git a/.config/cava/shaders/northern_lights.frag b/.config/cava/shaders/northern_lights.frag new file mode 100644 index 0000000..ecd859a --- /dev/null +++ b/.config/cava/shaders/northern_lights.frag @@ -0,0 +1,34 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; + float y = (bars[bar]) * bar_y; + + float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; + float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; + + bar_r = bar_r * bar_r * 2; + + // set color + fragColor.r = fg_color.x * y * bar_r; + fragColor.g = fg_color.y * y * bar_r; + fragColor.b = fg_color.z * y * bar_r; +} diff --git a/.config/cava/shaders/pass_through.vert b/.config/cava/shaders/pass_through.vert new file mode 100644 index 0000000..a4f20e5 --- /dev/null +++ b/.config/cava/shaders/pass_through.vert @@ -0,0 +1,14 @@ +#version 330 + + +// Input vertex data, different for all executions of this shader. +layout(location = 0) in vec3 vertexPosition_modelspace; + +// Output data ; will be interpolated for each fragment. +out vec2 fragCoord; + +void main() +{ + gl_Position = vec4(vertexPosition_modelspace,1); + fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; +} diff --git a/.config/cava/shaders/spectrogram.frag b/.config/cava/shaders/spectrogram.frag new file mode 100644 index 0000000..18afbe3 --- /dev/null +++ b/.config/cava/shaders/spectrogram.frag @@ -0,0 +1,53 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high +// to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space between bars (configurable) + +uniform vec3 u_resolution; // window resolution + +// colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +uniform sampler2D inputTexture; // Texture from the last render pass + +vec3 normalize_C(float y, vec3 col_1, vec3 col_2, float y_min, float y_max) { + // create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() { + // find which bar to use based on where we are on the y axis + int bar = int(bars_count * fragCoord.y); + float y = bars[bar]; + float band_size = 1.0 / float(bars_count); + float current_band_min = bar * band_size; + float current_band_max = (bar + 1) * band_size; + + int hist_length = 512; + float win_size = 1.0 / hist_length; + + if (fragCoord.x > 1.0 - win_size) { + + if (fragCoord.y > current_band_min && fragCoord.y < current_band_max) { + + fragColor = vec4(fg_color * y, 1.0); + } + } else { + vec2 offsetCoord = fragCoord; + offsetCoord.x += float(win_size); + fragColor = texture(inputTexture, offsetCoord); + } +} diff --git a/.config/cava/shaders/winamp_line_style_spectrum.frag b/.config/cava/shaders/winamp_line_style_spectrum.frag new file mode 100644 index 0000000..3bcc24a --- /dev/null +++ b/.config/cava/shaders/winamp_line_style_spectrum.frag @@ -0,0 +1,112 @@ +#version 330 + +// Emulate the "line style" spectrum analyzer from Winamp 2. +// Try this config for a demonstration: + +/* +[general] +bar_width = 2 +bar_spacing = 0 +higher_cutoff_freq = 22000 + +[output] +method = sdl_glsl +channels = mono +fragment_shader = winamp_line_style_spectrum.frag + +[color] +background = '#000000' +gradient = 1 +gradient_color_1 = '#319C08' +gradient_color_2 = '#29CE10' +gradient_color_3 = '#BDDE29' +gradient_color_4 = '#DEA518' +gradient_color_5 = '#D66600' +gradient_color_6 = '#CE2910' + +[smoothing] +noise_reduction = 10 +*/ + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space between bars (configurable) + +uniform vec3 u_resolution; // window resolution + +//colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) +{ + //create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + float x = u_resolution.x * fragCoord.x; + int bar = int(bars_count * fragCoord.x); + + //calculate a bar size + float bar_size = u_resolution.x / bars_count; + + //the y coordinate is stretched by 4X to resemble Winamp + float y = min(bars[bar] * 4.0, 1.0); + + // make sure there is a thin line at bottom + if (y * u_resolution.y < 1.0) + { + y = 1.0 / u_resolution.y; + } + + vec4 bar_color; + + if (gradient_count == 0) + { + bar_color = vec4(fg_color,1.0); + } + else + { + //find color in the configured gradient for the top of the bar + int color = int((gradient_count - 1) * y); + + //find where on y this and next color is supposed to be + float y_min = float(color) / (gradient_count - 1.0); + float y_max = float(color + 1) / (gradient_count - 1.0); + + //make a solid color for the entire bar + bar_color = vec4(normalize_C(y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); + } + + + //draw the bar up to current height + if (y > fragCoord.y) + { + //make some space between bars based on settings + if (x > (bar + 1) * (bar_size) - bar_spacing) + { + fragColor = vec4(bg_color,1.0); + } + else + { + fragColor = bar_color; + } + } + else + { + fragColor = vec4(bg_color,1.0); + } +} diff --git a/.config/cava/themes/solarized_dark b/.config/cava/themes/solarized_dark new file mode 100644 index 0000000..200057c --- /dev/null +++ b/.config/cava/themes/solarized_dark @@ -0,0 +1,15 @@ +[color] +background = '#001e26' +foreground = '#708183' + +gradient = 1 +gradient_color_1 = '#268bd2' +gradient_color_2 = '#6c71c4' +gradient_color_3 = '#cb4b16' + +horizontal_gradient = 1 +horizontal_gradient_color_1 = '#586e75' +horizontal_gradient_color_2 = '#b58900' +horizontal_gradient_color_3 = '#839496' + +blend_direction = 'up' \ No newline at end of file diff --git a/.config/cava/themes/tricolor b/.config/cava/themes/tricolor new file mode 100644 index 0000000..b908137 --- /dev/null +++ b/.config/cava/themes/tricolor @@ -0,0 +1,10 @@ +[color] +horizontal_gradient = 1 +horizontal_gradient_color_1 = '#c45161' +horizontal_gradient_color_2 = '#e094a0' +horizontal_gradient_color_3 = '#f2b6c0' +horizontal_gradient_color_4 = '#f2dde1' +horizontal_gradient_color_5 = '#cbc7d8' +horizontal_gradient_color_6 = '#8db7d2' +horizontal_gradient_color_7 = '#5e62a9' +horizontal_gradient_color_8 = '#434279' \ No newline at end of file