Compare commits

...

16 commits

Author SHA1 Message Date
Petar Kapriš
0231e0718c Remove pomodoro related files
Currently using Solanum, so these are no longer necessary
2026-05-13 21:33:24 +02:00
Petar Kapriš
d68c5d0d0a Add ytdl options to https 2026-05-13 21:33:24 +02:00
Petar Kapriš
aa58c91206 Disable workspace_back_and_forth in hypr 2026-05-13 21:33:24 +02:00
Petar Kapriš
d1aa48acd7 Change browser in mimeapps to librewolf 2026-05-13 21:33:24 +02:00
Petar Kapriš
68bc595c8b hypr: accept all JaKooLit updates 2026-05-13 21:22:17 +02:00
Petar Kapriš
a6e1cf7ed0 wlogout: accept JaKooLit update 2026-05-13 20:59:35 +02:00
Petar Kapriš
952cb17005 waybar: waybar-weather, accept JaKooLit update 2026-05-13 20:58:03 +02:00
Petar Kapriš
7528fc1ef3 waybar: accept JaKooLit updates 2026-05-13 20:55:52 +02:00
Petar Kapriš
5c46f2e62a wallust: accept JaKooLit update 2026-05-13 20:44:46 +02:00
Petar Kapriš
fd205b3db5 swaync: accept JaKooLit updates 2026-05-13 20:43:12 +02:00
Petar Kapriš
61667e4f40 swappy: accept JaKooLit update 2026-05-13 20:42:25 +02:00
Petar Kapriš
4f1915f817 rofi: accept JaKooLit updates 2026-05-13 20:41:13 +02:00
Petar Kapriš
27ae3143be quickshell: accept JaKooLit update 2026-05-13 20:40:04 +02:00
Petar Kapriš
7c2af82416 fastfetch: accept JaKooLit updates 2026-05-13 20:35:42 +02:00
Petar Kapriš
3bb54dcb8b cava: accept jakoolit update 2026-05-13 07:22:00 +02:00
Petar Kapriš
2ef49ad89a btop: accept hyprland dots updates 2026-05-13 07:21:01 +02:00
345 changed files with 11574 additions and 2729 deletions

View file

@ -1,23 +1,18 @@
#? Config file for btop v.1.4.7
#? Config file for btop v. 1.2.13
#* 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"
color_theme = "$HOME/.config/btop/themes/catppuccin_macchiato.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = true
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
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = false
#* Option to disable presets. Either the default preset, custom presets, or all presets.
#* "Off" All presets are enabled.
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
disable_presets = "Off"
force_tty = False
#* 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.
@ -27,16 +22,10 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = false
#* Disable all mouse events.
disable_mouse = false
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = true
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
terminal_sync = true
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.
@ -48,9 +37,6 @@ 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"
@ -60,89 +46,74 @@ 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 net proc"
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
shown_boxes = "proc cpu mem net"
#* 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"
proc_sorting = "cpu direct"
#* Reverse sorting order, True or False.
proc_reversed = false
proc_reversed = False
#* Show processes as a tree.
proc_tree = false
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = true
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = true
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
proc_per_core = False
#* Show process memory as bytes instead of percent.
proc_mem_bytes = true
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = true
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
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = false
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = false
#* Should the process list follow the selected process when detailed view is open.
proc_follow_detailed = true
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = false
#* Should cpu and memory usage display be preserved for dead processes when paused.
keep_dead_proc_usage = false
proc_filter_kernel = 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"
cpu_graph_upper = "total"
#* 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"
cpu_graph_lower = "total"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = true
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = false
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = false
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = true
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = true
show_uptime = True
#* Show cpu temperature.
check_temp = true
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
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.
@ -154,133 +125,88 @@ cpu_core_map = ""
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = false
base_10_sizes = True
#* Show CPU frequency.
show_cpu_freq = true
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
freq_mode = "first"
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
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"
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = true
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = false
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = true
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = true
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = true
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = true
show_disks = False
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = true
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = true
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
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = false
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = true
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = false
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = false
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
swap_upload_download = false
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = true
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = true
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
show_battery = False
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = true
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* 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"
#* Automatically save current settings to config file on exit.
save_config_on_exit = true
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = true
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = true
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = true
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
shown_gpus = "nvidia amd intel apple"
#* 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 = ""

View file

@ -1,4 +1,4 @@
# /* ----------- 💫 https://github.com/JaKooLit 💫 -------- */ #
# /* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ #
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.

View file

@ -0,0 +1,86 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
},
"type": "small"
},
"display": {
"separator": " -> "
},
"modules": [
"break",
{
"type": "title",
"keyWidth": 10,
"format": " {6}{7}{8}"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "kernel",
"key": " ",
"keyColor": "yellow"
},
{
"keyColor": "blue",
"key": " ",
"text": "echo Jakoolit: v${DOTS_VERSION}",
"type": "command"
},
{
"type": "wm",
"key": " ",
"keyColor": "magenta"
},
{
"type": "shell",
"key": " ",
"keyColor": "yellow"
},
{
"type": "terminal",
"key": " ",
"keyColor": "blue"
},
/*
{
"type": "packages",
"key": "󰏖 ",
"keyColor": "yellow"
},
*/
{
"type": "memory",
"key": "󰍛 ",
"keyColor": "magenta",
// format: used / total
"format": "{1} / {2}"
},
{
"type": "uptime",
"key": "󰔛 ",
"keyColor": "green"
},
{
"type": "command",
"key": "󱦟 ",
"keyColor": "magenta",
"text": "echo $(( ($(date +%s) - $(stat -c %W /)) / 86400 )) days"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "custom",
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
},
"break"
]
}

View file

@ -1,85 +1,65 @@
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
/**
*
*
*
*
*/
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
// "type": "auto",
// x."source": "~/.config/fastfetch/logo.png",
// "height": 10,
"padding": {
"top": 2
"top": 3,
"right": 2
},
"type": "small"
},
"display": {
"separator": " -> "
"separator": " "
},
"modules": [
"break",
"break",
"break",
"break",
{
"type": "title",
"keyWidth": 10,
"format": " {6}{7}{8}"
},
{
"type": "custom",
"format": " ─────────────────────────── "
"type": "os",
"key": " ",
"keyColor": "31"
},
{
"type": "kernel",
"key": " ",
"keyColor": "yellow"
"key": " ",
"keyColor": "32"
},
{
"keyColor": "blue",
"key": " ",
"text": "echo Jakoolit: v${DOTS_VERSION}",
"type": "command"
"type": "shell",
"key": " ",
"keyColor": "34"
},
{
"type": "terminal",
"key": " ",
"keyColor": "35"
},
{
"type": "wm",
"key": " ",
"keyColor": "magenta"
},
{
"type": "shell",
"key": " ",
"keyColor": "yellow"
},
{
"type": "terminal",
"key": " ",
"keyColor": "blue"
},
/*
{
"type": "packages",
"key": "󰏖 ",
"keyColor": "yellow"
},
*/
{
"type": "memory",
"key": "󰍛 ",
"keyColor": "magenta",
// format: used / total
"format": "{1} / {2}"
"keyColor": "36"
},
{
"type": "uptime",
"key": "󰔛 ",
"keyColor": "green"
"key": " ",
"keyColor": "31"
},
{
"type": "command",
"key": "󱦟 ",
"keyColor": "magenta",
"text": "echo $(( ($(date +%s) - $(stat -c %W /)) / 86400 )) days"
},
{
"type": "custom",
"format": " ─────────────────────────── "
},
{
"type": "custom",
"format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m "
"key": " ",
"keyColor": "36",
"shell": "/bin/bash",
"text": "echo \"KoolDots: v$DOTS_VERSION\""
},
"break"
]

View file

@ -30,7 +30,7 @@
"type": "command",
"key": " ",
"keyColor": "blue",
"text": "echo JaKooLit Version: ${DOTS_VERSION}"
"text": "echo LinuxBeginnings Version: ${DOTS_VERSION}"
},
{
"type": "wm",

View file

@ -1,4 +1,4 @@
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
@ -30,7 +30,7 @@
{
"type": "command",
"key": " ├  ",
"format": "echo JaKooLit Version: ${DOTS_VERSION}",
"format": "echo LinuxBeginnings Version: ${DOTS_VERSION}",
"keyColor": "31"
},
{

View file

@ -1,32 +1,69 @@
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
// "type": "kitty",
// "source": "~/.config/fastfetch/ubuntu.png",
// "height": 10,
// "width": 20,
"type": "small",
"padding": {
"top": 1
"top": 3,
"left": 1
}
},
"display": {
"separator": " 󰑃 "
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
},
{
"type": "host",
"key": " PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰍛",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├󰍛",
"keyColor": "green"
},
{
"type": "disk",
"key": "└ └",
"keyColor": "green"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "os",
"key": " DISTRO",
"key": " OS",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "command",
"key": "│ ├",
"text": "echo JaKooLit Version: ${DOTS_VERSION}",
"type": "bios",
"key": "│ ├",
"keyColor": "yellow"
},
{
@ -36,12 +73,17 @@
},
{
"type": "shell",
"key": "│ └",
"key": "└ └",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " DE/WM",
"key": " WM",
"keyColor": "blue"
},
{
"type": "lm",
"key": "│ ├",
"keyColor": "blue"
},
{
@ -50,82 +92,39 @@
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminalfont",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ └",
"key": "└ └",
"keyColor": "blue"
},
{
"type": "host",
"key": "󰌢 SYSTEM",
"keyColor": "green"
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌─────────────────Uptime / Age / DT──────────────────┐"
},
{
"type": "cpu",
"key": "│ ├󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰻑",
"format": "{2}",
"keyColor": "green"
},
{
"type": "display",
"key": "│ ├󰍹",
"keyColor": "green",
"compactType": "original-with-refresh-rate"
},
{
"type": "memory",
"key": "│ ├󰾆",
"keyColor": "green"
},
{
"type": "swap",
"key": "│ ├󰓡",
"keyColor": "green"
"type": "command",
"key": " OS Age ",
"keyColor": "magenta",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
},
{
"type": "uptime",
"key": "│ ├󰅐",
"keyColor": "green"
},
{
"type": "display",
"key": "│ └󰍹",
"keyColor": "green"
},
{
"type": "sound",
"key": " AUDIO",
"format": "{2}",
"key": " Uptime ",
"keyColor": "magenta"
},
{
"type": "player",
"key": "│ ├󰥠",
"type": "command",
"key": " KoolDots Ver ",
"text": "echo v${DOTS_VERSION}",
"keyColor": "magenta"
},
{
"type": "media",
"key": "│ └󰝚",
"keyColor": "magenta"
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break"
]

View file

@ -0,0 +1,132 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 1
}
},
"display": {
"separator": " 󰑃 "
},
"modules": [
"break",
{
"type": "os",
"key": " DISTRO",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "command",
"key": "│ ├",
"text": "echo LinuxBeginnings Version: ${DOTS_VERSION}",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "│ └",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " DE/WM",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminalfont",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ └",
"keyColor": "blue"
},
{
"type": "host",
"key": "󰌢 SYSTEM",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├󰻠",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰻑",
"format": "{2}",
"keyColor": "green"
},
{
"type": "display",
"key": "│ ├󰍹",
"keyColor": "green",
"compactType": "original-with-refresh-rate"
},
{
"type": "memory",
"key": "│ ├󰾆",
"keyColor": "green"
},
{
"type": "swap",
"key": "│ ├󰓡",
"keyColor": "green"
},
{
"type": "uptime",
"key": "│ ├󰅐",
"keyColor": "green"
},
{
"type": "display",
"key": "│ └󰍹",
"keyColor": "green"
},
{
"type": "sound",
"key": " AUDIO",
"format": "{2}",
"keyColor": "magenta"
},
{
"type": "player",
"key": "│ ├󰥠",
"keyColor": "magenta"
},
{
"type": "media",
"key": "│ └󰝚",
"keyColor": "magenta"
},
"break"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/Arch-Logo-2.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2,
},
},
"display": {
"separator": " ",
"color": {
"keys": "white",
},
"key": {
"width": 18,
},
"brightColor": false,
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m",
},
{
"type": "os",
"key": " {icon} OS",
},
{
"type": "kernel",
"key": " {icon} Kernel",
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\"",
},
{
"type": "uptime",
"key": " {icon} Uptime",
},
{
"type": "packages",
"key": " {icon} Packages",
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)",
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m",
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}",
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true,
},
{
"type": "gpu",
"key": " {icon} GPU",
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75,
},
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})",
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m",
},
{
"type": "wm",
"key": " {icon} WM",
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}",
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate",
},
{
"type": "shell",
"key": " {icon} Shell",
},
{
"type": "terminal",
"key": " {icon} Terminal",
},
{
"type": "editor",
"key": " {icon} Editor",
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break",
],
}

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/debian_swirl.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2,
},
},
"display": {
"separator": " ",
"color": {
"keys": "white",
},
"key": {
"width": 18,
},
"brightColor": false,
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m",
},
{
"type": "os",
"key": " {icon} OS",
},
{
"type": "kernel",
"key": " {icon} Kernel",
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\"",
},
{
"type": "uptime",
"key": " {icon} Uptime",
},
{
"type": "packages",
"key": " {icon} Packages",
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)",
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m",
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}",
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true,
},
{
"type": "gpu",
"key": " {icon} GPU",
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75,
},
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})",
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m",
},
{
"type": "wm",
"key": " {icon} WM",
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}",
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate",
},
{
"type": "shell",
"key": " {icon} Shell",
},
{
"type": "terminal",
"key": " {icon} Terminal",
},
{
"type": "editor",
"key": " {icon} Editor",
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break",
],
}

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/fedora.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2,
},
},
"display": {
"separator": " ",
"color": {
"keys": "white",
},
"key": {
"width": 18,
},
"brightColor": false,
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m",
},
{
"type": "os",
"key": " {icon} OS",
},
{
"type": "kernel",
"key": " {icon} Kernel",
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\"",
},
{
"type": "uptime",
"key": " {icon} Uptime",
},
{
"type": "packages",
"key": " {icon} Packages",
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)",
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m",
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}",
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true,
},
{
"type": "gpu",
"key": " {icon} GPU",
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75,
},
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})",
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m",
},
{
"type": "wm",
"key": " {icon} WM",
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}",
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate",
},
{
"type": "shell",
"key": " {icon} Shell",
},
{
"type": "terminal",
"key": " {icon} Terminal",
},
{
"type": "editor",
"key": " {icon} Editor",
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break",
],
}

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/gentoo1.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2
}
},
"display": {
"separator": " ",
"color": {
"keys": "white"
},
"key": {
"width": 18
},
"brightColor": false
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m"
},
{
"type": "os",
"key": " {icon} OS"
},
{
"type": "kernel",
"key": " {icon} Kernel"
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\""
},
{
"type": "uptime",
"key": " {icon} Uptime"
},
{
"type": "packages",
"key": " {icon} Packages"
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)"
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m"
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}"
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true
},
{
"type": "gpu",
"key": " {icon} GPU"
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75
}
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})"
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m"
},
{
"type": "wm",
"key": " {icon} WM"
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}"
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate"
},
{
"type": "shell",
"key": " {icon} Shell"
},
{
"type": "terminal",
"key": " {icon} Terminal"
},
{
"type": "editor",
"key": " {icon} Editor"
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break"
]
}

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/nixos.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2,
},
},
"display": {
"separator": " ",
"color": {
"keys": "white",
},
"key": {
"width": 18,
},
"brightColor": false,
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m",
},
{
"type": "os",
"key": " {icon} OS",
},
{
"type": "kernel",
"key": " {icon} Kernel",
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\"",
},
{
"type": "uptime",
"key": " {icon} Uptime",
},
{
"type": "packages",
"key": " {icon} Packages",
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)",
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m",
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}",
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true,
},
{
"type": "gpu",
"key": " {icon} GPU",
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75,
},
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})",
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m",
},
{
"type": "wm",
"key": " {icon} WM",
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}",
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate",
},
{
"type": "shell",
"key": " {icon} Shell",
},
{
"type": "terminal",
"key": " {icon} Terminal",
},
{
"type": "editor",
"key": " {icon} Editor",
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break",
],
}

View file

@ -0,0 +1,150 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-direct",
"source": "$HOME/.config/fastfetch/images/ubuntu.png",
// "type": "small",
"width": 20,
"height": 10,
"padding": {
"top": 4,
"right": 4,
"left": 2
}
},
"display": {
"separator": " ",
"color": {
"keys": "white"
},
"key": {
"width": 18
},
"brightColor": false
},
"modules": [
"break",
"break",
// Identity header
// {
// "type": "custom",
// "format": "\u001b[1m\u001b[38;5;197m <---- KoolDots ---->\u001b[0m"
// },
// "break",
"break",
// System
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mSYSTEM\u001b[0m \u001b[38;5;197m──────────────────────────\u001b[0m"
},
{
"type": "os",
"key": " {icon} OS"
},
{
"type": "kernel",
"key": " {icon} Kernel"
},
{
"type": "command",
"key": " {icon} Hostname",
"text": "printf '%s@%s' \"$USER\" \"$(hostname)\""
},
{
"type": "uptime",
"key": " {icon} Uptime"
},
{
"type": "packages",
"key": " {icon} Packages"
},
{
"type": "disk",
"key": " {icon} OS Age",
"folders": "/",
"format": "installed {create-time:10} ({days} days ago)"
},
"break",
// Hardware
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mHARDWARE\u001b[0m \u001b[38;5;197m────────────────────────\u001b[0m"
},
{
"type": "host",
"key": " {icon} Machine",
"format": "{name}"
},
{
"type": "cpu",
"key": " {icon} CPU",
"showPeCoreCount": true
},
{
"type": "gpu",
"key": " {icon} GPU"
},
{
"type": "memory",
"key": " {icon} RAM",
"percent": {
"type": 3,
"green": 40,
"yellow": 75
}
},
{
"type": "disk",
"key": " {icon} Disk",
"format": "{size-used} / {size-total} ({size-percentage})"
},
"break",
// Desktop
{
"type": "custom",
"format": "\u001b[38;5;197m── \u001b[1m\u001b[38;5;231mDESKTOP\u001b[0m \u001b[38;5;197m─────────────────────────\u001b[0m"
},
{
"type": "wm",
"key": " {icon} WM"
},
{
"type": "command",
"key": "  KoolDots",
"text": "echo v${DOTS_VERSION}"
},
{
"type": "display",
"key": " {icon} Display",
"compactType": "original-with-refresh-rate"
},
{
"type": "shell",
"key": " {icon} Shell"
},
{
"type": "terminal",
"key": " {icon} Terminal"
},
{
"type": "editor",
"key": " {icon} Editor"
},
"break",
// Footer
// {
// black dark pink hot pink light pink white
// "type": "custom",
// "format": " \u001b[48;5;232m \u001b[48;5;53m \u001b[48;5;89m \u001b[48;5;125m \u001b[48;5;161m \u001b[48;5;197m \u001b[48;5;198m \u001b[48;5;199m \u001b[48;5;205m \u001b[48;5;211m \u001b[48;5;224m \u001b[48;5;231m \u001b[0m"
// },
"break"
]
}

View file

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# default Monitor config
# Monitor Configuration

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
KooL's Hyprland-Dots

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# This is a file where you put your own default apps, default search Engine etc
@ -11,8 +16,8 @@
$edit=${EDITOR:-nano}
# These two are for UserKeybinds.conf & Waybar Modules
$term = foot # Terminal
$files = nemo # File Manager
$term = kitty # Terminal
$files = thunar # File Manager
# Default Search Engine for ROFI Search (SUPER S)
$Search_Engine = "https://www.google.com/search?q={}"

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf

View file

@ -1,3 +1,9 @@
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid.
# See notes on Laptops.conf

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
# These configs are mostly for laptops. This is addemdum to Keybinds.conf

View file

@ -1,3 +1,8 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Commands and Apps to be executed at launch

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
animations {
enabled = yes

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Decoration Settings
# Hyprland Wiki Links
@ -37,13 +42,13 @@ decoration {
color_inactive = $color10
}
blur {
enabled = true
size = 6
passes = 2
ignore_opacity = true
passes = 3
new_optimizations = true
xray = true
ignore_opacity = true
special = true
popups = true
}

View file

@ -1,11 +1,15 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict
# if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc
# See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables
# See also Laptops.conf for laptops keybinds
# /* ---- ✴️ Variables ✴️ ---- */ #
$mainMod = SUPER
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# User Settings
# This is where you put your own settings as this will not be touched during update
# if the upgrade.sh is used.
@ -44,3 +49,7 @@ input {
left_handed = 0
}
}
binds {
workspace_back_and_forth = false
}

View file

@ -1,6 +1,18 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# For window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# This file is used to add or overwrite window rules
# This file will not be modified during dotfiles updates
# Optional Layer rules
# To Resolve blurred corners in rofi Uncomment
# layerrule = blur on, ignore_alpha 0, match:namespace rofi

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# NOTE: THIS IS NOT BEING SOURCED by hyprland
# It is only here as a guide if you want to do it manually

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Place your new scripts here.
# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this directory, and edit.

View file

@ -0,0 +1,237 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# RainbowBorders-low-cpu.sh — low-overhead animated rainbow border for Hyprland
#
# Goal
# Animate Hyprland's active border with a rotating rainbow gradient while
# minimizing CPU usage on older systems by:
# - Using a modest update rate (default 1.0s) and larger angle steps
# - Avoiding subshell-heavy work inside the loop
# - Using Hyprland's command socket via socat when available
# - Quoting/validating inputs and suppressing noisy output
# - Preventing multiple concurrent instances
# - Optionally restoring the previous border value on exit
#
# Credits
# Initial source/idea by: DemiGoD
# Adaptation and optimization for low-CPU usage by: Hyprland-Dots maintainers
#
# Usage
# You can customize behavior via environment variables when launching:
# RB_INTERVAL Float seconds between updates (default: 1.0)
# RB_STEP_DEG Integer degrees per tick (default: 10)
# RB_START_DEG Integer starting angle (default: 0)
# RB_TARGET Hypr option to update (default: general:col.active_border)
# RB_COLORS Space-separated color list (default: 10-color rainbow below)
# RB_RESTORE If "1", attempt to restore previous value on exit (loop mode; default: 1)
# RB_LOCKFILE Path to a PID lock file (loop mode; default: /tmp/hypr-rainbowborders.lock)
# RB_TRANSPORT auto|socat|hyprctl (default: auto)
# - socat: send each command via Hyprland's command socket
# using socat (one short-lived connection per tick)
# - hyprctl: spawn hyprctl each tick
# - auto: prefer socat if possible, otherwise hyprctl
# RB_ONCE 1 to apply once and exit (no animation; default: 0)
#
# Example (slower animation):
# RB_INTERVAL=1.5 RB_STEP_DEG=12 ~/.config/hypr/UserScripts/RainbowBorders-low-cpu.sh &
#
# Notes
# - This focuses on the active border only. Animating inactive borders too
# will increase updates and CPU usage.
# - Higher RB_INTERVAL (e.g., 1.02.0s) and larger RB_STEP_DEG (1020)
# reduce per-second work substantially.
set -u
# Defaults (can be overridden by env vars)
RB_INTERVAL="${RB_INTERVAL:-1.0}"
RB_STEP_DEG="${RB_STEP_DEG:-10}"
RB_START_DEG="${RB_START_DEG:-0}"
RB_TARGET="${RB_TARGET:-general:col.active_border}"
RB_COLORS_DEFAULT="0xffff0000 0xffff8000 0xffffff00 0xff80ff00 0xff00ff00 0xff00ff80 0xff00ffff 0xff0080ff 0xff0000ff 0xff8000ff"
RB_COLORS="${RB_COLORS:-$RB_COLORS_DEFAULT}"
RB_RESTORE="${RB_RESTORE:-1}"
RB_LOCKFILE="${RB_LOCKFILE:-/tmp/hypr-rainbowborders.lock}"
RB_TRANSPORT="${RB_TRANSPORT:-auto}"
RB_ONCE="${RB_ONCE:-0}"
# ---------- helpers ----------
log() { printf '[RainbowBorders-low-cpu] %s\n' "$*" >&2; }
die() { log "ERROR: $*"; exit 1; }
usage() {
cat <<'EOF'
Usage: RainbowBorders-low-cpu.sh [options]
Options:
-h, --help Show this help and exit
--once, --run-once, -1
Apply the current gradient once and exit (no animation).
In this mode, RB_RESTORE is ignored (the color persists).
Environment overrides:
RB_INTERVAL Seconds between updates (default: 1.0)
RB_STEP_DEG Degrees per tick (default: 10)
RB_START_DEG Starting angle (default: 0)
RB_TARGET Hypr option to update (default: general:col.active_border)
RB_COLORS Space-separated colors (default: 10-color rainbow)
RB_RESTORE 1 to restore previous value on exit (loop mode only; default: 1)
RB_LOCKFILE PID lock path (loop mode only; default: /tmp/hypr-rainbowborders.lock)
RB_TRANSPORT auto|socat|hyprctl (default: auto)
RB_ONCE 1 for one-shot mode (same as --once)
Examples:
Animate (light CPU):
RB_INTERVAL=1.5 RB_STEP_DEG=12 ./RainbowBorders-low-cpu.sh &
Set a static rainbow once (no animation):
./RainbowBorders-low-cpu.sh --once
EOF
}
is_float() { [[ "$1" =~ ^[0-9]+(\.[0-9]+)?$|^\.[0-9]+$ ]]; }
is_int() { [[ "$1" =~ ^[0-9]+$ ]]; }
# ---------- parse CLI flags ----------
while (( $# )); do
case "$1" in
-h|--help) usage; exit 0 ;;
--once|--run-once|-1) RB_ONCE=1 ;;
*) log "Unknown option: $1"; usage; exit 2 ;;
esac
shift
done
# ---------- validation ----------
if ! is_float "$RB_INTERVAL"; then
log "WARN: RB_INTERVAL='$RB_INTERVAL' invalid; defaulting to 1.0"
RB_INTERVAL="1.0"
fi
if ! is_int "$RB_STEP_DEG"; then
log "WARN: RB_STEP_DEG='$RB_STEP_DEG' invalid; defaulting to 10"
RB_STEP_DEG="10"
fi
if ! is_int "$RB_START_DEG"; then
log "WARN: RB_START_DEG='$RB_START_DEG' invalid; defaulting to 0"
RB_START_DEG="0"
fi
# ---------- single-instance lock (PID file) ----------
cleanup_lock() { [[ -f "$RB_LOCKFILE" ]] && rm -f "$RB_LOCKFILE"; }
if [[ "$RB_ONCE" != "1" ]]; then
if [[ -f "$RB_LOCKFILE" ]]; then
oldpid="$(cat "$RB_LOCKFILE" 2>/dev/null || true)"
if [[ -n "${oldpid:-}" ]] && kill -0 "$oldpid" 2>/dev/null; then
log "Another instance is running (pid=$oldpid). Exiting."
exit 0
else
# Stale lock
rm -f "$RB_LOCKFILE" || true
fi
fi
printf '%d' "$$" >"$RB_LOCKFILE" 2>/dev/null || die "Cannot write lockfile $RB_LOCKFILE"
fi
# ---------- transport (socat vs hyprctl) ----------
RB_MODE=""
RB_SOCK=""
open_transport() {
local want="$RB_TRANSPORT"
local uid; uid=$(id -u 2>/dev/null || echo 0)
local base="${XDG_RUNTIME_DIR:-/run/user/$uid}"
local sig="${HYPRLAND_INSTANCE_SIGNATURE:-}"
if [[ -n "$sig" ]]; then
RB_SOCK="$base/hypr/$sig/.socket.sock"
fi
# Prefer socat if requested/allowed and socket is available
if [[ "$want" == "socat" || "$want" == "auto" ]]; then
if command -v socat >/dev/null 2>&1 && [[ -n "$RB_SOCK" && -S "$RB_SOCK" ]]; then
RB_MODE="socat"
return 0
elif [[ "$want" == "socat" ]]; then
die "RB_TRANSPORT=socat requested but 'socat' or Hyprland socket is unavailable"
fi
fi
# Fallback to hyprctl: require presence and connectivity
command -v hyprctl >/dev/null 2>&1 || die "hyprctl not found and socat transport unavailable"
if ! hyprctl monitors >/dev/null 2>&1; then
die "hyprctl cannot reach a running Hyprland instance"
fi
RB_MODE="hyprctl"
return 0
}
open_transport || exit 1
log "Using transport: $RB_MODE"
# ---------- optional restore of previous border value ----------
PREV_VALUE=""
if [[ "$RB_RESTORE" == "1" && "$RB_ONCE" != "1" ]]; then
if command -v hyprctl >/dev/null 2>&1; then
# hyprctl getoption <opt> prints various formats; try common keys
PREV_VALUE="$(hyprctl getoption "$RB_TARGET" 2>/dev/null \
| sed -n 's/^.*str:[[:space:]]\+//p; s/^.*string:[[:space:]]\+//p; s/^.*value:[[:space:]]\+//p' \
| tail -n1)"
fi
fi
restore_previous() {
if [[ "$RB_RESTORE" == "1" && -n "${PREV_VALUE:-}" ]]; then
if [[ "$RB_MODE" == "socat" ]]; then
printf 'keyword %s %s\n' "$RB_TARGET" "$PREV_VALUE" | socat - "UNIX-CONNECT:$RB_SOCK" >/dev/null 2>&1 || true
else
hyprctl keyword "$RB_TARGET" "$PREV_VALUE" >/dev/null 2>&1 || true
fi
fi
}
on_exit() {
restore_previous
cleanup_lock
}
# In loop mode, set traps for cleanup/restore
if [[ "$RB_ONCE" != "1" ]]; then
trap on_exit INT TERM EXIT
fi
# ---------- main logic ----------
angle=$(( RB_START_DEG % 360 ))
STEP=$(( RB_STEP_DEG % 360 ))
(( STEP == 0 )) && STEP=10
write_border() {
local a="$1"
if [[ "$RB_MODE" == "socat" ]]; then
printf 'keyword %s %s %sdeg\n' "$RB_TARGET" "$RB_COLORS" "$a" | socat - "UNIX-CONNECT:$RB_SOCK" >/dev/null 2>&1 || true
else
hyprctl keyword "$RB_TARGET" "$RB_COLORS ${a}deg" >/dev/null 2>&1 || true
fi
}
if [[ "$RB_ONCE" == "1" ]]; then
# Single write and exit; do not restore previous (intended to persist)
write_border "$angle" || log "WARN: one-shot write failed"
exit 0
fi
# Prime first write (avoid waiting one interval)
write_border "$angle" || log "WARN: initial write failed"
while :; do
# Advance angle and write; failures are non-fatal to keep CPU use minimal
angle=$(( (angle + STEP) % 360 ))
write_border "$angle"
sleep "$RB_INTERVAL"
done

View file

@ -0,0 +1,94 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Smooth border cycling effect using Wallust palette or full rainbow
# Possible values: "wallust_random", "rainbow", "gradient_flow"
EFFECT_TYPE="gradient_flow"
WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf"
WALLUST_COLORS=()
# ---------- LOAD WALLUST COLORS ----------
if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then
# Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB
mapfile -t WALLUST_COLORS < <(
grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk '
function hex2(s){ return (length(s)==6 ? "0xff"s : ""); }
function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); }
{
if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next }
if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next }
if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) {
print rgb2(m[1], m[2], m[3]); next
}
}'
)
if (( ${#WALLUST_COLORS[@]} == 0 )); then
# If wallust colors can't be loaded, fall back to random_hex
EFFECT_TYPE="rainbow"
fi
fi
# ---------- RANDOM WALLUST COLORS ----------
function wallust_random() {
echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}"
}
# ---------- RAINBOW COLORS ----------
function random_hex() {
echo "0xff$(openssl rand -hex 3)"
}
# ---------- FLOW MODE ----------
BASE_COLOR="${WALLUST_COLORS[10]}"
GRAD1_COLOR="${WALLUST_COLORS[14]}"
GRAD2_COLOR="${WALLUST_COLORS[13]}"
GLOW_COLOR="${WALLUST_COLORS[15]}"
MAX_POS=10
GLOW_POS=0
function gradient_flow_color() {
local pos=$1
local d=$(( pos - GLOW_POS ))
# wrap distance (-9..9)
if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi
if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi
case "${d#-}" in
0) echo "$GLOW_COLOR" ;;
1) echo "$GRAD1_COLOR" ;;
2) echo "$GRAD2_COLOR" ;;
*) echo "$BASE_COLOR" ;;
esac
if (( pos == MAX_POS - 1 )); then
GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS ))
fi
}
# ---------- Main function ----------
function get_color() {
if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then
wallust_random
elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then
gradient_flow_color "$1"
else
random_hex
fi
}
# border effect for ACTIVE window
hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg
# border effect for INACTIVE windows
#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg

View file

@ -1,14 +0,0 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# for rainbow borders animation
function random_hex() {
random_hex=("0xff$(openssl rand -hex 3)")
echo $random_hex
}
# rainbow colors only for active window
hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg
# rainbow colors for inactive window (uncomment to take effect)
#hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# RofiBeats - unified, dynamic UI (add, remove, manage, play)
mDIR="$HOME/Music/"

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# /* Calculator (using qalculate) and rofi */
# /* Submitted by: https://github.com/JosephArmas */

View file

@ -1,5 +1,11 @@
#!/usr/bin/env bash
# USAGE / ІНСТРУКЦІЯ:
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# USAGE:
# 1) Run from terminal:
# ./dispatch.sh <application_command> <target_workspace_number>
# Example:
@ -14,37 +20,17 @@
# Notes:
# - Script waits about ~9 seconds (30 iterations of 0.3 sec) for window to appear.
# - Uses hyprctl and jq, so these tools must be installed.
#
# USAGE / ІНСТРУКЦІЯ:
# 1) Запуск з терміналу:
# ./dispatch.sh <application_command> <target_workspace_number>
# Наприклад:
# ./dispatch.sh discord 2
#
# 2) Виклик з конфігурації Hyprland (у файлі hyprland.conf):
# exec-once = /path/to/dispatch.sh <application_command> <target_workspace_number>
#
# Логи зберігаються у файлі dispatch.log поруч зі скриптом.
# Якщо вікно не з'явилось або неправильно диспатчилось — інформація там.
#
# Примітки:
# - Скрипт чекає до ~9 секунд (30 ітерацій по 0.3 сек) поки вікно з'явиться.
# - Використовує hyprctl і jq, тому ці інструменти мають бути встановлені.
LOGFILE="$(dirname "$0")/dispatch.log"
# Log file path located next to the script.
# Файл логів розташований поруч зі скриптом.
APP=$1
# The application command or window class to launch or match.
# Команда для запуску аплікації або клас вікна для пошуку.
TARGET_WORKSPACE=$2
# The target workspace number where the window should be moved.
# Цільовий номер воркспейсу, куди потрібно перемістити вікно.
# Check if required arguments are provided.
# Перевірка наявності необхідних параметрів.
if [[ -z "$APP" || -z "$TARGET_WORKSPACE" ]]; then
echo "Usage: $0 <application_command> <target_workspace_number>" >>"$LOGFILE" 2>&1
exit 1
@ -52,24 +38,18 @@ fi
echo "Starting dispatch of '$APP' to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE"
# Starting the dispatch process and logging the event.
# Початок процесу диспатчу, запис у лог.
# Avoid early workspace focus issues by switching workspace first.
# Уникаємо проблем з раннім фокусом, спочатку переключаємо воркспейс.
hyprctl dispatch workspace "$TARGET_WORKSPACE" >>"$LOGFILE" 2>&1
sleep 0.4
# Launch the application in the background and disown it.
# Запускаємо аплікацію у фоновому режимі та відв’язуємо від терміналу.
$APP & disown
$APP &
disown
pid=$!
echo "Launched '$APP' with PID $pid" >>"$LOGFILE"
# Log the launched process ID.
# Лог процесу запуску з PID.
# Wait for the application window to appear (matching window class).
# Чекаємо появи вікна аплікації (за класом вікна).
for i in {1..30}; do
win=$(hyprctl clients -j | jq -r --arg APP "$APP" '
.[] | select(.class | test($APP;"i")) | .address' 2>>"$LOGFILE")
@ -77,7 +57,6 @@ for i in {1..30}; do
if [[ -n "$win" ]]; then
echo "Found window $win for app '$APP', moving to workspace $TARGET_WORKSPACE" >>"$LOGFILE"
# Move the window to the target workspace.
# Переміщаємо вікно на цільовий воркспейс.
hyprctl dispatch movetoworkspace "$TARGET_WORKSPACE,address:$win" >>"$LOGFILE" 2>&1
exit 0
fi
@ -86,5 +65,4 @@ done
echo "ERROR: Window for '$APP' was NOT found or dispatched properly to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE"
# Log error if window was not found or dispatched correctly.
# Запис помилки, якщо вікно не знайдено або неправильно диспатчено.
exit 1

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes
# This script will randomly go through the files of a directory, setting it
@ -10,6 +15,11 @@
wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
if command -v awww >/dev/null 2>&1; then
WWW="awww"
else
WWW="swww"
fi
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
echo "Usage:
@ -17,7 +27,7 @@ if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
exit 1
fi
# Edit below to control the images transition
# Edit below to control the images transition (swww/awww)
export SWWW_TRANSITION_FPS=60
export SWWW_TRANSITION_TYPE=simple
@ -31,7 +41,7 @@ while true; do
done \
| sort -n | cut -d':' -f2- \
| while read -r img; do
swww img -o $focused_monitor "$img"
$WWW img -o $focused_monitor "$img"
# Regenerate colors from the exact image path to avoid cache races
$HOME/.config/hypr/scripts/WallustSwww.sh "$img"
# Refresh UI components that depend on wallust output

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Wallpaper Effects using ImageMagick (SUPER SHIFT W)
# Variables
@ -9,17 +14,26 @@ wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
rofi_theme="$HOME/.config/rofi/config-wallpaper-effect.rasi"
if command -v awww >/dev/null 2>&1; then
WWW="awww"
else
WWW="swww"
fi
# Directory for swaync
iDIR="$HOME/.config/swaync/images"
iDIRi="$HOME/.config/swaync/icons"
# swww transition config
# swww/awww transition config
FPS=60
TYPE="wipe"
DURATION=2
BEZIER=".43,1.19,1,.4"
if [[ "$WWW" == "swww" || "$WWW" == "awww" ]]; then
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER"
else
SWWW_PARAMS=""
fi
# Define ImageMagick effects
declare -A effects=(
@ -45,7 +59,7 @@ declare -A effects=(
# Function to apply no effects
no-effects() {
swww img -o "$focused_monitor" "$wallpaper_current" $SWWW_PARAMS &&
$WWW img -o "$focused_monitor" "$wallpaper_current" $SWWW_PARAMS &&
wait $!
wallust run "$wallpaper_current" -s &&
wait $!
@ -83,7 +97,7 @@ main() {
done
sleep 1
swww img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS &
$WWW img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS &
sleep 2
@ -106,43 +120,3 @@ fi
main
sleep 1
if [[ -n "$choice" ]]; then
# Resolve SDDM themes directory (standard and NixOS path)
sddm_themes_dir=""
if [ -d "/usr/share/sddm/themes" ]; then
sddm_themes_dir="/usr/share/sddm/themes"
elif [ -d "/run/current-system/sw/share/sddm/themes" ]; then
sddm_themes_dir="/run/current-system/sw/share/sddm/themes"
fi
if [ -n "$sddm_themes_dir" ]; then
sddm_simple="$sddm_themes_dir/simple_sddm_2"
# Only prompt if theme exists and its Backgrounds directory is writable
if [ -d "$sddm_simple" ] && [ -w "$sddm_simple/Backgrounds" ]; then
# Check if yad is running to avoid multiple yad notification
if pidof yad > /dev/null; then
killall yad
fi
if yad --info --text="Set current wallpaper as SDDM background?\n\nNOTE: This only applies to SIMPLE SDDM v2 Theme" \
--text-align=left \
--title="SDDM Background" \
--timeout=5 \
--timeout-indicator=right \
--button="yad-yes:0" \
--button="yad-no:1" \
; then
# Check if terminal exists
if ! command -v "$terminal" &>/dev/null; then
notify-send -i "$iDIR/ja.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background"
exit 1
fi
exec "$SCRIPTSDIR/sddm_wallpaper.sh" --effects
fi
fi
fi
fi

View file

@ -1,28 +1,42 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Script for Random Wallpaper ( CTRL ALT W)
wallDIR="$HOME/Pictures/wallpapers"
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallDIR="$PICTURES_DIR/wallpapers"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
PICS=($(find -L ${wallDIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \)))
PICS=($(find -L "${wallDIR}" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \)))
RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]}
# Transition config
# Transition config (swww/awww)
FPS=30
TYPE="random"
DURATION=1
BEZIER=".43,1.19,1,.4"
if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER"
else
SWWW_PARAMS=""
fi
if ! "$WWW_CMD" query >/dev/null 2>&1; then
"$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" &
fi
swww query || swww-daemon --format xrgb && swww img -o $focused_monitor ${RANDOMPICS} $SWWW_PARAMS
"$WWW_CMD" img -o "$focused_monitor" "$RANDOMPICS" $SWWW_PARAMS
wait $!
"$SCRIPTSDIR/WallustSwww.sh" &&
"$SCRIPTSDIR/WallustSwww.sh" "$RANDOMPICS" &&
wait $!
sleep 2

View file

@ -1,23 +1,37 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# This script for selecting wallpapers (SUPER W)
# WALLPAPERS PATH
terminal=kitty
wallDIR="$HOME/Pictures/wallpapers"
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallDIR="$PICTURES_DIR/wallpapers"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
wallpaper_link="$HOME/.config/rofi/.current_wallpaper"
# Directory for swaync
iDIR="$HOME/.config/swaync/images"
iDIRi="$HOME/.config/swaync/icons"
# swww transition config
# swww/awww transition config
FPS=60
TYPE="any"
DURATION=2
BEZIER=".43,1.19,1,.4"
if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER"
else
SWWW_PARAMS=""
fi
# Check if package bc exists
if ! command -v bc &>/dev/null; then
@ -29,6 +43,9 @@ fi
rofi_theme="$HOME/.config/rofi/config-wallpaper.rasi"
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
per_monitor_wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}"
per_monitor_wallpaper_link="$HOME/.config/rofi/.current_wallpaper_${focused_monitor}"
# Ensure focused_monitor is detected
if [[ -z "$focused_monitor" ]]; then
notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Could not detect focused monitor"
@ -45,7 +62,7 @@ rofi_override="element-icon{size:${adjusted_icon_size}%;}"
# Kill existing wallpaper daemons for video
kill_wallpaper_for_video() {
swww kill 2>/dev/null
"$WWW_CMD" kill 2>/dev/null
pkill mpvpaper 2>/dev/null
pkill swaybg 2>/dev/null
pkill hyprpaper 2>/dev/null
@ -65,7 +82,19 @@ mapfile -d '' PICS < <(find -L "${wallDIR}" -type f \( \
-iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \) -print0)
RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}"
RANDOM_PIC_NAME=". random"
RANDOM_PIC_NAME="$(basename "$RANDOM_PIC")"
CURRENT_MON_PIC_PATH=$("$WWW_CMD" query 2>/dev/null | grep "$focused_monitor" | awk '{print $NF}')
if [[ -z "$CURRENT_MON_PIC_PATH" ]]; then
if [[ -L "$wallpaper_link" ]]; then
CURRENT_MON_PIC_PATH="$(readlink -f "$wallpaper_link")"
elif [[ -f "$wallpaper_link" ]]; then
CURRENT_MON_PIC_PATH="$wallpaper_link"
elif [[ -f "$wallpaper_current" ]]; then
CURRENT_MON_PIC_PATH="$wallpaper_current"
fi
fi
CURRENT_MON_PIC_NAME=$(basename "$CURRENT_MON_PIC_PATH")
# Rofi command
rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override"
@ -74,7 +103,10 @@ rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override
menu() {
IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}"))
printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC"
printf "%s\x00icon\x1f%s\n" "Random: $RANDOM_PIC_NAME" "$RANDOM_PIC"
if [[ -n "$CURRENT_MON_PIC_PATH" ]]; then
printf "%s\x00icon\x1f%s\n" "Current: $CURRENT_MON_PIC_NAME" "$CURRENT_MON_PIC_PATH"
fi
for pic_path in "${sorted_options[@]}"; do
pic_name=$(basename "$pic_path")
@ -98,49 +130,6 @@ menu() {
done
}
# Offer SDDM Simple Wallpaper Option (only for non-video wallpapers)
set_sddm_wallpaper() {
sleep 1
# Resolve SDDM themes directory (standard and NixOS path)
local sddm_themes_dir=""
if [ -d "/usr/share/sddm/themes" ]; then
sddm_themes_dir="/usr/share/sddm/themes"
elif [ -d "/run/current-system/sw/share/sddm/themes" ]; then
sddm_themes_dir="/run/current-system/sw/share/sddm/themes"
fi
[ -z "$sddm_themes_dir" ] && return 0
local sddm_simple="$sddm_themes_dir/simple_sddm_2"
# Only prompt if theme exists and its Backgrounds directory is writable
if [ -d "$sddm_simple" ] && [ -w "$sddm_simple/Backgrounds" ]; then
# Check if yad is running to avoid multiple notifications
if pidof yad >/dev/null; then
killall yad
fi
if yad --info --text="Set current wallpaper as SDDM background?\n\nNOTE: This only applies to SIMPLE SDDM v2 Theme" \
--text-align=left \
--title="SDDM Background" \
--timeout=5 \
--timeout-indicator=right \
--button="yes:0" \
--button="no:1"; then
# Check if terminal exists
if ! command -v "$terminal" &>/dev/null; then
notify-send -i "$iDIR/error.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background"
exit 1
fi
exec "$SCRIPTSDIR/sddm_wallpaper.sh" --normal
fi
fi
}
modify_startup_config() {
local selected_file="$1"
@ -149,6 +138,7 @@ modify_startup_config() {
# Check if it's a live wallpaper (video)
if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm)$ ]]; then
# For video wallpapers:
sed -i '/^\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^/\#/' "$startup_config"
sed -i '/^\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^/\#/' "$startup_config"
sed -i '/^\s*#\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^#\s*//;' "$startup_config"
@ -159,6 +149,7 @@ modify_startup_config() {
echo "Configured for live wallpaper (video)."
else
# For image wallpapers:
sed -i '/^\s*#\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^\s*#\s*//;' "$startup_config"
sed -i '/^\s*#\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^\s*#\s*//;' "$startup_config"
sed -i '/^\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^/\#/' "$startup_config"
@ -173,12 +164,25 @@ apply_image_wallpaper() {
kill_wallpaper_for_image
if ! pgrep -x "swww-daemon" >/dev/null; then
echo "Starting swww-daemon..."
swww-daemon --format xrgb &
if ! pgrep -x "$WWW_DAEMON" >/dev/null; then
echo "Starting $WWW_DAEMON..."
"$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" &
fi
# Wait for daemon to be ready before applying
for _ in {1..20}; do
"$WWW_CMD" query >/dev/null 2>&1 && break
sleep 0.1
done
"$WWW_CMD" img -o "$focused_monitor" "$image_path" $SWWW_PARAMS || {
sleep 0.2
"$WWW_CMD" img -o "$focused_monitor" "$image_path" $SWWW_PARAMS
}
"$WWW_CMD" img -o "$focused_monitor" "$image_path" $SWWW_PARAMS
swww img -o "$focused_monitor" "$image_path" $SWWW_PARAMS
# Persist per-monitor wallpaper selection
mkdir -p "$(dirname "$per_monitor_wallpaper_current")" "$(dirname "$per_monitor_wallpaper_link")"
ln -sf "$image_path" "$per_monitor_wallpaper_link" || true
cp -f "$image_path" "$per_monitor_wallpaper_current" || true
# Run additional scripts (pass the image path to avoid cache race conditions)
"$SCRIPTSDIR/WallustSwww.sh" "$image_path"
@ -186,7 +190,6 @@ apply_image_wallpaper() {
"$SCRIPTSDIR/Refresh.sh"
sleep 1
set_sddm_wallpaper
}
apply_video_wallpaper() {
@ -208,21 +211,32 @@ main() {
choice=$(menu | $rofi_command)
choice=$(echo "$choice" | xargs)
RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs)
raw_choice="$choice"
choice="${choice#Random: }"
choice="${choice#Current: }"
if [[ -z "$choice" ]]; then
echo "No choice selected. Exiting."
exit 0
fi
# Handle random selection correctly
# Resolve selection directly when using Random/Current entries
if [[ "$raw_choice" == Random:\ * ]]; then
selected_file="$RANDOM_PIC"
elif [[ "$raw_choice" == Current:\ * && -n "$CURRENT_MON_PIC_PATH" ]]; then
selected_file="$CURRENT_MON_PIC_PATH"
elif [[ -f "$choice" ]]; then
selected_file="$choice"
else
# Handle random selection by name when needed
if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then
choice=$(basename "$RANDOM_PIC")
fi
choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/')
# Search for the selected file in the wallpapers directory, including subdirectories
selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit)
fi
if [[ -z "$selected_file" ]]; then
echo "File not found. Selected choice: $choice"

View file

@ -1,5 +1,10 @@
#!/usr/bin/env python3
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Rewritten to use Open-Meteo APIs (worldwide, no API key) for robust weather data.
# Outputs Waybar-compatible JSON and a simple text cache.

View file

@ -1,16 +1,55 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# weather info from wttr. https://github.com/chubin/wttr.in
# Remember to add city
# Function to get current city from IP address with fallback
city=""
# Get your current location with your IP adress
get_current_city() {
local city
# if city is blank, use https://ipapi.co/json to get location from IP
if [ -z "$city" ]; then
city=$(curl -fsS https://ipapi.co/json | grep city | cut -f4 -d'"')
# First try: ipinfo.io
local location_data=$(curl -fsS "https://ipinfo.io/json" 2>/dev/null)
if [ $? -eq 0 ] && [ -n "$location_data" ]; then
city=$(echo "$location_data" | grep -o '"city"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4)
if [ -n "$city" ]; then
echo "$city"
return 0
fi
fi
# Fallback: ipapi.co
city=$(curl -fsS "https://ipapi.co/json" 2>/dev/null | grep -o '"city"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4)
if [ -n "$city" ]; then
echo "$city"
return 0
fi
# Last resort: ipwho.is
city=$(curl -fsS "https://ipwho.is/" 2>/dev/null | grep -o '"city"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4)
if [ -n "$city" ]; then
echo "$city"
return 0
fi
# If all fail
echo "Unknown" >&2
return 1
}
city=$(get_current_city)
# If city is empty, that means the IP check failed, which means, we should use manual setting
if [ -z "$city" ] || [ "$city" = "Unknown" ]; then
# SET YOUR MANUAL CITY HERE
city=" " # ← Change this to your preferred city
echo "Using manual city: $city" >&2
fi
# URL-encode city for safe use in URLs
encoded_city="$city"

View file

@ -1,11 +1,40 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Weather entrypoint: prefer Python (OpenMeteo), fallback to legacy Bash (wttr.in)
SCRIPT_DIR="$(dirname "$0")"
PY_SCRIPT="$SCRIPT_DIR/Weather.py"
BASH_FALLBACK="$SCRIPT_DIR/Weather.sh"
# Function to check network connectivity
check_network() {
# Try multiple methods to check network
if ping -c1 -W1 8.8.8.8 >/dev/null 2>&1; then
return 0
fi
if ping -c1 -W1 1.1.1.1 >/dev/null 2>&1; then
return 0
fi
if curl -s --connect-timeout 2 "https://ipinfo.io" >/dev/null 2>&1; then
return 0
fi
return 1
}
# If no network, return offline status immediately
if ! check_network; then
echo '{"text":"󰖪", "alt":"Offline", "tooltip":"No network connection"}'
exit 0
fi
run_fallback() {
if [ -f "$BASH_FALLBACK" ]; then
# Invoke via bash to avoid requiring +x and ensure consistent shell

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Script for Oh my ZSH theme ( CTRL SHIFT O)
# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
animations {
enabled = yes

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# old animations

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
animations {
enabled = no

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "End-4"
# credit https://github.com/end-4/dots-hyprland

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Vertical"
# credit https://github.com/prasanthrangan/hyprdots

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Default"
# credit https://github.com/prasanthrangan/hyprdots

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# # name "Minimal-1"
# credit https://github.com/prasanthrangan/hyprdots-

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# # name "Minimal-2"
# credit https://github.com/prasanthrangan/hyprdots

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Optimized"
# credit https://github.com/prasanthrangan/hyprdots

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Classic"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Dynamic"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Fast"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "High"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Moving"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Standard"
# credit https://github.com/mylinuxforwork/dotfiles

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Me-1"
# credit https://github.com/mahaveergurjar

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
#
# name "Me-2"
# credit https://github.com/mahaveergurjar

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# as per Hyprland wiki: hyprland-qt-support provides a QML style for hypr* qt6 apps
roundess = 2

View file

@ -1,11 +1,16 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf
# environment-variables
# Current Version of JakooLit Dotfiles:
env = DOTS_VERSION,2.3.18
# Current Version of KoolDots:
env = DOTS_VERSION,2.3.23
### Toolkit Backend Variables ###
env = GDK_BACKEND,wayland,x11,*
@ -24,8 +29,8 @@ env = XDG_SESSION_TYPE,wayland
### QT Variables ###
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_STYLE_OVERRIDE,kvantum
### hyprland-qt-support ###
env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style

View file

@ -1,8 +1,12 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Default Keybinds
# visit https://wiki.hyprland.org/Configuring/Binds/ for more info
# /* ---- ✴️ Variables ✴️ ---- */ #
$mainMod = SUPER
$scriptsDir = $HOME/.config/hypr/scripts
$UserConfigs = $HOME/.config/hypr/UserConfigs
@ -11,7 +15,7 @@ $UserScripts = $HOME/.config/hypr/UserScripts
# settings for User defaults apps - set your default terminal and file manager on this file
source= $UserConfigs/01-UserDefaults.conf
#### STANDAR ####
#### STANDARD ####
# Common shortcuts
#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window
@ -21,8 +25,10 @@ bindd = $mainMod, A, desktop overview, exec, $scriptsDir/OverviewToggle.sh # tog
#bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed)
bindd = $mainMod, Return, Open terminal, exec, $term
bindd = $mainMod, E, file manager, exec, $files
bindd = $mainMod, C, SSH session manager, exec, $scriptsDir/rofi-ssh-menu.sh
# FEATURES / EXTRAS
bindd = $mainMod, T, Global theme switcher using Wallust, exec, $scriptsDir/ThemeChanger.sh #Global theme switcher
bindd = $mainMod, H, help / cheat sheet, exec, $scriptsDir/KeyHints.sh
bindd = $mainMod ALT, R, refresh bar and menus, exec, $scriptsDir/Refresh.sh
bindd = $mainMod ALT, E, emoji menu, exec, $scriptsDir/RofiEmoji.sh
@ -30,15 +36,19 @@ bindd = $mainMod, S, web search, exec, $scriptsDir/RofiSearch.sh
bindd = $mainMod CTRL, S, window switcher, exec, rofi -show window
bindd = $mainMod ALT, O, toggle blur, exec, $scriptsDir/ChangeBlur.sh
bindd = $mainMod SHIFT, G, toggle game mode, exec, $scriptsDir/GameMode.sh
bindd = $mainMod ALT, L, toggle master/dwindle layout, exec, $scriptsDir/ChangeLayout.sh
bindd = $mainMod ALT, L, toggle layouts, exec, $scriptsDir/ChangeLayout.sh toggle
bindd = $mainMod ALT, V, clipboard manager, exec, $scriptsDir/ClipManager.sh
bindd = $mainMod CTRL, R, rofi theme selector, exec, $scriptsDir/RofiThemeSelector.sh
bindd = $mainMod CTRL SHIFT, R, rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh
bindd = $mainMod CTRL, K, Kitty theme selector, exec, $scriptsDir/Kitty_themes.sh
bindd = $mainMod SHIFT, B, Set static Rainbow Border, exec, $UserScripts/RainbowBorders-low-cpu.sh --run-once
bindd = $mainMod SHIFT, H, Toggle Mute/Unmute for Active-Window, exec, $scriptsDir/Toggle-Active-Window-Audio.sh
bindd = ALT SHIFT, S, Hyprshot Screen Capture, exec, $scriptsDir/hyprshot.sh -m region -o $HOME/Pictures/Screenshots
bindd = $mainMod SHIFT, F, fullscreen, fullscreen
bindd = $mainMod CTRL, F, maximize window, fullscreen, 1
bindd = $mainMod, SPACE, Float current window, togglefloating,
bindd = $mainMod ALT, SPACE, Float all windows, exec, hyprctl dispatch workspaceopt allfloat
bindd = $mainMod ALT, SPACE, Float all windows, exec, $scriptsDir/Float-all-Windows.sh
bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Dropterminal.sh $term
# Desktop zooming or magnifier
@ -58,7 +68,7 @@ bindd = $mainMod SHIFT, M, online music, exec, $UserScripts/RofiBeats.sh
bindd = $mainMod, W, select wallpaper, exec, $UserScripts/WallpaperSelect.sh
bindd = $mainMod SHIFT, W, wallpaper effects, exec, $UserScripts/WallpaperEffects.sh
bindd = CTRL ALT, W, random wallpaper, exec, $UserScripts/WallpaperRandom.sh
bindd = $mainMod CTRL, O, toggle active window opacity, exec, hyprctl setprop active opaque toggle
bindd = $mainMod CTRL, O, toggle active window opacity, setprop, active opaque toggle
bindd = $mainMod SHIFT, K, search keybinds, exec, $scriptsDir/KeyBinds.sh
bindd = $mainMod SHIFT, A, animations menu, exec, $scriptsDir/Animations.sh
bindd = $mainMod SHIFT, O, change oh-my-zsh theme, exec, $UserScripts/ZshChangeTheme.sh
@ -85,19 +95,38 @@ bindd = $mainMod SHIFT, E, Quick settings menu, exec, $scriptsDir/Kool_Quick_Set
# Master Layout
bindd = $mainMod CTRL, D, remove master, layoutmsg, removemaster
bindd = $mainMod, I, add master, layoutmsg, addmaster
# NOTE: J/K bindings are set dynamically by scripts/KeybindsLayoutInit.sh and scripts/ChangeLayout.sh
# (we intentionally do not bind them statically here to avoid conflicts across layouts)
# bindd = $mainMod, J, cycle next, layoutmsg, cyclenext
# bindd = $mainMod, K, cycle previous, layoutmsg, cycleprev
# j/k cycle windows globally
bindd = $mainMod, j, cycle next, layoutmsg, cyclenext
bindd = $mainMod, k, cycle previous, layoutmsg, cycleprev
bindd = $mainMod CTRL, Return, swap with master, layoutmsg, swapwithmaster
# Dwindle Layout
bindd = $mainMod SHIFT, I, toggle split (dwindle), togglesplit
bindd = $mainMod SHIFT, I, toggle split (dwindle), layoutmsg, togglesplit
bindd = $mainMod, P, toggle pseudo (dwindle), pseudo,
# Works on either layout (Master or Dwindle)
bindd = $mainMod, M, set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3
# layout aware keybinds
exec-once = $scriptsDir/ChangeLayout.sh init
# Direct layout binds
bindd = $mainMod ALT, 1, layout dwindle, exec, $scriptsDir/ChangeLayout.sh dwindle
bindd = $mainMod ALT, 2, layout master, exec, $scriptsDir/ChangeLayout.sh master
bindd = $mainMod ALT, 3, layout scrolling, exec, $scriptsDir/ChangeLayout.sh scrolling
bindd = $mainMod ALT, 4, layout monocle, exec, $scriptsDir/ChangeLayout.sh monocle
# Scrolling Layout
bindd = $mainMod SHIFT, period, move to right column, layoutmsg, move +col
bindd = $mainMod SHIFT, comma, move to left column, layoutmsg, move -col
bindd = $mainMod ALT, comma, swap columns left, layoutmsg, swapcol l
bindd = $mainMod ALT, period, swap columns right, layoutmsg, swapcol r
# Set layout to Horizontal (Standard "Tape" style)
bindd = $mainMod ALT, H, Horizonal scroll right,exec, hyprctl keyword scrolling:direction right
# Set layout to Vertical (Stacked "Column" style)
bindd = $mainMod ALT, V, Vertical Scroll down,exec, hyprctl keyword scrolling:direction down
# Create a toggle bind (e.g., Mod + Shift + S)
bindd = $mainMod ALT, S, toggle scrolling V/H, exec, bash -c '[[ $(hyprctl getoption scrolling:direction -j | jq -r ".str") == "right" ]] && hyprctl keyword scrolling:direction down || hyprctl keyword scrolling:direction right'
# Cycle windows; if floating bring to top
bindd = ALT, tab, cycle next window, cyclenext
@ -106,6 +135,8 @@ bindd = ALT, tab, bring active to top, bringactivetotop
# Special Keys / Hot Keys
bindeld = , xf86audioraisevolume, volume up, exec, $scriptsDir/Volume.sh --inc
bindeld = , xf86audiolowervolume, volume down, exec, $scriptsDir/Volume.sh --dec
bindeld = ALT, xf86audioraisevolume, volume up precise, exec, $scriptsDir/Volume.sh --inc-precise
bindeld = ALT, xf86audiolowervolume, volume down precise, exec, $scriptsDir/Volume.sh --dec-precise
bindld = , xf86AudioMicMute, toggle mic mute, exec, $scriptsDir/Volume.sh --toggle-mic
bindld = , xf86audiomute, toggle mute, exec, $scriptsDir/Volume.sh --toggle
bindld = , xf86Sleep, sleep, exec, systemctl suspend
@ -161,7 +192,7 @@ bindd = $mainMod CTRL, L, Move Right into group, moveintogroup, r # Move active
bindd = $mainMod CTRL, H, Move active out of group, moveoutofgroup # Move active window out of group
# Try to dynamically move in grouped window and when ungrouped
# Not working for me DW 11/26/25 PR: https://github.com/JaKooLit/Hyprland-Dots/pull/872
# Not working for me DW 11/26/25 PR: https://github.com/LinuxBeginnings/Hyprland-Dots/pull/872
#bindd = $mainMod, right, focus right, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[-1] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus r; else hyprctl dispatch changegroupactive f; fi'
#bindd = $mainMod, left, focus left, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[0] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus l; else hyprctl dispatch changegroupactive b; fi'

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
# These configs are mostly for laptops. This is addemdum to Keybinds.conf

View file

@ -1,60 +1,51 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Commands and Apps to be executed at launch (vendor defaults)
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
$wallDIR=$HOME/Pictures/wallpapers
$lock = $scriptsDir/LockScreen.sh
$SwwwRandom = $UserScripts/WallpaperAutoChange.sh
$livewallpaper=""
$wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed
### wallpaper stuff ###
exec-once = swww-daemon --format xrgb
exec-once = $scriptsDir/WallpaperDaemon.sh
#exec-once = mpvpaper '*' -o "load-scripts=no no-audio --loop" $livewallpaper
# wallpaper random
#exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes
### Startup ###
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = $scriptsDir/KeybindsLayoutInit.sh
# Drop Down terminal
# See Bug#810 https://github.com/JaKooLit/Hyprland-Dots/issues/810#issuecomment-3351947644
exec-once = $HOME/.config/hypr/scripts/Dropterminal.sh kitty &
# Polkit (Polkit Gnome / KDE)
exec-once = $HOME/.config/hypr/scripts/Dropterminal.sh "kitty --class kitty-dropterm" &
exec-once = $scriptsDir/Polkit.sh
# starup apps
exec-once = nm-applet --indicator
exec-once = nm-tray # For ubuntu
exec-once = swaync
#exec-once = ags
#exec-once = blueman-applet
#exec-once = rog-control-center
exec-once = $scriptsDir/PortalHyprlandUbuntu.sh
exec-once = waybar
exec-once = qs -c overview # Quickshell Overview
exec-once = hypridle
exec-once = $scriptsDir/Hyprsunset.sh init
# Clipboard manager
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
# Rainbow borders
exec-once = $UserScripts/RainbowBorders.sh
# Rainbow borders (disabled by default; use quick settings menu)
#exec-once = $UserScripts/RainbowBorders.sh
# hypridle for hyprlock
exec-once = hypridle
# Resume Hyprsunset if state is "on" from previous session
exec-once = $scriptsDir/Hyprsunset.sh init
# Here are list of features available but disabled by default
# Persistent wallpaper
# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png
# exec-once = sh -c '$HOME/.config/hypr/scripts/WallpaperDaemon.sh && (command -v awww >/dev/null 2>&1 && awww img "$wallDIR/mecha-nostalgia.png" || swww img "$wallDIR/mecha-nostalgia.png")'
# Gnome polkit for NixOS
#exec-once = $scriptsDir/Polkit-NixOS.sh

View file

@ -1,4 +1,9 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Default settings
# This is where you put your own settings as this will not be touched during update
# if the upgrade.sh is used.
@ -9,16 +14,41 @@
$scriptsDir = $HOME/.config/hypr/scripts
dwindle {
pseudotile = true
preserve_split = true
#smart_split = true
smart_resizing = true
use_active_for_splits = true
smart_split = false
default_split_ratio = 1.0
split_bias = 0
precise_mouse_move = false
special_scale_factor = 0.8
}
master {
new_status = master
new_on_top = 1
mfact = 0.5
new_status = slave
new_on_top = false
new_on_active = none
orientation = left
mfact = 0.55
slave_count_for_center_master = 2
center_master_fallback = left
smart_resizing = true
drop_at_cursor = true
always_keep_position = false
}
scrolling {
# Default width of new windows (0.1 - 1.0)
column_width = 0.80
# If only one window is open, should it span the whole screen?
fullscreen_on_one_column = true
# Direction: right, left, up, or down
direction = right
# Center the focused window automatically
follow_focus = true
}
monocle {
# I can't find any settings on the wiki
}
general {
@ -34,7 +64,6 @@ input {
kb_rules =
repeat_rate = 50
repeat_delay = 300
sensitivity = 0 #mouse sensitivity
#accel_profile = # flat or adaptive or blank or EMPTY means libinputs default mode
numlock_by_default = true
@ -63,26 +92,28 @@ input {
}
}
gestures {
gesture = 3, horizontal, workspace
workspace_swipe_distance = 500
workspace_swipe_distance = 300
workspace_swipe_touch = false
workspace_swipe_invert = true
workspace_swipe_min_speed_to_force = 30
workspace_swipe_cancel_ratio = 0.5
workspace_swipe_create_new = true
workspace_swipe_forever = true
#workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
workspace_swipe_direction_lock = true
workspace_swipe_forever = false
workspace_swipe_use_r = false
close_max_timeout = 100
gesture = 4, up, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.5}')"
gesture = 4, down, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.5}')"
gesture = 3, up, dispatcher, exec, $scriptsDir/OverviewToggle.sh
gesture = 3, horizontal, workspace
gesture = 3, up, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.5}')"
gesture = 3, down, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.5}')"
gesture = 4, up, dispatcher, exec, $scriptsDir/OverviewToggle.sh
gesture = 4, down, float
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
vfr = true
vrr = 2
mouse_move_enables_dpms = true
enable_swallow = off
@ -93,6 +124,11 @@ misc {
enable_anr_dialog = true # Application not Responding (ANR)
anr_missed_pings = 15 # ANR Threshold default 1 is too low
allow_session_lock_restore = true # Prevent lockscreen crash when resume from suspend
# This only works with HL v0.53+
on_focus_under_fullscreen = 1
# 0 - Default, no change
# 1 - New focused window takes over fullscreen (Windows-like Alt-Tab)
# 2 - New focused window stays behind the fullscreen one
}
#opengl {
@ -121,4 +157,16 @@ cursor {
enable_hyprcursor = true
warp_on_change_workspace = 2
no_warps = true
no_break_fs_vrr = false
min_refresh_rate = 24
hotspot_padding = 1
inactive_timeout = 0
default_monitor =
zoom_factor = 1.0
zoom_rigid = false
zoom_detached_camera = true
hide_on_key_press = true
hide_on_touch = false
hide_on_tablet = false
use_cpu_buffer = false
}

View file

@ -1,204 +1,470 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# For window rules and layerrules
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Vendor defaults for window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# NOTES: This is only for Hyprland > 0.52.1
# note: This should NOT be implemented on Debian and Ubuntu
# Vendor defaults for window rules and layerrules
# NOTES: This is only for Hyprland >= 0.53
# windowrule - tags - add apps under appropriate tag to use the same settings
# Some samples on hwo to start apps on specific workspaces
# windowrule = match:tag email*, workspace 1
# windowrule = match:tag browser*, workspace 2
# windowrule = match:tag projects*, workspace 3
# windowrule = match:tag screenshare*, workspace 4 silent
# windowrule = match:tag gamestore*, workspace 5
# windowrule = match:class ^(virt-manager)$, workspace 6 silent
# windowrule = match:class ^(.virt-manager-wrapped)$, workspace 6 silent
# windowrule = match:tag im*, workspace 7
# windowrule = match:class obsidian, workspace 8
# windowrule = match:tag games*, workspace 8
# windowrule = match:tag multimedia*, workspace 9 silent
# TAGS - add apps under appropriate tag to use the same settings
# browser tags
windowrule = match:class ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$, tag +browser
windowrule = match:class ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$, tag +browser
windowrule = match:class ^(chrome-.+-Default)$ # Chrome PWAs, tag +browser
windowrule = match:class ^(chrome-.+-Default)$, tag +browser
windowrule = match:class ^([Cc]hromium)$, tag +browser
windowrule = match:class ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$, tag +browser
windowrule = match:class ^(Brave-browser(-beta|-dev|-unstable)?)$, tag +browser
windowrule = match:class ^([Bb]rave-browser(-beta|-dev|-unstable)?)$, tag +browser
windowrule = match:class ^([Tt]horium-browser|[Cc]achy-browser)$, tag +browser
windowrule = match:class ^(zen-alpha|zen)$, tag +browser
# notif tags
windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif
# KooL settings tag
windowrule = match:title ^(KooL Quick Cheat Sheet)$, tag +KooL_Cheat
windowrule = match:title ^(KooL Hyprland Settings)$, tag +KooL_Settings
windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings
windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal
# terminal tags
windowrule = match:class ^(ghostty|wezterm|Alacritty|kitty|kitty-dropterm)$, tag +terminal
windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email
# email tags
windowrule = match:class ^([Tt]hunderbird|org.mozilla.Thunderbird)$, tag +email
windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email
windowrule = match:class ^(org.gnome.Evolution)$, tag +email
# project tags
windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects
windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects
windowrule = match:class ^(jetbrains-.+)$ # JetBrains IDEs, tag +projects
windowrule = match:class ^(jetbrains-.+)$, tag +projects
windowrule = match:class ^(dev.zed.Zed|antigravity)$, tag +projects
# screenshare tags
windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare
# IM tags
windowrule = match:class ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$, tag +im
windowrule = match:class ^([Ff]erdium)$, tag +im
windowrule = match:class ^([Ww]hatsapp-for-linux)$, tag +im
windowrule = match:class ^(ZapZap|com.rtosta.zapzap)$, tag +im
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, tag +im
windowrule = match:class ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$, tag +im
windowrule = match:class ^(teams-for-linux)$, tag +im
windowrule = match:class ^(im.riot.Riot|Element)$ # Element Matrix client, tag +im
windowrule = match:class ^(im.riot.Riot|Element)$, tag +im
# game tags
windowrule = match:class ^(gamescope)$, tag +games
windowrule = match:class ^(steam_app_\d+)$, tag +games
windowrule = match:class ^(steam_app_\\d+)$, tag +games
windowrule = match:xdg_tag ^(proton-game)$, tag +games
# gamestore tags
windowrule = match:class ^([Ss]team)$, tag +gamestore
windowrule = match:title ^([Ll]utris)$, tag +gamestore
windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore
# file-manager tags
windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager
windowrule = match:class ^(app.drey.Warp)$, tag +file-manager
# wallpaper tags
windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper
# multimedia tags
windowrule = match:class ^([Aa]udacious)$, tag +multimedia
# multimedia-video tags
windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video
# settings tags
windowrule = match:title ^(ROG Control)$, tag +settings
windowrule = match:class ^(wihotspot(-gui)?)$ # wifi hotspot, tag +settings
windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer, tag +settings
windowrule = match:class ^(wihotspot(-gui)?)$, tag +settings
windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$, tag +settings
windowrule = match:class ^(gnome-disks|wihotspot(-gui)?)$, tag +settings
windowrule = match:title (Kvantum Manager), tag +settings
windowrule = match:class ^(file-roller|org.gnome.FileRoller)$ # archive manager, tag +settings
windowrule = match:class ^(file-roller|org.gnome.FileRoller)$, tag +settings
windowrule = match:class ^(nm-applet|nm-connection-editor|blueman-manager)$, tag +settings
windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, tag +settings
windowrule = match:class ^(qt5ct|qt6ct|[Yy]ad)$, tag +settings
windowrule = match:class ^(qt5ct|qt6ct)$, tag +settings
windowrule = match:class (xdg-desktop-portal-gtk), tag +settings
windowrule = match:class ^(org.kde.polkit-kde-authentication-agent-1)$, tag +settings
windowrule = match:class ^([Rr]ofi)$, tag +settings
windowrule = match:class ^(btrfs-assistant)$, tag +settings
windowrule = match:class ^(timeshift-gtk)$, tag +settings
windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor, tag +viewer
windowrule = match:class ^(evince)$ # document viewer, tag +viewer
windowrule = match:class ^(eog|org.gnome.Loupe)$ # image viewer, tag +viewer
# viewer tags
windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer
windowrule = match:class ^(evince)$, tag +viewer
windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer
windowrule = match:tag multimedia_video*, noblur
windowrule = match:tag multimedia_video*, opacity 1.0
# POSITION
windowrule = match:tag KooL_Cheat*, center
windowrule = match:class ([Tt]hunar) title negative:(.*[Tt]hunar.*), center
windowrule = match:title ^(ROG Control)$, center
windowrule = match:tag KooL-Settings*, center
windowrule = match:title ^(Keybindings)$, center
windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center
windowrule = match:class ^([Ff]erdium)$, center
windowrule = match:title ^(Picture-in-Picture)$, move 72% 7%
#windowrule = move 72% 7%,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
#windowrule = idleinhibit fullscreen, class:^(*)$
#windowrule = idleinhibit fullscreen, title:^(*)$
windowrule = match:fullscreen 1, idleinhibit fullscreen
# windowrule move to workspace
#windowrule = workspace 1, tag:email*
#windowrule = workspace 2, tag:browser*
#windowrule = workspace 3, class:^([Tt]hunar)$
#windowrule = workspace 3, tag:projects*
#windowrule = workspace 5, tag:gamestore*
#windowrule = workspace 7, tag:im*
#windowrule = workspace 8, tag:games*
# windowrule move to workspace (silent)
#windowrule = workspace 4 silent, tag:screenshare*
#windowrule = workspace 6 silent, class:^(virt-manager)$
#windowrule = workspace 6 silent, class:^(.virt-manager-wrapped)$
#windowrule = workspace 9 silent, tag:multimedia*
# Some special override rules
windowrule = match:tag multimedia, no_blur on
windowrule = match:tag multimedia, opacity 1.0
# FLOAT
windowrule = match:tag KooL_Cheat*, float
windowrule = match:tag wallpaper*, float
windowrule = match:tag settings*, float
windowrule = match:tag viewer*, float
windowrule = match:tag KooL-Settings*, float
windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher)$, float
windowrule = match:class (org.gnome.Calculator) title (Calculator), float
windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float
windowrule = match:class ^([Qq]alculate-gtk)$, float
#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = match:class ^([Ff]erdium)$, float
windowrule = match:title ^(Picture-in-Picture)$, float
#windowrule = float, title:^(Firefox)$
windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on
windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on
windowrule = match:class ^([Qq]alculate-gtk)$, float on
# windowrule - ######### float popups and dialogue #######
windowrule = match:title ^(Authentication Required)$, float
windowrule = match:title ^(Authentication Required)$, center
windowrule = match:class (codium|codium-url-handler|VSCodium) title negative:(.*codium.*|.*VSCodium.*), float
windowrule = match:class ^(com.heroicgameslauncher.hgl)$ title negative:(Heroic Games Launcher), float
windowrule = match:class ^([Ss]team)$ title negative:^([Ss]team)$, float
windowrule = match:class ([Tt]hunar) title negative:(.*[Tt]hunar.*), float
windowrule = match:title ^(Add Folder to Workspace)$, float
windowrule = match:title ^(Add Folder to Workspace)$, size 70% 60%
windowrule = match:title ^(Add Folder to Workspace)$, center
windowrule = match:title ^(Save As)$, float
windowrule = match:title ^(Save As)$, size 70% 60%
windowrule = match:title ^(Save As)$, center
windowrule = match:initialTitle (Open Files), float
windowrule = match:initialTitle (Open Files), size 70% 60%
windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, float
windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, center
windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, size 16% 12%
# END of float popups and dialogue #######
# OPACITY
windowrule = match:tag browser*, opacity 0.99 0.8
windowrule = match:tag projects*, opacity 0.9 0.8
windowrule = match:tag im*, opacity 0.94 0.86
windowrule = match:tag multimedia*, opacity 0.94 0.86
windowrule = match:tag file-manager*, opacity 0.9 0.8
windowrule = match:tag terminal*, opacity 0.9 0.7
windowrule = match:tag settings*, opacity 0.8 0.7
windowrule = match:tag viewer*, opacity 0.82 0.75
windowrule = match:tag wallpaper*, opacity 0.9 0.7
windowrule = match:class ^(gedit|org.gnome.TextEditor|mousepad)$, opacity 0.8 0.7
windowrule = match:class ^(deluge)$, opacity 0.9 0.8
windowrule = match:class ^(seahorse)$ # gnome-keyring gui, opacity 0.9 0.8
windowrule = match:title ^(Picture-in-Picture)$, opacity 0.95 0.75
# float popups and dialogue
windowrule = match:title ^(Authentication Required)$, float on, center on
windowrule = match:class ^(xfce-polkit|mate-polkit|polkit-mate-authentication-agent-1)$, match:title ^(Authentication required|Authentication Required)$, float on, center on, size (monitor_w*0.35) (monitor_h*0.35)
windowrule = match:class (codium|codium-url-handler|VSCodium), match:title negative:(.*codium.*|.*VSCodium.*), float on
windowrule = match:class ^(com.heroicgameslauncher.hgl)$, match:title negative:(Heroic Games Launcher), float on
windowrule = match:class ^([Ss]team)$, match:title negative:^([Ss]team)$, float on
windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on
windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on
windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6)
windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12)
windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2)
windowrule = match:class ^(hyprland-donate-screen)$, float on, center on
# SIZE
windowrule = match:tag KooL_Cheat*, size 65% 90%
windowrule = match:tag wallpaper*, size 70% 70%
windowrule = match:tag settings*, size 70% 70%
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size 60% 70%
windowrule = match:class ^([Ff]erdium)$, size 60% 70%
#windowrule = size 25% 25%, title:^(Picture-in-Picture)$
#windowrule = size 25% 25%, title:^(Firefox)$
# POSITION
windowrule = match:title ^(ROG Control)$, center on
windowrule = match:title ^(Keybindings)$, center on
windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on
windowrule = match:class ^(nm-connection-editor)$, center on
windowrule = match:class ^(nm-applet)$, match:title ^(Wi-Fi Network Authentication Required)$, center on
# PINNING
windowrule = match:title ^(Picture-in-Picture)$, pin
#windowrule = pin,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
windowrule = match:fullscreen true, idle_inhibit fullscreen
windowrule = idle_inhibit fullscreen, match:fullscreen 1
windowrule = idle_inhibit fullscreen, match:class .*
windowrule = idle_inhibit fullscreen, match:title .*
# windowrule - extras
windowrule = match:title ^(Picture-in-Picture)$, keepaspectratio
# OPACITY
windowrule = match:tag browser, opacity 0.99 0.8
windowrule = match:tag projects, opacity 0.9 0.8
windowrule = match:tag im, opacity 0.94 0.86
windowrule = match:tag multimedia, opacity 0.94 0.86
windowrule = match:tag file-manager, opacity 0.9 0.8
windowrule = match:tag terminal, opacity 0.9 0.7
windowrule = match:class ^(gedit|org.gnome.TextEditor|mousepad)$, opacity 0.8 0.7
windowrule = match:class ^(deluge)$, opacity 0.9 0.8
windowrule = match:class ^(seahorse)$, opacity 0.9 0.8
# BLUR & FULLSCREEN
windowrule = match:tag games*, noblur
windowrule = match:tag games*, fullscreen
#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products
windowrule = match:class ^(jetbrains-*), noinitialfocus
windowrule = match:title ^(wind.*)$, noinitialfocus
#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrule = opacity 0.8 0.8, pinned:1
# This not gonna take the focus to the window that appears
# when hovering over some of the parts of the IntelliJ Products
windowrule = match:class ^(jetbrains-.*)$, no_initial_focus on
windowrule = match:title ^(wind.*)$, no_initial_focus on
# LAYER RULES
layerrule = blur, rofi
layerrule = ignorezero, rofi
layerrule = blur, notifications
layerrule = ignorezero, notifications
layerrule = blur, quickshell:overview
layerrule = ignorezero, quickshell:overview
layerrule = ignorealpha 0.5, quickshell:overview
layerrule = match:namespace rofi, blur on
layerrule = match:namespace notifications, blur on
layerrule = match:namespace quickshell:overview, blur on
layerrule = match:namespace quickshell:overview, ignore_alpha 0.5
#
layerrule = blur on, match:namespace wallpaper
layerrule = animation slide, match:namespace rofi
layerrule = animation slide, match:namespace notifications
# Optional Layer rules
# To Resolve blurred corners in rofi Add to User config
# SUPER SHIFT + E Edit User Window Rules
#layerrule = blur on, ignore_alpha 0, match:namespace rofi
#layerrule = blur on, match:namespace waybar
windowrule {
name = Picture-in-Picture
match:title = ^[Pp]icture-in-[Pp]icture$
float = on
move = 72% 7%
opacity = 0.95 0.75
pin = on
keep_aspect_ratio = on
size = (monitor_w*0.3) (monitor_h*0.3)
}
# Named rule for CachyOS Kernel Manager
windowrule {
name = CachyOS Kernel Manager
match:class = ^(org.cachyos.KernelManager)$
match:title = ^(CachyOS Kernel Manager)$
match:initial_class = ^(org.cachyos.KernelManager)$
match:initial_title = ^(CachyOS Kernel Manager)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Mainline Kernels
windowrule {
name = Mainline Kernels
match:class = ^(mainline-gtk)$
match:title = ^(Mainline Kernels)$
match:initial_class = ^(mainline-gtk)$
match:initial_title = ^(Mainline Kernels)$
float = on
center = on
size = (monitor_w*0.45) (monitor_h*0.55)
}
# Named rule for Kwallet
windowrule {
name = Kwallet
match:class = ^(org.kde.kwalletmanager)$
match:title = ^(Wallet Manager)$
match:initial_class = ^(org.kde.kwalletmanager)$
match:initial_title = ^(Wallet Manager)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for NVIDIA Settings
windowrule {
name = NVIDIA Settings
match:class = ^(nvidia-settings)$
match:title = ^(NVIDIA Settings)$
match:initial_class = ^(nvidia-settings)$
match:initial_title = ^(NVIDIA Settings)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for CachyOS Package Installer
windowrule {
name = CachyOS Package Installer
match:class = ^(org.cachyos.cachyos-pi)$
match:title = ^(CachyOS Package Installer)$
match:initial_class = ^(org.cachyos.cachyos-pi)$
match:initial_title = ^(CachyOS Package Installer)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Shelly
windowrule {
name = Shelly
match:class = ^(com.shellyorg.shelly)$
match:title = ^(Shelly)$
match:initial_class = ^(com.shellyorg.shelly)$
match:initial_title = ^(Shelly)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for CachyOS Hello
windowrule {
name = CachyOS Hello
match:class = ^(CachyOSHello)$
match:title = ^(CachyOS Hello)$
match:initial_class = ^(CachyOSHello)$
match:initial_title = ^(CachyOS Hello)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Cache Cleaner - Octopi
windowrule {
name = Cache Cleaner - Octopi
match:class = ^(octopi-cachecleaner)$
match:title = ^(Cache Cleaner - Octopi)$
match:initial_class = ^(octopi-cachecleaner)$
match:initial_title = ^(Cache Cleaner - Octopi)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Octopi Package Manager
windowrule {
name = Octopi Package Manager
match:class = ^(octopi)$
match:title = ^(Octopi)$
match:initial_class = ^(octopi)$
match:initial_title = ^(Octopi)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Repository Editor - Octopi
windowrule {
name = Repository Editor - Octopi
match:class = ^(octopi-repoeditor)$
match:title = ^(Repository Editor - Octopi)$
match:initial_class = ^(octopi-repoeditor)$
match:initial_title = ^(Repository Editor - Octop)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for KooL Cheat (tag)
windowrule {
name = KooL Cheat (tag)
match:tag = KooL_Cheat
float = on
center = on
size = (monitor_w*0.65) (monitor_h*0.9)
}
# Named rule for Wallpaper (tag)
windowrule {
name = Wallpaper (tag)
match:tag = wallpaper
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.7)
opacity = 0.9 0.7
}
# Named rule for Settings (tag)
windowrule {
name = Settings (tag)
match:tag = settings
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.7)
opacity = 0.8 0.7
}
# Named rule for Viewer (tag)
windowrule {
name = Viewer (tag)
match:tag = viewer
float = on
center = on
opacity = 0.82 0.75
}
# Named rule for KooL Settings (tag)
windowrule {
name = KooL Settings (tag)
match:tag = KooL-Settings
float = on
center = on
}
# Named rule for Multimedia Video (tag)
windowrule {
name = Multimedia Video (tag)
match:tag = multimedia_video
no_blur = on
opacity = 1.0
}
# Named rule for Games (tag)
windowrule {
name = Games (tag)
match:tag = games
no_blur = on
fullscreen = 0
}
# Named rule for Ferdium
windowrule {
name = Ferdium
match:class = ^([Ff]erdium)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.7)
}
# Named rule for Calculators
windowrule {
name = Calculators
match:class = (org.gnome.Calculator|qalculate-gtk)
float = on
center = on
size = (monitor_w*0.55) (monitor_h*0.45)
}
# Named rule for Thunar Dialogs
windowrule {
name = Thunar Dialogs
match:class = ([Tt]hunar)
match:title = negative:(.*[Tt]hunar.*)
float = on
center = on
}
# Named rule for Bitwarden
windowrule {
name = Bitwarden
match:class = ^(Bitwarden)$
match:title = ^(Bitwarden)$
match:initial_class = ^(Bitwarden)$
match:initial_title = ^(Bitwarden)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for hyprpwcenter audio control panel
windowrule {
name = hyprland audio panel
match:class = ^(hyprpwcenter)$
match:initial_class = ^(hyprpwcenter)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Garida Assistant
windowrule {
name = Garuda Assistant
match:class = ^(garuda-assistant)$
match:title = ^(Garuda Assistant)$
match:initial_class = ^(garuda-assistant)$
match:initial_title = ^(Garuda Assistant)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for HyprMod HL config GUI
windowrule {
name = HyprMod GUI
match:class = ^(com.github.hyprmod)$
match:title = ^(HyprMod)$
match:initial_class = ^(com.github.hyprmod)$
match:initial_title = ^(HyprMod)$
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.75)
}
# Named rule for easy effects
windowrule {
name = EasyEffects
match:class = ^(com.github.wwmm.easyeffects)$
match:title = ^(Easy Effects)$
match:initial_class = ^(com.github.wwmm.easyeffects)$
match:initial_title = ^(Easy Effects)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.65)
}
# Named rule for Mousam weather GUI
windowrule {
name = Mousam Weather
match:class = ^(io.github.amit9838.mousam)$
match:title = ^(Mousam)$
match:initial_class = ^(io.github.amit9838.mousam)$
match:initial_title = ^(Mousam)$
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.75)
}
#layerrule = ignorealpha 0.5, tag:notif*
#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View file

@ -0,0 +1,234 @@
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Vendor defaults for window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# NOTES: This is only for Hyprland > 0.48
# windowrule - tags - add apps under appropriate tag to use the same settings
# browser tags
windowrule = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
windowrule = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
windowrule = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs
windowrule = tag +browser, class:^([Cc]hromium)$
windowrule = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
windowrule = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$
windowrule = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$
windowrule = tag +browser, class:^(zen-alpha|zen)$
# notif tags
windowrule = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$
# KooL settings tag
windowrule = tag +KooL_Cheat, title:^(KooL Quick Cheat Sheet)$
windowrule = tag +KooL_Settings, title:^(KooL Hyprland Settings)$
windowrule = tag +KooL-Settings, class:^(nwg-displays|nwg-look)$
# terminal tags
windowrule = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$
# email tags
windowrule = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$
windowrule = tag +email, class:^(eu.betterbird.Betterbird)$
# project tags
windowrule = tag +projects, class:^(codium|codium-url-handler|VSCodium)$
windowrule = tag +projects, class:^(VSCode|code|code-url-handler)$
windowrule = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs
# screenshare tags
windowrule = tag +screenshare, class:^(com.obsproject.Studio)$
# IM tags
windowrule = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrule = tag +im, class:^([Ff]erdium)$
windowrule = tag +im, class:^([Ww]hatsapp-for-linux)$
windowrule = tag +im, class:^(ZapZap|com.rtosta.zapzap)$
windowrule = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
windowrule = tag +im, class:^(teams-for-linux)$
windowrule = tag +im, class:^(im.riot.Riot|Element)$ # Element Matrix client
# game tags
windowrule = tag +games, class:^(gamescope)$
windowrule = tag +games, class:^(steam_app_\d+)$
# gamestore tags
windowrule = tag +gamestore, class:^([Ss]team)$
windowrule = tag +gamestore, title:^([Ll]utris)$
windowrule = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$
# file-manager tags
windowrule = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
windowrule = tag +file-manager, class:^(app.drey.Warp)$
# wallpaper tags
windowrule = tag +wallpaper, class:^([Ww]aytrogen)$
# multimedia tags
windowrule = tag +multimedia, class:^([Aa]udacious)$
# multimedia-video tags
windowrule = tag +multimedia_video, class:^([Mm]pv|vlc)$
# settings tags
windowrule = tag +settings, title:^(ROG Control)$
windowrule = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot
windowrule = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
windowrule = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$
windowrule = tag +settings, title:(Kvantum Manager)
windowrule = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
windowrule = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$
windowrule = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrule = tag +settings, class:^(qt5ct|qt6ct|[Yy]ad)$
windowrule = tag +settings, class:(xdg-desktop-portal-gtk)
windowrule = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrule = tag +settings, class:^([Rr]ofi)$
# viewer tags
windowrule = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
windowrule = tag +viewer, class:^(evince)$ # document viewer
windowrule = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer
# Some special override rules
windowrule = noblur, tag:multimedia_video*
windowrule = opacity 1.0, tag:multimedia_video*
# POSITION
# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
windowrule = center, tag:KooL_Cheat*
windowrule = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
windowrule = center, title:^(ROG Control)$
windowrule = center, tag:KooL-Settings*
windowrule = center, title:^(Keybindings)$
windowrule = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrule = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = center, class:^([Ff]erdium)$
windowrule = move 72% 7%,title:^(Picture-in-Picture)$
#windowrule = move 72% 7%,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
#windowrule = idleinhibit fullscreen, class:^(*)$
#windowrule = idleinhibit fullscreen, title:^(*)$
windowrule = idleinhibit fullscreen, fullscreen:1
# windowrule move to workspace
#windowrule = workspace 1, tag:email*
#windowrule = workspace 2, tag:browser*
#windowrule = workspace 3, class:^([Tt]hunar)$
#windowrule = workspace 3, tag:projects*
#windowrule = workspace 5, tag:gamestore*
#windowrule = workspace 7, tag:im*
#windowrule = workspace 8, tag:games*
# windowrule move to workspace (silent)
#windowrule = workspace 4 silent, tag:screenshare*
#windowrule = workspace 6 silent, class:^(virt-manager)$
#windowrule = workspace 6 silent, class:^(.virt-manager-wrapped)$
#windowrule = workspace 9 silent, tag:multimedia*
#
# FLOAT
windowrule = float, tag:KooL_Cheat*
windowrule = float, tag:wallpaper*
windowrule = float, tag:settings*
windowrule = float, tag:viewer*
windowrule = float, tag:KooL-Settings*
windowrule = float, class:([Zz]oom|onedriver|onedriver-launcher)$
windowrule = float, class:(org.gnome.Calculator), title:(Calculator)
windowrule = float, class:^(mpv|com.github.rafostar.Clapper)$
windowrule = float, class:^([Qq]alculate-gtk)$
#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = float, class:^([Ff]erdium)$
windowrule = float, title:^(Picture-in-Picture)$
#windowrule = float, title:^(Firefox)$
# windowrule - ######### float popups and dialogue #######
windowrule = float, title:^(Authentication Required)$
windowrule = center, title:^(Authentication Required)$
windowrule = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)
windowrule = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)
windowrule = float, class:^([Ss]team)$, title:negative:^([Ss]team)$
windowrule = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
windowrule = float, title:^(Add Folder to Workspace)$
windowrule = size 70% 60%, title:^(Add Folder to Workspace)$
windowrule = center, title:^(Add Folder to Workspace)$
windowrule = float, title:^(Save As)$
windowrule = size 70% 60%, title:^(Save As)$
windowrule = center, title:^(Save As)$
windowrule = float, initialTitle:(Open Files)
windowrule = size 70% 60%, initialTitle:(Open Files)
windowrule = float, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrule = center, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrule = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
# END of float popups and dialogue #######
# OPACITY
windowrule = opacity 0.99 0.8, tag:browser*
windowrule = opacity 0.9 0.8, tag:projects*
windowrule = opacity 0.94 0.86, tag:im*
windowrule = opacity 0.94 0.86, tag:multimedia*
windowrule = opacity 0.9 0.8, tag:file-manager*
windowrule = opacity 0.9 0.7, tag:terminal*
windowrule = opacity 0.8 0.7, tag:settings*
windowrule = opacity 0.82 0.75, tag:viewer*
windowrule = opacity 0.9 0.7, tag:wallpaper*
windowrule = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
windowrule = opacity 0.9 0.8, class:^(deluge)$
windowrule = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
windowrule = opacity 0.95 0.75, title:^(Picture-in-Picture)$
# SIZE
windowrule = size 65% 90%, tag:KooL_Cheat*
windowrule = size 70% 70%, tag:wallpaper*
windowrule = size 70% 70%, tag:settings*
windowrule = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = size 60% 70%, class:^([Ff]erdium)$
#windowrule = size 25% 25%, title:^(Picture-in-Picture)$
#windowrule = size 25% 25%, title:^(Firefox)$
# PINNING
windowrule = pin, title:^(Picture-in-Picture)$
#windowrule = pin,title:^(Firefox)$
# windowrule - extras
windowrule = keepaspectratio, title:^(Picture-in-Picture)$
# BLUR & FULLSCREEN
windowrule = noblur, tag:games*
windowrule = fullscreen, tag:games*
#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products
windowrule = noinitialfocus, class:^(jetbrains-*)
windowrule = noinitialfocus, title:^(wind.*)$
#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrule = opacity 0.8 0.8, pinned:1
# LAYER RULES
layerrule = blur, rofi
layerrule = ignorezero, rofi
layerrule = blur, notifications
layerrule = ignorezero, notifications
layerrule = blur, quickshell:overview
layerrule = ignorezero, quickshell:overview
layerrule = ignorealpha 0.5, quickshell:overview
#layerrule = ignorealpha 0.5, tag:notif*
#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View file

@ -1,231 +1,471 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Vendor defaults for window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# NOTES: This is only for Hyprland > 0.48
# NOTES: This is only for Hyprland >= 0.53
# note for ja: This should NOT be implemented on Debian and Ubuntu
# Some samples on hwo to start apps on specific workspaces
# windowrule = match:tag email*, workspace 1
# windowrule = match:tag browser*, workspace 2
# windowrule = match:tag projects*, workspace 3
# windowrule = match:tag screenshare*, workspace 4 silent
# windowrule = match:tag gamestore*, workspace 5
# windowrule = match:class ^(virt-manager)$, workspace 6 silent
# windowrule = match:class ^(.virt-manager-wrapped)$, workspace 6 silent
# windowrule = match:tag im*, workspace 7
# windowrule = match:class obsidian, workspace 8
# windowrule = match:tag games*, workspace 8
# windowrule = match:tag multimedia*, workspace 9 silent
# windowrule - tags - add apps under appropriate tag to use the same settings
# TAGS - add apps under appropriate tag to use the same settings
# browser tags
windowrule = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
windowrule = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
windowrule = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs
windowrule = tag +browser, class:^([Cc]hromium)$
windowrule = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
windowrule = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$
windowrule = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$
windowrule = tag +browser, class:^(zen-alpha|zen)$
windowrule = match:class ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$, tag +browser
windowrule = match:class ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$, tag +browser
windowrule = match:class ^(chrome-.+-Default)$, tag +browser
windowrule = match:class ^([Cc]hromium)$, tag +browser
windowrule = match:class ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$, tag +browser
windowrule = match:class ^([Bb]rave-browser(-beta|-dev|-unstable)?)$, tag +browser
windowrule = match:class ^([Tt]horium-browser|[Cc]achy-browser)$, tag +browser
windowrule = match:class ^(zen-alpha|zen)$, tag +browser
# notif tags
windowrule = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$
windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif
# KooL settings tag
windowrule = tag +KooL_Cheat, title:^(KooL Quick Cheat Sheet)$
windowrule = tag +KooL_Settings, title:^(KooL Hyprland Settings)$
windowrule = tag +KooL-Settings, class:^(nwg-displays|nwg-look)$
windowrule = match:title ^(KooL Quick Cheat Sheet)$, tag +KooL_Cheat
windowrule = match:title ^(KooL Hyprland Settings)$, tag +KooL_Settings
windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings
# terminal tags
windowrule = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$
windowrule = match:class ^(ghostty|wezterm|Alacritty|kitty|kitty-dropterm)$, tag +terminal
# email tags
windowrule = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$
windowrule = tag +email, class:^(eu.betterbird.Betterbird)$
windowrule = match:class ^([Tt]hunderbird|org.mozilla.Thunderbird)$, tag +email
windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email
windowrule = match:class ^(org.gnome.Evolution)$, tag +email
# project tags
windowrule = tag +projects, class:^(codium|codium-url-handler|VSCodium)$
windowrule = tag +projects, class:^(VSCode|code|code-url-handler)$
windowrule = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs
windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects
windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects
windowrule = match:class ^(jetbrains-.+)$, tag +projects
windowrule = match:class ^(dev.zed.Zed|antigravity)$, tag +projects
# screenshare tags
windowrule = tag +screenshare, class:^(com.obsproject.Studio)$
windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare
# IM tags
windowrule = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrule = tag +im, class:^([Ff]erdium)$
windowrule = tag +im, class:^([Ww]hatsapp-for-linux)$
windowrule = tag +im, class:^(ZapZap|com.rtosta.zapzap)$
windowrule = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
windowrule = tag +im, class:^(teams-for-linux)$
windowrule = tag +im, class:^(im.riot.Riot|Element)$ # Element Matrix client
windowrule = match:class ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$, tag +im
windowrule = match:class ^([Ff]erdium)$, tag +im
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, tag +im
windowrule = match:class ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$, tag +im
windowrule = match:class ^(teams-for-linux)$, tag +im
windowrule = match:class ^(im.riot.Riot|Element)$, tag +im
# game tags
windowrule = tag +games, class:^(gamescope)$
windowrule = tag +games, class:^(steam_app_\d+)$
windowrule = match:class ^(gamescope)$, tag +games
windowrule = match:class ^(steam_app_\\d+)$, tag +games
windowrule = match:xdg_tag ^(proton-game)$, tag +games
# gamestore tags
windowrule = tag +gamestore, class:^([Ss]team)$
windowrule = tag +gamestore, title:^([Ll]utris)$
windowrule = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$
windowrule = match:class ^([Ss]team)$, tag +gamestore
windowrule = match:title ^([Ll]utris)$, tag +gamestore
windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore
# file-manager tags
windowrule = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
windowrule = tag +file-manager, class:^(app.drey.Warp)$
windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager
windowrule = match:class ^(app.drey.Warp)$, tag +file-manager
# wallpaper tags
windowrule = tag +wallpaper, class:^([Ww]aytrogen)$
windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper
# multimedia tags
windowrule = tag +multimedia, class:^([Aa]udacious)$
windowrule = match:class ^([Aa]udacious)$, tag +multimedia
# multimedia-video tags
windowrule = tag +multimedia_video, class:^([Mm]pv|vlc)$
windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video
# settings tags
windowrule = tag +settings, title:^(ROG Control)$
windowrule = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot
windowrule = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
windowrule = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$
windowrule = tag +settings, title:(Kvantum Manager)
windowrule = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
windowrule = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$
windowrule = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrule = tag +settings, class:^(qt5ct|qt6ct|[Yy]ad)$
windowrule = tag +settings, class:(xdg-desktop-portal-gtk)
windowrule = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrule = tag +settings, class:^([Rr]ofi)$
windowrule = match:title ^(ROG Control)$, tag +settings
windowrule = match:class ^(wihotspot(-gui)?)$, tag +settings
windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$, tag +settings
windowrule = match:class ^(gnome-disks|wihotspot(-gui)?)$, tag +settings
windowrule = match:title (Kvantum Manager), tag +settings
windowrule = match:class ^(file-roller|org.gnome.FileRoller)$, tag +settings
windowrule = match:class ^(nm-applet|nm-connection-editor|blueman-manager)$, tag +settings
windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, tag +settings
windowrule = match:class ^(qt5ct|qt6ct)$, tag +settings
windowrule = match:class (xdg-desktop-portal-gtk), tag +settings
windowrule = match:class ^(org.kde.polkit-kde-authentication-agent-1)$, tag +settings
windowrule = match:class ^([Rr]ofi)$, tag +settings
windowrule = match:class ^(btrfs-assistant)$, tag +settings
windowrule = match:class ^(timeshift-gtk)$, tag +settings
# viewer tags
windowrule = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
windowrule = tag +viewer, class:^(evince)$ # document viewer
windowrule = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer
windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer
windowrule = match:class ^(evince)$, tag +viewer
windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer
# Some special override rules
windowrule = noblur, tag:multimedia_video*
windowrule = opacity 1.0, tag:multimedia_video*
windowrule = match:tag multimedia, no_blur on
windowrule = match:tag multimedia, opacity 1.0
# POSITION
# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
windowrule = center, tag:KooL_Cheat*
windowrule = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
windowrule = center, title:^(ROG Control)$
windowrule = center, tag:KooL-Settings*
windowrule = center, title:^(Keybindings)$
windowrule = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrule = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = center, class:^([Ff]erdium)$
windowrule = move 72% 7%,title:^(Picture-in-Picture)$
#windowrule = move 72% 7%,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
#windowrule = idleinhibit fullscreen, class:^(*)$
#windowrule = idleinhibit fullscreen, title:^(*)$
windowrule = idleinhibit fullscreen, fullscreen:1
# windowrule move to workspace
#windowrule = workspace 1, tag:email*
#windowrule = workspace 2, tag:browser*
#windowrule = workspace 3, class:^([Tt]hunar)$
#windowrule = workspace 3, tag:projects*
#windowrule = workspace 5, tag:gamestore*
#windowrule = workspace 7, tag:im*
#windowrule = workspace 8, tag:games*
# windowrule move to workspace (silent)
#windowrule = workspace 4 silent, tag:screenshare*
#windowrule = workspace 6 silent, class:^(virt-manager)$
#windowrule = workspace 6 silent, class:^(.virt-manager-wrapped)$
#windowrule = workspace 9 silent, tag:multimedia*
#
# FLOAT
windowrule = float, tag:KooL_Cheat*
windowrule = float, tag:wallpaper*
windowrule = float, tag:settings*
windowrule = float, tag:viewer*
windowrule = float, tag:KooL-Settings*
windowrule = float, class:([Zz]oom|onedriver|onedriver-launcher)$
windowrule = float, class:(org.gnome.Calculator), title:(Calculator)
windowrule = float, class:^(mpv|com.github.rafostar.Clapper)$
windowrule = float, class:^([Qq]alculate-gtk)$
#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = float, class:^([Ff]erdium)$
windowrule = float, title:^(Picture-in-Picture)$
#windowrule = float, title:^(Firefox)$
windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on
windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on
windowrule = match:class ^([Qq]alculate-gtk)$, float on
# windowrule - ######### float popups and dialogue #######
windowrule = float, title:^(Authentication Required)$
windowrule = center, title:^(Authentication Required)$
windowrule = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)
windowrule = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)
windowrule = float, class:^([Ss]team)$, title:negative:^([Ss]team)$
windowrule = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
windowrule = float, title:^(Add Folder to Workspace)$
windowrule = size 70% 60%, title:^(Add Folder to Workspace)$
windowrule = center, title:^(Add Folder to Workspace)$
windowrule = float, title:^(Save As)$
windowrule = size 70% 60%, title:^(Save As)$
windowrule = center, title:^(Save As)$
windowrule = float, initialTitle:(Open Files)
windowrule = size 70% 60%, initialTitle:(Open Files)
windowrule = float, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrule = center, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
windowrule = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
# END of float popups and dialogue #######
# OPACITY
windowrule = opacity 0.99 0.8, tag:browser*
windowrule = opacity 0.9 0.8, tag:projects*
windowrule = opacity 0.94 0.86, tag:im*
windowrule = opacity 0.94 0.86, tag:multimedia*
windowrule = opacity 0.9 0.8, tag:file-manager*
windowrule = opacity 0.9 0.7, tag:terminal*
windowrule = opacity 0.8 0.7, tag:settings*
windowrule = opacity 0.82 0.75, tag:viewer*
windowrule = opacity 0.9 0.7, tag:wallpaper*
windowrule = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
windowrule = opacity 0.9 0.8, class:^(deluge)$
windowrule = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
windowrule = opacity 0.95 0.75, title:^(Picture-in-Picture)$
# float popups and dialogue
windowrule = match:title ^(Authentication Required)$, float on, center on
windowrule = match:class ^(xfce-polkit|mate-polkit|polkit-mate-authentication-agent-1)$, match:title ^(Authentication required|Authentication Required)$, float on, center on, size (monitor_w*0.35) (monitor_h*0.35)
windowrule = match:class (codium|codium-url-handler|VSCodium), match:title negative:(.*codium.*|.*VSCodium.*), float on
windowrule = match:class ^(com.heroicgameslauncher.hgl)$, match:title negative:(Heroic Games Launcher), float on
windowrule = match:class ^([Ss]team)$, match:title negative:^([Ss]team)$, float on
windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on
windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on
windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6)
windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12)
windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2)
windowrule = match:class ^(hyprland-donate-screen)$, float on, center on
# SIZE
windowrule = size 65% 90%, tag:KooL_Cheat*
windowrule = size 70% 70%, tag:wallpaper*
windowrule = size 70% 70%, tag:settings*
windowrule = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
windowrule = size 60% 70%, class:^([Ff]erdium)$
#windowrule = size 25% 25%, title:^(Picture-in-Picture)$
#windowrule = size 25% 25%, title:^(Firefox)$
# POSITION
windowrule = match:title ^(ROG Control)$, center on
windowrule = match:title ^(Keybindings)$, center on
windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on
windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on
windowrule = match:class ^(nm-connection-editor)$, center on
windowrule = match:class ^(nm-applet)$, match:title ^(Wi-Fi Network Authentication Required)$, center on
# PINNING
windowrule = pin, title:^(Picture-in-Picture)$
#windowrule = pin,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
windowrule = match:fullscreen true, idle_inhibit fullscreen
windowrule = idle_inhibit fullscreen, match:fullscreen 1
windowrule = idle_inhibit fullscreen, match:class .*
windowrule = idle_inhibit fullscreen, match:title .*
# windowrule - extras
windowrule = keepaspectratio, title:^(Picture-in-Picture)$
# OPACITY
windowrule = match:tag browser, opacity 0.99 0.8
windowrule = match:tag projects, opacity 0.9 0.8
windowrule = match:tag im, opacity 0.94 0.86
windowrule = match:tag multimedia, opacity 0.94 0.86
windowrule = match:tag file-manager, opacity 0.9 0.8
windowrule = match:tag terminal, opacity 0.9 0.7
windowrule = match:class ^(gedit|org.gnome.TextEditor|mousepad)$, opacity 0.8 0.7
windowrule = match:class ^(deluge)$, opacity 0.9 0.8
windowrule = match:class ^(seahorse)$, opacity 0.9 0.8
# BLUR & FULLSCREEN
windowrule = noblur, tag:games*
windowrule = fullscreen, tag:games*
#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products
windowrule = noinitialfocus, class:^(jetbrains-*)
windowrule = noinitialfocus, title:^(wind.*)$
#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrule = opacity 0.8 0.8, pinned:1
# This not gonna take the focus to the window that appears
# when hovering over some of the parts of the IntelliJ Products
windowrule = match:class ^(jetbrains-.*)$, no_initial_focus on
windowrule = match:title ^(wind.*)$, no_initial_focus on
# LAYER RULES
layerrule = blur, rofi
layerrule = ignorezero, rofi
layerrule = blur, notifications
layerrule = ignorezero, notifications
layerrule = blur, quickshell:overview
layerrule = ignorezero, quickshell:overview
layerrule = ignorealpha 0.5, quickshell:overview
layerrule = match:namespace rofi, blur on
layerrule = match:namespace notifications, blur on
layerrule = match:namespace quickshell:overview, blur on
layerrule = match:namespace quickshell:overview, ignore_alpha 0.5
#layerrule = ignorealpha 0.5, tag:notif*
#
layerrule = blur on, match:namespace wallpaper
layerrule = animation slide, match:namespace rofi
layerrule = animation slide, match:namespace notifications
# Optional Layer rules
# To Resolve blurred corners in rofi Add to User config
# SUPER SHIFT + E Edit User Window Rules
#layerrule = blur on, ignore_alpha 0, match:namespace rofi
#layerrule = blur on, match:namespace waybar
windowrule {
name = Picture-in-Picture
match:title = ^[Pp]icture-in-[Pp]icture$
float = on
move = 72% 7%
opacity = 0.95 0.75
pin = on
keep_aspect_ratio = on
size = (monitor_w*0.3) (monitor_h*0.3)
}
# Named rule for CachyOS Kernel Manager
windowrule {
name = CachyOS Kernel Manager
match:class = ^(org.cachyos.KernelManager)$
match:title = ^(CachyOS Kernel Manager)$
match:initial_class = ^(org.cachyos.KernelManager)$
match:initial_title = ^(CachyOS Kernel Manager)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Mainline Kernels
windowrule {
name = Mainline Kernels
match:class = ^(mainline-gtk)$
match:title = ^(Mainline Kernels)$
match:initial_class = ^(mainline-gtk)$
match:initial_title = ^(Mainline Kernels)$
float = on
center = on
size = (monitor_w*0.45) (monitor_h*0.55)
}
# Named rule for Kwallet
windowrule {
name = Kwallet
match:class = ^(org.kde.kwalletmanager)$
match:title = ^(Wallet Manager)$
match:initial_class = ^(org.kde.kwalletmanager)$
match:initial_title = ^(Wallet Manager)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for NVIDIA Settings
windowrule {
name = NVIDIA Settings
match:class = ^(nvidia-settings)$
match:title = ^(NVIDIA Settings)$
match:initial_class = ^(nvidia-settings)$
match:initial_title = ^(NVIDIA Settings)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for CachyOS Package Installer
windowrule {
name = CachyOS Package Installer
match:class = ^(org.cachyos.cachyos-pi)$
match:title = ^(CachyOS Package Installer)$
match:initial_class = ^(org.cachyos.cachyos-pi)$
match:initial_title = ^(CachyOS Package Installer)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Shelly
windowrule {
name = Shelly
match:class = ^(com.shellyorg.shelly)$
match:title = ^(Shelly)$
match:initial_class = ^(com.shellyorg.shelly)$
match:initial_title = ^(Shelly)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for CachyOS Hello
windowrule {
name = CachyOS Hello
match:class = ^(CachyOSHello)$
match:title = ^(CachyOS Hello)$
match:initial_class = ^(CachyOSHello)$
match:initial_title = ^(CachyOS Hello)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Cache Cleaner - Octopi
windowrule {
name = Cache Cleaner - Octopi
match:class = ^(octopi-cachecleaner)$
match:title = ^(Cache Cleaner - Octopi)$
match:initial_class = ^(octopi-cachecleaner)$
match:initial_title = ^(Cache Cleaner - Octopi)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Octopi Package Manager
windowrule {
name = Octopi Package Manager
match:class = ^(octopi)$
match:title = ^(Octopi)$
match:initial_class = ^(octopi)$
match:initial_title = ^(Octopi)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Repository Editor - Octopi
windowrule {
name = Repository Editor - Octopi
match:class = ^(octopi-repoeditor)$
match:title = ^(Repository Editor - Octopi)$
match:initial_class = ^(octopi-repoeditor)$
match:initial_title = ^(Repository Editor - Octop)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for KooL Cheat (tag)
windowrule {
name = KooL Cheat (tag)
match:tag = KooL_Cheat
float = on
center = on
size = (monitor_w*0.65) (monitor_h*0.9)
}
# Named rule for Wallpaper (tag)
windowrule {
name = Wallpaper (tag)
match:tag = wallpaper
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.7)
opacity = 0.9 0.7
}
# Named rule for Settings (tag)
windowrule {
name = Settings (tag)
match:tag = settings
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.7)
opacity = 0.8 0.7
}
# Named rule for Viewer (tag)
windowrule {
name = Viewer (tag)
match:tag = viewer
float = on
center = on
opacity = 0.82 0.75
}
# Named rule for KooL Settings (tag)
windowrule {
name = KooL Settings (tag)
match:tag = KooL-Settings
float = on
center = on
}
# Named rule for Multimedia Video (tag)
windowrule {
name = Multimedia Video (tag)
match:tag = multimedia_video
no_blur = on
opacity = 1.0
}
# Named rule for Games (tag)
windowrule {
name = Games (tag)
match:tag = games
no_blur = on
fullscreen = 0
}
# Named rule for Ferdium
windowrule {
name = Ferdium
match:class = ^([Ff]erdium)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.7)
}
# Named rule for Calculators
windowrule {
name = Calculators
match:class = (org.gnome.Calculator|qalculate-gtk)
float = on
center = on
size = (monitor_w*0.55) (monitor_h*0.45)
}
# Named rule for Thunar Dialogs
windowrule {
name = Thunar Dialogs
match:class = ([Tt]hunar)
match:title = negative:(.*[Tt]hunar.*)
float = on
center = on
}
# Named rule for Bitwarden
windowrule {
name = Bitwarden
match:class = ^(Bitwarden)$
match:title = ^(Bitwarden)$
match:initial_class = ^(Bitwarden)$
match:initial_title = ^(Bitwarden)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for hyprpwcenter audio control panel
windowrule {
name = hyprland audio panel
match:class = ^(hyprpwcenter)$
match:initial_class = ^(hyprpwcenter)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for Garida Assistant
windowrule {
name = Garuda Assistant
match:class = ^(garuda-assistant)$
match:title = ^(Garuda Assistant)$
match:initial_class = ^(garuda-assistant)$
match:initial_title = ^(Garuda Assistant)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.6)
}
# Named rule for HyprMod HL config GUI
windowrule {
name = HyprMod GUI
match:class = ^(com.github.hyprmod)$
match:title = ^(HyprMod)$
match:initial_class = ^(com.github.hyprmod)$
match:initial_title = ^(HyprMod)$
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.75)
}
# Named rule for easy effects
windowrule {
name = EasyEffects
match:class = ^(com.github.wwmm.easyeffects)$
match:title = ^(Easy Effects)$
match:initial_class = ^(com.github.wwmm.easyeffects)$
match:initial_title = ^(Easy Effects)$
float = on
center = on
size = (monitor_w*0.6) (monitor_h*0.65)
}
# Named rule for Mousam weather GUI
windowrule {
name = Mousam Weather
match:class = ^(io.github.amit9838.mousam)$
match:title = ^(Mousam)$
match:initial_class = ^(io.github.amit9838.mousam)$
match:initial_title = ^(Mousam)$
float = on
center = on
size = (monitor_w*0.7) (monitor_h*0.75)
}
#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Hypridle
# Original config submitted by https://github.com/SherLock707

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Always refer to Hyprland wiki
# https://wiki.hyprland.org/

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Hyprlock config for < 1080p monitor resolutions
# Original config submitted by https://github.com/SherLock707
@ -7,7 +7,6 @@ source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
$Scripts = $HOME/.config/hypr/scripts
general {
grace = 1
fractional_scaling = 2
immediate_render = true
}
@ -97,7 +96,7 @@ label {
# position = 0, 280
# halign = center
# valign = bottom
}
# }
# USER
label {
@ -170,7 +169,7 @@ label {
# weather edit the scripts for locations
# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py
# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
# see https://github.com/LinuxBeginnings/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
label {
monitor =
text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache"

View file

@ -0,0 +1,182 @@
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Hyprlock config for => 2k monitor resolutions
# Original config submitted by https://github.com/SherLock707
# Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
$Scripts = $HOME/.config/hypr/scripts
general {
fractional_scaling = 2
immediate_render = true
}
background {
monitor =
# NOTE: use only 1 path
#path = screenshot # screenshot of your desktop
#path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects
path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper
color = rgb(0,0,0) # color will be rendered initially until path is available
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 3
blur_passes = 2 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
# Date
label {
monitor =
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B')" </b>"
color = $color13
font_size = 64
font_family = Victor Mono Bold Italic
position = 0, -20
halign = center
valign = center
}
# Hour-Time (single horizontal time like 1080p variant)
label {
monitor =
# text = cmd[update:1000] echo "$(date +"%H:%M")" # 24h option
text = cmd[update:1000] echo "$(date +"%I:%M %p")" # AM/PM
#color = rgba(255, 185, 0, .8)
color = $color8
font_size = 173
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -133
halign = center
valign = top
}
# Minute-Time (disabled; kept for reference)
# label {
# monitor =
# text = cmd[update:1000] echo "$(date +"%M")"
# #color = rgba(15, 10, 222, .8)
# color = $color12
# font_size = 240
# font_family = JetBrainsMono Nerd Font ExtraBold
# position = 0, -450
# halign = center
# valign = top
# }
# Seconds-Time (disabled; kept for reference)
# label {
# monitor =
# text = cmd[update:1000] echo "$(date +"%S")"
# # text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM
# color = $color11
# font_size = 50
# font_family = JetBrainsMono Nerd Font ExtraBold
# position = 0, -450
# halign = center
# valign = top
# }
# Put a picture of choice here. Default is the current wallpaper
# image {
# monitor =
# #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current
# size = 160
# rounding = -1
# border_size = 0
# border_color = $color11
# rotate = 0
# reload_time = -1
# position = 0, 400
# halign = center
# valign = bottom
# }
# USER
label {
monitor =
text =  $USER
color = $color9
font_size = 48
font_family = Victor Mono Bold Oblique
position = 0, 300
halign = center
valign = bottom
}
# INPUT FIELD
input-field {
monitor =
size = 306, 93
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = $color8
inner_color = rgba(255, 255, 255, 0.1)
capslock_color = rgb(255,255,255)
font_color = $color13
fade_on_empty = false
font_family = Victor Mono Bold Oblique
placeholder_text = <i><span foreground="##ffffff99">🔒 Type Password</span></i>
hide_input = false
position = 0, 100
halign = center
valign = bottom
}
# Keyboard LAYOUT
label {
monitor =
text = $LAYOUT
color = $color8
font_size = 19
font_family = Victor Mono Bold Oblique
position = 0, 53
halign = center
valign = bottom
}
# uptime
label {
monitor =
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
color = $color8
font_size = 32
font_family = Victor Mono Bold Oblique
position = 0, 0
halign = right
valign = bottom
}
# battery information
label {
monitor =
text = cmd[update:1000] echo "<b> "$($Scripts/Battery.sh)" </b>"
color = $color8
font_size = 21
font_family = Victor Mono Bold Oblique
position = 0, 40
halign = right
valign = bottom
}
# weather edit the scripts for locations
# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py
# see https://github.com/LinuxBeginnings/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
label {
monitor =
text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache"
color = $color8
font_size = 19
font_family = Victor Mono Bold Oblique
position = 50, 0
halign = left
valign = bottom
}

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Hyprlock config for => 2k monitor resolutions
# Original config submitted by https://github.com/SherLock707
@ -7,7 +7,6 @@ source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
$Scripts = $HOME/.config/hypr/scripts
general {
grace = 1
fractional_scaling = 2
immediate_render = true
}
@ -170,7 +169,7 @@ label {
# weather edit the scripts for locations
# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py
# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
# see https://github.com/LinuxBeginnings/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
label {
monitor =
text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache"

View file

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# A bash script designed to run only once dotfiles installed
# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf
@ -17,7 +17,14 @@ gtk_theme="Flat-Remix-GTK-Blue-Dark"
icon_theme="Flat-Remix-Blue-Dark"
cursor_theme="Bibata-Modern-Ice"
swww="swww img"
if command -v awww >/dev/null 2>&1; then
WWW="awww"
DAEMON="awww-daemon"
else
WWW="swww"
DAEMON="swww-daemon"
fi
swww="$WWW img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
# Check if a marker file exists.
@ -26,7 +33,7 @@ if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
# Initialize wallust and wallpaper
if [ -f "$wallpaper" ]; then
wallust run -s $wallpaper > /dev/null
swww query || swww-daemon && $swww $wallpaper $effect
$WWW query || $DAEMON && $swww $wallpaper $effect
"$scriptsDir/WallustSwww.sh" > /dev/null 2>&1 &
fi
@ -49,9 +56,6 @@ if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
# initiate kvantum theme
kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 &
# initiate the kb_layout (for some reason) waybar cant launch it
"$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 &
# waybar style
#if [ -L "$HOME/.config/waybar/config" ]; then
## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css"

View file

@ -1,4 +1,4 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# default Monitor config
# *********************************************************** #
@ -36,7 +36,7 @@ monitor=,highres,auto,1
#monitor = HDMI-A-1, preferred,auto,1
# QEMU-KVM, virtual box or vmware
#monitor = Virtual-1, 1920x1080@60,auto,1
monitor = Virtual-1, 1920x1080@60,auto,1
# to disable a monitor
#monitor=name,disable

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Airplane Mode. Turning on or off all wifi using rfkill.
notif="$HOME/.config/swaync/images/ja.png"

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# For applying Animations from different users
# Check if rofi is already running

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
for i in {0..3}; do
if [ -f /sys/class/power_supply/BAT$i/capacity ]; then
battery_level=$(cat /sys/class/power_supply/BAT$i/status)

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Script for Monitor backlights (if supported) using brightnessctl
iDIR="$HOME/.config/swaync/icons"

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Script for keyboard backlights (if supported) using brightnessctl
iDIR="$HOME/.config/swaync/icons"

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Script for changing blurs on the fly
notif="$HOME/.config/swaync/images"

View file

@ -1,24 +1,110 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# for changing Hyprland Layouts (Master or Dwindle) on the fly
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# for changing Hyprland Layouts (master, dwindle, scrolling, monocle) on the fly
notif="$HOME/.config/swaync/images/ja.png"
LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g')
layouts=(master dwindle scrolling monocle)
case $LAYOUT in
"master")
hyprctl keyword general:layout dwindle
# SUPER+J/K are global and managed by KeybindsLayoutInit.sh; only manage SUPER+O here
hyprctl keyword bind SUPER,O,togglesplit
get_layout() {
hyprctl -j getoption general:layout | jq -r '.str'
}
next_layout() {
local current="$1"
local i
for i in "${!layouts[@]}"; do
if [[ "${layouts[i]}" == "$current" ]]; then
echo "${layouts[((i + 1) % ${#layouts[@]})]}"
return
fi
done
echo "${layouts[0]}"
}
set_layout() {
local target="$1"
hyprctl keyword general:layout "$target"
hyprctl keyword unbind SUPER,j
hyprctl keyword unbind SUPER,k
hyprctl keyword unbind SUPER,left
hyprctl keyword unbind SUPER,right
hyprctl keyword unbind SUPER,up
hyprctl keyword unbind SUPER,down
hyprctl keyword unbind SUPER,O
case "$target" in
"dwindle")
hyprctl keyword bind SUPER,j,cyclenext
hyprctl keyword bind SUPER,k,cyclenext,prev
hyprctl keyword bind SUPER,left,cyclenext,prev
hyprctl keyword bind SUPER,up,cyclenext,prev
hyprctl keyword bind SUPER,right,cyclenext
hyprctl keyword bind SUPER,down,cyclenext
hyprctl keyword bind SUPER,O,layoutmsg,togglesplit
notify-send -e -u low -i "$notif" " Dwindle Layout"
;;
"dwindle")
hyprctl keyword general:layout master
# Drop togglesplit binding on SUPER+O when switching back to master
hyprctl keyword unbind SUPER,O
"scrolling")
hyprctl keyword bind SUPER,j,cyclenext
hyprctl keyword bind SUPER,k,cyclenext,prev
hyprctl keyword bind SUPER,left,cyclenext,prev
hyprctl keyword bind SUPER,up,cyclenext,prev
hyprctl keyword bind SUPER,right,cyclenext
hyprctl keyword bind SUPER,down,cyclenext
notify-send -e -u low -i "$notif" " Scrolling Layout"
;;
"monocle")
hyprctl keyword bind SUPER,j,layoutmsg,cyclenext
hyprctl keyword bind SUPER,k,layoutmsg,cycleprev
hyprctl keyword bind SUPER,left,layoutmsg,cycleprev
hyprctl keyword bind SUPER,up,layoutmsg,cycleprev
hyprctl keyword bind SUPER,right,layoutmsg,cyclenext
hyprctl keyword bind SUPER,down,layoutmsg,cyclenext
notify-send -e -u low -i "$notif" " Monocle Layout"
;;
"master")
hyprctl keyword bind SUPER,j,layoutmsg,cyclenext
hyprctl keyword bind SUPER,k,layoutmsg,cycleprev
hyprctl keyword bind SUPER,left,movefocus,l
hyprctl keyword bind SUPER,right,movefocus,r
hyprctl keyword bind SUPER,up,movefocus,u
hyprctl keyword bind SUPER,down,movefocus,d
notify-send -e -u low -i "$notif" " Master Layout"
;;
*) ;;
*)
hyprctl keyword bind SUPER,j,layoutmsg,cyclenext
hyprctl keyword bind SUPER,k,layoutmsg,cycleprev
hyprctl keyword bind SUPER,left,movefocus,l
hyprctl keyword bind SUPER,right,movefocus,r
hyprctl keyword bind SUPER,up,movefocus,u
hyprctl keyword bind SUPER,down,movefocus,d
echo "Unknown layout: $target" >&2
return 1
;;
esac
}
current="$(get_layout)"
arg="${1:-toggle}"
case "$arg" in
init)
set_layout "$current"
;;
toggle|next)
set_layout "$(next_layout "$current")"
;;
master|dwindle|scrolling|monocle)
set_layout "$arg"
;;
*)
echo "Usage: $(basename "$0") [toggle|next|init|master|dwindle|scrolling|monocle]" >&2
exit 1
;;
esac

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Clipboard Manager. This script uses cliphist, rofi, and wl-copy.
# Variables

View file

@ -1,16 +1,24 @@
#!/usr/bin/env bash
## /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# For Dark and Light switching
# Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate directories
# Paths
wallpaper_base_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers"
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallpaper_base_path="$PICTURES_DIR/wallpapers/Dynamic-Wallpapers"
dark_wallpapers="$wallpaper_base_path/Dark"
light_wallpapers="$wallpaper_base_path/Light"
hypr_config_path="$HOME/.config/hypr"
swaync_style="$HOME/.config/swaync/style.css"
ags_style="$HOME/.config/ags/user/style.css"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
notif="$HOME/.config/swaync/images/bell.png"
wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi"
@ -19,6 +27,10 @@ kitty_conf="$HOME/.config/kitty/kitty.conf"
wallust_config="$HOME/.config/wallust/wallust.toml"
pallete_dark="dark16"
pallete_light="light16"
qt5ct_dark="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf"
qt5ct_light="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf"
qt6ct_dark="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf"
qt6ct_light="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf"
# intial kill process
for pid in waybar rofi swaync ags swaybg; do
@ -26,11 +38,11 @@ for pid in waybar rofi swaync ags swaybg; do
done
# Initialize swww if needed
swww query || swww-daemon --format xrgb
# Initialize wallpaper daemon if needed
"$WWW_CMD" query || "$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}"
# Set swww options
swww="swww img"
swww="$WWW_CMD img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
# Determine current theme mode
@ -43,6 +55,14 @@ else
# Logic for Light mode
wallpaper_path="$light_wallpapers"
fi
# Select Qt color scheme templates for the upcoming mode
if [ "$next_mode" = "Dark" ]; then
qt5ct_color_scheme="$qt5ct_dark"
qt6ct_color_scheme="$qt6ct_dark"
else
qt5ct_color_scheme="$qt5ct_light"
qt6ct_color_scheme="$qt6ct_light"
fi
# Function to update theme mode for the next cycle
update_theme_mode() {

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Simple bash script to check and will try to update your system
# Local Paths
@ -15,23 +20,23 @@ fi
if command -v paru &> /dev/null || command -v yay &> /dev/null; then
# Arch-based
if command -v paru &> /dev/null; then
kitty -T update paru -Syu
kitty -T update -e paru -Syu
notify-send -i "$iDIR/ja.png" -u low 'Arch-based system' 'has been updated.'
else
kitty -T update yay -Syu
kitty -T update -e yay -Syu
notify-send -i "$iDIR/ja.png" -u low 'Arch-based system' 'has been updated.'
fi
elif command -v dnf &> /dev/null; then
# Fedora-based
kitty -T update sudo dnf update --refresh -y
kitty -T update -e sudo dnf update --refresh -y
notify-send -i "$iDIR/ja.png" -u low 'Fedora system' 'has been updated.'
elif command -v apt &> /dev/null; then
# Debian-based (Debian, Ubuntu, etc.)
kitty -T update sudo apt update && sudo apt upgrade -y
kitty -T update -e bash -c "sudo apt update && sudo apt upgrade -y"
notify-send -i "$iDIR/ja.png" -u low 'Debian/Ubuntu system' 'has been updated.'
elif command -v zypper &> /dev/null; then
# openSUSE-based
kitty -T update sudo zypper dup -y
kitty -T update -e sudo zypper dup -y
notify-send -i "$iDIR/ja.png" -u low 'openSUSE system' 'has been updated.'
else
# Unsupported distro

View file

@ -1,5 +1,10 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
#
# Made and brought to by Kiran George
# /* -- ✨ https://github.com/SherLock707 ✨ -- */ ##
@ -12,7 +17,13 @@
DEBUG=false
SPECIAL_WS="special:scratchpad"
SPECIAL_NAME="${SPECIAL_WS#special:}"
ADDR_FILE="/tmp/dropdown_terminal_addr"
STATE_FILE="/tmp/dropdown_terminal_state"
LOCK_FILE="/tmp/dropdown_terminal_lock"
LAST_TOGGLE_FILE="/tmp/dropdown_terminal_last_toggle"
MIN_TOGGLE_INTERVAL_MS=250
DROPDOWN_KITTY_CLASS="kitty-dropterm"
# Dropdown size and position configuration (percentages)
WIDTH_PERCENT=65 # Width as percentage of screen width
@ -31,14 +42,65 @@ if [ "$1" = "-d" ]; then
fi
TERMINAL_CMD="$1"
if [[ "$TERMINAL_CMD" == kitty* ]] && [[ "$TERMINAL_CMD" != *"--class"* ]] && [[ "$TERMINAL_CMD" != *"--name"* ]] && [[ "$TERMINAL_CMD" != *"--app-id"* ]]; then
TERMINAL_CMD="$TERMINAL_CMD --class $DROPDOWN_KITTY_CLASS"
fi
# Ensure only one instance runs at a time (prevents overlapping animations)
exec 9>"$LOCK_FILE"
flock -n 9 || exit 0
# Debounce rapid toggles
now_ms=""
if date +%s%3N >/dev/null 2>&1; then
now_ms=$(date +%s%3N)
else
now_ms=$(( $(date +%s) * 1000 ))
fi
if [ -f "$LAST_TOGGLE_FILE" ]; then
last_ms=$(cat "$LAST_TOGGLE_FILE" 2>/dev/null || echo 0)
if [ -n "$last_ms" ] && [ "$last_ms" -ge 0 ] 2>/dev/null; then
delta_ms=$((now_ms - last_ms))
if [ "$delta_ms" -lt "$MIN_TOGGLE_INTERVAL_MS" ] 2>/dev/null; then
if [ "$DEBUG" = true ]; then
echo "Toggle debounced (${delta_ms}ms < ${MIN_TOGGLE_INTERVAL_MS}ms)" >&2
fi
exit 0
fi
fi
fi
echo "$now_ms" >"$LAST_TOGGLE_FILE"
# Debug echo function
debug_echo() {
if [ "$DEBUG" = true ]; then
echo "$@"
echo "$@" >&2
fi
}
# Resolve terminal address, recovering by class if needed
resolve_terminal_address() {
local addr
addr=$(get_terminal_address)
if [ -n "$addr" ] && window_exists "$addr"; then
echo "$addr"
return 0
fi
local recovered
recovered=$(find_terminal_by_class)
if [ -n "$recovered" ] && [ "$recovered" != "null" ]; then
local mon_name
mon_name=$(get_monitor_info | awk '{print $6}')
echo "$recovered $mon_name" >"$ADDR_FILE"
echo "$recovered"
return 0
fi
rm -f "$ADDR_FILE"
return 1
}
# Validate input
if [ -z "$TERMINAL_CMD" ]; then
echo "Missing terminal command. Usage: $0 [-d] <terminal_command>"
@ -62,6 +124,28 @@ get_window_geometry() {
hyprctl clients -j | jq -r --arg ADDR "$addr" '.[] | select(.address == $ADDR) | "\(.at[0]) \(.at[1]) \(.size[0]) \(.size[1])"'
}
# Function to check if window is currently hidden off-screen
window_is_hidden() {
local addr="$1"
local y
y=$(hyprctl clients -j 2>/dev/null | jq -r --arg ADDR "$addr" '.[] | select(.address == $ADDR) | .at[1]' 2>/dev/null)
if [[ "$y" =~ ^-?[0-9]+$ ]] && [ "$y" -lt 0 ]; then
return 0
fi
return 1
}
# State helpers
get_hidden_state() {
if [ -f "$STATE_FILE" ]; then
cat "$STATE_FILE" 2>/dev/null
fi
}
set_hidden_state() {
echo "$1" >"$STATE_FILE"
}
# Function to animate window slide down (show)
animate_slide_down() {
local addr="$1"
@ -121,7 +205,30 @@ animate_slide_up() {
# Function to get monitor info including scale and name of focused monitor
get_monitor_info() {
local monitor_data=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | "\(.x) \(.y) \(.width) \(.height) \(.scale) \(.name)"')
local monitor_data
monitor_data=$(hyprctl monitors -j 2>/dev/null | jq -er 'map(select(.focused == true)) | .[0] | "\(.x) \(.y) \(.width) \(.height) \(.scale) \(.name)"' 2>/dev/null) || monitor_data=""
if [ -z "$monitor_data" ]; then
# Fallback for older Hyprland without -j support
monitor_data=$(hyprctl monitors 2>/dev/null | awk '
/^Monitor / {name=$2; sub(/\(.*/, "", name); x=y=w=h=scale=""; focused="no"}
/ at / {
# e.g. "1920x1080@74.97300 at 0x0"
split($1, res, "x"); w=res[1]; split(res[2], tmp, "@"); h=tmp[1]
split($4, pos, "x"); x=pos[1]; y=pos[2]
}
/scale:/ {scale=$2}
/focused:/ {focused=$2}
/^$/ {
if (focused=="yes" && x!="" && y!="" && w!="" && h!="" && scale!="" && name!="") {
print x, y, w, h, scale, name; exit
}
}
END {
if (focused=="yes" && x!="" && y!="" && w!="" && h!="" && scale!="" && name!="") {
print x, y, w, h, scale, name
}
}')
fi
if [ -z "$monitor_data" ] || [[ "$monitor_data" =~ ^null ]]; then
debug_echo "Error: Could not get focused monitor information"
return 1
@ -129,6 +236,7 @@ get_monitor_info() {
echo "$monitor_data"
}
# Function to calculate dropdown position with proper scaling and centering
calculate_dropdown_position() {
local monitor_info=$(get_monitor_info)
@ -148,6 +256,13 @@ calculate_dropdown_position() {
debug_echo "Monitor info: x=$mon_x, y=$mon_y, width=$mon_width, height=$mon_height, scale=$mon_scale"
# Validate numeric fields
if ! [[ "$mon_x" =~ ^-?[0-9]+$ && "$mon_y" =~ ^-?[0-9]+$ && "$mon_width" =~ ^[0-9]+$ && "$mon_height" =~ ^[0-9]+$ ]]; then
debug_echo "Invalid monitor info format, using fallback values"
echo "100 100 800 600 fallback-monitor"
return 1
fi
# Validate scale value and provide fallback
if [ -z "$mon_scale" ] || [ "$mon_scale" = "null" ] || [ "$mon_scale" = "0" ]; then
debug_echo "Invalid scale value, using 1.0 as fallback"
@ -207,6 +322,12 @@ get_terminal_address() {
fi
}
# Try to find an existing dropdown terminal by class (kitty only)
find_terminal_by_class() {
hyprctl clients -j 2>/dev/null | jq -r --arg CLASS "$DROPDOWN_KITTY_CLASS" \
'.[] | select(.class == $CLASS) | .address' | head -1
}
# Function to get stored monitor name
get_terminal_monitor() {
if [ -f "$ADDR_FILE" ] && [ -s "$ADDR_FILE" ]; then
@ -218,22 +339,48 @@ get_terminal_monitor() {
terminal_exists() {
local addr=$(get_terminal_address)
if [ -n "$addr" ]; then
hyprctl clients -j | jq -e --arg ADDR "$addr" 'any(.[]; .address == $ADDR)' >/dev/null 2>&1
hyprctl clients -j 2>/dev/null | jq -e --arg ADDR "$addr" 'any(.[]; .address == $ADDR)' >/dev/null 2>&1
else
return 1
fi
}
# Function to check if terminal is in special workspace
terminal_in_special() {
local addr=$(get_terminal_address)
# Function to check if a window address exists
window_exists() {
local addr="$1"
if [ -n "$addr" ]; then
hyprctl clients -j | jq -e --arg ADDR "$addr" 'any(.[]; .address == $ADDR and .workspace.name == "special:scratchpad")' >/dev/null 2>&1
hyprctl clients -j 2>/dev/null | jq -e --arg ADDR "$addr" 'any(.[]; .address == $ADDR)' >/dev/null 2>&1
else
return 1
fi
}
# Function to check if window is pinned
window_is_pinned() {
local addr="$1"
if [ -n "$addr" ]; then
hyprctl clients -j 2>/dev/null | jq -e --arg ADDR "$addr" '.[] | select(.address == $ADDR) | .pinned == true' >/dev/null 2>&1
else
return 1
fi
}
# Ensure pin state without toggling unexpectedly
ensure_pinned() {
local addr="$1"
if ! window_is_pinned "$addr"; then
hyprctl dispatch pin "address:$addr" >/dev/null 2>&1
fi
}
ensure_unpinned() {
local addr="$1"
if window_is_pinned "$addr"; then
hyprctl dispatch pin "address:$addr" >/dev/null 2>&1
fi
}
# Function to spawn terminal and capture its address
spawn_terminal() {
debug_echo "Creating new dropdown terminal with command: $TERMINAL_CMD"
@ -288,12 +435,13 @@ spawn_terminal() {
# Small delay to ensure it's properly in special workspace
sleep 0.2
# Now bring it back with the same animation as subsequent shows
# Use movetoworkspacesilent to avoid affecting workspace history
# Move to current workspace but start hidden off-screen
hyprctl dispatch movetoworkspacesilent "$CURRENT_WS,address:$new_addr"
hyprctl dispatch pin "address:$new_addr"
animate_slide_down "$new_addr" "$target_x" "$target_y" "$width" "$height"
ensure_pinned "$new_addr"
hyprctl dispatch resizewindowpixel "exact $width $height,address:$new_addr" >/dev/null 2>&1
local off_y=$((target_y - height - 200))
hyprctl dispatch movewindowpixel "exact $target_x $off_y,address:$new_addr" >/dev/null 2>&1
set_hidden_state "hidden"
return 0
fi
@ -303,8 +451,9 @@ spawn_terminal() {
}
# Main logic
if terminal_exists; then
TERMINAL_ADDR=$(get_terminal_address)
TERMINAL_ADDR=$(resolve_terminal_address)
if [ -n "$TERMINAL_ADDR" ]; then
debug_echo "Found existing terminal: $TERMINAL_ADDR"
focused_monitor=$(get_monitor_info | awk '{print $6}')
dropdown_monitor=$(get_terminal_monitor)
@ -324,8 +473,9 @@ if terminal_exists; then
echo "$TERMINAL_ADDR $monitor_name" >"$ADDR_FILE"
fi
if terminal_in_special; then
debug_echo "Bringing terminal from scratchpad with slide down animation"
hidden_state=$(get_hidden_state)
if [ "$hidden_state" = "hidden" ] || [ -z "$hidden_state" ] || window_is_hidden "$TERMINAL_ADDR"; then
debug_echo "Bringing terminal from hidden position with slide down animation"
# Calculate target position
pos_info=$(calculate_dropdown_position)
@ -334,17 +484,16 @@ if terminal_exists; then
width=$(echo $pos_info | cut -d' ' -f3)
height=$(echo $pos_info | cut -d' ' -f4)
# Use movetoworkspacesilent to avoid affecting workspace history
hyprctl dispatch movetoworkspacesilent "$CURRENT_WS,address:$TERMINAL_ADDR"
hyprctl dispatch pin "address:$TERMINAL_ADDR"
ensure_pinned "$TERMINAL_ADDR"
# Set size and animate slide down
hyprctl dispatch resizewindowpixel "exact $width $height,address:$TERMINAL_ADDR"
animate_slide_down "$TERMINAL_ADDR" "$target_x" "$target_y" "$width" "$height"
hyprctl dispatch focuswindow "address:$TERMINAL_ADDR"
set_hidden_state "shown"
else
debug_echo "Hiding terminal to scratchpad with slide up animation"
debug_echo "Hiding terminal off-screen with slide up animation"
# Get current geometry for animation
geometry=$(get_window_geometry "$TERMINAL_ADDR")
@ -359,14 +508,16 @@ if terminal_exists; then
# Animate slide up first
animate_slide_up "$TERMINAL_ADDR" "$curr_x" "$curr_y" "$curr_width" "$curr_height"
# Small delay then move to special workspace and unpin
sleep 0.1
hyprctl dispatch pin "address:$TERMINAL_ADDR" # Unpin (toggle)
hyprctl dispatch movetoworkspacesilent "$SPECIAL_WS,address:$TERMINAL_ADDR"
# Move off-screen after animation
off_y=$((curr_y - curr_height - 200))
hyprctl dispatch movewindowpixel "exact $curr_x $off_y,address:$TERMINAL_ADDR" >/dev/null 2>&1
ensure_unpinned "$TERMINAL_ADDR"
set_hidden_state "hidden"
else
debug_echo "Could not get window geometry, moving to scratchpad without animation"
hyprctl dispatch pin "address:$TERMINAL_ADDR"
hyprctl dispatch movetoworkspacesilent "$SPECIAL_WS,address:$TERMINAL_ADDR"
debug_echo "Could not get window geometry, moving off-screen without animation"
hyprctl dispatch movewindowpixel "exact 0 -1000,address:$TERMINAL_ADDR" >/dev/null 2>&1
ensure_unpinned "$TERMINAL_ADDR"
set_hidden_state "hidden"
fi
fi
else

View file

@ -0,0 +1,103 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# External monitor brightness via ddcutil
set -u
step=10
vcp_code=10
usage() {
cat <<'EOF'
Usage: ExternalBrightness.sh [--get|--inc|--dec|--set N] [--display N]
Env:
DDCUTIL_DISPLAY Optional display number passed to ddcutil --display
DDCUTIL_OPTS Extra options passed to ddcutil (e.g. "--sleep-multiplier 0.2")
EOF
}
ddcutil_cmd() {
local display_arg=()
local display="${DDCUTIL_DISPLAY:-}"
if [[ -n "${display}" ]]; then
display_arg+=(--display "${display}")
fi
ddcutil ${DDCUTIL_OPTS:-} "${display_arg[@]}" "$@"
}
get_brightness() {
# Example output: "VCP code 0x10 (Brightness): current value = 50, max value = 100"
local line
if ! line="$(ddcutil_cmd getvcp "${vcp_code}" 2>/dev/null | tail -n 1)"; then
return 1
fi
local current max
current="$(printf "%s" "${line}" | sed -n 's/.*current value = \([0-9]\+\).*/\1/p')"
max="$(printf "%s" "${line}" | sed -n 's/.*max value = \([0-9]\+\).*/\1/p')"
[[ -n "${current}" && -n "${max}" ]] || return 1
printf "%s %s\n" "${current}" "${max}"
}
set_brightness() {
local value="$1"
ddcutil_cmd setvcp "${vcp_code}" "${value}" >/dev/null 2>&1
}
json_output() {
local current max percent icon
if ! read -r current max < <(get_brightness); then
printf '{"text":"󰃜 N/A","tooltip":"External brightness unavailable (load i2c-dev, allow i2c access)","class":"brightness-external-off"}\n'
return 0
fi
percent=$(( current * 100 / max ))
if (( percent >= 80 )); then
icon="󰃠"
elif (( percent >= 60 )); then
icon="󰃟"
elif (( percent >= 40 )); then
icon="󰃞"
elif (( percent >= 20 )); then
icon="󰃝"
else
icon=""
fi
printf '{"text":"%s %s%%","tooltip":"External display brightness: %s%%","class":"brightness-external"}\n' "${icon}" "${percent}" "${percent}"
}
case "${1:-}" in
--get|"")
json_output
;;
--inc|--dec)
read -r current max < <(get_brightness) || exit 1
delta=$step
[[ "$1" == "--dec" ]] && delta=$(( -step ))
new=$(( current + delta ))
(( new < 5 )) && new=5
(( new > max )) && new="${max}"
set_brightness "${new}"
json_output
;;
--set)
[[ -n "${2:-}" ]] || { usage; exit 1; }
set_brightness "${2}"
json_output
;;
--display)
[[ -n "${2:-}" ]] || { usage; exit 1; }
DDCUTIL_DISPLAY="${2}" shift 2
"${0}" "${@:-"--get"}"
;;
-h|--help)
usage
;;
*)
usage
exit 1
;;
esac

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
ws=$(hyprctl activeworkspace -j | jq -r .id)
hyprctl clients -j | jq -r --arg ws "$ws" '.[] | select(.workspace.id == ($ws|tonumber)) | .address' | xargs -r -I {} hyprctl dispatch togglefloating address:{}

View file

@ -1,9 +1,16 @@
#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Game Mode. Turning off all animations
notif="$HOME/.config/swaync/images/ja.png"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
@ -17,13 +24,13 @@ if [ "$HYPRGAMEMODE" = 1 ] ; then
keyword general:border_size 1;\
keyword decoration:rounding 0"
hyprctl keyword "windowrule opacity 1 override 1 override 1 override, ^(.*)$"
swww kill
\thyprctl keyword "windowrule opacity 1 override 1 override 1 override, ^(.*)$"
"$WWW_CMD" kill
notify-send -e -u low -i "$notif" " Gamemode:" " enabled"
sleep 0.1
exit
else
swww-daemon --format xrgb && swww img "$HOME/.config/rofi/.current_wallpaper" &
\t"$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" && "$WWW_CMD" img "$HOME/.config/rofi/.current_wallpaper" &
sleep 0.1
${SCRIPTSDIR}/WallustSwww.sh
sleep 0.5

View file

@ -0,0 +1,129 @@
#!/usr/bin/env bash
# ==================================================
# KoolDots (2026)
# Project URL: https://github.com/LinuxBeginnings
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# Ghostty theme selector
config_file="$HOME/.config/ghostty/config"
iDIR="$HOME/.config/swaync/images"
rofi_theme_primary="$HOME/.config/rofi/config-ghostty-theme.rasi"
rofi_theme_fallback="$HOME/.config/rofi/config-edit.rasi"
notify_user() {
local icon="$1"
local title="$2"
local body="$3"
if [[ -n "$icon" && -f "$icon" ]]; then
notify-send -u low -i "$icon" "$title" "$body"
else
notify-send -u low "$title" "$body"
fi
}
if [[ ! -f "$config_file" ]]; then
notify_user "$iDIR/error.png" "Ghostty Theme" "Config not found: $config_file"
exit 1
fi
rofi_config_args=()
if [[ -f "$rofi_theme_primary" ]]; then
rofi_config_args=(-config "$rofi_theme_primary")
elif [[ -f "$rofi_theme_fallback" ]]; then
rofi_config_args=(-config "$rofi_theme_fallback")
fi
current_theme=$(
awk -F'=' '/^[[:space:]]*theme[[:space:]]*=/ {
val=$2
sub(/^[[:space:]]+/, "", val)
sub(/[[:space:]]+$/, "", val)
gsub(/^"|"$/, "", val)
print val
exit
}' "$config_file"
)
mapfile -t available_theme_names < <(
awk -F'=' '/^[[:space:]]*#[[:space:]]*theme[[:space:]]*=/ {
val=$2
sub(/^[[:space:]]+/, "", val)
sub(/[[:space:]]+$/, "", val)
gsub(/^"|"$/, "", val)
print val
}' "$config_file"
)
if [[ ${#available_theme_names[@]} -eq 0 ]]; then
notify_user "$iDIR/error.png" "Ghostty Theme" "No commented themes found in $config_file"
exit 1
fi
menu_entries=()
if [[ -n "$current_theme" ]]; then
menu_entries+=("Current: $current_theme")
fi
for t in "${available_theme_names[@]}"; do
menu_entries+=("$t")
done
choice=$(
printf "%s\n" "${menu_entries[@]}" |
rofi -i -dmenu -p "Ghostty Theme" "${rofi_config_args[@]}" -mesg "Select a theme to apply"
)
[[ -z "$choice" ]] && exit 0
if [[ "$choice" == "Current: "* ]]; then
exit 0
fi
selected_theme="$choice"
if [[ -n "$current_theme" && "$selected_theme" == "$current_theme" ]]; then
exit 0
fi
format_theme_value() {
if [[ "$1" =~ [[:space:]] ]]; then
printf "\"%s\"" "$1"
else
printf "%s" "$1"
fi
}
selected_formatted=$(format_theme_value "$selected_theme")
tmp_file=$(mktemp)
awk -v selected="$selected_theme" -v selected_formatted="$selected_formatted" '
function trim(s) { sub(/^[[:space:]]+/, "", s); sub(/[[:space:]]+$/, "", s); return s }
function strip_quotes(s) { gsub(/^"|"$/, "", s); return s }
{
line=$0
if ($0 ~ /^[[:space:]]*theme[[:space:]]*=/) {
sub(/^[[:space:]]*theme[[:space:]]*=/, "#theme =", line)
print line
next
}
if ($0 ~ /^[[:space:]]*#[[:space:]]*theme[[:space:]]*=/) {
val=$0
sub(/^[[:space:]]*#[[:space:]]*theme[[:space:]]*=[[:space:]]*/, "", val)
val=trim(val)
val=strip_quotes(val)
if (val == selected) {
print "theme = " selected_formatted
next
}
}
print $0
}' "$config_file" > "$tmp_file"
mv "$tmp_file" "$config_file"
pkill -SIGUSR2 ghostty >/dev/null 2>&1 || true
notify_user "$iDIR/ja.png" "Ghostty Theme Applied" "$selected_theme"
exit 0

Some files were not shown because too many files have changed in this diff Show more