aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriceyrazor <iceyrazor@mailfence.com>2025-05-20 20:03:39 -0500
committericeyrazor <iceyrazor@mailfence.com>2025-05-20 20:03:39 -0500
commitf2312373509ab9d34c4b38b7c315bdb5ee6f9c11 (patch)
tree7fe6b3955ccc40314a2f8c079845a64013d325eb
parentbab502e1ef21d327e806e8f48870dc1b53f2b345 (diff)
added hyprland config
-rwxr-xr-x.config/.profile8
-rw-r--r--.config/cava/config283
-rw-r--r--.config/cava/shaders/bar_spectrum.frag79
-rw-r--r--.config/cava/shaders/northern_lights.frag34
-rw-r--r--.config/cava/shaders/pass_through.vert14
-rw-r--r--.config/cava/shaders/spectrogram.frag53
-rw-r--r--.config/cava/shaders/winamp_line_style_spectrum.frag112
-rwxr-xr-x.config/hypr/cycle-layout.sh5
-rw-r--r--.config/hypr/hyprland.conf414
-rw-r--r--.config/hypr/hyprpaper.conf13
-rwxr-xr-x.config/nvim/after/plugin/lsp.lua8
-rw-r--r--.config/waybar/config.jsonc180
-rw-r--r--.config/waybar/style.css163
-rwxr-xr-x.config/wezterm/wezterm.lua220
-rw-r--r--README.md18
-rwxr-xr-xstuff/scripts/system/backup/backup.sh2
-rwxr-xr-xstuff/scripts/system/backup/copy-to-git.sh2
-rwxr-xr-xstuff/scripts/system/url-handler.sh8
18 files changed, 1587 insertions, 29 deletions
diff --git a/.config/.profile b/.config/.profile
index bc14309..ea1d3f5 100755
--- a/.config/.profile
+++ b/.config/.profile
@@ -25,7 +25,9 @@ fi
# . torsocks on
export PROMPT_EOL_MARK=""
export EDITOR="nvim"
-export BROWSER="/home/iceyrazor/.local/bin/zen-x86_64.AppImage"
+# idk which one works
+# export BROWSER="/home/iceyrazor/.local/bin/zen-x86_64.AppImage"
+export BROWSER="zen.desktop"
export PREFIX=/usr
export PATH="$PATH:$HOME/.cargo/bin:$HOME/stuff/scripts/system:$HOME/stuff/scripts/system/backup:$HOME/stuff/scripts/system/wlx:$HOME/stuff/scripts/system/youtube-playlist-cli:$HOME/.local/bin/blender-4.1.1-linux-x64:$HOME/stuff/manual-programs/app-images"
export MANPAGER='nvim +Man!'
@@ -82,7 +84,9 @@ alias pipes="pipes.sh -t 0 -p 3 -f 30 -r 2000"
alias bri="fukn ~/stuff/scripts/system/bri.sh"
# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png"
-alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png"
+# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png"
+alias drkwll="[ -z $WAYLAND_DISPLAY ] && nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png || hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png'"
+alias reswll="hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg'"
# mounting
alias umsu="fukn umount u"
diff --git a/.config/cava/config b/.config/cava/config
new file mode 100644
index 0000000..af2eb68
--- /dev/null
+++ b/.config/cava/config
@@ -0,0 +1,283 @@
+## 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 = 512
+bar_width = 1
+; bar_spacing = 0
+# 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 = magenta
+; 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 = 20
+
+
+[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..b078913
--- /dev/null
+++ b/.config/cava/shaders/bar_spectrum.frag
@@ -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);
+ }
+} \ No newline at end of file
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..ccb79ae
--- /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 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);
+ }
+} \ No newline at end of file
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..375ff27
--- /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 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);
+ }
+} \ No newline at end of file
diff --git a/.config/hypr/cycle-layout.sh b/.config/hypr/cycle-layout.sh
new file mode 100755
index 0000000..8b7314f
--- /dev/null
+++ b/.config/hypr/cycle-layout.sh
@@ -0,0 +1,5 @@
+if [ -z $(hyprctl getoption general:layout | grep master ) ]; then
+ hyprctl keyword general:layout master
+else
+ hyprctl keyword general:layout dwindle
+fi
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..7742429
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,414 @@
+
+# #######################################################################################
+# AUTOGENERATED HYPRLAND CONFIG.
+# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
+# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
+# #######################################################################################
+
+# autogenerated = 1 # remove this line to remove the warning
+
+env = QT_QPA_PLATFORM,wayland
+env = LIBVA_DRIVER_NAME,nvidia
+env = GBM_BACKEND,nvidia-drm
+# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+env = GDK_BACKEND,wayland,x11,*
+env = HYPRLAND_PER_MONITOR_WORKSPACES,1
+
+
+windowrule = float,title:^(flameshot)
+windowrule = move 0 0,title:^(flameshot)
+windowrule = suppressevent fullscreen,title:^(flameshot)
+
+exec-once = pipewire
+exec-once = wireplumber
+exec-once = pipewire-pulse
+exec-once = waybar
+exec-once = /usr/lib/xdg-desktop-portal &
+exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once = ibus-daemon -rxRd
+exec-once = hyprpaper
+
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hyprland.org/Configuring/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=HDMI-A-1,prefered,0x0,0.8
+monitor=DP-1,1024x768,auto,0.8
+
+
+workspace=HDMI-A-1,1
+workspace=DP-1,1
+
+workspace = 1,monitor:HDMI-A-1,default:true
+workspace = 2,monitor:HDMI-A-1
+workspace = 3,monitor:HDMI-A-1
+workspace = 4,monitor:HDMI-A-1
+workspace = 5,monitor:HDMI-A-1
+workspace = 6,monitor:HDMI-A-1
+workspace = 7,monitor:HDMI-A-1
+workspace = 8,monitor:HDMI-A-1
+workspace = 9,monitor:HDMI-A-1
+workspace = 10,monitor:HDMI-A-1
+
+workspace = 11,monitor:DP-1,default:true
+workspace = 12,monitor:DP-1
+workspace = 13,monitor:DP-1
+workspace = 14,monitor:DP-1
+workspace = 15,monitor:DP-1
+workspace = 16,monitor:DP-1
+workspace = 17,monitor:DP-1
+workspace = 18,monitor:DP-1
+workspace = 19,monitor:DP-1
+workspace = 20,monitor:DP-1
+
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = wezterm
+$fileManager = pcmanfm
+$menu = rofi -show drun
+
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+# exec-once = $terminal
+# exec-once = nm-applet &
+# exec-once = waybar & hyprpaper & firefox
+
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+###################
+### PERMISSIONS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Permissions/
+# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
+# for security reasons
+
+# ecosystem {
+# enforce_permissions = 1
+# }
+
+# permission = /usr/(bin|local/bin)/grim, screencopy, allow
+# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
+# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general {
+ gaps_in = 5
+ gaps_out = 5
+
+ border_size = 1
+
+ # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+ # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.active_border = rgba(8568e6ee) rgba(cf68e6ee) 45deg
+ col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
+ #33ccff
+ #00ff99
+ #8568e6
+ col.inactive_border = rgba(595959aa)
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+ rounding = 0
+ rounding_power = 2
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ # https://wiki.hyprland.org/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+ enabled = yes, please :)
+
+ # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ bezier = easeOutQuint,0.23,1,0.32,1
+ bezier = easeInOutCubic,0.65,0.05,0.36,1
+ bezier = linear,0,0,1,1
+ bezier = almostLinear,0.5,0.5,0.75,1.0
+ bezier = quick,0.15,0,0.1,1
+
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+}
+
+# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+# workspace = w[tv1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
+# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
+# windowrule = bordersize 0, floating:0, onworkspace:f[1]
+# windowrule = rounding 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+dwindle {
+ pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # You probably want this
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+ focus_on_activate = true
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ special_fallthrough = true
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = false
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+device {
+ name = epic-mouse-v1
+ sensitivity = -0.5
+}
+
+
+###################
+### KEYBINDINGS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, return, exec, $terminal
+bind = $mainMod, Q, killactive,
+bind = $mainMod SHIFT, Q, exit,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, space, togglefloating,
+bind = $mainMod, D, exec, $menu
+bind = $mainMod SHIFT, D, exec, echo \"\" | rofi -x11 -dmenu -p 'Search' | xargs -I{} xdg-open 'https://searx.iceyfox.xyz/search?q={}'
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, i, togglesplit, # dwindle
+bind = $mainMod, f, fullscreen, 0
+bind = $mainMod SHIFT, m, fullscreen, 1
+
+# layout stuffs
+bind = $mainMod SHIFT, space, exec, /home/iceyrazor/.config/hypr/cycle-layout.sh
+bind = $mainMod SHIFT, i, layoutmsg, cyclenext
+bind = $mainMod, z, layoutmsg, swapwithmaster master
+# behaves like xmonads promote feature (https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-Promote.html)
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, h, alterzorder, top
+bind = $mainMod, l, alterzorder, top
+bind = $mainMod, k, alterzorder, top
+bind = $mainMod, j, alterzorder, top
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, l, movefocus, r
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, j, movefocus, d
+# bind = $mainMod, h, bringactivetop,
+
+bind = $mainMod SHIFT, h, movewindow, l
+bind = $mainMod SHIFT, l, movewindow, r
+bind = $mainMod SHIFT, k, movewindow, u
+bind = $mainMod SHIFT, j, movewindow, d
+bind = $mainMod, t, pin
+
+bind = $mainMod CTRL, j, focusmonitor, +1
+bind = $mainMod, o, movewindow, mon:+1
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, workspace, r~1
+bind = $mainMod, 2, workspace, r~2
+bind = $mainMod, 3, workspace, r~3
+bind = $mainMod, 4, workspace, r~4
+bind = $mainMod, 5, workspace, r~5
+bind = $mainMod, 6, workspace, r~6
+bind = $mainMod, 7, workspace, r~7
+bind = $mainMod, 8, workspace, r~8
+bind = $mainMod, 9, workspace, r~9
+bind = $mainMod, 0, workspace, r~10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, r~1
+bind = $mainMod SHIFT, 2, movetoworkspace, r~2
+bind = $mainMod SHIFT, 3, movetoworkspace, r~3
+bind = $mainMod SHIFT, 4, movetoworkspace, r~4
+bind = $mainMod SHIFT, 5, movetoworkspace, r~5
+bind = $mainMod SHIFT, 6, movetoworkspace, r~6
+bind = $mainMod SHIFT, 7, movetoworkspace, r~7
+bind = $mainMod SHIFT, 8, movetoworkspace, r~8
+bind = $mainMod SHIFT, 9, movetoworkspace, r~9
+bind = $mainMod SHIFT, 0, movetoworkspace, r~10
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
+# pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
+
+# Requires playerctl
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+xwayland {
+ force_zero_scaling = true
+}
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule
+# windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
+
+windowrule = float, title:Gajim
+windowrule = monitor DP-1, title:Gajim
+windowrule = move 100%-w-5 100%-w-40, title:Gajim
+windowrule = size 60% 60%, title:Gajim
+windowrule = workspace 11, title:Gajim
+
+windowrule = float, class:vesktop
+windowrule = monitor DP-1, class:vesktop
+windowrule = move 0% 0%, class:vesktop
+windowrule = size 60% 60%, title:vesktop
+windowrule = workspace 11, title:vesktop
+
+windowrule = workspace 9, title: Envision
+
+windowrule = workspace 8, title: VRChat
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..a7bec0c
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,13 @@
+preload = /home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg
+preload = /home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
+preload = /home/iceyrazor/stuff/media/wallpapers/dark_leaves.png
+
+#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
+wallpaper = HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg
+wallpaper = DP-1,/home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
+
+#enable splash text rendering over the wallpaper
+splash = true
+
+#fully disable ipc
+# ipc = off
diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua
index 0bc44c4..99efb6d 100755
--- a/.config/nvim/after/plugin/lsp.lua
+++ b/.config/nvim/after/plugin/lsp.lua
@@ -16,12 +16,16 @@ local cmp_select = {behavior = cmp.SelectBehavior.Select}
local cmp_mappings = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
- ['<C-y>'] = cmp.mapping.confirm({ select = true }),
+ ['<C-i>'] = cmp.mapping.confirm({ select = true }),
["<C-Space>"] = cmp.mapping.complete(),
})
cmp.setup({
- mapping = cmp_mappings
+ mapping = cmp_mappings,
+})
+
+vim.diagnostic.config({
+ virtual_text = true,
})
lsp.on_attach(function(client, bufnr)
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 0000000..b08a6c2
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,180 @@
+{
+ "layer": "top",
+ "position": "bottom",
+ "modules-left": ["hyprland/workspaces"],
+
+ //"modules-center": ["clock", ], //"custom/weather"],
+
+ "modules-right": [
+ "custom/mic",
+ "pulseaudio",
+ //"backlight",
+ "battery",
+ "network",
+ "cpu",
+ "memory",
+ //"custom/docker",
+ "custom/disc",
+ "custom/rss",
+ "clock",
+ "tray",
+ "custom/lock",
+ "custom/power"
+ ],
+
+ "hyprland/workspaces": {
+ //"format": "{name}: {icon}",
+ //"all-outputs":true,
+ "format": "{icon}",
+ "format-icons": {
+ /*
+ "1": "",
+ "2": "",
+ "3": "",
+ "4": "",
+ "5": ""
+ */
+ "1":"  ",
+ "2":"  ",
+ "3":"  ",
+ "4":"  ",
+ "5":"  ",
+ "6":"  ",
+ "7":"  ",
+ "8":"  ",
+ "9":"  ",
+ "10":"  ",
+ "11":"  ",
+ "12":"  ",
+ "13":"  ",
+ "14":"  ",
+ "15":"  ",
+ "16":"  ",
+ "17":"  ",
+ "18":"  ",
+ "19":"  ",
+ "20":"  "
+ },
+ /*
+ "persistent-workspaces": {
+ "1": [], // Always show a workspace with name '3', on all outputs if it does not exists
+ "2": [],
+ "3": [],
+ "4": [],
+ "5": [],
+ "6": [],
+ "7": [],
+ "8": [],
+ "9": [],
+ "10": []
+ },
+ */
+ "sort-by-name": true
+ },
+
+ "tray": {
+ "icon-size": 16,
+ "spacing": 10
+ },
+
+ "custom/music": {
+ "format": " {}",
+ "escape": true,
+ "interval": 5,
+ "tooltip": false,
+ "exec": "playerctl metadata --format='{{ artist }} - {{ title }}'",
+ "on-click": "playerctl play-pause",
+ "max-length": 50
+ },
+
+ "clock": {
+ "timezone": "America/Chicago",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "format": "{:%m/%d/%Y - %I:%M:%S}",
+ "interval": 1
+ },
+
+ "network": {
+ "interface": "wlan0",
+ "format-wifi": "󰤢 {bandwidthDownBits}",
+ "format-ethernet": "󰈀 {bandwidthDownBits}",
+ "format-disconnected": "󰤠 No Network",
+ "interval": 5,
+ "tooltip": true,
+ "tooltip-format-wifi": "{essid} ({signalStrength}%) ",
+ "tooltip-format-ethernet": "{ifname} ",
+ "tooltip-format-disconnected": "Disconnected"
+ },
+
+ "cpu": {
+ "interval": 1,
+ "format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
+ "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
+ },
+
+ "memory": {
+ "interval": 30,
+ "format": " {used:0.1f}G/{total:0.1f}G"
+ },
+
+ "custom/uptime": {
+ "format": "{}",
+ "interval": 1600,
+ "exec": "sh -c '(uptime -p)'"
+ },
+
+ "pulseaudio": {
+ "format": "{icon} {volume}%",
+ "format-muted": "",
+ "format-icons": {
+ "default": ["", "", " "]
+ },
+ "on-click": "pavucontrol"
+ },
+
+ "custom/power": {
+ "tooltip": false,
+ "on-click": "wlogout &",
+ "format": "⏻"
+ },
+
+ "custom/docker": {
+ "format": "{}",
+ "return-type": "json",
+ "interval": 10,
+ "exec": "$(pwd)/scripts/docker-stats/docker-stats",
+ "tooltip": true
+ },
+
+ "custom/weather": {
+ "format": "{}",
+ "tooltip": true,
+ "interval": 1800,
+ "exec": "$(pwd)/scripts/weather-stats/weather-stats",
+ "return-type": "json"
+ },
+
+ "custom/rss": {
+ "format": " {}",
+ "interval": 3,
+ "exec": "/usr/bin/newsboat -x print-unread|sed 's/\\s.*//; s/Error:/IA/'"
+ },
+
+ "custom/disc": {
+ "format": " {}",
+ "interval": 3,
+ "exec": "df -h -x=used /dev/mapper/artix-root | sed '1d' | awk '{print $4}'| sed 's/[^0-9]*//g'"
+ },
+
+ "custom/mic": {
+ "format": "{}",
+ "interval": 1,
+ "exec": "[ \"$(pactl get-source-mute @DEFAULT_SOURCE@)\" == \"Mute: no\" ] && echo  || echo 󰍭"
+ },
+
+ "custom/wifi": {
+ "format": "{}",
+ "interval": 1000,
+ "exec": "sed \"s/down/\\:\\(/;s/up/\\:\\)/\" /sys/class/net/$wifi_device/operstate"
+ }
+}
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..edc87e0
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,163 @@
+* {
+ font-family: JetbrainsMono Nerd Font;
+ font-size: 13px;
+ min-height: 0;
+ padding-right: 2px;
+ padding-left: 2px;
+ padding-bottom: 0px;
+}
+
+#waybar {
+ background: transparent;
+ color: #c6d0f5;
+ margin: 2px 2px;
+}
+
+#workspaces {
+ border-radius: 5px;
+ margin: 5px;
+ background: #101010;
+ margin-left: 2px;
+}
+
+#workspaces button {
+ color: #babbf1;
+ border-radius: 5px;
+ padding: 0.4rem;
+}
+
+#workspaces button.active {
+ color: #99d1db;
+ border-radius: 5px;
+}
+
+button {
+ background: transparent;
+}
+
+#workspaces button:hover {
+ background: #1e1e1e;
+ border: 0px solid transparent;
+}
+
+#custom-music,
+#tray,
+#backlight,
+#clock,
+#battery,
+#pulseaudio,
+#network,
+#cpu,
+#memory,
+#custom-lock,
+#custom-power,
+#custom-weather,
+#custom-uptime,
+#custom-rss,
+#custom-disc,
+#custom-mic,
+#custom-docker {
+ background-color: #101010;
+ padding: 0.5rem 1rem;
+ margin: 5px 0;
+}
+
+#clock {
+ color: #8caaee;
+ border-radius: 0px;
+}
+
+#custom-weather {
+ color: #8caaee;
+ margin-left: 0.5rem;
+ border-radius: 5px;
+}
+
+#battery {
+ color: #a6d189;
+}
+
+#battery.charging {
+ color: #a6d189;
+}
+
+#battery.warning:not(.charging) {
+ color: #e78284;
+}
+
+#backlight {
+ color: #e5c890;
+}
+
+#backlight,
+#battery {
+ border-radius: 0;
+}
+
+#pulseaudio {
+ color: #ea999c;
+}
+
+#custom-mic{
+ color: #ea999c;
+ border-radius: 5px 0px 0px 5px;
+}
+
+#custom-docker {
+ color: #85c1dc;
+}
+
+#custom-music {
+ color: #ca9ee6;
+ border-radius: 5px;
+}
+
+#custom-lock {
+ color: #babbf1;
+}
+
+#custom-power {
+ margin-right: 1rem;
+ border-radius: 0px 5px 5px 0px;
+ color: #e78284;
+}
+
+#custom-docker.docker {
+ color: #85c1dc;
+}
+
+#custom-docker.docker-none {
+ color: #737994;
+}
+
+#custom-docker.docker-error {
+ color: #e78284;
+}
+
+#custom-weather.clear {
+ color: #e5c890; /* Sunny yellow */
+}
+
+#custom-weather.cloud {
+ color: #99d1db; /* Light blue */
+}
+
+#custom-weather.rain {
+ color: #8caaee; /* Blue */
+}
+
+#custom-weather.snow {
+ color: #c6d0f5; /* White-ish */
+}
+
+#custom-weather.thunder {
+ color: #ca9ee6; /* Purple */
+}
+
+#custom-weather.fog {
+ color: #b0b4bc; /* Gray */
+}
+
+#custom-weather.error {
+ color: #e78284; /* Red */
+}
diff --git a/.config/wezterm/wezterm.lua b/.config/wezterm/wezterm.lua
index b75e736..603e272 100755
--- a/.config/wezterm/wezterm.lua
+++ b/.config/wezterm/wezterm.lua
@@ -1,14 +1,32 @@
local wezterm = require 'wezterm'
+
local config = {}
local act = wezterm.action
config.default_prog = { 'zsh', '-l' } --config.font = wezterm.font 'Classic Console' config.font_size = 15 config.font = wezterm.font 'Source Code Pro'
-config.show_tabs_in_tab_bar = true
-config.enable_tab_bar = true
+-- tab bar
+config.enable_tab_bar = false
+--config.hide_tab_bar_if_only_one_tab = false
+--config.tab_bar_at_bottom = true
+--config.use_fancy_tab_bar = false
+--config.show_tabs_in_tab_bar = true
+--config.show_new_tab_button_in_tab_bar = false
+--config.tab_and_split_indices_are_zero_based = true
--config.font = wezterm.font 'CozetteVector'
+
+
+-- In newer versions of wezterm, use the config_builder which will
+-- help provide clearer error messages
+--[[
+if wezterm.config_builder then
+ config = wezterm.config_builder()
+end
+--]]
+
config.font = wezterm.font_with_fallback {
- --'B612',
- 'Inconsolata',
+ 'B612 Mono',
+ --'Inconsolata',
-- 'CozetteVector', --has weird offset with japanese. きki becomes せse and vice versa
+ 'JetBrainsMono',
'JetBrainsMono Nerd Font',
'JetBrainsMono Nerd Font Mono',
'IPAGothic',
@@ -19,17 +37,6 @@ config.font_size = 13
--config.font = wezterm.font 'Caesar Dressing'
--config.font_size = 13
-config.keys = {
- { key = 'h', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' },
- { key = 'h', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Left', 1 } },
- { key = 'l', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' },
- { key = 'l', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Right', 1 } },
- { key = 'k', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' },
- { key = 'k', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Up', 1 } },
- { key = 'j', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' },
- { key = 'j', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Down', 1 } },
-}
-
--config.window_background_image = "/home/iceyrazor/stuff/media/wallpapers/hfdsjkldysa87gr9eahgf4rjek ltjkedjkaslfjd salk 9270221.jpg"
--[[
config.window_background_image_hsb = {
@@ -90,9 +97,6 @@ local SOLID_LEFT_ARROW = wezterm.nerdfonts.pl_right_hard_divider
-- The filled in variant of the > symbol
local SOLID_RIGHT_ARROW = wezterm.nerdfonts.pl_left_hard_divider
-
-config.use_fancy_tab_bar = false
-config.show_new_tab_button_in_tab_bar = false
--[[
wezterm.on(
'format-tab-title',
@@ -132,4 +136,184 @@ wezterm.on(
)
--]]
+--[[
+local keysmain = {
+ { key = 'h', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' },
+ { key = 'h', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Left', 1 } },
+ { key = 'l', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' },
+ { key = 'l', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Right', 1 } },
+ { key = 'k', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' },
+ { key = 'k', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Up', 1 } },
+ { key = 'j', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' },
+ { key = 'j', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Down', 1 } },
+}
+]]--
+
+-- WezTerm Keybindings Documentation by dragonlobster
+-- ===================================================
+-- Leader Key:
+-- The leader key is set to ALT + q, with a timeout of 2000 milliseconds (2 seconds).
+-- To execute any keybinding, press the leader key (ALT + q) first, then the corresponding key.
+
+-- Keybindings:
+-- 1. Tab Management:
+-- - LEADER + c: Create a new tab in the current pane's domain.
+-- - LEADER + x: Close the current pane (with confirmation).
+-- - LEADER + b: Switch to the previous tab.
+-- - LEADER + n: Switch to the next tab.
+-- - LEADER + <number>: Switch to a specific tab (0–9).
+
+-- 2. Pane Splitting:
+-- - LEADER + |: Split the current pane horizontally into two panes.
+-- - LEADER + -: Split the current pane vertically into two panes.
+
+-- 3. Pane Navigation:
+-- - LEADER + h: Move to the pane on the left.
+-- - LEADER + j: Move to the pane below.
+-- - LEADER + k: Move to the pane above.
+-- - LEADER + l: Move to the pane on the right.
+
+-- 4. Pane Resizing:
+-- - LEADER + LeftArrow: Increase the pane size to the left by 5 units.
+-- - LEADER + RightArrow: Increase the pane size to the right by 5 units.
+-- - LEADER + DownArrow: Increase the pane size downward by 5 units.
+-- - LEADER + UpArrow: Increase the pane size upward by 5 units.
+
+-- 5. Status Line:
+-- - The status line indicates when the leader key is active, displaying an ocean wave emoji (🌊).
+
+-- Miscellaneous Configurations:
+-- - Tabs are shown even if there's only one tab.
+-- - The tab bar is located at the bottom of the terminal window.
+-- - Tab and split indices are zero-based.
+
+-- For example, changing the color scheme:
+-- config.color_scheme = "Catppuccin Macchiato"
+-- config.window_decorations = "RESIZE"
+
+-- tmux
+config.leader = { key = "Space", mods = "SHIFT", timrout_milliseconds = 20000 }
+config.keys = {
+ {
+ mods = "LEADER",
+ key = "c",
+ action = wezterm.action.SpawnTab "CurrentPaneDomain",
+ },
+ {
+ mods = "LEADER",
+ key = "x",
+ action = wezterm.action.CloseCurrentPane { confirm = true }
+ },
+ {
+ mods = "LEADER",
+ key = "b",
+ action = wezterm.action.ActivateTabRelative(-1)
+ },
+ {
+ mods = "LEADER",
+ key = "n",
+ action = wezterm.action.ActivateTabRelative(1)
+ },
+ {
+ mods = "LEADER",
+ key = "\\",
+ action = wezterm.action.SplitHorizontal { domain = "CurrentPaneDomain" }
+ },
+ {
+ mods = "LEADER",
+ key = "-",
+ action = wezterm.action.SplitVertical { domain = "CurrentPaneDomain" }
+ },
+ {
+ mods = "LEADER",
+ key = "h",
+ action = wezterm.action.ActivatePaneDirection "Left"
+ },
+ {
+ mods = "LEADER",
+ key = "j",
+ action = wezterm.action.ActivatePaneDirection "Down"
+ },
+ {
+ mods = "LEADER",
+ key = "k",
+ action = wezterm.action.ActivatePaneDirection "Up"
+ },
+ {
+ mods = "LEADER",
+ key = "l",
+ action = wezterm.action.ActivatePaneDirection "Right"
+ },
+ {
+ mods = "LEADER",
+ key = "LeftArrow",
+ action = wezterm.action.AdjustPaneSize { "Left", 5 }
+ },
+ {
+ mods = "LEADER",
+ key = "RightArrow",
+ action = wezterm.action.AdjustPaneSize { "Right", 5 }
+ },
+ {
+ mods = "LEADER",
+ key = "DownArrow",
+ action = wezterm.action.AdjustPaneSize { "Down", 5 }
+ },
+ {
+ mods = "LEADER",
+ key = "UpArrow",
+ action = wezterm.action.AdjustPaneSize { "Up", 5 }
+ },
+}
+
+for i = 1, 9 do
+ -- leader + number to activate that tab
+ table.insert(config.keys, {
+ key = tostring(i),
+ mods = "LEADER",
+ action = wezterm.action.ActivateTab(i-1),
+ })
+end
+
+
+-- tmux status
+wezterm.on("update-right-status", function(window, _)
+ local SOLID_LEFT_ARROW = ""
+ --local ARROW_FOREGROUND = { Foreground = { Color = "#c6a0f6" } }
+ -- local ARROW_FOREGROUND = { Foreground = { Color = "#000000" } }
+ local prefix = ""
+
+ if window:leader_is_active() then
+ prefix = " " .. utf8.char(0x1f30a) -- ocean wave
+ SOLID_LEFT_ARROW = utf8.char(0xe0b2)
+ end
+
+ if window:active_tab():tab_id() ~= 0 then
+ -- ARROW_FOREGROUND = { Foreground = { Color = "#1e2030" } }
+ -- ARROW_FOREGROUND = { Foreground = { Color = "#000000" } }
+ end -- arrow color based on if tab is first pane
+
+ window:set_left_status(wezterm.format {
+ --{ Background = { Color = "#b7bdf8" } },
+ -- { Background = { Color = "#000000" } },
+ { Text = prefix },
+ ARROW_FOREGROUND,
+ { Text = SOLID_LEFT_ARROW }
+ })
+end)
+
+
+config.unix_domains = {
+ {
+ name = 'unix',
+ no_serve_automatically = false,
+ },
+}
+
+-- This causes `wezterm` to act as though it was started as
+-- `wezterm connect unix` by default, connecting to the unix
+-- domain on startup.
+-- If you prefer to connect manually, leave out this line.
+-- config.default_gui_startup_args = { 'connect', 'unix' }
+
return config
diff --git a/README.md b/README.md
index 249885f..20278b7 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ eg my dotfiles
- libxft
- libxinerama
- for awesome extra
- - rofi
+ - rofi-wayland (works on x. my rofi command on awesome is rofi -x11 so this may be required)
- for surf
- gcr
- webkit2gtk
@@ -24,6 +24,14 @@ eg my dotfiles
- cd into respective directory
- sudo make clean install
- startx #for dwm
+- hyprland
+ - wayland
+ - waybar
+ - grim # needed for flameshot to work on wayland
+ - xdg-deskop=portal
+ - xdg-deskop=portal-hyprland
+ - xdg-deskop=portal-gtk
+ - hyprpaper
- for neovim
- packer
- for urlview - urlview
@@ -33,10 +41,13 @@ eg my dotfiles
- ibus
- ibus-mozc # for japanese input
- fonts
+ - B612 mono
- ttf-inconsolata
+ - ttf-jetbrains-mono
- ttf-jetbrains-mono-nerd
- otf-ipafont
- login
+ - sddm (for hyprland. it doesnt like lightdm :<)
- lightdm
- lightdm-gtk-greeter
- lxappearance # for setting gtk theme
@@ -45,7 +56,7 @@ eg my dotfiles
- for qt to gtk theme
- qt6gtk2
- qt5gtk2
-- background setter - nitrogen
+- background setter - nitrogen # for x11
- numen # voice control, manual setup
- file manager
- lf
@@ -61,7 +72,7 @@ eg my dotfiles
- compositor
- xcompmgr # primarily
- picom # for fancy ness
-- inetutils - for normal ftp
+- inetutils # for normal ftp
- screenshots
- flameshot #higher rez than ffmpeg
- ffmpeg
@@ -74,5 +85,6 @@ eg my dotfiles
- notifications
- libnotify
- notify-send
+ - dusnt # for hyprland
- calender
- calcurse
diff --git a/stuff/scripts/system/backup/backup.sh b/stuff/scripts/system/backup/backup.sh
index aa633f6..1981ff4 100755
--- a/stuff/scripts/system/backup/backup.sh
+++ b/stuff/scripts/system/backup/backup.sh
@@ -15,7 +15,7 @@ fsyncb () {
fi
}
-syncfile="stuff .bash_profile .bashrc .surf/styles .gtkrc-2.0 .urlview .vimrc .xinitrc .Xresources .zshrc .p10k.zsh .gnupg .ssh .local/bin/lf-gadgets .config/dwm .config/wezterm .config/.profile .config/tmux .config/wireplumber .config/FreeTube .config/awesome .config/wlxoverlay .config/newsboat .config/vesktop/themes .config/fastfetch .config/gtk-3.0 .config/rofi .config/lf .config/mutt .config/zsh .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/vesktop/themes .keepass .config/Pinta .config/cmus .config/cava .local/share/applications/custom .local/share/osu"
+syncfile="stuff .bash_profile .bashrc .surf/styles .gtkrc-2.0 .urlview .vimrc .xinitrc .Xresources .zshrc .p10k.zsh .gnupg .ssh .local/bin/lf-gadgets .config/dwm .config/wezterm .config/.profile .config/tmux .config/wireplumber .config/FreeTube .config/awesome .config/wlxoverlay .config/newsboat .config/vesktop/themes .config/fastfetch .config/gtk-3.0 .config/rofi .config/lf .config/mutt .config/zsh .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/vesktop/themes .keepass .config/Pinta .config/cmus .config/cava .config/hypr .config/waybar .local/share/applications/custom .local/share/osu"
# se shit
syncfile="$syncfile /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Blueprints /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/IngameScripts /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Saves"
diff --git a/stuff/scripts/system/backup/copy-to-git.sh b/stuff/scripts/system/backup/copy-to-git.sh
index 3c66805..70720b6 100755
--- a/stuff/scripts/system/backup/copy-to-git.sh
+++ b/stuff/scripts/system/backup/copy-to-git.sh
@@ -11,7 +11,7 @@ fsync () {
fi
}
-syncfile=".urlview .vimrc .Xresources .bashrc .zshrc .p10k.zsh .config/.profile .config/wezterm .config/dwm .config/tmux .config/awesome .config/rofi .config/lf .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/fastfetch stuff/manual-programs/suckless"
+syncfile=".urlview .vimrc .Xresources .bashrc .zshrc .p10k.zsh .config/.profile .config/wezterm .config/dwm .config/tmux .config/awesome .config/rofi .config/cava .config/hypr .config/waybar .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/fastfetch stuff/manual-programs/suckless"
syncfile="$syncfile stuff/scripts/system/stbar stuff/scripts/system/url-handler.sh stuff/scripts/system/backup/copy-to-git.sh stuff/scripts/system/backup/backup.sh"
syncfile="$syncfile stuff/scripts/system/neoboot.sh stuff/scripts/system/math.sh stuff/scripts/system/bri.sh stuff/scripts/system/restart-pipe.sh stuff/scripts/system/set-pri-java.sh"
diff --git a/stuff/scripts/system/url-handler.sh b/stuff/scripts/system/url-handler.sh
index 5f626ce..30d7548 100755
--- a/stuff/scripts/system/url-handler.sh
+++ b/stuff/scripts/system/url-handler.sh
@@ -6,13 +6,17 @@ echo $url
choices="
clipboard
-firefox
+zen
"
choice=$(echo "$choices" | sed /^$/d | rofi -dmenu "$prompt_message")
if [ "$choice" == "clipboard" ]; then
- printf "$url" | xclip -selection clipboard
+ if [ -z $WAYLAND_DISPLAY ]; then
+ printf "$url" | xclip -selection clipboard
+ else
+ printf "$url" | wl-copy
+ fi
else
$choice "$url"
fi