added hyprland config

This commit is contained in:
iceyrazor 2025-05-20 20:03:39 -05:00
parent bab502e1ef
commit f231237350
18 changed files with 1587 additions and 29 deletions

View File

@ -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"

283
.config/cava/config Normal file
View File

@ -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

View 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);
}
}

View 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;
}

View 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;
}

View 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);
}
}

View 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);
}
}

5
.config/hypr/cycle-layout.sh Executable file
View File

@ -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

414
.config/hypr/hyprland.conf Normal file
View File

@ -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

View File

@ -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

View File

@ -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)

180
.config/waybar/config.jsonc Normal file
View File

@ -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"
}
}

163
.config/waybar/style.css Normal file
View File

@ -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 */
}

View File

@ -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 (09).
-- 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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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