Initial commit : dotfiles setup
254
.config/btop/btop.conf
Normal file
@@ -0,0 +1,254 @@
|
|||||||
|
#? Config file for btop v. 1.4.4
|
||||||
|
|
||||||
|
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||||
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
|
color_theme = "Default"
|
||||||
|
|
||||||
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
|
theme_background = False
|
||||||
|
|
||||||
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
|
truecolor = True
|
||||||
|
|
||||||
|
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||||
|
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||||
|
force_tty = True
|
||||||
|
|
||||||
|
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||||
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
|
#* Use whitespace " " as separator between different presets.
|
||||||
|
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||||
|
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||||
|
|
||||||
|
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||||
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
|
vim_keys = False
|
||||||
|
|
||||||
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
|
rounded_corners = True
|
||||||
|
|
||||||
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
|
#* "block" has half the resolution of braille but uses more common characters.
|
||||||
|
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||||
|
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||||
|
graph_symbol = "braille"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_cpu = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_gpu = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_mem = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_net = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_proc = "default"
|
||||||
|
|
||||||
|
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||||
|
shown_boxes = "cpu mem"
|
||||||
|
|
||||||
|
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||||
|
update_ms = 2000
|
||||||
|
|
||||||
|
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||||
|
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||||
|
proc_sorting = "cpu lazy"
|
||||||
|
|
||||||
|
#* Reverse sorting order, True or False.
|
||||||
|
proc_reversed = False
|
||||||
|
|
||||||
|
#* Show processes as a tree.
|
||||||
|
proc_tree = False
|
||||||
|
|
||||||
|
#* Use the cpu graph colors in the process list.
|
||||||
|
proc_colors = True
|
||||||
|
|
||||||
|
#* Use a darkening gradient in the process list.
|
||||||
|
proc_gradient = True
|
||||||
|
|
||||||
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
|
proc_per_core = False
|
||||||
|
|
||||||
|
#* Show process memory as bytes instead of percent.
|
||||||
|
proc_mem_bytes = True
|
||||||
|
|
||||||
|
#* Show cpu graph for each process.
|
||||||
|
proc_cpu_graphs = True
|
||||||
|
|
||||||
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
|
proc_info_smaps = False
|
||||||
|
|
||||||
|
#* Show proc box on left side of screen instead of right.
|
||||||
|
proc_left = False
|
||||||
|
|
||||||
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
|
proc_filter_kernel = False
|
||||||
|
|
||||||
|
#* In tree-view, always accumulate child process resources in the parent process.
|
||||||
|
proc_aggregate = False
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_upper = "Auto"
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_lower = "Auto"
|
||||||
|
|
||||||
|
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||||
|
show_gpu_info = "Auto"
|
||||||
|
|
||||||
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
|
cpu_invert_lower = True
|
||||||
|
|
||||||
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
|
cpu_single_graph = False
|
||||||
|
|
||||||
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
|
cpu_bottom = False
|
||||||
|
|
||||||
|
#* Shows the system uptime in the CPU box.
|
||||||
|
show_uptime = True
|
||||||
|
|
||||||
|
#* Show cpu temperature.
|
||||||
|
check_temp = True
|
||||||
|
|
||||||
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
|
show_coretemp = True
|
||||||
|
|
||||||
|
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||||
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
|
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||||
|
#* Example: "4:0 5:1 6:3"
|
||||||
|
cpu_core_map = ""
|
||||||
|
|
||||||
|
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||||
|
temp_scale = "celsius"
|
||||||
|
|
||||||
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
|
base_10_sizes = False
|
||||||
|
|
||||||
|
#* Show CPU frequency.
|
||||||
|
show_cpu_freq = True
|
||||||
|
|
||||||
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
|
clock_format = "%X"
|
||||||
|
|
||||||
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
|
background_update = True
|
||||||
|
|
||||||
|
#* Custom cpu model name, empty string to disable.
|
||||||
|
custom_cpu_name = ""
|
||||||
|
|
||||||
|
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||||
|
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||||
|
disks_filter = ""
|
||||||
|
|
||||||
|
#* Show graphs instead of meters for memory values.
|
||||||
|
mem_graphs = True
|
||||||
|
|
||||||
|
#* Show mem box below net box instead of above.
|
||||||
|
mem_below_net = False
|
||||||
|
|
||||||
|
#* Count ZFS ARC in cached and available memory.
|
||||||
|
zfs_arc_cached = True
|
||||||
|
|
||||||
|
#* If swap memory should be shown in memory box.
|
||||||
|
show_swap = True
|
||||||
|
|
||||||
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
|
swap_disk = True
|
||||||
|
|
||||||
|
#* If mem box should be split to also show disks info.
|
||||||
|
show_disks = True
|
||||||
|
|
||||||
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
|
only_physical = True
|
||||||
|
|
||||||
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
|
use_fstab = True
|
||||||
|
|
||||||
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
|
zfs_hide_datasets = False
|
||||||
|
|
||||||
|
#* Set to true to show available disk space for privileged users.
|
||||||
|
disk_free_priv = False
|
||||||
|
|
||||||
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
|
show_io_stat = True
|
||||||
|
|
||||||
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
|
io_mode = False
|
||||||
|
|
||||||
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
|
io_graph_combined = False
|
||||||
|
|
||||||
|
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||||
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
|
io_graph_speeds = ""
|
||||||
|
|
||||||
|
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||||
|
net_download = 100
|
||||||
|
|
||||||
|
net_upload = 100
|
||||||
|
|
||||||
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
|
net_auto = True
|
||||||
|
|
||||||
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
|
net_sync = True
|
||||||
|
|
||||||
|
#* Starts with the Network Interface specified here.
|
||||||
|
net_iface = ""
|
||||||
|
|
||||||
|
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||||
|
base_10_bitrate = "Auto"
|
||||||
|
|
||||||
|
#* Show battery stats in top right if battery is present.
|
||||||
|
show_battery = True
|
||||||
|
|
||||||
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
|
selected_battery = "Auto"
|
||||||
|
|
||||||
|
#* Show power stats of battery next to charge indicator.
|
||||||
|
show_battery_watts = True
|
||||||
|
|
||||||
|
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
|
log_level = "WARNING"
|
||||||
|
|
||||||
|
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||||
|
nvml_measure_pcie_speeds = True
|
||||||
|
|
||||||
|
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||||
|
rsmi_measure_pcie_speeds = True
|
||||||
|
|
||||||
|
#* Horizontally mirror the GPU graph.
|
||||||
|
gpu_mirror_graph = True
|
||||||
|
|
||||||
|
#* Custom gpu0 model name, empty string to disable.
|
||||||
|
custom_gpu_name0 = ""
|
||||||
|
|
||||||
|
#* Custom gpu1 model name, empty string to disable.
|
||||||
|
custom_gpu_name1 = ""
|
||||||
|
|
||||||
|
#* Custom gpu2 model name, empty string to disable.
|
||||||
|
custom_gpu_name2 = ""
|
||||||
|
|
||||||
|
#* Custom gpu3 model name, empty string to disable.
|
||||||
|
custom_gpu_name3 = ""
|
||||||
|
|
||||||
|
#* Custom gpu4 model name, empty string to disable.
|
||||||
|
custom_gpu_name4 = ""
|
||||||
|
|
||||||
|
#* Custom gpu5 model name, empty string to disable.
|
||||||
|
custom_gpu_name5 = ""
|
||||||
76
.config/btop/btop.log
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
2025/08/13 (16:57:54) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (16:57:54) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/13 (17:48:52) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (17:48:52) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/13 (19:00:22) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (19:00:22) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/13 (20:56:21) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (20:56:21) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
2025/08/13 (21:24:05) | WARNING: Failed to join _runner thread on exit!
|
||||||
|
|
||||||
|
2025/08/13 (21:35:18) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (21:35:18) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/13 (23:52:54) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (23:52:54) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/13 (23:55:50) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/13 (23:55:50) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/14 (11:03:26) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/14 (11:03:26) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/15 (02:18:28) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/15 (02:18:28) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/15 (02:29:21) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/15 (02:29:21) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/15 (03:12:16) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/15 (03:12:16) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/15 (04:05:13) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/15 (04:05:13) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/16 (06:03:43) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/16 (06:03:43) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/21 (13:58:33) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/21 (13:58:33) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/21 (14:02:27) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/21 (14:02:27) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (08:02:45) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (08:02:45) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:06:54) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:06:54) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:12:15) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:12:15) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:13:59) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:13:59) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:15:54) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:15:54) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:22:14) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:22:14) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (22:24:20) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (22:24:20) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/24 (23:46:41) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/24 (23:46:41) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/25 (01:24:07) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/25 (01:24:07) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
|
|
||||||
|
2025/08/25 (22:42:52) | ===> btop++ v.1.4.0
|
||||||
|
2025/08/25 (22:42:52) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported
|
||||||
13
.config/btop/themes/pywal.theme
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
[colors]
|
||||||
|
background=#0E1125
|
||||||
|
foreground=#e4e6ec
|
||||||
|
primary=#699AD3
|
||||||
|
secondary=#D1ACAF
|
||||||
|
tertiary=#9DAECF
|
||||||
|
highlight=#B0CBE7
|
||||||
|
accent=#CDD5EA
|
||||||
|
border=#929BB1
|
||||||
|
|
||||||
|
[options]
|
||||||
|
name=Pywal
|
||||||
|
author=Rion Zaphkiel
|
||||||
5
.config/cava/config
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[color]
|
||||||
|
gradient = 1
|
||||||
|
gradient_count = 2
|
||||||
|
gradient_color_1 = '#929ca3'
|
||||||
|
gradient_color_2 = '#717C82'
|
||||||
79
.config/cava/shaders/Backup/bar_spectrum.frag
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragCoord;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||||
|
uniform float bars[512];
|
||||||
|
|
||||||
|
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||||
|
uniform int bar_width; // bar width (configurable), not used here
|
||||||
|
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||||
|
|
||||||
|
uniform vec3 u_resolution; // window resolution
|
||||||
|
|
||||||
|
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||||
|
uniform vec3 bg_color; // background color
|
||||||
|
uniform vec3 fg_color; // foreground color
|
||||||
|
|
||||||
|
uniform int gradient_count;
|
||||||
|
uniform vec3 gradient_colors[8]; // gradient colors
|
||||||
|
|
||||||
|
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||||
|
{
|
||||||
|
//create color based on fraction of this color and next color
|
||||||
|
float yr = (y - y_min) / (y_max - y_min);
|
||||||
|
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// find which bar to use based on where we are on the x axis
|
||||||
|
float x = u_resolution.x * fragCoord.x;
|
||||||
|
int bar = int(bars_count * fragCoord.x);
|
||||||
|
|
||||||
|
//calculate a bar size
|
||||||
|
float bar_size = u_resolution.x / bars_count;
|
||||||
|
|
||||||
|
//the y coordinate and bar values are the same
|
||||||
|
float y = bars[bar];
|
||||||
|
|
||||||
|
// make sure there is a thin line at bottom
|
||||||
|
if (y * u_resolution.y < 1.0)
|
||||||
|
{
|
||||||
|
y = 1.0 / u_resolution.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
//draw the bar up to current height
|
||||||
|
if (y > fragCoord.y)
|
||||||
|
{
|
||||||
|
//make some space between bars basen on settings
|
||||||
|
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||||
|
{
|
||||||
|
fragColor = vec4(bg_color,1.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gradient_count == 0)
|
||||||
|
{
|
||||||
|
fragColor = vec4(fg_color,1.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//find which color in the configured gradient we are at
|
||||||
|
int color = int((gradient_count - 1) * fragCoord.y);
|
||||||
|
|
||||||
|
//find where on y this and next color is supposed to be
|
||||||
|
float y_min = color / (gradient_count - 1.0);
|
||||||
|
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||||
|
|
||||||
|
//make color
|
||||||
|
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fragColor = vec4(bg_color,1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
.config/cava/shaders/Backup/northern_lights.frag
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragCoord;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||||
|
uniform float bars[512];
|
||||||
|
|
||||||
|
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||||
|
|
||||||
|
uniform vec3 u_resolution; // window resolution, not used here
|
||||||
|
|
||||||
|
//colors, configurable in cava config file
|
||||||
|
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||||
|
uniform vec3 fg_color; // foreground color, not used here
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// find which bar to use based on where we are on the x axis
|
||||||
|
int bar = int(bars_count * fragCoord.x);
|
||||||
|
|
||||||
|
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||||
|
float y = (bars[bar]) * bar_y;
|
||||||
|
|
||||||
|
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||||
|
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||||
|
|
||||||
|
bar_r = bar_r * bar_r * 2;
|
||||||
|
|
||||||
|
// set color
|
||||||
|
fragColor.r = fg_color.x * y * bar_r;
|
||||||
|
fragColor.g = fg_color.y * y * bar_r;
|
||||||
|
fragColor.b = fg_color.z * y * bar_r;
|
||||||
|
}
|
||||||
14
.config/cava/shaders/Backup/pass_through.vert
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
|
||||||
|
// Input vertex data, different for all executions of this shader.
|
||||||
|
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||||
|
|
||||||
|
// Output data ; will be interpolated for each fragment.
|
||||||
|
out vec2 fragCoord;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||||
|
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||||
|
}
|
||||||
79
.config/cava/shaders/bar_spectrum.frag
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragCoord;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||||
|
uniform float bars[512];
|
||||||
|
|
||||||
|
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||||
|
uniform int bar_width; // bar width (configurable), not used here
|
||||||
|
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||||
|
|
||||||
|
uniform vec3 u_resolution; // window resolution
|
||||||
|
|
||||||
|
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||||
|
uniform vec3 bg_color; // background color
|
||||||
|
uniform vec3 fg_color; // foreground color
|
||||||
|
|
||||||
|
uniform int gradient_count;
|
||||||
|
uniform vec3 gradient_colors[8]; // gradient colors
|
||||||
|
|
||||||
|
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||||
|
{
|
||||||
|
//create color based on fraction of this color and next color
|
||||||
|
float yr = (y - y_min) / (y_max - y_min);
|
||||||
|
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// find which bar to use based on where we are on the x axis
|
||||||
|
float x = u_resolution.x * fragCoord.x;
|
||||||
|
int bar = int(bars_count * fragCoord.x);
|
||||||
|
|
||||||
|
//calculate a bar size
|
||||||
|
float bar_size = u_resolution.x / bars_count;
|
||||||
|
|
||||||
|
//the y coordinate and bar values are the same
|
||||||
|
float y = bars[bar];
|
||||||
|
|
||||||
|
// make sure there is a thin line at bottom
|
||||||
|
if (y * u_resolution.y < 1.0)
|
||||||
|
{
|
||||||
|
y = 1.0 / u_resolution.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
//draw the bar up to current height
|
||||||
|
if (y > fragCoord.y)
|
||||||
|
{
|
||||||
|
//make some space between bars basen on settings
|
||||||
|
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||||
|
{
|
||||||
|
fragColor = vec4(bg_color,1.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gradient_count == 0)
|
||||||
|
{
|
||||||
|
fragColor = vec4(fg_color,1.0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//find which color in the configured gradient we are at
|
||||||
|
int color = int((gradient_count - 1) * fragCoord.y);
|
||||||
|
|
||||||
|
//find where on y this and next color is supposed to be
|
||||||
|
float y_min = color / (gradient_count - 1.0);
|
||||||
|
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||||
|
|
||||||
|
//make color
|
||||||
|
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fragColor = vec4(bg_color,1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
.config/cava/shaders/northern_lights.frag
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
in vec2 fragCoord;
|
||||||
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||||
|
uniform float bars[512];
|
||||||
|
|
||||||
|
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||||
|
|
||||||
|
uniform vec3 u_resolution; // window resolution, not used here
|
||||||
|
|
||||||
|
//colors, configurable in cava config file
|
||||||
|
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||||
|
uniform vec3 fg_color; // foreground color, not used here
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// find which bar to use based on where we are on the x axis
|
||||||
|
int bar = int(bars_count * fragCoord.x);
|
||||||
|
|
||||||
|
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||||
|
float y = (bars[bar]) * bar_y;
|
||||||
|
|
||||||
|
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||||
|
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||||
|
|
||||||
|
bar_r = bar_r * bar_r * 2;
|
||||||
|
|
||||||
|
// set color
|
||||||
|
fragColor.r = fg_color.x * y * bar_r;
|
||||||
|
fragColor.g = fg_color.y * y * bar_r;
|
||||||
|
fragColor.b = fg_color.z * y * bar_r;
|
||||||
|
}
|
||||||
14
.config/cava/shaders/pass_through.vert
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#version 330
|
||||||
|
|
||||||
|
|
||||||
|
// Input vertex data, different for all executions of this shader.
|
||||||
|
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||||
|
|
||||||
|
// Output data ; will be interpolated for each fragment.
|
||||||
|
out vec2 fragCoord;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||||
|
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||||
|
}
|
||||||
0
.config/fastfetch/.reload_flag
Normal file
0
.config/fastfetch/config.json.tmp
Normal file
59
.config/fastfetch/config.jsonc
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||||
|
"logo": {
|
||||||
|
"type": "kitty-direct",
|
||||||
|
"source": "/home/rionzaphkiel/.config/fastfetch/logo/john_wuthering.png",
|
||||||
|
"padding": {
|
||||||
|
"top": 1,
|
||||||
|
"left": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"separator": " ",
|
||||||
|
"color": {
|
||||||
|
"title": "yellow"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
"break",
|
||||||
|
"title",
|
||||||
|
{
|
||||||
|
"type": "os",
|
||||||
|
"key": "os ",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wm",
|
||||||
|
"key": "de ",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"key": "shell ",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "uptime",
|
||||||
|
"format": "{2}h {3}m",
|
||||||
|
"key": "uptime",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"key": "os age",
|
||||||
|
"text": "birth_install=$(stat -c %W /); current=$(date +%s); days_difference=$(( (current - birth_install) / 86400 )); echo $days_difference days",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "memory",
|
||||||
|
"key": "memory",
|
||||||
|
"keyColor": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"key": "wife ",
|
||||||
|
"format": "Artoria Pendragon",
|
||||||
|
"keyColor": "white"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
.config/fastfetch/logo/arknights.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
.config/fastfetch/logo/endfield.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
.config/fastfetch/logo/john_arknights.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
.config/fastfetch/logo/john_endfield.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
.config/fastfetch/logo/john_genshin.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
.config/fastfetch/logo/john_starrail.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
.config/fastfetch/logo/john_wuthering.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
.config/fastfetch/logo/john_zenless.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
.config/fastfetch/logo/wuthering.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
25
.config/wal/colors.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"special": {
|
||||||
|
"background": "#1A1A1A",
|
||||||
|
"foreground": "#FFD700",
|
||||||
|
"cursor": "#FFE55C"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"color0": "#1A1A1A",
|
||||||
|
"color1": "#FFD700",
|
||||||
|
"color2": "#FFF27C",
|
||||||
|
"color3": "#FFE55C",
|
||||||
|
"color4": "#FFCC00",
|
||||||
|
"color5": "#FFFACD",
|
||||||
|
"color6": "#FFD54F",
|
||||||
|
"color7": "#FDFDFD",
|
||||||
|
"color8": "#444444",
|
||||||
|
"color9": "#FFD700",
|
||||||
|
"color10": "#FFF27C",
|
||||||
|
"color11": "#FFE55C",
|
||||||
|
"color12": "#FFCC00",
|
||||||
|
"color13": "#FFFACD",
|
||||||
|
"color14": "#FFD54F",
|
||||||
|
"color15": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
4
.config/wal/hooks/hooks.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
~/.dotfiles/.script/discord-pywalsync.sh
|
||||||
|
~/.dotfiles/.script/cava-pywalsync.sh
|
||||||
|
~/.dotfiles/.script/wlogout-pywalsync.sh
|
||||||
25
.config/wal/themes/Arknights.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"special": {
|
||||||
|
"background": "#10141a",
|
||||||
|
"foreground": "#e1e3e4",
|
||||||
|
"cursor": "#e1e3e4"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"color0": "#10141a",
|
||||||
|
"color1": "#387a93",
|
||||||
|
"color2": "#2b93a4",
|
||||||
|
"color3": "#6b5b53",
|
||||||
|
"color4": "#4e5a68",
|
||||||
|
"color5": "#7c8c9a",
|
||||||
|
"color6": "#47b8c7",
|
||||||
|
"color7": "#e1e3e4",
|
||||||
|
"color8": "#9ca0a1",
|
||||||
|
"color9": "#387a93",
|
||||||
|
"color10": "#2b93a4",
|
||||||
|
"color11": "#6b5b53",
|
||||||
|
"color12": "#4e5a68",
|
||||||
|
"color13": "#7c8c9a",
|
||||||
|
"color14": "#47b8c7",
|
||||||
|
"color15": "#e1e3e4"
|
||||||
|
}
|
||||||
|
}
|
||||||
25
.config/wal/themes/Endfields.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"special": {
|
||||||
|
"background": "#13130e",
|
||||||
|
"foreground": "#eaeadf",
|
||||||
|
"cursor": "#eaeadf"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"color0": "#13130e",
|
||||||
|
"color1": "#ACA635",
|
||||||
|
"color2": "#9B9965",
|
||||||
|
"color3": "#D2D067",
|
||||||
|
"color4": "#A5A697",
|
||||||
|
"color5": "#C2BCA4",
|
||||||
|
"color6": "#DDDCA4",
|
||||||
|
"color7": "#eaeadf",
|
||||||
|
"color8": "#a3a39c",
|
||||||
|
"color9": "#ACA635",
|
||||||
|
"color10": "#9B9965",
|
||||||
|
"color11": "#D2D067",
|
||||||
|
"color12": "#A5A697",
|
||||||
|
"color13": "#C2BCA4",
|
||||||
|
"color14": "#DDDCA4",
|
||||||
|
"color15": "#eaeadf"
|
||||||
|
}
|
||||||
|
}
|
||||||
25
.config/wal/themes/Wutherings.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"special": {
|
||||||
|
"background": "#1e1f24",
|
||||||
|
"foreground": "#e3e4e6",
|
||||||
|
"cursor": "#e3e4e6"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"color0": "#1e1f24",
|
||||||
|
"color1": "#3d5a9d",
|
||||||
|
"color2": "#6c89c8",
|
||||||
|
"color3": "#5a5f6a",
|
||||||
|
"color4": "#5679c0",
|
||||||
|
"color5": "#878c93",
|
||||||
|
"color6": "#5f7cb6",
|
||||||
|
"color7": "#e3e4e6",
|
||||||
|
"color8": "#9ea1a3",
|
||||||
|
"color9": "#3d5a9d",
|
||||||
|
"color10": "#6c89c8",
|
||||||
|
"color11": "#5a5f6a",
|
||||||
|
"color12": "#5679c0",
|
||||||
|
"color13": "#878c93",
|
||||||
|
"color14": "#5f7cb6",
|
||||||
|
"color15": "#e3e4e6"
|
||||||
|
}
|
||||||
|
}
|
||||||
31
.config/wezterm/wezterm.lua
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
local wezterm = require("wezterm")
|
||||||
|
local config = wezterm.config_builder()
|
||||||
|
|
||||||
|
--- Font Settings
|
||||||
|
config.font_size = 14
|
||||||
|
config.line_height = 1.2
|
||||||
|
config.font = wezterm.font("FiraMono Nerd Font")
|
||||||
|
|
||||||
|
--- Colors
|
||||||
|
config.colors = {
|
||||||
|
cursor_bg = "white",
|
||||||
|
cursor_border = "white",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Appearance
|
||||||
|
config.window_decorations = "NONE"
|
||||||
|
config.hide_tab_bar_if_only_one_tab = true
|
||||||
|
config.window_padding = {
|
||||||
|
left = 0,
|
||||||
|
top = 0,
|
||||||
|
bottom = 0,
|
||||||
|
right = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
config.window_background_opacity = 0.85
|
||||||
|
|
||||||
|
--- Misc
|
||||||
|
config.max_fps = 60
|
||||||
|
config.prefer_egl = true
|
||||||
|
|
||||||
|
return config
|
||||||
BIN
.config/wlogout/icons/hibernate-hover.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
.config/wlogout/icons/hibernate-hover1.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
.config/wlogout/icons/hibernate.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
.config/wlogout/icons/lock-hover.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
.config/wlogout/icons/lock.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
.config/wlogout/icons/logout-hover.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
.config/wlogout/icons/logout.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
.config/wlogout/icons/moon_865813.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
.config/wlogout/icons/power-hover.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
.config/wlogout/icons/power.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
.config/wlogout/icons/restart-hover.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
.config/wlogout/icons/restart.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
.config/wlogout/icons/sleep-hover.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
.config/wlogout/icons/sleep.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
.config/wlogout/icons/sleep2.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
.config/wlogout/images/wallpaper_blurred.png
Normal file
|
After Width: | Height: | Size: 647 KiB |
36
.config/wlogout/layout
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"label" : "lock",
|
||||||
|
"action" : "loginctl lock-session",
|
||||||
|
"text" : "Lock",
|
||||||
|
"keybind" : "l"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "reboot",
|
||||||
|
"action" : "gnome-session-quit --reboot",
|
||||||
|
"text" : "Reboot",
|
||||||
|
"keybind" : "r"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "shutdown",
|
||||||
|
"action" : "gnome-session-quit --power-off",
|
||||||
|
"text" : "Shutdown",
|
||||||
|
"keybind" : "s"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "logout",
|
||||||
|
"action" : "gnome-session-quit",
|
||||||
|
"text" : "Logout",
|
||||||
|
"keybind" : "e"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "suspend",
|
||||||
|
"action" : "systemctl suspend",
|
||||||
|
"text" : "Suspend",
|
||||||
|
"keybind" : "u"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "hibernate",
|
||||||
|
"action" : "systemctl hibernate",
|
||||||
|
"text" : "Hibernate",
|
||||||
|
"keybind" : "h"
|
||||||
|
}
|
||||||
67
.config/wlogout/style-template.css
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
@import url("file:///home/rionzaphkiel/.cache/wal/colors-waybar.css");
|
||||||
|
|
||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: "JetBrains Mono";
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-image: image(url("./images/wallpaper_blurred.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 10px;
|
||||||
|
color: @inverse_surface;
|
||||||
|
border-color: @inverse_surface;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
outline-style: none;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 20%;
|
||||||
|
box-shadow: none;
|
||||||
|
text-shadow: none;
|
||||||
|
animation: gradient_f 20s ease-in infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover,button:focus {
|
||||||
|
background-color: @on_secondary_fixed_variant;
|
||||||
|
background-size: 30%;
|
||||||
|
color: @color1;
|
||||||
|
animation: gradient_f 20s ease-in infinite;
|
||||||
|
transition: all 0.3s cubic-bezier(.55,0.0,.28,1.682);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Adjust the size of the icon or content inside the button */
|
||||||
|
button span {
|
||||||
|
font-size: 1.2em; /* Increase the font size */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#lock {
|
||||||
|
background-image: image(url("./icons/lock.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout {
|
||||||
|
background-image: image(url("./icons/logout.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#suspend {
|
||||||
|
background-image: image(url("./icons/sleep.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown {
|
||||||
|
background-image: image(url("./icons/power.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot {
|
||||||
|
background-image: image(url("./icons/restart.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#hibernate {
|
||||||
|
background-image: image(url("./icons/hibernate.png"));
|
||||||
|
}
|
||||||
|
|
||||||
67
.config/wlogout/style.css
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
@import url("file:///home/rionzaphkiel/.cache/wal/colors-waybar.css");
|
||||||
|
|
||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: "JetBrains Mono";
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-image: image(url("./images/wallpaper_blurred.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 20px;
|
||||||
|
margin: 10px;
|
||||||
|
color: @inverse_surface;
|
||||||
|
border-color: @inverse_surface;
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
outline-style: none;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 20%;
|
||||||
|
box-shadow: none;
|
||||||
|
text-shadow: none;
|
||||||
|
animation: gradient_f 20s ease-in infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover,button:focus {
|
||||||
|
background-color: @on_secondary_fixed_variant;
|
||||||
|
background-size: 30%;
|
||||||
|
color: @color1;
|
||||||
|
animation: gradient_f 20s ease-in infinite;
|
||||||
|
transition: all 0.3s cubic-bezier(.55,0.0,.28,1.682);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Adjust the size of the icon or content inside the button */
|
||||||
|
button span {
|
||||||
|
font-size: 1.2em; /* Increase the font size */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#lock {
|
||||||
|
background-image: image(url("./icons/lock.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout {
|
||||||
|
background-image: image(url("./icons/logout.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#suspend {
|
||||||
|
background-image: image(url("./icons/sleep.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown {
|
||||||
|
background-image: image(url("./icons/power.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot {
|
||||||
|
background-image: image(url("./icons/restart.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#hibernate {
|
||||||
|
background-image: image(url("./icons/hibernate.png"));
|
||||||
|
}
|
||||||
|
|
||||||
13
.config/wofi/config
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
[config]
|
||||||
|
allow_images=true
|
||||||
|
show=drun
|
||||||
|
prompt=Search
|
||||||
|
term=wezterm
|
||||||
|
print_command=true
|
||||||
|
insensitive=true
|
||||||
|
columns=1
|
||||||
|
no_actions=true
|
||||||
|
hide_scroll=true
|
||||||
|
width=800
|
||||||
|
height=475
|
||||||
|
style = /home/rionzaphkiel/.config/wofi/style.css
|
||||||
83
.config/wofi/style.css
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
@import url("file:///home/rionzaphkiel/.cache/wal/colors-waybar.css"); /* ambil palet Pywal */
|
||||||
|
|
||||||
|
/* === Global === */
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: 'JetBrains Mono', monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
text-shadow: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* === Window utama === */
|
||||||
|
window {
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
|
||||||
|
/* Campuran background + nuansa @color1 */
|
||||||
|
background:
|
||||||
|
radial-gradient(circle at top left, alpha(@color1,0.35), transparent 70%),
|
||||||
|
radial-gradient(circle at top right, alpha(@color1,0.35), transparent 70%),
|
||||||
|
radial-gradient(circle at bottom left, alpha(@color1,0.35), transparent 70%),
|
||||||
|
radial-gradient(circle at bottom right, alpha(@color1,0.35), transparent 70%),
|
||||||
|
alpha(@background,0.85);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* === Layout === */
|
||||||
|
#outer-box {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#inner-box {
|
||||||
|
margin: 2px;
|
||||||
|
padding: 5px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#scroll {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 20px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* === Input field === */
|
||||||
|
#input {
|
||||||
|
margin: 20px;
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @foreground;
|
||||||
|
background-color: alpha(@background, 0.25);
|
||||||
|
box-shadow: 1px 1px 5px rgba(0,0,0,.5);
|
||||||
|
}
|
||||||
|
#input image {
|
||||||
|
color: @color1;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* === Item list === */
|
||||||
|
#entry {
|
||||||
|
border: none;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 12px;
|
||||||
|
transition: background-color 0.2s ease, color 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Normal text */
|
||||||
|
#entry #text {
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Item terpilih (highlight nuansa pywal) */
|
||||||
|
#entry:selected {
|
||||||
|
background-color: alpha(@color1, 0.2); /* warna highlight */
|
||||||
|
border: 1px solid @color1;
|
||||||
|
box-shadow: 0 0 8px alpha(@color1, 0.3);
|
||||||
|
}
|
||||||
|
#entry:selected #text {
|
||||||
|
color: @color1;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Arrow icon */
|
||||||
|
#entry arrow {
|
||||||
|
color: @color3;
|
||||||
|
}
|
||||||
101
.config/wofi/styles.css
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
@import url("file:///home/rionzaphkiel/.cache/wal/colors-waybar.css");
|
||||||
|
|
||||||
|
@keyframes fadeIn {
|
||||||
|
0% {
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
all:unset;
|
||||||
|
font-family: 'JetBrains Mono', monospace;
|
||||||
|
font-size: 18px;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
text-shadow:none;
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
all:unset;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 0px;
|
||||||
|
background-color: alpha(@background,.5);
|
||||||
|
}
|
||||||
|
#inner-box {
|
||||||
|
margin: 2px;
|
||||||
|
padding: 5px
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#outer-box {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#scroll {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 30px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
#input {
|
||||||
|
all:unset;
|
||||||
|
margin-left:20px;
|
||||||
|
margin-right:20px;
|
||||||
|
margin-top:20px;
|
||||||
|
padding: 20px;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
color: @text;
|
||||||
|
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
|
||||||
|
border-radius:10;
|
||||||
|
background-color: alpha(@background,.2);
|
||||||
|
}
|
||||||
|
#input image {
|
||||||
|
border: none;
|
||||||
|
color: @red;
|
||||||
|
padding-right:10px;
|
||||||
|
}
|
||||||
|
#input * {
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input:focus {
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
border-radius:10;
|
||||||
|
}
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: @color1;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: @text;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
#entry {
|
||||||
|
border: none;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
#entry arrow {
|
||||||
|
border: none;
|
||||||
|
color: @lavender;
|
||||||
|
|
||||||
|
}
|
||||||
|
#entry:selected {
|
||||||
|
box-shadow: 1px 1px 5px rgba(255,255,255, .03);
|
||||||
|
border: none;
|
||||||
|
border-radius: 20px;
|
||||||
|
background-color:transparent;
|
||||||
|
}
|
||||||
|
#entry:selected #text {
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
#entry:drop(active) {
|
||||||
|
background-color: @lavender !important;
|
||||||
|
}
|
||||||
13
.config/wofi/wallpaper
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
[config]
|
||||||
|
allow_images=true
|
||||||
|
show=drun
|
||||||
|
width=900
|
||||||
|
height=600
|
||||||
|
always_parse_args=true
|
||||||
|
show_all=true
|
||||||
|
term=wezterm
|
||||||
|
hide_scroll=true
|
||||||
|
print_command=true
|
||||||
|
insensitive=true
|
||||||
|
columns=3
|
||||||
|
image_size=250
|
||||||
17
.script/cava-pywalsync.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
CAVA_CONFIG="$HOME/.config/cava/config"
|
||||||
|
WAL_COLORS="$HOME/.cache/wal/colors.json"
|
||||||
|
|
||||||
|
# Take colors from pywal
|
||||||
|
COLOR1=$(jq -r '.colors.color8' "$WAL_COLORS")
|
||||||
|
COLOR2=$(jq -r '.colors.color1' "$WAL_COLORS")
|
||||||
|
|
||||||
|
# Update colors in CAVA
|
||||||
|
sed -i "s|^gradient_color_1 = '.*'|gradient_color_1 = '$COLOR1'|" "$CAVA_CONFIG"
|
||||||
|
sed -i "s|^gradient_color_2 = '.*'|gradient_color_2 = '$COLOR2'|" "$CAVA_CONFIG"
|
||||||
|
|
||||||
|
# Auto-Restart CAVA (if it's running)
|
||||||
|
killall -USR1 cava
|
||||||
|
|
||||||
14
.script/discord-pywalsync.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Path
|
||||||
|
WALCSS="$HOME/.cache/wal/colors.css"
|
||||||
|
BDCSS="$HOME/.config/BetterDiscord/data/stable/custom.css"
|
||||||
|
TEMPLATE="$HOME/.config/bd-template.css"
|
||||||
|
HEADER="$HOME/.config/bd-header.css"
|
||||||
|
|
||||||
|
# Overwrite Better Discord Custom CSS using pywal color palette
|
||||||
|
cat "$HEADER" > "$BDCSS"
|
||||||
|
echo "" >> "$BDCSS"
|
||||||
|
cat "$WALCSS" >> "$BDCSS"
|
||||||
|
echo "" >> "$BDCSS"
|
||||||
|
cat "$TEMPLATE" >> "$BDCSS"
|
||||||
2
.script/flameshot-gui.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
flameshot gui
|
||||||
32
.script/normalize-wall.sh
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# normalize_wallpapers.sh
|
||||||
|
# Renames wallpapers to have _ before trailing numbers
|
||||||
|
|
||||||
|
WALLPAPERS="$HOME/Pictures/Wallpaper"
|
||||||
|
cd "$WALLPAPERS" || { echo "Directory not found: $WALLPAPERS"; exit 1; }
|
||||||
|
|
||||||
|
for f in *.png *.jpg *.jpeg *.webp *.bmp; do
|
||||||
|
[[ -f "$f" ]] || continue
|
||||||
|
|
||||||
|
# Remove surrounding quotes if any
|
||||||
|
clean="${f%\"}"
|
||||||
|
clean="${clean#\"}"
|
||||||
|
|
||||||
|
# Split name and extension
|
||||||
|
name="${clean%.*}"
|
||||||
|
ext="${clean##*.}"
|
||||||
|
|
||||||
|
# If name ends with number without _, add _
|
||||||
|
if [[ "$name" =~ ^(.*[^0-9])([0-9]+)$ ]]; then
|
||||||
|
new_name="${BASH_REMATCH[1]}_${BASH_REMATCH[2]}.$ext"
|
||||||
|
|
||||||
|
# Only rename if different
|
||||||
|
if [[ "$clean" != "$new_name" ]]; then
|
||||||
|
mv -i "$clean" "$new_name"
|
||||||
|
echo "Renamed: $clean -> $new_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ All wallpapers normalized in $WALLPAPERS"
|
||||||
|
|
||||||
128
.script/rain.sh
Executable file
@@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Let it Rain!
|
||||||
|
# Copyright (C) 2011, 2013 by Yu-Jie Lin
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
# THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Blog: https://yjlv.blogstpo.com/2013/07/let-it-rain.html
|
||||||
|
# Gif : https://lh5.googleusercontent.com/-0WJ1vSZcFPs/UdadOwdPEXI/AAAAAAAAE-c/6kuH9hP3cUo/s800/rain.sh.gif
|
||||||
|
# Clip: https://youtu.be/EssRgAh2w_c
|
||||||
|
#
|
||||||
|
# Modified from falling-<3s.sh:
|
||||||
|
# https://yjlv.blogstpo.com/2011/02/time-to-have-falling-hearts-screensaver.html
|
||||||
|
|
||||||
|
RAINS=("|" "│" "┃" "┆" "┇" "┊" "┋" "╽" "╿")
|
||||||
|
COLORS=("\e[37m" "\e[37;1m")
|
||||||
|
# More from 256 color mode
|
||||||
|
for i in {244..255}; do
|
||||||
|
COLORS=("${COLORS[@]}" "\e[38;5;${i}m")
|
||||||
|
done
|
||||||
|
NRAINS=${#RAINS[@]}
|
||||||
|
NCOLORS=${#COLORS[@]}
|
||||||
|
NUM_RAIN_METADATA=5
|
||||||
|
|
||||||
|
|
||||||
|
sigwinch() {
|
||||||
|
TERM_WIDTH=$(tput cols)
|
||||||
|
TERM_HEIGHT=$(tput lines)
|
||||||
|
STEP_DURATION=0.025
|
||||||
|
((MAX_RAINS = TERM_WIDTH * TERM_HEIGHT / 4))
|
||||||
|
((MAX_RAIN_LENGTH = TERM_HEIGHT < 10 ? 1 : TERM_HEIGHT / 10))
|
||||||
|
# In percentage
|
||||||
|
((NEW_RAIN_ODD = TERM_HEIGHT > 50 ? 100 : TERM_HEIGHT * 2))
|
||||||
|
((NEW_RAIN_ODD = NEW_RAIN_ODD * 75 / 100))
|
||||||
|
((FALLING_ODD = TERM_HEIGHT > 25 ? 100 : TERM_HEIGHT * 4))
|
||||||
|
((FALLING_ODD = FALLING_ODD * 90 / 100))
|
||||||
|
}
|
||||||
|
|
||||||
|
do_exit() {
|
||||||
|
echo -ne "\e[${TERM_HEIGHT};1H\e[0K"
|
||||||
|
|
||||||
|
# Show cursor and echo stdin
|
||||||
|
echo -ne "\e[?25h"
|
||||||
|
stty echo
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
do_render() {
|
||||||
|
# Clean screen first
|
||||||
|
for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do
|
||||||
|
X=${rains[idx]}
|
||||||
|
Y=${rains[idx + 1]}
|
||||||
|
LENGTH=${rains[idx + 4]}
|
||||||
|
for ((y = Y; y < Y + LENGTH; y++)); do
|
||||||
|
(( y < 1 || y > TERM_HEIGHT )) && continue
|
||||||
|
echo -ne "\e[${y};${X}H "
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do
|
||||||
|
if ((100 * RANDOM / 32768 < FALLING_ODD)); then
|
||||||
|
# Falling
|
||||||
|
if ((++rains[idx + 1] > TERM_HEIGHT)); then
|
||||||
|
# Out of screen, bye sweet <3
|
||||||
|
rains=("${rains[@]:0:idx}"
|
||||||
|
"${rains[@]:idx+NUM_RAIN_METADATA:num_rains*NUM_RAIN_METADATA}")
|
||||||
|
((num_rains--))
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
X=${rains[idx]}
|
||||||
|
Y=${rains[idx + 1]}
|
||||||
|
RAIN=${rains[idx + 2]}
|
||||||
|
COLOR=${rains[idx + 3]}
|
||||||
|
LENGTH=${rains[idx + 4]}
|
||||||
|
for ((y = Y; y < Y + LENGTH; y++)); do
|
||||||
|
(( y < 1 || y > TERM_HEIGHT )) && continue
|
||||||
|
echo -ne "\e[${y};${X}H${COLOR}${RAIN}"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
trap do_exit TERM INT
|
||||||
|
trap sigwinch WINCH
|
||||||
|
# No echo stdin and hide the cursor
|
||||||
|
stty -echo
|
||||||
|
echo -ne "\e[?25l"
|
||||||
|
|
||||||
|
echo -ne "\e[2J"
|
||||||
|
rains=()
|
||||||
|
sigwinch
|
||||||
|
while :; do
|
||||||
|
read -n 1 -t $STEP_DURATION ch
|
||||||
|
case "$ch" in
|
||||||
|
q|Q)
|
||||||
|
do_exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if ((num_rains < MAX_RAINS)) && ((100 * RANDOM / 32768 < NEW_RAIN_ODD)); then
|
||||||
|
# Need new |, 1-based
|
||||||
|
RAIN="${RAINS[NRAINS * RANDOM / 32768]}"
|
||||||
|
COLOR="${COLORS[NCOLORS * RANDOM / 32768]}"
|
||||||
|
LENGTH=$((MAX_RAIN_LENGTH * RANDOM / 32768 + 1))
|
||||||
|
X=$((TERM_WIDTH * RANDOM / 32768 + 1))
|
||||||
|
Y=$((1 - LENGTH))
|
||||||
|
rains=("${rains[@]}" "$X" "$Y" "$RAIN" "$COLOR" "$LENGTH")
|
||||||
|
((num_rains++))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Let rain fall!
|
||||||
|
do_render
|
||||||
|
done
|
||||||
66
.script/reales-scale.sh
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Path for output
|
||||||
|
OUTPUT_DIR="$HOME/Pictures/Realesrgan"
|
||||||
|
REALES="$HOME/.realesrgan/realesrgan-ncnn-vulkan"
|
||||||
|
|
||||||
|
# Create output directory if not exists
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
# Default to current directory
|
||||||
|
INPUT_DIR="$(pwd)"
|
||||||
|
|
||||||
|
# Count files (jpg/jpeg/png only)
|
||||||
|
FILE_COUNT=$(find "$INPUT_DIR" -maxdepth 1 -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) | wc -l)
|
||||||
|
|
||||||
|
# Confirm
|
||||||
|
read -rp "Initiating RealESRGAN to process $FILE_COUNT files in $INPUT_DIR, are you sure? [y/N]: " confirm
|
||||||
|
case "$confirm" in
|
||||||
|
[yY][eE][sS]|[yY]) ;;
|
||||||
|
*) echo "Aborted."; exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Model
|
||||||
|
MODEL="realesr-animevideov3"
|
||||||
|
|
||||||
|
# Force NVIDIA GPU (index 1)
|
||||||
|
GPU_INDEX=1
|
||||||
|
|
||||||
|
# Scale options
|
||||||
|
echo "Choose scale factor:"
|
||||||
|
echo "1) 2x"
|
||||||
|
echo "2) 3x"
|
||||||
|
echo "3) 4x"
|
||||||
|
read -rp "Select scale (1-3): " scale_choice
|
||||||
|
|
||||||
|
case $scale_choice in
|
||||||
|
1) SCALE=2 ;;
|
||||||
|
2) SCALE=3 ;;
|
||||||
|
3) SCALE=4 ;;
|
||||||
|
*) echo "Invalid choice, defaulting to 2x"; SCALE=2 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Processing $FILE_COUNT images in $INPUT_DIR with model=$MODEL, scale=${SCALE}x, GPU=$GPU_INDEX..."
|
||||||
|
COUNT=0
|
||||||
|
|
||||||
|
# Process each file
|
||||||
|
for file in "$INPUT_DIR"/*.{jpg,jpeg,png}; do
|
||||||
|
[ -e "$file" ] || continue
|
||||||
|
COUNT=$((COUNT + 1))
|
||||||
|
|
||||||
|
filename=$(basename "$file")
|
||||||
|
base="${filename%.*}" # name without extension
|
||||||
|
output_file="$OUTPUT_DIR/${base}.png"
|
||||||
|
|
||||||
|
# Ensure no overwrite (add _1, _2, etc.)
|
||||||
|
i=1
|
||||||
|
while [ -f "$output_file" ]; do
|
||||||
|
output_file="$OUTPUT_DIR/${base}_$i.png"
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "[$COUNT/$FILE_COUNT] Processing: $filename -> $(basename "$output_file")"
|
||||||
|
$REALES -i "$file" -o "$output_file" -n "$MODEL" -s "$SCALE" -g "$GPU_INDEX" >/dev/null 2>&1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ All files processed. Output saved in $OUTPUT_DIR"
|
||||||
73
.script/scaler-wallpaper.sh
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# PATH
|
||||||
|
WALLPAPERS="$HOME/Pictures/Wallpaper"
|
||||||
|
BACKUP="$HOME/Pictures/.backup"
|
||||||
|
|
||||||
|
# Make dirs if they don't exist
|
||||||
|
mkdir -p "$BACKUP"
|
||||||
|
cd "$WALLPAPERS" || exit 1
|
||||||
|
|
||||||
|
# Process all images
|
||||||
|
for img in *.{jpg,jpeg,png,webp,bmp}; do
|
||||||
|
[[ -f "$img" ]] || continue
|
||||||
|
|
||||||
|
# Check resolution
|
||||||
|
read width height <<< $(identify -format "%w %h" "$img")
|
||||||
|
if [[ "$width" -eq 1920 && "$height" -eq 1080 ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
base="${img%.*}"
|
||||||
|
ext="png" # Converted wallpaper extension
|
||||||
|
orig_ext="${img##*.}" # Original extension for backup
|
||||||
|
|
||||||
|
# --- Determine next available name in wallpaper folder ---
|
||||||
|
max=0
|
||||||
|
for f in "$base"_*.${ext} "$base".${ext}; do
|
||||||
|
[[ -f "$f" ]] || continue
|
||||||
|
if [[ "$f" =~ ${base}_([0-9]+)\.${ext}$ ]]; then
|
||||||
|
(( ${BASH_REMATCH[1]} > max )) && max=${BASH_REMATCH[1]}
|
||||||
|
elif [[ "$f" == "$base.$ext" ]]; then
|
||||||
|
(( max < 1 )) && max=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Choose new file name
|
||||||
|
if [[ $max -eq 0 ]]; then
|
||||||
|
new_name="$base.$ext"
|
||||||
|
else
|
||||||
|
new_name="${base}_$((max + 1)).$ext"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Convert image
|
||||||
|
if magick "$img" -resize 1920x1080^ -gravity center -extent 1920x1080 "$new_name"; then
|
||||||
|
echo "Converted: $img -> $new_name"
|
||||||
|
|
||||||
|
# --- Move original to backup with incremental name and original extension ---
|
||||||
|
backup_base="$BACKUP/$base"
|
||||||
|
backup_max=0
|
||||||
|
for f in "$backup_base"_*.$orig_ext "$backup_base".$orig_ext; do
|
||||||
|
[[ -f "$f" ]] || continue
|
||||||
|
if [[ "$f" =~ ${backup_base}_([0-9]+)\.${orig_ext}$ ]]; then
|
||||||
|
(( ${BASH_REMATCH[1]} > backup_max )) && backup_max=${BASH_REMATCH[1]}
|
||||||
|
elif [[ "$f" == "$backup_base.$orig_ext" ]]; then
|
||||||
|
(( backup_max < 1 )) && backup_max=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $backup_max -eq 0 ]]; then
|
||||||
|
backup_name="$BACKUP/$base.$orig_ext"
|
||||||
|
else
|
||||||
|
backup_name="$BACKUP/${base}_$((backup_max + 1)).$orig_ext"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv "$img" "$backup_name"
|
||||||
|
echo "Moved original to backup: $backup_name"
|
||||||
|
else
|
||||||
|
echo "❌ Failed to convert: $img"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✅ All Wallpapers has been processed $WALLPAPERS"
|
||||||
|
|
||||||
72
.script/sort-file.sh
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Directory you want to organize (default: current directory)
|
||||||
|
DIR="${1:-.}"
|
||||||
|
DIR="$(realpath "$DIR")"
|
||||||
|
|
||||||
|
# Ask for confirmation
|
||||||
|
read -p "Sort the files in $DIR ? [y/N]: " confirm
|
||||||
|
case "$confirm" in
|
||||||
|
[yY][eE][sS]|[yY])
|
||||||
|
echo "Sorting files in $DIR..."
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Aborted."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Define groups of extensions
|
||||||
|
photos=("jpg" "jpeg" "png" "gif" "bmp" "tiff" "webp")
|
||||||
|
videos=("mp4" "mkv" "avi" "mov" "flv" "wmv" "webm")
|
||||||
|
documents=("doc" "docx" "odt" "pdf" "txt" "rtf" "xlsx" "xls" "ppt" "pptx" "csv")
|
||||||
|
compressed=("zip" "tar" "gz" "rar" "7z" "bz2")
|
||||||
|
audio=("mp3" "wav" "flac" "aac" "ogg" "m4a")
|
||||||
|
|
||||||
|
# Create function to check if value in array
|
||||||
|
in_array() {
|
||||||
|
local e match="$1"; shift
|
||||||
|
for e; do [[ "$e" == "$match" ]] && return 0; done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop through files
|
||||||
|
for file in "$DIR"/*; do
|
||||||
|
[ -f "$file" ] || continue
|
||||||
|
|
||||||
|
ext="${file##*.}"
|
||||||
|
ext=$(echo "$ext" | tr '[:upper:]' '[:lower:]') # normalize lowercase
|
||||||
|
|
||||||
|
target_dir="Others" # default group
|
||||||
|
|
||||||
|
if in_array "$ext" "${photos[@]}"; then
|
||||||
|
target_dir="Media/Photos"
|
||||||
|
elif in_array "$ext" "${videos[@]}"; then
|
||||||
|
target_dir="Media/Videos"
|
||||||
|
elif in_array "$ext" "${documents[@]}"; then
|
||||||
|
target_dir="Documents"
|
||||||
|
elif in_array "$ext" "${compressed[@]}"; then
|
||||||
|
target_dir="Compressed"
|
||||||
|
elif in_array "$ext" "${audio[@]}"; then
|
||||||
|
target_dir="Media/Audio"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$DIR/$target_dir"
|
||||||
|
|
||||||
|
# Generate new filename if already exists
|
||||||
|
base_name="$(basename "$file")"
|
||||||
|
dest="$DIR/$target_dir/$base_name"
|
||||||
|
|
||||||
|
if [ -e "$dest" ]; then
|
||||||
|
name="${base_name%.*}"
|
||||||
|
ext_only="${base_name##*.}"
|
||||||
|
n=1
|
||||||
|
while [ -e "$DIR/$target_dir/${name}_$n.$ext_only" ]; do
|
||||||
|
((n++))
|
||||||
|
done
|
||||||
|
dest="$DIR/$target_dir/${name}_$n.$ext_only"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv "$file" "$dest"
|
||||||
|
echo "Moved: $(basename "$file") → $target_dir/$(basename "$dest")"
|
||||||
|
done
|
||||||
108
.script/wallpaper-picker.sh
Executable file
@@ -0,0 +1,108 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Config and Path
|
||||||
|
WALLPAPERS="$HOME/Pictures/Wallpaper"
|
||||||
|
CACHE_DIR="$HOME/.cache/wallpaper-picker"
|
||||||
|
THUMB_WIDTH="250"
|
||||||
|
THUMB_HEIGHT="141"
|
||||||
|
THEMES="$HOME/.config/wal/themes"
|
||||||
|
WAL_BIN="$HOME/.local/bin/wal"
|
||||||
|
HOOKS="$HOME/.config/wal/hooks/hooks.sh"
|
||||||
|
FASTFETCH_CFG="$HOME/.config/fastfetch/config.jsonc"
|
||||||
|
|
||||||
|
# Make the thumb dir if it's not exist
|
||||||
|
mkdir -p "$CACHE_DIR"
|
||||||
|
|
||||||
|
# Generate thumbnail
|
||||||
|
generate_thumbnail(){
|
||||||
|
local input="$1"
|
||||||
|
local output="$2"
|
||||||
|
magick "$input" -thumbnail "${THUMB_WIDTH}x${THUMB_HEIGHT}^" \
|
||||||
|
-gravity center -extent "${THUMB_WIDTH}x${THUMB_HEIGHT}" "$output"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate menu with thumbnails
|
||||||
|
generate_menu(){
|
||||||
|
# Find all images and sort naturally
|
||||||
|
while IFS= read -r img; do
|
||||||
|
[[ -f "$img" ]] || continue
|
||||||
|
thumb="$CACHE_DIR/$(basename "${img%.*}").png"
|
||||||
|
|
||||||
|
# Generate thumbnail if missing or outdated
|
||||||
|
if [[ ! -f "$thumb" ]] || [[ "$img" -nt "$thumb" ]]; then
|
||||||
|
generate_thumbnail "$img" "$thumb"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output for wofi
|
||||||
|
echo -en "img:$thumb\x00info:$(basename "$img")\x1f$img\n"
|
||||||
|
done < <(find "$WALLPAPERS" -maxdepth 1 -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) | sort -V)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Run wofi with thumbnails
|
||||||
|
CHOICE=$(generate_menu | wofi --show dmenu \
|
||||||
|
--cache-file /dev/null \
|
||||||
|
--define "image-size=${THUMB_WIDTH}x${THUMB_HEIGHT}" \
|
||||||
|
--columns 3 \
|
||||||
|
--allow-images \
|
||||||
|
--insensitive \
|
||||||
|
--sort-order=default \
|
||||||
|
--prompt "Select Wallpaper" \
|
||||||
|
--conf ~/.config/wofi/wallpaper
|
||||||
|
)
|
||||||
|
|
||||||
|
[ -z "$CHOICE" ] && exit 0
|
||||||
|
WAL_NAME=$(basename "$CHOICE")
|
||||||
|
SELECTED="$WALLPAPERS/$WAL_NAME"
|
||||||
|
|
||||||
|
# Extract THEME name
|
||||||
|
BASENAME=$(basename "$SELECTED")
|
||||||
|
THEME="${BASENAME%%_*}"
|
||||||
|
|
||||||
|
# Default
|
||||||
|
WIFENAME=$(echo "$BASENAME" | awk -F '[_.]' '{print $2}' | sed 's/[0-9]*$//')
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/${THEME,,}_small.png"
|
||||||
|
|
||||||
|
# Mapping manual
|
||||||
|
if [[ "$THEME" =~ "Endfield" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_endfield.png"
|
||||||
|
elif [[ "$THEME" =~ "Arknight" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_arknights.png"
|
||||||
|
elif [[ "$THEME" =~ "Wuthering" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_wuthering.png"
|
||||||
|
elif [[ "$THEME" =~ "Genshin" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_genshin.png"
|
||||||
|
elif [[ "$THEME" =~ "StarRail" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_starrail.png"
|
||||||
|
elif [[ "$THEME" =~ "Zenless" ]]; then
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_zenless.png"
|
||||||
|
else
|
||||||
|
LOGO_PATH="$HOME/.config/fastfetch/logo/john_wuthering.png"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply theme
|
||||||
|
THEME_FILE="$THEMES/$THEME.json"
|
||||||
|
if [ -f "$THEME_FILE" ]; then
|
||||||
|
"$WAL_BIN" --theme "$THEME_FILE"
|
||||||
|
else
|
||||||
|
"$WAL_BIN" -i "$SELECTED"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update GNOME wallpaper
|
||||||
|
gsettings set org.gnome.desktop.background picture-uri-dark "file://$SELECTED"
|
||||||
|
gsettings set org.gnome.desktop.screensaver picture-uri "file://$SELECTED"
|
||||||
|
|
||||||
|
# Update fastfetch config
|
||||||
|
tmpfile=$(mktemp)
|
||||||
|
jq --arg logo "$LOGO_PATH" \
|
||||||
|
--arg wife "$WIFENAME" \
|
||||||
|
'
|
||||||
|
.logo.source = $logo
|
||||||
|
| (.modules[] | select(.key? == "wife ").format) = $wife
|
||||||
|
' "$FASTFETCH_CFG" > "$tmpfile" && mv "$tmpfile" "$FASTFETCH_CFG"
|
||||||
|
|
||||||
|
touch "$HOME/.config/fastfetch/.reload_flag"
|
||||||
|
|
||||||
|
# Run pywal hooks
|
||||||
|
$HOOKS
|
||||||
|
$HOME/.local/bin/pywalfox update
|
||||||
20
.script/wlogout-pywalsync.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Path
|
||||||
|
WALLPAPER=$(gsettings get org.gnome.desktop.background picture-uri-dark \
|
||||||
|
| sed -E "s/^'file:\/\///; s/^\"file:\/\///; s/'$//; s/\"$//")
|
||||||
|
WALL_DIR="$HOME/Pictures/Wallpaper"
|
||||||
|
WALL_NAME="$(basename "$WALLPAPER")"
|
||||||
|
BLUR_BG="$HOME/.config/wlogout/images/wallpaper_blurred.png"
|
||||||
|
WALCSS="$HOME/.cache/wal/colors-waybar.css"
|
||||||
|
WL_TEMPLATE="$HOME/.config/wlogout/style-template.css"
|
||||||
|
WLCSS="$HOME/.config/wlogout/style.css"
|
||||||
|
|
||||||
|
mkdir -p "$(dirname "$BLUR_BG")"
|
||||||
|
|
||||||
|
# Generate Blurred Wallpaper
|
||||||
|
magick "$WALL_DIR/$WALL_NAME" -resize 1920x1080^ -gravity center -extent 1920x1080 -blur 0x8 -fill black -colorize 65% "$BLUR_BG"
|
||||||
|
|
||||||
|
|
||||||
|
# === UPDATE STYLE.CSS ===
|
||||||
|
cat "$WL_TEMPLATE" > "$WLCSS"
|
||||||
7
BetterDiscord/bd-header.css
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* @name Rion Zaphkiel (Pywal Integrated)
|
||||||
|
* @version 1.2.1
|
||||||
|
* @description A custom theme for BetterDiscord that integrates with Pywal by pasting the color cache.
|
||||||
|
* @author Rion
|
||||||
|
*/
|
||||||
|
|
||||||
3631
BetterDiscord/bd-template.css
Normal file
BIN
Wallpaper/Arknight_Entelechia.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
Wallpaper/Arknight_Kal'tsit.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
Wallpaper/Arknight_Lemuen.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
Wallpaper/Arknight_Mostima.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
Wallpaper/Arknight_Theresa.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
Wallpaper/Arknight_Wiš'adel.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
Wallpaper/Arknights_Amiya.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
Wallpaper/Arknights_Amiya_2.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
Wallpaper/Endfield_Perlica.png
Normal file
|
After Width: | Height: | Size: 4.3 MiB |
BIN
Wallpaper/Endfield_Perlica_2.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
Wallpaper/Endfields_Endministrator.png
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
Wallpaper/Fate_Artoria Pendragon.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
Wallpaper/Fate_Artoria Pendragon_2.png
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
Wallpaper/Genshin_Ayaka.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
Wallpaper/Genshin_Ayaka_2.png
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
BIN
Wallpaper/Genshin_Ayaka_3.png
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
Wallpaper/Genshin_Chiori.png
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
Wallpaper/Genshin_Escoffier.png
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
Wallpaper/Genshin_Fischl.png
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
Wallpaper/Genshin_Furina.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
Wallpaper/Genshin_Furina_2.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
Wallpaper/Genshin_Ganyu.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
Wallpaper/Genshin_Hutao.png
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
Wallpaper/Genshin_Hutao_2.png
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
Wallpaper/Genshin_Jingliu.png
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
Wallpaper/Genshin_Kokomi.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
Wallpaper/Genshin_Lumine.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
Wallpaper/Genshin_Lumine_10.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
Wallpaper/Genshin_Lumine_2.png
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
Wallpaper/Genshin_Lumine_3.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
Wallpaper/Genshin_Lumine_4.png
Normal file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
Wallpaper/Genshin_Lumine_5.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
Wallpaper/Genshin_Lumine_6.png
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
Wallpaper/Genshin_Lumine_7.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
Wallpaper/Genshin_Lumine_8.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
Wallpaper/Genshin_Lumine_9.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
Wallpaper/Genshin_Navia.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |