add config folders
This commit is contained in:
parent
191fd6fd28
commit
3f7f5e17c8
12 changed files with 1952 additions and 0 deletions
282
cava/config
Normal file
282
cava/config
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
## Configuration file for CAVA.
|
||||
# Remove the ; to change parameters.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
# 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 if a too low band is specified.
|
||||
; 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.
|
||||
#
|
||||
# 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 '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.
|
||||
#
|
||||
; sample_rate = 44100
|
||||
; sample_bits = 16
|
||||
; channels = 2
|
||||
; autoconnect = 2
|
||||
|
||||
|
||||
[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 200 bars, 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
|
||||
|
||||
# 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 = 1000
|
||||
; sdl_height = 500
|
||||
; 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'
|
||||
|
||||
|
||||
|
||||
[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
|
||||
79
cava/shaders/bar_spectrum.frag
Normal file
79
cava/shaders/bar_spectrum.frag
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
#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 bewteen 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 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);
|
||||
}
|
||||
}
|
||||
34
cava/shaders/northern_lights.frag
Normal file
34
cava/shaders/northern_lights.frag
Normal file
|
|
@ -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;
|
||||
}
|
||||
14
cava/shaders/pass_through.vert
Normal file
14
cava/shaders/pass_through.vert
Normal file
|
|
@ -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;
|
||||
}
|
||||
53
cava/shaders/spectrogram.frag
Normal file
53
cava/shaders/spectrogram.frag
Normal file
|
|
@ -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 bewteen 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 first 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);
|
||||
}
|
||||
}
|
||||
112
cava/shaders/winamp_line_style_spectrum.frag
Normal file
112
cava/shaders/winamp_line_style_spectrum.frag
Normal file
|
|
@ -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 bewteen 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);
|
||||
}
|
||||
}
|
||||
68
posh/termconfig.json
Normal file
68
posh/termconfig.json
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
||||
"palette": {
|
||||
"os": "#ACB0BE",
|
||||
"closer": "p:os",
|
||||
"pink": "#F4B8E4",
|
||||
"lavender": "#BABBF1",
|
||||
"blue": "#8CAAEE"
|
||||
},
|
||||
"blocks": [
|
||||
{
|
||||
"alignment": "left",
|
||||
"segments": [
|
||||
{
|
||||
"foreground": "p:os",
|
||||
"style": "plain",
|
||||
"template": "{{.Icon}} ",
|
||||
"type": "os"
|
||||
},
|
||||
{
|
||||
"foreground": "p:blue",
|
||||
"style": "plain",
|
||||
"template": "{{ .UserName }}@{{ .HostName }} ",
|
||||
"type": "session"
|
||||
},
|
||||
{
|
||||
"foreground": "p:pink",
|
||||
"properties": {
|
||||
"folder_icon": "..\ue5fe..",
|
||||
"home_icon": "~",
|
||||
"style": "agnoster_short"
|
||||
},
|
||||
"style": "plain",
|
||||
"template": "{{ .Path }} ",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"foreground": "p:lavender",
|
||||
"properties": {
|
||||
"branch_icon": "\ue725 ",
|
||||
"cherry_pick_icon": "\ue29b ",
|
||||
"commit_icon": "\uf417 ",
|
||||
"fetch_status": false,
|
||||
"fetch_upstream_icon": false,
|
||||
"merge_icon": "\ue727 ",
|
||||
"no_commits_icon": "\uf0c3 ",
|
||||
"rebase_icon": "\ue728 ",
|
||||
"revert_icon": "\uf0e2 ",
|
||||
"tag_icon": "\uf412 "
|
||||
},
|
||||
"template": "{{ .HEAD }} ",
|
||||
"style": "plain",
|
||||
"type": "git"
|
||||
},
|
||||
{
|
||||
"style": "plain",
|
||||
"foreground": "p:closer",
|
||||
"template": "\uf105",
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"type": "prompt"
|
||||
}
|
||||
],
|
||||
"final_space": true,
|
||||
"version": 3
|
||||
}
|
||||
|
||||
104
term/settings.json
Normal file
104
term/settings.json
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
"$help": "https://aka.ms/terminal-documentation",
|
||||
"$schema": "https://aka.ms/terminal-profiles-schema",
|
||||
"actions":
|
||||
[
|
||||
{
|
||||
"command":
|
||||
{
|
||||
"action": "copy",
|
||||
"singleLine": false
|
||||
},
|
||||
"id": "User.copy.644BA8F2"
|
||||
},
|
||||
{
|
||||
"command": "paste",
|
||||
"id": "User.paste"
|
||||
},
|
||||
{
|
||||
"command":
|
||||
{
|
||||
"action": "splitPane",
|
||||
"split": "auto",
|
||||
"splitMode": "duplicate"
|
||||
},
|
||||
"id": "User.splitPane.A6751878"
|
||||
},
|
||||
{
|
||||
"command": "find",
|
||||
"id": "User.find"
|
||||
}
|
||||
],
|
||||
"copyFormatting": "none",
|
||||
"copyOnSelect": false,
|
||||
"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
|
||||
"keybindings":
|
||||
[
|
||||
{
|
||||
"id": "User.copy.644BA8F2",
|
||||
"keys": "ctrl+c"
|
||||
},
|
||||
{
|
||||
"id": "User.find",
|
||||
"keys": "ctrl+shift+f"
|
||||
},
|
||||
{
|
||||
"id": "User.paste",
|
||||
"keys": "ctrl+v"
|
||||
},
|
||||
{
|
||||
"id": "User.splitPane.A6751878",
|
||||
"keys": "alt+shift+d"
|
||||
}
|
||||
],
|
||||
"newTabMenu":
|
||||
[
|
||||
{
|
||||
"type": "remainingProfiles"
|
||||
}
|
||||
],
|
||||
"profiles":
|
||||
{
|
||||
"defaults": {
|
||||
"font":
|
||||
{
|
||||
"face": "MesloLGM Nerd Font"
|
||||
}
|
||||
},
|
||||
"list":
|
||||
[
|
||||
{
|
||||
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
|
||||
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
|
||||
"hidden": false,
|
||||
"name": "Windows PowerShell"
|
||||
},
|
||||
{
|
||||
"commandline": "%SystemRoot%\\System32\\cmd.exe",
|
||||
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
|
||||
"hidden": false,
|
||||
"name": "Command Prompt"
|
||||
},
|
||||
{
|
||||
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
|
||||
"hidden": false,
|
||||
"name": "Azure Cloud Shell",
|
||||
"source": "Windows.Terminal.Azure"
|
||||
},
|
||||
{
|
||||
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
|
||||
"hidden": false,
|
||||
"name": "Git Bash",
|
||||
"source": "Git"
|
||||
},
|
||||
{
|
||||
"guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
|
||||
"hidden": false,
|
||||
"name": "Debian",
|
||||
"source": "Windows.Terminal.Wsl"
|
||||
}
|
||||
]
|
||||
},
|
||||
"schemes": [],
|
||||
"themes": []
|
||||
}
|
||||
467
yasb/config.yaml
Normal file
467
yasb/config.yaml
Normal file
|
|
@ -0,0 +1,467 @@
|
|||
# Changes made from the base config, make sure to read the docs provided in the third comment to modify according to one's liking
|
||||
# This is solely meant for GlazeWM users as I haven't touched Komorebi for I love GlazeWM's simplicity.
|
||||
# UPDATE: Done modifying with Komorebi!
|
||||
# For more information about configuration options, please visit the Wiki https://github.com/amnweb/yasb/wiki
|
||||
watch_stylesheet: true
|
||||
watch_config: true
|
||||
debug: false
|
||||
bars:
|
||||
primary-bar:
|
||||
enabled: true
|
||||
screens: ["*"]
|
||||
class_name: "yasb-bar"
|
||||
alignment:
|
||||
position: "top"
|
||||
center: false
|
||||
animation:
|
||||
enabled: true
|
||||
duration: 1000
|
||||
blur_effect:
|
||||
enabled: True
|
||||
acrylic: True
|
||||
dark_mode: True
|
||||
round_corners: True
|
||||
round_corners_type: "normal"
|
||||
border_color: "System"
|
||||
window_flags:
|
||||
always_on_top: false
|
||||
windows_app_bar: true # This interferes with apps in full-screen. Notably while watching videos in full screen
|
||||
dimensions:
|
||||
width: "100%"
|
||||
height: 30
|
||||
padding:
|
||||
top: 10
|
||||
left: 12
|
||||
bottom: 0
|
||||
right: 12
|
||||
widgets:
|
||||
left: [
|
||||
"home",
|
||||
"komorebi_control",
|
||||
"komorebi_workspaces",
|
||||
"notes",
|
||||
"media"
|
||||
]
|
||||
center: [
|
||||
"clock"
|
||||
]
|
||||
right: [
|
||||
"systray",
|
||||
"disk",
|
||||
"memory",
|
||||
"cpu",
|
||||
"battery",
|
||||
"wifi",
|
||||
"volume",
|
||||
"weather",
|
||||
"wallpapers",
|
||||
"notifications",
|
||||
"power_menu"
|
||||
]
|
||||
widgets:
|
||||
komorebi_workspaces:
|
||||
type: "komorebi.workspaces.WorkspaceWidget"
|
||||
options:
|
||||
label_offline: "Komorebi Offline"
|
||||
label_workspace_btn: ""
|
||||
label_workspace_active_btn: ""
|
||||
label_workspace_populated_btn: ""
|
||||
label_default_name: ""
|
||||
label_zero_index: false
|
||||
hide_empty_workspaces: true
|
||||
hide_if_offline: false
|
||||
animation: true
|
||||
container_padding:
|
||||
top: 0
|
||||
left: 12
|
||||
bottom: 0
|
||||
right: 12
|
||||
btn_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
komorebi_control:
|
||||
type: "komorebi.control.KomorebiControlWidget"
|
||||
options:
|
||||
label: "<span>\udb84\udc47</span>"
|
||||
icons:
|
||||
start: "\uead3"
|
||||
stop: "\uead7"
|
||||
reload: "\uead2"
|
||||
run_ahk: false
|
||||
run_whkd: true
|
||||
show_version: false
|
||||
komorebi_menu:
|
||||
blur: True
|
||||
round_corners: True
|
||||
round_corners_type: 'normal'
|
||||
border_color: 'System'
|
||||
alignment: 'left'
|
||||
direction: 'down'
|
||||
offset_top: 6
|
||||
offset_left: -32
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 3
|
||||
offset: [ 1, 1 ]
|
||||
notes:
|
||||
type: "yasb.notes.NotesWidget"
|
||||
options:
|
||||
label: "<span>\udb82\udd0c</span> {count}"
|
||||
label_alt: "{count} notes"
|
||||
container_padding:
|
||||
top: 0
|
||||
left: 0
|
||||
bottom: 0
|
||||
right: 0
|
||||
menu:
|
||||
blur: true
|
||||
round_corners: true
|
||||
round_corners_type: "normal"
|
||||
border_color: "System"
|
||||
alignment: "right"
|
||||
direction: "down"
|
||||
offset_top: 6
|
||||
offset_left: 220
|
||||
max_title_size: 150
|
||||
show_date_time: true
|
||||
icons:
|
||||
note: "\udb82\udd0c"
|
||||
delete: "\ue20d"
|
||||
callbacks:
|
||||
on_left: "toggle_menu"
|
||||
on_middle: "do_nothing"
|
||||
on_right: "toggle_label"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
home:
|
||||
type: "yasb.home.HomeWidget"
|
||||
options:
|
||||
label: "<span>\ue62a</span>"
|
||||
menu_list:
|
||||
- { title: "User Home", path: "~" }
|
||||
- { title: "Download", path: "D:\\Downloads" }
|
||||
- { title: "Documents", path: "C:\\Users\\amn\\Documents" }
|
||||
- { title: "Pictures", path: "C:\\Users\\amn\\Pictures" }
|
||||
system_menu: true
|
||||
power_menu: false
|
||||
blur: true
|
||||
round_corners: true
|
||||
round_corners_type: "normal"
|
||||
border_color: "System"
|
||||
offset_top: 6
|
||||
offset_left: 0
|
||||
container_padding:
|
||||
top: 0
|
||||
left: 0
|
||||
bottom: 0
|
||||
right: 0
|
||||
alignment: "left"
|
||||
direction: "down"
|
||||
menu_labels:
|
||||
shutdown: "Shutdown"
|
||||
restart: "Restart"
|
||||
logout: "Logout"
|
||||
lock: "Lock"
|
||||
sleep: "Sleep"
|
||||
system: "System Settings"
|
||||
about: "About This PC"
|
||||
task_manager: "Task Manager"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
notifications:
|
||||
type: "yasb.notifications.NotificationsWidget"
|
||||
options:
|
||||
label: "<span>\uf476</span>"
|
||||
label_alt: "{count} notifications"
|
||||
hide_empty: true
|
||||
tooltip: true
|
||||
callbacks:
|
||||
on_left: "toggle_notification"
|
||||
container_padding:
|
||||
top: 0
|
||||
left: 0
|
||||
bottom: 0
|
||||
right: 0
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
memory:
|
||||
type: "yasb.memory.MemoryWidget"
|
||||
options:
|
||||
label: "<span>\uefc5</span> {virtual_mem_percent}%"
|
||||
label_alt: "<span>\uefc5</span> SWAP: {swap_mem_percent}%"
|
||||
update_interval: 5000
|
||||
callbacks:
|
||||
on_left: "toggle_label"
|
||||
on_middle: "do_nothing"
|
||||
on_right: "do_nothing"
|
||||
memory_thresholds:
|
||||
low: 25
|
||||
medium: 50
|
||||
high: 90
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
cpu:
|
||||
type: "yasb.cpu.CpuWidget"
|
||||
options:
|
||||
label: "<span>\uf4bc</span> {info[percent][total]:.0f}%"
|
||||
label_alt: "<span>\uf437</span> {info[histograms][cpu_percent]}"
|
||||
update_interval: 2000
|
||||
histogram_icons:
|
||||
- '\u2581' # 0%
|
||||
- '\u2581' # 10%
|
||||
- '\u2582' # 20%
|
||||
- '\u2583' # 30%
|
||||
- '\u2584' # 40%
|
||||
- '\u2585' # 50%
|
||||
- '\u2586' # 60%
|
||||
- '\u2587' # 70%
|
||||
- '\u2588' # 80%+
|
||||
histogram_num_columns: 8
|
||||
callbacks:
|
||||
on_right: "exec cmd /c Taskmgr"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
wallpapers:
|
||||
type: "yasb.wallpapers.WallpapersWidget"
|
||||
options:
|
||||
label: "<span>\udb83\ude09</span>"
|
||||
image_path: "C:\\Users\\Lone\\Pictures\\Wallpapers"
|
||||
change_automatically: false
|
||||
update_interval: 60
|
||||
gallery:
|
||||
enabled: true
|
||||
blur: true
|
||||
image_width: 296
|
||||
image_per_page: 6
|
||||
show_buttons: false
|
||||
orientation: "portrait"
|
||||
image_spacing: 10
|
||||
lazy_load: true
|
||||
lazy_load_delay: 10
|
||||
lazy_load_fadein: 200
|
||||
image_corner_radius: 20
|
||||
enable_cache: true
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 3
|
||||
offset: [ 1, 1 ]
|
||||
disk:
|
||||
type: "yasb.disk.DiskWidget"
|
||||
options:
|
||||
label: "<span>\uf473</span>"
|
||||
# label_alt: "<span>\uf473</span>"
|
||||
label_alt: "{volume_label}:{space[used][percent]}"
|
||||
volume_label: "C"
|
||||
update_interval: 60
|
||||
group_label:
|
||||
volume_labels: ["C", "D", "E", "O"]
|
||||
show_label_name: true
|
||||
blur: True
|
||||
round_corners: true
|
||||
round_corners_type: "normal"
|
||||
border_color: "System"
|
||||
alignment: "right"
|
||||
direction: "down"
|
||||
offset_top: 6
|
||||
offset_left: 120
|
||||
callbacks:
|
||||
on_left: "toggle_group"
|
||||
on_right: "toggle_label"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
systray:
|
||||
type: "yasb.systray.SystrayWidget"
|
||||
options:
|
||||
class_name: "systray"
|
||||
label_collapsed: "\udb80\udf5e"
|
||||
label_expanded: "\udb80\udf5f"
|
||||
label_position: "right" # Can be "left" or "right"
|
||||
icon_size: 15 # Can be any integer between 8 and 64
|
||||
pin_click_modifier: "alt" # Can be "ctrl", "alt" or "shift"
|
||||
show_unpinned: false
|
||||
show_unpinned_button: true
|
||||
show_battery: false
|
||||
show_volume: false
|
||||
show_network: false
|
||||
glazewm_workspaces:
|
||||
type: "glazewm.workspaces.GlazewmWorkspacesWidget"
|
||||
options:
|
||||
offline_label: "GlazeWM Offline"
|
||||
hide_empty_workspaces: true
|
||||
hide_if_offline: true
|
||||
media:
|
||||
type: "yasb.media.MediaWidget"
|
||||
options:
|
||||
label: "{title}"
|
||||
label_alt: "{title} - {artist}"
|
||||
max_field_size:
|
||||
label: 24
|
||||
label_alt: 24
|
||||
show_thumbnail: true
|
||||
controls_only: false
|
||||
controls_left: true
|
||||
hide_empty: true
|
||||
thumbnail_alpha: 255
|
||||
thumbnail_padding: 30
|
||||
thumbnail_corner_radius: 0
|
||||
icons:
|
||||
prev_track: "\ue892"
|
||||
next_track: "\ue893"
|
||||
play: "\ue768"
|
||||
pause: "\ue769"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
container_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
clock:
|
||||
type: "yasb.clock.ClockWidget"
|
||||
options:
|
||||
label: "<span>\ue0b2</span> {%H:%M} <span>\ue0b0</span>"
|
||||
label_alt: "<span>\ue0c2</span>{%A %d %B %Y %H:%M}<span>\ue0c0</span>"
|
||||
timezones: []
|
||||
calendar:
|
||||
blur: True
|
||||
round_corners: true
|
||||
offset_top: 10
|
||||
offset_left: 200
|
||||
weather:
|
||||
type: "yasb.weather.WeatherWidget"
|
||||
options:
|
||||
label: "<span>{icon}</span> {temp}"
|
||||
label_alt: "{location}: Min {min_temp}, Max {max_temp}, Humidity {humidity}"
|
||||
api_key: "3bf4cf9a7c3f40d6b31174128242807"
|
||||
update_interval: 600
|
||||
hide_decimal: true
|
||||
location: "Tuticorin"
|
||||
callbacks:
|
||||
on_left: "toggle_card"
|
||||
weather_card:
|
||||
blur: true
|
||||
round_corners: true
|
||||
round_corners_type: "normal"
|
||||
border_color: "System"
|
||||
alignment: "right"
|
||||
direction: "down"
|
||||
icon_size: 64
|
||||
offset_top: 6
|
||||
offset_left: 74
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
wifi:
|
||||
type: "yasb.wifi.WifiWidget"
|
||||
options:
|
||||
label: "<span>{wifi_icon}</span>"
|
||||
label_alt: "{wifi_name} {wifi_strength}%"
|
||||
update_interval: 5000
|
||||
callbacks:
|
||||
on_left: "exec cmd.exe /c start ms-settings:network"
|
||||
on_right: "toggle_label"
|
||||
wifi_icons: [
|
||||
"\udb82\udd2e", # 0% strength icon
|
||||
"\udb82\udd1f", # 1-20% strength
|
||||
"\udb82\udd22", # 21-40% strength
|
||||
"\udb82\udd25", # 41-80% strength
|
||||
"\udb82\udd28" # 81-100% strength
|
||||
]
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
volume:
|
||||
type: "yasb.volume.VolumeWidget"
|
||||
options:
|
||||
label: "<span>{icon}</span> {level}"
|
||||
label_alt: "{volume}"
|
||||
volume_icons:
|
||||
- "\ueee8" # Icon for muted
|
||||
- "\uf026" # Icon for 0-10% volume
|
||||
- "\uf027" # Icon for 11-30% volume
|
||||
- "\uf027" # Icon for 31-60% volume
|
||||
- "\uf028" # Icon for 61-100% volume
|
||||
audio_menu:
|
||||
blur: True
|
||||
round_corners: True
|
||||
round_corners_type: 'normal'
|
||||
border_color: 'System'
|
||||
alignment: 'right'
|
||||
direction: 'down'
|
||||
offset_top: 6
|
||||
offset_left: 80
|
||||
callbacks:
|
||||
on_left: "toggle_volume_menu"
|
||||
on_right: "toggle_mute"
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
battery:
|
||||
type: "yasb.battery.BatteryWidget"
|
||||
options:
|
||||
label: "<span>{icon}</span>{percent}%"
|
||||
label_alt: "time: {time_remaining}"
|
||||
charging_options:
|
||||
icon_format: "{charging_icon}"
|
||||
status_thresholds:
|
||||
critical: 10
|
||||
low: 25
|
||||
medium: 75
|
||||
high: 95
|
||||
full: 100
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
power_menu:
|
||||
type: "yasb.power_menu.PowerMenuWidget"
|
||||
options:
|
||||
label: "\uf011"
|
||||
uptime: True
|
||||
blur: False
|
||||
blur_background: True
|
||||
animation_duration: 100
|
||||
button_row: 4
|
||||
buttons:
|
||||
shutdown: ["\uf011", "Shut Down"]
|
||||
restart: ["\uead2", "Restart"]
|
||||
signout: ["\udb80\udf43", "Sign out"]
|
||||
sleep: ["\u23fe", "Sleep"]
|
||||
cancel: ["", "Cancel"]
|
||||
label_shadow:
|
||||
enabled: true
|
||||
color: "black"
|
||||
radius: 6
|
||||
offset: [ 1, 1 ]
|
||||
1
yasb/notes.json
Normal file
1
yasb/notes.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
601
yasb/styles.css
Normal file
601
yasb/styles.css
Normal file
|
|
@ -0,0 +1,601 @@
|
|||
/*
|
||||
Base Configuration, modified from i3-style with a new look. I missed transparency :)
|
||||
For more information about configuration options, please visit the Wiki https://github.com/amnweb/yasb/wiki
|
||||
*/
|
||||
:root {
|
||||
--red: #ff4d4d;
|
||||
--maroon: #eba0ac;
|
||||
--peach: #fab387;
|
||||
--yellow: #f9e2af;
|
||||
--green: #a6e3a1;
|
||||
--teal: #94e2d5;
|
||||
--sky: #89dceb;
|
||||
--sapphire: #74c7ec;
|
||||
--blue: #89b4fa;
|
||||
--text: #c3c3c3;
|
||||
}
|
||||
/* Global styles for ToolTip */
|
||||
QToolTip {
|
||||
padding: 6px;
|
||||
color: #ffffff;
|
||||
font-size: 12px;
|
||||
background-color: #3939397d;
|
||||
border: 0px solid #9f9f9f;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
/* COMMON YASB ELEMENTS */
|
||||
* {
|
||||
font-size: 14px;
|
||||
color: var(--text);
|
||||
font-weight: 600;
|
||||
font-family: "JetBrainsMono NFP";
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.yasb-bar {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 0.45);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.widget {
|
||||
padding: 0 3px;
|
||||
margin: 0;
|
||||
}
|
||||
.icon {
|
||||
font-size: 15px;
|
||||
}
|
||||
.widget .label {
|
||||
padding: 0px 2px;
|
||||
}
|
||||
|
||||
/* WIDGETS */
|
||||
/* Power Menu */
|
||||
.power-menu-widget .label {
|
||||
color: #ff1100;
|
||||
font-size: 15px;
|
||||
padding: 0px 10px 0px 3px;
|
||||
}
|
||||
.power-menu-popup {
|
||||
background-color: transparent;
|
||||
}
|
||||
.power-menu-popup .button {
|
||||
padding: 0;
|
||||
width: 180px;
|
||||
height: 230px;
|
||||
border-radius: 8px;
|
||||
background-color:rgba(61, 61, 61, 0.4);
|
||||
color: black;
|
||||
border-left: 2px solid rgb(61, 61, 61);
|
||||
border-right:2px solid rgb(61, 61, 61);
|
||||
border-top: 2px solid rgb(61, 61, 61);
|
||||
border-bottom: 2px solid rgb(61, 61, 61);
|
||||
margin: 0px;
|
||||
}
|
||||
.power-menu-popup .button.hover {
|
||||
background-color: rgba(97, 97, 97, 0.5);
|
||||
color: black;
|
||||
border-left: 2px solid rgba(130, 130, 130, 0.65);
|
||||
border-right: 2px solid rgba(130, 130, 130, 0.65);
|
||||
border-top: 2px solid rgba(130, 130, 130, 0.65);
|
||||
border-bottom: 2px solid rgba(130, 130, 130, 0.65);
|
||||
}
|
||||
.power-menu-popup .button .label {
|
||||
margin-bottom: 8px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color:rgba(197, 197, 197, 0.85);
|
||||
}
|
||||
.power-menu-popup .button .icon {
|
||||
font-size: 64px;
|
||||
padding-top: 32px;
|
||||
color:rgba(116, 116, 116, 0.85);
|
||||
}
|
||||
.power-menu-popup .button.cancel .icon {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.power-menu-popup .button.cancel .label {
|
||||
color: var(--red);
|
||||
margin: 0;
|
||||
}
|
||||
.power-menu-popup .button.cancel {
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.uptime {
|
||||
font-size: 26px;
|
||||
margin-bottom: 10px;
|
||||
color: white;
|
||||
font-weight: 600;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
/* GlazeWM */
|
||||
.glazewm-workspaces {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.glazewm-workspaces .ws-btn {
|
||||
font-size: 15px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
padding: 4px 8px; /* Increased padding */
|
||||
margin: 0; /* Remove margin between buttons */
|
||||
color: black;
|
||||
}
|
||||
.glazewm-workspaces .ws-btn.active_populated,
|
||||
.glazewm-workspaces .ws-btn.active_empty,
|
||||
.glazewm-workspaces .ws-btn:hover {
|
||||
background-color: #ffffff;
|
||||
border-radius: 0px; /* Optional: Add slight rounding */
|
||||
}
|
||||
/* Keep existing populated/empty state colors */
|
||||
.glazewm-workspaces .ws-btn.populated {
|
||||
color: #ffffff;
|
||||
}
|
||||
.glazewm-workspaces .ws-btn.empty {
|
||||
color: #7D8B9D;
|
||||
}
|
||||
.glazewm-workspaces .ws-btn:hover,
|
||||
.glazewm-workspaces .ws-btn.populated:hover,
|
||||
.glazewm-workspaces .ws-btn.empty:hover {
|
||||
background: grey;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Komorebi */
|
||||
/* Control Part */
|
||||
.komorebi-control-widget .label {
|
||||
font-size: 14px;
|
||||
color: #cdd6f4;
|
||||
font-weight: 600;
|
||||
}
|
||||
.komorebi-control-menu {
|
||||
background-color: rgba(17, 17, 27, 0.2);
|
||||
}
|
||||
.komorebi-control-menu .button {
|
||||
color: rgba(102, 102, 102, 0.4);
|
||||
padding: 8px 16px;
|
||||
font-size: 32px;
|
||||
border-radius: 8px;
|
||||
background-color: rgba(255, 255, 255, 0.04);
|
||||
}
|
||||
.komorebi-control-menu .button:hover {
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
background-color: rgba(100, 100, 100, 0.04);
|
||||
}
|
||||
.komorebi-control-menu .button.active:hover {
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
background-color: rgba(100, 100, 100, 0.04);
|
||||
}
|
||||
.komorebi-control-menu .button.active {
|
||||
color: rgb(228, 228, 228);
|
||||
background-color: rgba(255, 255, 255, 0.04);
|
||||
}
|
||||
.komorebi-control-menu .button:disabled,
|
||||
.komorebi-control-menu .button.active:disabled {
|
||||
background-color: rgba(255, 255, 255, 0.01);
|
||||
color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
.komorebi-control-menu .footer .text {
|
||||
font-size: 12px;
|
||||
color: #6c7086;
|
||||
}
|
||||
|
||||
.volume-widget .icon {
|
||||
color: var(--blue);
|
||||
margin: 1px 2px 0 0;
|
||||
}
|
||||
|
||||
/* Workspace Part */
|
||||
.komorebi-workspaces .widget-container{
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
border-radius: 0px;
|
||||
margin: 0px 4px;
|
||||
}
|
||||
.komorebi-workspaces{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.komorebi-workspaces .offline-status{
|
||||
font-size: 14px;
|
||||
padding: 0 2px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.komorebi-workspaces .ws-btn{
|
||||
color: rgba(128, 128, 128, 0.5);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
padding: 0 4px 0 4px;
|
||||
border-radius: 5px;
|
||||
margin: 0 2px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.komorebi-workspaces .ws-btn:hover{
|
||||
color: var(--text);
|
||||
}
|
||||
.komorebi-workspaces .ws-btn.populated{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 5px;
|
||||
margin: 0 2px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.komorebi-workspaces .ws-btn.active{
|
||||
color: white;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.weather-widget,
|
||||
.volume-widget {
|
||||
padding: 0 4px;
|
||||
}
|
||||
.weather-widget .icon {
|
||||
font-size: 18px;
|
||||
margin: 0 2px 1px 0;
|
||||
color: var(--yellow);
|
||||
}
|
||||
|
||||
/* Media */
|
||||
.media-widget {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.media-widget .label {
|
||||
color: #d4eced;
|
||||
background-color: rgba(0, 0, 0, 0.236);
|
||||
padding: 0px;
|
||||
padding-right: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.media-widget .label.maintext {
|
||||
padding-top: 3px;
|
||||
}
|
||||
.media-widget .btn {
|
||||
color: #989caa;
|
||||
padding: 0 4px;
|
||||
margin: 0;
|
||||
font-family: Segoe Fluent Icons;
|
||||
font-weight: 400;
|
||||
}
|
||||
.media-widget .btn:hover {
|
||||
color: #babfd3;
|
||||
}
|
||||
.media-widget .btn.play {
|
||||
font-size: 16px;
|
||||
}
|
||||
.media-widget .btn.disabled:hover,
|
||||
.media-widget .btn.disabled {
|
||||
color: #939496;
|
||||
font-size: 12px;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* System Tray */
|
||||
.systray {
|
||||
background: transparent;
|
||||
border: None;
|
||||
margin: 0;
|
||||
}
|
||||
.systray .unpinned-container {
|
||||
background: transparent;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.systray .pinned-container {
|
||||
background: transparent;
|
||||
}
|
||||
.systray .pinned-container[forceshow=true] {
|
||||
background: red;
|
||||
}
|
||||
.systray .button {
|
||||
border-radius: 10px;
|
||||
padding: 3px 3px;
|
||||
}
|
||||
.systray .button:hover {
|
||||
background: #727272;
|
||||
}
|
||||
.systray .button[dragging=true] {
|
||||
background: orange;
|
||||
border-color: #FF8800;
|
||||
}
|
||||
.systray .unpinned-visibility-btn {
|
||||
border-radius: 4px;
|
||||
height: 20px;
|
||||
width: 16px;
|
||||
}
|
||||
.systray .unpinned-visibility-btn:checked {
|
||||
background: transparent;
|
||||
}
|
||||
.systray .unpinned-visibility-btn:hover {
|
||||
border: 1px solid #AAAAAA;
|
||||
border-radius: 4px;
|
||||
border-color: #AAAAAA;
|
||||
}
|
||||
|
||||
/* Wi-Fi */
|
||||
.wifi-widget .widget-container .icon {
|
||||
color:lightgray;
|
||||
background: transparent;
|
||||
padding: 3px 0px;
|
||||
}
|
||||
|
||||
/* Battery */
|
||||
.battery-widget .widget-container .icon {
|
||||
padding: 0px 3px;
|
||||
}
|
||||
.battery-widget .widget-container .icon.status-low {
|
||||
color: red;
|
||||
background: transparent;
|
||||
}
|
||||
.battery-widget .widget-container .icon.status-medium {
|
||||
color: yellow;
|
||||
background: transparent;
|
||||
}
|
||||
.battery-widget .widget-container .icon.status-charging {
|
||||
color: rgb(128, 0, 255);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* Wallpaper */
|
||||
.wallpapers-widget {
|
||||
padding: 0 6px 0 6px;
|
||||
color: rgb(128, 0, 255);
|
||||
}
|
||||
.wallpapers-gallery-window {
|
||||
background-color: rgba(85, 42, 240, 0.01);
|
||||
border: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.wallpapers-gallery-buttons {
|
||||
background-color:rgba(255, 255, 255, 0);
|
||||
color: rgb(255, 255, 255);
|
||||
border: none;
|
||||
font-size: 14px;
|
||||
padding: 8px 0;
|
||||
border-radius: 8px;
|
||||
margin:0 8px 8px 8px;
|
||||
width: 600px;
|
||||
}
|
||||
.wallpapers-gallery-buttons:hover {
|
||||
background-color:rgba(255, 255, 255, 0.1)
|
||||
}
|
||||
.wallpapers-gallery-image {
|
||||
border: 4px solid transparent;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.wallpapers-gallery-image:hover {
|
||||
border: 4px solid rgb(80, 80, 80);
|
||||
}
|
||||
.wallpapers-gallery-image.focused {
|
||||
border: 4px solid #ffffff;
|
||||
}
|
||||
|
||||
/* Clock & Calendar */
|
||||
.clock-widget .label {
|
||||
font-size: 16px;
|
||||
font-weight: 900;
|
||||
background-color: rgba(197, 197, 197, 0.5);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color:rgba(22, 22, 22, 0.6);
|
||||
}
|
||||
.clock-widget .icon {
|
||||
font-size: 25px;
|
||||
margin: 0 -1px;
|
||||
padding: 0;
|
||||
font-weight: 600;
|
||||
color:rgba(197, 197, 197, 0.5);
|
||||
}
|
||||
.clock-widget {
|
||||
border-top-left-radius: 24px;
|
||||
border-bottom-right-radius: 24px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
.clock-widget .widget-container .label {
|
||||
padding: 0px 0px 2px;
|
||||
}
|
||||
.calendar {
|
||||
background-color: rgba(21, 21, 21, 0.4);
|
||||
}
|
||||
.calendar .calendar-table,
|
||||
.calendar .calendar-table::item {
|
||||
background-color: rgba(33, 33, 33, 0.736);
|
||||
color: rgba(197, 197, 197, 0.85);
|
||||
font-family: 'Segoe UI';
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
.calendar .calendar-table::item:selected {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
.calendar .day-label {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.calendar .day-label,
|
||||
.calendar .month-label,
|
||||
.calendar .date-label {
|
||||
font-family: 'Segoe UI';
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
min-width: 180px;
|
||||
max-width: 180px;
|
||||
}
|
||||
.calendar .month-label {
|
||||
font-weight: normal;
|
||||
}
|
||||
.calendar .date-label {
|
||||
font-size: 88px;
|
||||
font-weight: 900;
|
||||
color: rgb(255, 255, 255);
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
/* Memory */
|
||||
.memory-widget .icon {
|
||||
color:rgb(163, 255, 76);
|
||||
padding: 0px 3px;
|
||||
}
|
||||
|
||||
/* CPU */
|
||||
.cpu-widget .widget-container .icon {
|
||||
color:rgb(240, 224, 99);
|
||||
padding: 0px 3px;
|
||||
}
|
||||
|
||||
/* Notifications */
|
||||
.notification-widget {
|
||||
padding: 0 3px 0 3px;
|
||||
}
|
||||
.notification-widget .widget-container {
|
||||
background: transparent;
|
||||
margin: 3px 0 3px 0;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.notification-widget .icon {
|
||||
font-size: 14px;
|
||||
}
|
||||
.notification-widget .icon.new-notification {
|
||||
color: #9089fa;
|
||||
}
|
||||
.notification-widget .label.new-notification {
|
||||
color: #9089fa;
|
||||
}
|
||||
|
||||
/* Disk */
|
||||
.disk-widget {
|
||||
padding: 0 6px 0 6px;
|
||||
}
|
||||
.disk-group {
|
||||
background-color:rgba(17, 17, 27, 0.15);
|
||||
border: 1px solid rgb(94, 94, 94);
|
||||
}
|
||||
|
||||
/* Home */
|
||||
.home-widget {
|
||||
padding: 0 6px 0 12px;
|
||||
}
|
||||
.home-widget .icon {
|
||||
color: #b4befe;
|
||||
font-size: 18px;
|
||||
}
|
||||
.home-widget .icon:hover {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
.home-menu {
|
||||
background-color:rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.home-menu .menu-item {
|
||||
padding: 6px 48px 7px 16px;
|
||||
font-size: 12px;
|
||||
font-family: 'Segoe UI';
|
||||
color: rgb(208, 208, 208);
|
||||
font-weight: 600;
|
||||
}
|
||||
.home-menu .menu-item:hover {
|
||||
background-color:rgba(0, 0, 0, 0.15);
|
||||
color: #fff;
|
||||
}
|
||||
.home-menu .separator {
|
||||
max-height: 1px;
|
||||
background-color:rgba(192, 192, 192, 0.3);
|
||||
}
|
||||
|
||||
/* Notes */
|
||||
.notes-widget {
|
||||
padding: 0 6px 0 8px;
|
||||
}
|
||||
.notes-widget .label {
|
||||
font-size: 14px;
|
||||
color: #dbfeb4;;
|
||||
}
|
||||
.notes-widget .icon {
|
||||
font-size: 16px;
|
||||
color: #dbfeb4;
|
||||
}
|
||||
.notes-menu {
|
||||
min-width: 400px;
|
||||
max-width: 400px;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.notes-menu .note-item {
|
||||
background-color:transparent;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.notes-menu .note-item:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.notes-menu .note-item .icon {
|
||||
font-size: 16px;
|
||||
padding: 0 4px;
|
||||
}
|
||||
.notes-menu .delete-button {
|
||||
color: #ff6b6b;
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-size: 8px;
|
||||
padding: 7px 8px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.notes-menu .delete-button:hover {
|
||||
background-color: rgba(128, 128, 128, 0.5);
|
||||
}
|
||||
.notes-menu .note-item .title {
|
||||
font-size: 13px;
|
||||
font-family: 'Segoe UI';
|
||||
}
|
||||
.notes-menu .note-item .date {
|
||||
font-size: 12px;
|
||||
font-family: 'Segoe UI';
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
.notes-menu .empty-list {
|
||||
font-family: 'Segoe UI';
|
||||
color: rgba(255, 255, 255, 0.2);
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
padding: 10px 0 20px 0;
|
||||
}
|
||||
.notes-menu .add-button,
|
||||
.notes-menu .cancel-button {
|
||||
padding: 8px;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
color: white;
|
||||
font-family: 'Segoe UI';
|
||||
}
|
||||
.notes-menu .cancel-button {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.notes-menu .add-button:hover,
|
||||
.notes-menu .cancel-button:hover {
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
.notes-menu .scroll-area {
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius:0;
|
||||
}
|
||||
.notes-menu .note-input {
|
||||
background-color:rgba(17, 17, 27, 0.2);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
font-family: 'Segoe UI';
|
||||
font-size: 14px;
|
||||
max-height: 30px;
|
||||
padding: 4px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.note-input:focus {
|
||||
border: 1px solid #717171;
|
||||
}
|
||||
137
yasb/yasb.log
Normal file
137
yasb/yasb.log
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
2025-05-31 01:03:30,731 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:03:30,732 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:03:30,732 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:03:30,777 [INFO] [MainThread] [root/config.py:61]: Created default config file at C:\Users\rhys1\.config\yasb\config.yaml
|
||||
2025-05-31 01:03:30,810 [INFO] [MainThread] [root/config.py:75]: Created default stylesheet at C:\Users\rhys1\.config\yasb\styles.css
|
||||
2025-05-31 01:04:14,319 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:04:16,223 [ERROR] [MainThread] [root/weather.py:168]: API key or location is missing. Please provide a valid API key and location.
|
||||
2025-05-31 01:04:16,260 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:04:17,746 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:04:17,762 [INFO] [Dummy-5] [root/event_listener.py:53]: Created named pipe yasb-5bacd2ed-3d67-11f0-bf05-f87fc25336c0
|
||||
2025-05-31 01:04:17,793 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:04:17,795 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:14:45,000 [INFO] [MainThread] [root/controller.py:12]: Reloading Application from tray...
|
||||
2025-05-31 01:14:45,101 [INFO] [MainThread] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:14:45,101 [DEBUG] [MainThread] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:14:45,124 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:14:45,147 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:14:45,149 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:14:45,640 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:14:45,640 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:14:45,640 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:14:45,857 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:14:46,054 [ERROR] [MainThread] [root/weather.py:168]: API key or location is missing. Please provide a valid API key and location.
|
||||
2025-05-31 01:14:46,081 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:14:46,710 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:14:46,740 [INFO] [Dummy-5] [root/event_listener.py:53]: Created named pipe yasb-d2911cfb-3d68-11f0-a167-f87fc25336c0
|
||||
2025-05-31 01:14:46,764 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:14:46,767 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:20:33,539 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:249]: CLI server received command: stop
|
||||
2025-05-31 01:20:33,539 [INFO] [Thread-1 (_run_server)] [root/controller.py:27]: Exiting Application from CLI...
|
||||
2025-05-31 01:20:33,653 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:20:33,653 [DEBUG] [Thread-1 (_run_server)] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:20:33,653 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:20:33,669 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:20:33,670 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:20:34,567 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:20:34,568 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:20:34,568 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:20:35,555 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:20:35,638 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:20:36,466 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:20:36,516 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:20:36,517 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:20:36,858 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:20:36.858324
|
||||
2025-05-31 01:20:42,219 [DEBUG] [MainThread] [root/blurWindow.py:116]: Failed to apply settings: invalid literal for int() with base 16: ''
|
||||
2025-05-31 01:22:06,617 [INFO] [MainThread] [root/controller.py:12]: Reloading Application from tray...
|
||||
2025-05-31 01:22:06,720 [INFO] [MainThread] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:22:06,720 [DEBUG] [MainThread] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:22:06,731 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:22:06,736 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:22:06,737 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:22:07,318 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:22:07,318 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:22:07,318 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:22:08,185 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:22:08,268 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:22:09,251 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:22:09,334 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:22:09,336 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:22:09,688 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:22:09.688615
|
||||
2025-05-31 01:23:30,946 [INFO] [MainThread] [root/controller.py:12]: Reloading Application from tray...
|
||||
2025-05-31 01:23:31,048 [INFO] [MainThread] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:23:31,048 [DEBUG] [MainThread] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:23:31,081 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:23:31,094 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:23:31,095 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:23:31,141 [ERROR] [Dummy-9] [root/event_service.py:30]: Failed to emit signal <bound PYQT_SIGNAL window_name_change of ActiveWindowWidget object at 0x000001CB0761BF70>. Removing link to WinEvent.EventObjectNameChange.
|
||||
2025-05-31 01:23:31,501 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:23:31,502 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:23:31,502 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:23:32,392 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:23:32,483 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:23:33,318 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:23:33,515 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:23:33,521 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:23:34,317 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:23:34.317593
|
||||
2025-05-31 01:23:56,284 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:249]: CLI server received command: stop
|
||||
2025-05-31 01:23:56,284 [INFO] [Thread-1 (_run_server)] [root/controller.py:27]: Exiting Application from CLI...
|
||||
2025-05-31 01:23:56,390 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:23:56,390 [DEBUG] [Thread-1 (_run_server)] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:23:56,390 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:23:56,404 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:23:56,405 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:23:57,636 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:23:57,636 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:23:57,636 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:23:58,521 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:23:58,610 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:23:59,004 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:23:59,029 [INFO] [Dummy-5] [root/event_listener.py:53]: Created named pipe yasb-1bc27ee0-3d6a-11f0-99b8-f87fc25336c0
|
||||
2025-05-31 01:23:59,074 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:23:59,077 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:23:59,636 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:23:59.636701
|
||||
2025-05-31 01:24:16,992 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:249]: CLI server received command: stop
|
||||
2025-05-31 01:24:16,992 [INFO] [Thread-1 (_run_server)] [root/controller.py:27]: Exiting Application from CLI...
|
||||
2025-05-31 01:24:17,093 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:24:17,093 [DEBUG] [Thread-1 (_run_server)] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:24:17,093 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:24:17,109 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:24:17,110 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:24:17,120 [ERROR] [Dummy-16] [root/event_service.py:30]: Failed to emit signal <bound PYQT_SIGNAL update_event of TaskbarWidget object at 0x000001D97C5F1DB0>. Removing link to WinEvent.EventObjectDestroy.
|
||||
2025-05-31 01:24:18,662 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:24:18,663 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:24:18,663 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:24:18,866 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:24:19,270 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:24:19,865 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:24:19,894 [INFO] [Dummy-5] [root/event_listener.py:53]: Created named pipe yasb-283191e2-3d6a-11f0-b992-f87fc25336c0
|
||||
2025-05-31 01:24:19,948 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:24:19,949 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:24:20,864 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:24:20.864101
|
||||
2025-05-31 01:34:19,710 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:34:19.710442
|
||||
2025-05-31 01:35:43,548 [INFO] [MainThread] [root/controller.py:12]: Reloading Application from tray...
|
||||
2025-05-31 01:35:43,658 [INFO] [MainThread] [cli_server/cli_server.py:112]: Log pipe server stopped
|
||||
2025-05-31 01:35:43,658 [DEBUG] [MainThread] [cli_server/cli_server.py:206]: CLI server stopped
|
||||
2025-05-31 01:35:43,671 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 01:35:43,674 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 01:35:43,675 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
2025-05-31 01:35:43,984 [INFO] [MainThread] [root/log.py:59]: Yasb v1.7.4
|
||||
2025-05-31 01:35:43,984 [INFO] [Thread-1 (_run_server)] [cli_server/cli_server.py:212]: CLI server started v1.1.1
|
||||
2025-05-31 01:35:43,986 [INFO] [MainThread] [cli_server/cli_server.py:104]: Log pipe server started
|
||||
2025-05-31 01:35:44,190 [DEBUG] [MainThread] [tzlocal/win32.py:55]: Looking up time zone info from registry
|
||||
2025-05-31 01:35:44,669 [DEBUG] [MainThread] [comtypes/__init__.py:149]: CoInitializeEx(None, 2)
|
||||
2025-05-31 01:35:45,326 [INFO] [Dummy-3] [root/event_listener.py:53]: Created named pipe yasb-c0c277ff-3d6b-11f0-a929-f87fc25336c0
|
||||
2025-05-31 01:35:45,327 [INFO] [MainThread] [root/watcher.py:55]: Created file watcher for path C:\Users\rhys1\.config\yasb
|
||||
2025-05-31 01:35:45,392 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:213]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
|
||||
2025-05-31 01:35:45,394 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:192]: Thread started
|
||||
2025-05-31 01:35:45,627 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:35:45.627876
|
||||
2025-05-31 01:45:45,127 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:45:45.125769
|
||||
2025-05-31 01:55:45,126 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 01:55:45.125409
|
||||
2025-05-31 02:05:45,121 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 02:05:45.120696
|
||||
2025-05-31 02:15:45,139 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 02:15:45.139117
|
||||
2025-05-31 02:25:45,134 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 02:25:45.134568
|
||||
2025-05-31 02:35:45,140 [INFO] [MainThread] [root/weather.py:67]: Fetching new weather data at 2025-05-31 02:35:45.140032
|
||||
2025-05-31 02:40:09,235 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:218]: Stopping worker thread...
|
||||
2025-05-31 02:40:09,248 [DEBUG] [Dummy-8] [qasync._windows._EventWorker/_windows.py:201]: Exiting thread
|
||||
2025-05-31 02:40:09,251 [DEBUG] [MainThread] [qasync._windows._IocpProactor/_windows.py:75]: Closing
|
||||
Loading…
Add table
Add a link
Reference in a new issue