rearrange hyprland config; change back to old waybar: adjust waybar colors; add btop
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@@ -2,15 +2,23 @@
|
||||
*
|
||||
|
||||
# Then selectively include the directories you want to keep
|
||||
!btop/
|
||||
!hypr/
|
||||
!ghostty/
|
||||
!kitty/
|
||||
!nvim/
|
||||
!swaync/
|
||||
!waybar/
|
||||
!rofi/
|
||||
!wofi/
|
||||
!btop/**
|
||||
!hypr/**
|
||||
!ghostty/**
|
||||
!kitty/**
|
||||
!nvim/**
|
||||
!swaync/**
|
||||
!waybar/**
|
||||
!rofi/**
|
||||
!wofi/**
|
||||
|
||||
|
||||
|
||||
257
btop/btop.conf
Normal file
257
btop/btop.conf
Normal file
@@ -0,0 +1,257 @@
|
||||
#? Config file for btop v. 1.4.5
|
||||
|
||||
#* 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 = "mytheme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = 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.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = False
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = False
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "Auto"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "Auto"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* 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 cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
83
btop/themes/mytheme.theme
Normal file
83
btop/themes/mytheme.theme
Normal file
@@ -0,0 +1,83 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="##1c1c1f"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#9d8462"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#ff9100"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#ff9100"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#ff9100"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#000000"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#9d8462"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#ff9100"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#303340"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#9d8462"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#9d8462"
|
||||
theme[mem_box]="#9d8462"
|
||||
theme[net_box]="#9d8462"
|
||||
theme[proc_box]="#9d8462"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#9d8462"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#9d8462"
|
||||
theme[temp_mid]="#ff9100"
|
||||
theme[temp_end]="#ff0000"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#9d8462"
|
||||
theme[cpu_mid]="#ff9100"
|
||||
theme[cpu_end]="#ff0000"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#9d8462"
|
||||
theme[free_mid]="#ff9100"
|
||||
theme[free_end]="#ff0000"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#9d8462"
|
||||
theme[cached_mid]="#ff9100"
|
||||
theme[cached_end]="#ff0000"
|
||||
|
||||
# Mem/Disk available meter ( -> )
|
||||
theme[available_start]="#9d8462"
|
||||
theme[available_mid]="#ff9100"
|
||||
theme[available_end]="#ff0000"
|
||||
|
||||
# Mem/Disk used meter (-> )
|
||||
theme[used_start]="#9d8462"
|
||||
theme[used_mid]="#ff9100"
|
||||
theme[used_end]="#ff0000"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#9d8462"
|
||||
theme[download_mid]="#ff9100"
|
||||
theme[download_end]="#ff0000"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#9d8462"
|
||||
theme[upload_mid]="#ff9100"
|
||||
theme[upload_end]="#ff0000"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#9d8462"
|
||||
theme[process_mid]="#ff9100"
|
||||
theme[process_end]="#ff0000"
|
||||
165
btop/themes/orange.theme
Normal file
165
btop/themes/orange.theme
Normal file
@@ -0,0 +1,165 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="##1c1c1f"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#a1a1a1"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#ff9100"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#ff9100"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#ff9100"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#000000"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#51576d"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#ff9100"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#51576d"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#51576d"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#51576d"
|
||||
theme[mem_box]="#51576d"
|
||||
theme[net_box]="#51576d"
|
||||
theme[proc_box]="#51576d"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#51576d"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#51576d"
|
||||
theme[temp_mid]="#ff9100"
|
||||
theme[temp_end]="#ff0000"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#51576d"
|
||||
theme[cpu_mid]="#ff9100"
|
||||
theme[cpu_end]="#ff0000"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#51576d"
|
||||
theme[free_mid]="#ff9100"
|
||||
theme[free_end]="#ff0000"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#51576d"
|
||||
theme[cached_mid]="#ff9100"
|
||||
theme[cached_end]="#ff0000"
|
||||
|
||||
# Mem/Disk available meter ( -> )
|
||||
theme[available_start]="#51576d"
|
||||
theme[available_mid]="#ff9100"
|
||||
theme[available_end]="#ff0000"
|
||||
|
||||
# Mem/Disk used meter (-> )
|
||||
theme[used_start]="#51576d"
|
||||
theme[used_mid]="#ff9100"
|
||||
theme[used_end]="#ff0000"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#51576d"
|
||||
theme[download_mid]="#ff9100"
|
||||
theme[download_end]="#ff0000"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#51576d"
|
||||
theme[upload_mid]="#ff9100"
|
||||
theme[upload_end]="#ff0000"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#51576d"
|
||||
theme[process_mid]="#ff9100"
|
||||
theme[process_end]="#ff0000"# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="##1c1c1f"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#51576d"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#ff9100"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#ff9100"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#ff9100"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#000000"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#51576d"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#ff9100"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#51576d"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#51576d"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#51576d"
|
||||
theme[mem_box]="#51576d"
|
||||
theme[net_box]="#51576d"
|
||||
theme[proc_box]="#51576d"
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#51576d"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#51576d"
|
||||
theme[temp_mid]="#ff9100"
|
||||
theme[temp_end]="#ff0000"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#51576d"
|
||||
theme[cpu_mid]="#ff9100"
|
||||
theme[cpu_end]="#ff0000"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#51576d"
|
||||
theme[free_mid]="#ff9100"
|
||||
theme[free_end]="#ff0000"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#51576d"
|
||||
theme[cached_mid]="#ff9100"
|
||||
theme[cached_end]="#ff0000"
|
||||
|
||||
# Mem/Disk available meter ( -> )
|
||||
theme[available_start]="#51576d"
|
||||
theme[available_mid]="#ff9100"
|
||||
theme[available_end]="#ff0000"
|
||||
|
||||
# Mem/Disk used meter (-> )
|
||||
theme[used_start]="#51576d"
|
||||
theme[used_mid]="#ff9100"
|
||||
theme[used_end]="#ff0000"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#51576d"
|
||||
theme[download_mid]="#ff9100"
|
||||
theme[download_end]="#ff0000"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#51576d"
|
||||
theme[upload_mid]="#ff9100"
|
||||
theme[upload_end]="#ff0000"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#51576d"
|
||||
theme[process_mid]="#ff9100"
|
||||
theme[process_end]="#ff0000"
|
||||
57
ghostty/config
Normal file
57
ghostty/config
Normal file
@@ -0,0 +1,57 @@
|
||||
# This is the configuration file for Ghostty.
|
||||
#
|
||||
# This template file has been automatically created at the following
|
||||
# path since Ghostty couldn't find any existing config files on your system:
|
||||
#
|
||||
# /home/saeijou/.config/ghostty/config
|
||||
#
|
||||
# The template does not set any default options, since Ghostty ships
|
||||
# with sensible defaults for all options. Users should only need to set
|
||||
# options that they want to change from the default.
|
||||
#
|
||||
# Run `ghostty +show-config --default --docs` to view a list of
|
||||
# all available config options and their default values.
|
||||
#
|
||||
# Additionally, each config option is also explained in detail
|
||||
# on Ghostty's website, at https://ghostty.org/docs/config.
|
||||
#
|
||||
# Ghostty can reload the configuration while running by using the menu
|
||||
# options or the bound key (default: Command + Shift + comma on macOS and
|
||||
# Control + Shift + comma on other platforms). Not all config options can be
|
||||
# reloaded while running; some only apply to new windows and others may require
|
||||
# a full restart to take effect.
|
||||
|
||||
# Config syntax crash course
|
||||
# ==========================
|
||||
# # The config file consists of simple key-value pairs,
|
||||
# # separated by equals signs.
|
||||
# font-family = Iosevka
|
||||
# window-padding-x = 2
|
||||
#
|
||||
# # Spacing around the equals sign does not matter.
|
||||
# # All of these are identical:
|
||||
# key=value
|
||||
# key= value
|
||||
# key =value
|
||||
# key = value
|
||||
#
|
||||
# # Any line beginning with a # is a comment. It's not possible to put
|
||||
# # a comment after a config option, since it would be interpreted as a
|
||||
# # part of the value. For example, this will have a value of "#123abc":
|
||||
# background = #123abc
|
||||
#
|
||||
# # Empty values are used to reset config keys to default.
|
||||
# key =
|
||||
#
|
||||
# # Some config options have unique syntaxes for their value,
|
||||
# # which is explained in the docs for that config option.
|
||||
# # Just for example:
|
||||
# resize-overlay-duration = 4s 200ms
|
||||
#
|
||||
# Font
|
||||
font-family = "JetBrainsMono Nerd Font"
|
||||
font-style = Regular
|
||||
font-size = 12
|
||||
|
||||
#Theme
|
||||
config-file=themes/theme
|
||||
49
ghostty/themes/gruvbox_dark.conf
Normal file
49
ghostty/themes/gruvbox_dark.conf
Normal file
@@ -0,0 +1,49 @@
|
||||
# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
|
||||
# This work is licensed under the terms of the MIT license.
|
||||
# For a copy, see https://opensource.org/licenses/MIT.
|
||||
|
||||
background #282828
|
||||
foreground #ebdbb2
|
||||
|
||||
cursor #928374
|
||||
|
||||
selection_foreground #928374
|
||||
selection_background #3c3836
|
||||
|
||||
color0 #282828
|
||||
color8 #928374
|
||||
|
||||
# red
|
||||
color1 #cc241d
|
||||
# light red
|
||||
color9 #fb4934
|
||||
|
||||
# green
|
||||
color2 #98971a
|
||||
# light green
|
||||
color10 #b8bb26
|
||||
|
||||
# yellow
|
||||
color3 #d79921
|
||||
# light yellow
|
||||
color11 #fabd2d
|
||||
|
||||
# blue
|
||||
color4 #458588
|
||||
# light blue
|
||||
color12 #83a598
|
||||
|
||||
# magenta
|
||||
color5 #b16286
|
||||
# light magenta
|
||||
color13 #d3869b
|
||||
|
||||
# cyan
|
||||
color6 #689d6a
|
||||
# lighy cyan
|
||||
color14 #8ec07c
|
||||
|
||||
# light gray
|
||||
color7 #a89984
|
||||
# dark gray
|
||||
color15 #928374
|
||||
11
ghostty/themes/theme
Normal file
11
ghostty/themes/theme
Normal file
@@ -0,0 +1,11 @@
|
||||
# Background and Foreground
|
||||
background = 1c1c1f
|
||||
foreground = 9d8462
|
||||
|
||||
# Cursor
|
||||
cursor-color = ff9100
|
||||
cursor-text = 000000
|
||||
|
||||
# Selection
|
||||
selection-background = ff9100
|
||||
selection-foreground = 000000
|
||||
@@ -1,317 +1,25 @@
|
||||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
#monitor = , preferred, auto, 1
|
||||
|
||||
|
||||
#██ ██ ██ ██ █████▄ █████▄ ██ ▄████▄ ███ ██ ████▄
|
||||
#██████ ▀██▀ ██▄▄█▀ ██▄▄██▄ ██ ██▄▄██ ██ ▀▄██ ██ ██
|
||||
#██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ██ ████▀
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = ghostty
|
||||
$fileManager = thunar
|
||||
$menu = wofi --show drun
|
||||
$menu = rofi -show drun
|
||||
$browser = librewolf
|
||||
$browser2 = google-chrome-stable
|
||||
|
||||
# Configurations
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
source = ~/.config/hypr/hyprland/animations.conf
|
||||
source = ~/.config/hypr/hyprland/autostart.conf
|
||||
source = ~/.config/hypr/hyprland/bindings.conf
|
||||
source = ~/.config/hypr/hyprland/env.conf
|
||||
source = ~/.config/hypr/hyprland/input.conf
|
||||
source = ~/.config/hypr/hyprland/looknfeel.conf
|
||||
source = ~/.config/hypr/hyprland/monitors.conf
|
||||
source = ~/.config/hypr/hyprland/windowrules.conf
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
exec-once = wl-paste --type text --watch cliphist store
|
||||
exec-once = wl-paste --type image --watch cliphist store
|
||||
exec-once = waybar & disown
|
||||
exec-once = librewolf & disown
|
||||
exec-once = swaync & disown
|
||||
exec-once = hypridle & disown
|
||||
exec-once = seventeenlands & disown
|
||||
#exec-once = ~/.config/hypr/scripts/monitor_setup.sh
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] signal-desktop
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] discord
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] thunderbird
|
||||
#exec-once = hyprctl dispatch exec "[workspace 5 silent] steam"
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,20
|
||||
env = HYPRCURSOR_SIZE,20
|
||||
env = LANG,en_US.UTF-8
|
||||
env = LC_ALL,en_US.UTF-8
|
||||
env = LANGUAGE,en_US.UTF-8
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 0
|
||||
gaps_out = 0
|
||||
|
||||
border_size = 1
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 0.9
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = no
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
#gestures {
|
||||
# workspace_swipe = false
|
||||
#}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, return, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, space, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod, B, exec, killall waybar && waybar &
|
||||
bind = $mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only,
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
bind = $mainMod, backslash, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
bind = SUPER, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
#bind = $mainMod, S, togglespecialworkspace, magic
|
||||
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
bind = SUPER_ALT_CTRL, L, exec, hyprctl keyword monitor "eDP-1,preferred,auto,1"
|
||||
|
||||
#Mouse Key Assignements
|
||||
#bind = , code:191, exec, $terminal
|
||||
#bind = , code:198, exec, $terminal
|
||||
|
||||
|
||||
# Lid Open & Closed
|
||||
#bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
# trigger when the switch is turning on
|
||||
#bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
34
hypr/hyprland/animations.conf
Normal file
34
hypr/hyprland/animations.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
#▄████▄ ███ ██ ██ ██▄ ▄██ ▄████▄ ██████ ██ ▄████▄ ███ ██ ▄█████
|
||||
#██▄▄██ ██ ▀▄██ ██ ██ ▀▀ ██ ██▄▄██ ██ ██ ██ ██ ██ ▀▄██ ▀▀▀▄▄▄
|
||||
#██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ▀████▀ ██ ██ █████▀
|
||||
|
||||
animations {
|
||||
|
||||
enabled = true
|
||||
|
||||
bezier = water, 0.22, 0.9, 0.36, 1.0
|
||||
bezier = flow, 0.25, 0.1, 0.25, 1.0
|
||||
bezier = ripple, 0.33, 0.0, 0.2, 1.0
|
||||
bezier = stream, 0.4, 0.0, 0.4, 1.0
|
||||
bezier = cascade, 0.19, 1.0, 0.22, 1.0
|
||||
bezier = md3_standard, 0.2, 0, 0, 1
|
||||
bezier = md3_accel, 0.3, 0, 0.8, 0.15
|
||||
bezier = overshot, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 3.0, water
|
||||
animation = windowsIn, 1, 2.5, cascade,slide
|
||||
animation = windowsOut, 1, 2.4, stream,slide
|
||||
animation = windowsMove,1, 1.6, flow
|
||||
animation = fade, 1, 2.4, water
|
||||
animation = fadeIn, 1, 2.0, cascade
|
||||
animation = fadeOut, 1, 1.8, ripple
|
||||
animation = fadeDim, 1, 2.0, water
|
||||
animation = fadeSwitch, 1, 1.4, flow
|
||||
animation = layersIn, 1, 1.5, overshot, popin 80%
|
||||
animation = layersOut, 1, 1.3, md3_accel, popin 90%
|
||||
animation = layers, 1, 1.5, md3_standard
|
||||
animation = workspaces, 1, 1.5, flow
|
||||
animation = specialWorkspace, 1, 2.5, water
|
||||
animation = border, 1, 2.9, water
|
||||
animation = borderangle,1, 3.5, flow
|
||||
}
|
||||
15
hypr/hyprland/autostart.conf
Normal file
15
hypr/hyprland/autostart.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
#▄████▄ ██ ██ ██████ ▄████▄ ▄█████ ██████ ▄████▄ █████▄ ██████
|
||||
#██▄▄██ ██ ██ ██ ██ ██ ▀▀▀▄▄▄ ██ ██▄▄██ ██▄▄██▄ ██
|
||||
#██ ██ ▀████▀ ██ ▀████▀ █████▀ ██ ██ ██ ██ ██ ██
|
||||
|
||||
exec-once = wl-paste --type text --watch cliphist store
|
||||
exec-once = wl-paste --type image --watch cliphist store
|
||||
exec-once = waybar & disown
|
||||
exec-once = librewolf & disown
|
||||
exec-once = swaync & disown
|
||||
exec-once = hypridle & disown
|
||||
exec-once = seventeenlands & disown
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] signal-desktop
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] discord
|
||||
exec-once = hyprctl dispatch exec [workspace 3 silent] thunderbird
|
||||
#exec-once = hyprctl dispatch exec "[workspace 5 silent] steam"
|
||||
94
hypr/hyprland/bindings.conf
Normal file
94
hypr/hyprland/bindings.conf
Normal file
@@ -0,0 +1,94 @@
|
||||
#██ ▄█▀ ██████ ██ ██ █████▄ ██ ███ ██ ████▄ ██ ███ ██ ▄████ ▄█████
|
||||
#████ ██▄▄ ▀██▀ ██▄▄██ ██ ██ ▀▄██ ██ ██ ██ ██ ▀▄██ ██ ▄▄▄ ▀▀▀▄▄▄
|
||||
#██ ▀█▄ ██▄▄▄▄ ██ ██▄▄█▀ ██ ██ ██ ████▀ ██ ██ ██ ▀███▀ █████▀
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, B, exec, $browser
|
||||
bind = $mainModu SHIFT, B, exec, $browser2
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, N, exec, swaync-client -t -sw
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only,
|
||||
bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
||||
bind = $mainMod, W, exec, killall waybar && waybar &
|
||||
bind = $mainMod, return, exec, $terminal
|
||||
bind = $mainMod, space, exec, $menu
|
||||
bind = $mainMod, backslash, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
bind = $mainMod, slash, exec, $terminal -e btop
|
||||
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
#bind = $mainMod, S, togglespecialworkspace, magic
|
||||
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
bind = SUPER_ALT_CTRL, L, exec, hyprctl keyword monitor "eDP-1,preferred,auto,1"
|
||||
|
||||
#Mouse Key Assignements
|
||||
#bind = , code:191, exec, $terminal
|
||||
#bind = , code:198, exec, $terminal
|
||||
|
||||
|
||||
# Lid Open & Closed
|
||||
#bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
# trigger when the switch is turning on
|
||||
#bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previou
|
||||
32
hypr/hyprland/env.conf
Normal file
32
hypr/hyprland/env.conf
Normal file
@@ -0,0 +1,32 @@
|
||||
#██████ ███ ██ ██ ██ ██ ██ ▄████▄ █████▄ ██ ▄████▄ █████▄ ██ ██████ ▄█████
|
||||
#██▄▄ ██ ▀▄██ ██▄▄██ ██▄▄██ ██▄▄██ ██▄▄██▄ ██ ██▄▄██ ██▄▄██ ██ ██▄▄ ▀▀▀▄▄▄
|
||||
#██▄▄▄▄ ██ ██ ▀██▀ ▀██▀ ██ ██ ██ ██ ██ ██ ██ ██▄▄█▀ ██████ ██▄▄▄▄ █████▀
|
||||
|
||||
# GTK Theme
|
||||
env = GTK_THEME,adw-gtk3-dark
|
||||
|
||||
# Cursor size
|
||||
env = XCURSOR_SIZE,20
|
||||
env = HYPRCURSOR_SIZE,20
|
||||
|
||||
# Language Settings
|
||||
env = LANG,en_US.UTF-8
|
||||
env = LC_ALL,en_US.UTF-8
|
||||
env = LANGUAGE,en_US.UTF-8
|
||||
|
||||
# Editor
|
||||
env = EDITOR,nvim
|
||||
|
||||
# Force all apps to use Wayland
|
||||
env = GDK_BACKEND,wayland,x11
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = QT_STYLE_OVERRIDE,kvantum
|
||||
env = SDL_VIDEODRIVER,wayland
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = OZONE_PLATFORM,wayland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
|
||||
# Allow better support for screen sharing (Google Meet, Discord, etc)
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
40
hypr/hyprland/input.conf
Normal file
40
hypr/hyprland/input.conf
Normal file
@@ -0,0 +1,40 @@
|
||||
#██ ███ ██ █████▄ ██ ██ ██████
|
||||
#██ ██ ▀▄██ ██▄▄█▀ ██ ██ ██
|
||||
#██ ██ ██ ██ ▀████▀ ██
|
||||
|
||||
# hide cursor after n sec
|
||||
cursor {
|
||||
inactive_timeout = 5
|
||||
}
|
||||
|
||||
input {
|
||||
kb_options = caps:none #deactivate capslock
|
||||
|
||||
# Change speed of keyboard repeat
|
||||
# repeat_rate = 40
|
||||
# repeat_delay = 600
|
||||
|
||||
follow_mouse = 1
|
||||
numlock_by_default = true
|
||||
|
||||
# Increase sensitity for mouse/trackpack (default: 0)
|
||||
sensitivity = 0 #0.35
|
||||
|
||||
touchpad {
|
||||
# Use natural (inverse) scrolling
|
||||
natural_scroll = false #true
|
||||
|
||||
# Use two-finger clicks for right-click instead of lower-right corner
|
||||
clickfinger_behavior = true
|
||||
|
||||
# Control the speed of your scrolling
|
||||
scroll_factor = 0.4
|
||||
}
|
||||
}
|
||||
|
||||
misc {
|
||||
key_press_enables_dpms = true # key press will trigger wake
|
||||
mouse_move_enables_dpms = true # mouse move will trigger wake
|
||||
}
|
||||
|
||||
|
||||
73
hypr/hyprland/looknfeel.conf
Normal file
73
hypr/hyprland/looknfeel.conf
Normal file
@@ -0,0 +1,73 @@
|
||||
#██ ▄████▄ ▄████▄ ██ ▄█▀ ▄▀▀▄ ██████ ██████ ██████ ██
|
||||
#██ ██ ██ ██ ██ ████ ▄▀▀▄ ▄ ██▄▄ ██▄▄ ██▄▄ ██
|
||||
#██████ ▀████▀ ▀████▀ ██ ▀█▄ ▀▄▄▀▀▄ ██ ██▄▄▄▄ ██▄▄▄▄ ██████
|
||||
|
||||
general {
|
||||
gaps_in = 0
|
||||
gaps_out = 0
|
||||
|
||||
border_size = 1
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(ff9100ff)
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 0.9
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 7
|
||||
passes = 4
|
||||
ignore_opacity = true
|
||||
noise = 0.0117
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
xray = false
|
||||
new_optimizations = true
|
||||
special = true
|
||||
popups = true
|
||||
}
|
||||
}
|
||||
|
||||
# App launcher
|
||||
layerrule = blur, rofi
|
||||
layerrule = ignorezero, rofi
|
||||
layerrule = animation slide bottom, rofi
|
||||
|
||||
# Top bar
|
||||
layerrule = blur, waybar
|
||||
layerrule = ignorezero, waybar
|
||||
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
9
hypr/hyprland/monitors.conf
Normal file
9
hypr/hyprland/monitors.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
#██▄ ▄██ ▄████▄ ███ ██ ██ ██████ ▄████▄ █████▄ ▄█████
|
||||
#██ ▀▀ ██ ██ ██ ██ ▀▄██ ██ ██ ██ ██ ██▄▄██▄ ▀▀▀▄▄▄
|
||||
#██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ ██ ██ █████▀
|
||||
|
||||
monitor = , preferred, auto, 1
|
||||
|
||||
# Lid switch bindings
|
||||
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
|
||||
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1
|
||||
11
hypr/hyprland/windowrules.conf
Normal file
11
hypr/hyprland/windowrules.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
#██ ██ ██ ███ ██ ████▄ ▄████▄ ██ ██ █████▄ ██ ██ ██ ██████ ▄█████
|
||||
#██ ▄█▄ ██ ██ ██ ▀▄██ ██ ██ ██ ██ ██ ▄█▄ ██ ██▄▄██▄ ██ ██ ██ ██▄▄ ▀▀▀▄▄▄
|
||||
# ▀██▀██▀ ██ ██ ██ ████▀ ▀████▀ ▀██▀██▀ ██ ██ ▀████▀ ██████ ██▄▄▄▄ █████▀
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
|
||||
96
rofi/bluetooth-menu.rasi
Normal file
96
rofi/bluetooth-menu.rasi
Normal file
@@ -0,0 +1,96 @@
|
||||
/* Bluetooth menu */
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
configuration {
|
||||
font: "JetBrainsMono Nerd Font 8";
|
||||
}
|
||||
|
||||
/* Window */
|
||||
|
||||
window {
|
||||
location: north;
|
||||
anchor: south;
|
||||
y-offset: 3px;
|
||||
width: 240px;
|
||||
border: 3px;
|
||||
border-radius: 10px;
|
||||
border-color: @main-br;
|
||||
background-color: @main-bg;
|
||||
children: [ mainbox ];
|
||||
}
|
||||
|
||||
mainbox {
|
||||
spacing: 0;
|
||||
background-color: @main-br;
|
||||
text-color: @main-fg;
|
||||
children: [ textbox-custom, listview, inputbar ];
|
||||
}
|
||||
|
||||
textbox-custom {
|
||||
font: "JetBrainsMono Nerd Font Bold 8";
|
||||
horizontal-align: 0.5;
|
||||
padding: 1px 0;
|
||||
expand: false;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
expand: false;
|
||||
content: " Bluetooth";
|
||||
}
|
||||
|
||||
/* Input */
|
||||
|
||||
inputbar {
|
||||
margin: -32px 6px 6px;
|
||||
border-radius: 6px;
|
||||
spacing: inherit;
|
||||
background-color: @input-bg;
|
||||
text-color: inherit;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
prompt {
|
||||
padding: 6px 6px 6px 12px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
placeholder: "Search";
|
||||
padding: 6px 0;
|
||||
cursor: text;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/* List */
|
||||
|
||||
listview {
|
||||
border: 2px 0 0 0;
|
||||
border-radius: 8px;
|
||||
border-color: @main-br;
|
||||
lines: 6;
|
||||
fixed-height: false;
|
||||
dynamic: false;
|
||||
cycle: false;
|
||||
margin: 0 0 -2px;
|
||||
padding: 6px 6px 40px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 6px;
|
||||
cursor: pointer;
|
||||
background-color: inherit;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected active,
|
||||
element selected normal {
|
||||
border-radius: 6px;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-text {
|
||||
padding: 0 6px;
|
||||
cursor: inherit;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
69
rofi/power-menu.rasi
Normal file
69
rofi/power-menu.rasi
Normal file
@@ -0,0 +1,69 @@
|
||||
/* Power menu */
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
configuration {
|
||||
font: "JetBrainsMono Nerd Font 8";
|
||||
}
|
||||
|
||||
/* Window */
|
||||
|
||||
window {
|
||||
location: northeast;
|
||||
anchor: north;
|
||||
x-offset: -3px;
|
||||
y-offset: 3px;
|
||||
width: 150px;
|
||||
border: 3px;
|
||||
border-radius: 10px;
|
||||
border-color: @main-br;
|
||||
background-color: @main-bg;
|
||||
children: [ mainbox ];
|
||||
}
|
||||
|
||||
mainbox {
|
||||
spacing: 0;
|
||||
background-color: @main-br;
|
||||
text-color: @main-fg;
|
||||
children: [ textbox-custom, listview ];
|
||||
}
|
||||
|
||||
textbox-custom {
|
||||
font: "JetBrainsMono Nerd Font Bold 8";
|
||||
horizontal-align: 0.5;
|
||||
padding: 1px 0;
|
||||
expand: false;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
expand: false;
|
||||
content: " Power";
|
||||
}
|
||||
|
||||
/* List */
|
||||
|
||||
listview {
|
||||
border: 2px 0 0 0;
|
||||
border-radius: 8px;
|
||||
border-color: @main-br;
|
||||
lines: 6;
|
||||
padding: 6px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 6px;
|
||||
cursor: pointer;
|
||||
background-color: inherit;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected.normal {
|
||||
border-radius: 6px;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-text {
|
||||
padding: 0 6px;
|
||||
cursor: inherit;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
45
rofi/theme.rasi
Normal file
45
rofi/theme.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Catppuccin Macchiato */
|
||||
|
||||
* {
|
||||
rosewater: #f4dbd6;
|
||||
flamingo: #f0c6c6;
|
||||
pink: #f5bde6;
|
||||
mauve: #c6a0f6;
|
||||
red: #ed8796;
|
||||
maroon: #ee99a0;
|
||||
peach: #f5a97f;
|
||||
yellow: #eed49f;
|
||||
green: #a6da95;
|
||||
teal: #8bd5ca;
|
||||
sky: #91d7e3;
|
||||
sapphire: #7dc4e4;
|
||||
blue: #8aadf4;
|
||||
lavender: #b7bdf8;
|
||||
text: #cad3f5;
|
||||
subtext1: #b8c0e0;
|
||||
subtext0: #a5adcb;
|
||||
overlay2: #939ab7;
|
||||
overlay1: #8087a2;
|
||||
overlay0: #6e738d;
|
||||
surface2: #5b6078;
|
||||
surface1: #494d64;
|
||||
surface0: #363a4f;
|
||||
base: #24273a;
|
||||
mantle: #1e2030;
|
||||
crust: #181926;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @crust;
|
||||
main-fg: @text;
|
||||
main-br: @overlay2;
|
||||
input-bg: @mantle;
|
||||
select-bg: @overlay2;
|
||||
select-fg: @crust;
|
||||
}
|
||||
45
rofi/themes/catppuccin-frappe.rasi
Normal file
45
rofi/themes/catppuccin-frappe.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Catppuccin Frappe */
|
||||
|
||||
* {
|
||||
rosewater: #f2d5cf;
|
||||
flamingo: #eebebe;
|
||||
pink: #f4b8e4;
|
||||
mauve: #ca9ee6;
|
||||
red: #e78284;
|
||||
maroon: #ea999c;
|
||||
peach: #ef9f76;
|
||||
yellow: #e5c890;
|
||||
green: #a6d189;
|
||||
teal: #81c8be;
|
||||
sky: #99d1db;
|
||||
sapphire: #85c1dc;
|
||||
blue: #8caaee;
|
||||
lavender: #babbf1;
|
||||
text: #c6d0f5;
|
||||
subtext1: #b5bfe2;
|
||||
subtext0: #a5adce;
|
||||
overlay2: #949cbb;
|
||||
overlay1: #838ba7;
|
||||
overlay0: #737994;
|
||||
surface2: #626880;
|
||||
surface1: #51576d;
|
||||
surface0: #414559;
|
||||
base: #303446;
|
||||
mantle: #292c3c;
|
||||
crust: #232634;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @crust;
|
||||
main-fg: @text;
|
||||
main-br: @overlay2;
|
||||
input-bg: @mantle;
|
||||
select-bg: @overlay2;
|
||||
select-fg: @crust;
|
||||
}
|
||||
45
rofi/themes/catppuccin-latte.rasi
Normal file
45
rofi/themes/catppuccin-latte.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Catppuccin Latte */
|
||||
|
||||
* {
|
||||
rosewater: #dc8a78;
|
||||
flamingo: #dd7878;
|
||||
pink: #ea76cb;
|
||||
mauve: #8839ef;
|
||||
red: #d20f39;
|
||||
maroon: #e64553;
|
||||
peach: #fe640b;
|
||||
yellow: #df8e1d;
|
||||
green: #40a02b;
|
||||
teal: #179299;
|
||||
sky: #04a5e5;
|
||||
sapphire: #209fb5;
|
||||
blue: #1e66f5;
|
||||
lavender: #7287fd;
|
||||
text: #4c4f69;
|
||||
subtext1: #5c5f77;
|
||||
subtext0: #6c6f85;
|
||||
overlay2: #7c7f93;
|
||||
overlay1: #8c8fa1;
|
||||
overlay0: #9ca0b0;
|
||||
surface2: #acb0be;
|
||||
surface1: #bcc0cc;
|
||||
surface0: #ccd0da;
|
||||
base: #eff1f5;
|
||||
mantle: #e6e9ef;
|
||||
crust: #dce0e8;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @crust;
|
||||
main-fg: @text;
|
||||
main-br: @overlay2;
|
||||
input-bg: @mantle;
|
||||
select-bg: @overlay2;
|
||||
select-fg: @crust;
|
||||
}
|
||||
45
rofi/themes/catppuccin-macchiato.rasi
Normal file
45
rofi/themes/catppuccin-macchiato.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Catppuccin Macchiato */
|
||||
|
||||
* {
|
||||
rosewater: #f4dbd6;
|
||||
flamingo: #f0c6c6;
|
||||
pink: #f5bde6;
|
||||
mauve: #c6a0f6;
|
||||
red: #ed8796;
|
||||
maroon: #ee99a0;
|
||||
peach: #f5a97f;
|
||||
yellow: #eed49f;
|
||||
green: #a6da95;
|
||||
teal: #8bd5ca;
|
||||
sky: #91d7e3;
|
||||
sapphire: #7dc4e4;
|
||||
blue: #8aadf4;
|
||||
lavender: #b7bdf8;
|
||||
text: #cad3f5;
|
||||
subtext1: #b8c0e0;
|
||||
subtext0: #a5adcb;
|
||||
overlay2: #939ab7;
|
||||
overlay1: #8087a2;
|
||||
overlay0: #6e738d;
|
||||
surface2: #5b6078;
|
||||
surface1: #494d64;
|
||||
surface0: #363a4f;
|
||||
base: #24273a;
|
||||
mantle: #1e2030;
|
||||
crust: #181926;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @crust;
|
||||
main-fg: @text;
|
||||
main-br: @overlay2;
|
||||
input-bg: @mantle;
|
||||
select-bg: @overlay2;
|
||||
select-fg: @crust;
|
||||
}
|
||||
45
rofi/themes/catppuccin-mocha.rasi
Normal file
45
rofi/themes/catppuccin-mocha.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Catppuccin Mocha */
|
||||
|
||||
* {
|
||||
rosewater: #f5e0dc;
|
||||
flamingo: #f2cdcd;
|
||||
pink: #f5c2e7;
|
||||
mauve: #cba6f7;
|
||||
red: #f38ba8;
|
||||
maroon: #eba0ac;
|
||||
peach: #fab387;
|
||||
yellow: #f9e2af;
|
||||
green: #a6e3a1;
|
||||
teal: #94e2d5;
|
||||
sky: #89dceb;
|
||||
sapphire: #74c7ec;
|
||||
blue: #89b4fa;
|
||||
lavender: #b4befe;
|
||||
text: #cdd6f4;
|
||||
subtext1: #bac2de;
|
||||
subtext0: #a6adc8;
|
||||
overlay2: #9399b2;
|
||||
overlay1: #7f849c;
|
||||
overlay0: #6c7086;
|
||||
surface2: #585b70;
|
||||
surface1: #45475a;
|
||||
surface0: #313244;
|
||||
base: #1e1e2e;
|
||||
mantle: #181825;
|
||||
crust: #11111b;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @crust;
|
||||
main-fg: @text;
|
||||
main-br: @overlay2;
|
||||
input-bg: @mantle;
|
||||
select-bg: @overlay2;
|
||||
select-fg: @crust;
|
||||
}
|
||||
45
rofi/themes/gruvbox-dark.rasi
Normal file
45
rofi/themes/gruvbox-dark.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Gruvbox Dark */
|
||||
|
||||
* {
|
||||
bg0h: #1d2021;
|
||||
bg0: #282828;
|
||||
bg1: #3c3836;
|
||||
bg2: #504945;
|
||||
bg3: #665c54;
|
||||
bg4: #7c6f64;
|
||||
gray: #928374;
|
||||
fg4: #a89984;
|
||||
fg3: #bdae93;
|
||||
fg2: #d5c4a1;
|
||||
fg1: #ebdbb2;
|
||||
fg0: #fbf1c7;
|
||||
red: #cc241d;
|
||||
brightred: #fb4934;
|
||||
green: #98971a;
|
||||
brightgreen: #b8bb26;
|
||||
yellow: #d79921;
|
||||
brightyellow: #fabd2f;
|
||||
blue: #458588;
|
||||
brightblue: #83a598;
|
||||
purple: #b16286;
|
||||
brightpurple: #d3869b;
|
||||
aqua: #689d6a;
|
||||
brightaqua: #8ec07c;
|
||||
orange: #d65d0e;
|
||||
brightorange: #fe8019;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @bg0h;
|
||||
main-fg: @fg0;
|
||||
main-br: @yellow;
|
||||
input-bg: @bg1;
|
||||
select-bg: @yellow;
|
||||
select-fg: @bg0h;
|
||||
}
|
||||
45
rofi/themes/gruvbox-light.rasi
Normal file
45
rofi/themes/gruvbox-light.rasi
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Gruvbox Dark */
|
||||
|
||||
* {
|
||||
bg0h: #f9f5d7;
|
||||
bg0: #fbf1c7;
|
||||
bg1: #ebdbb2;
|
||||
bg2: #d5c4a1;
|
||||
bg3: #bdae93;
|
||||
bg4: #a89984;
|
||||
gray: #928374;
|
||||
fg4: #7c6f64;
|
||||
fg3: #665c54;
|
||||
fg2: #504945;
|
||||
fg1: #3c3836;
|
||||
fg0: #282828;
|
||||
red: #cc241d;
|
||||
brightred: #9d0006;
|
||||
green: #98971a;
|
||||
brightgreen: #79740e;
|
||||
yellow: #d79921;
|
||||
brightyellow: #b57614;
|
||||
blue: #458588;
|
||||
brightblue: #076678;
|
||||
purple: #b16286;
|
||||
brightpurple: #8f3f71;
|
||||
aqua: #689d6a;
|
||||
brightaqua: #427b58;
|
||||
orange: #d65d0e;
|
||||
brightorange: #af3a03;
|
||||
}
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
* {
|
||||
main-bg: @bg0h;
|
||||
main-fg: @fg0;
|
||||
main-br: @brightyellow;
|
||||
input-bg: @bg1;
|
||||
select-bg: @brightyellow;
|
||||
select-fg: @bg0h;
|
||||
}
|
||||
96
rofi/wifi-menu.rasi
Normal file
96
rofi/wifi-menu.rasi
Normal file
@@ -0,0 +1,96 @@
|
||||
/* WiFi menu */
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
configuration {
|
||||
font: "JetBrainsMono Nerd Font 8";
|
||||
}
|
||||
|
||||
/* Window */
|
||||
|
||||
window {
|
||||
location: north;
|
||||
anchor: south;
|
||||
y-offset: 3px;
|
||||
width: 240px;
|
||||
border: 3px;
|
||||
border-radius: 10px;
|
||||
border-color: @main-br;
|
||||
background-color: @main-bg;
|
||||
children: [ mainbox ];
|
||||
}
|
||||
|
||||
mainbox {
|
||||
spacing: 0;
|
||||
background-color: @main-br;
|
||||
text-color: @main-fg;
|
||||
children: [ textbox-custom, listview, inputbar ];
|
||||
}
|
||||
|
||||
textbox-custom {
|
||||
font: "JetBrainsMono Nerd Font Bold 8";
|
||||
horizontal-align: 0.5;
|
||||
padding: 1px 0;
|
||||
expand: false;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
expand: false;
|
||||
content: " Wi-Fi";
|
||||
}
|
||||
|
||||
/* Input */
|
||||
|
||||
inputbar {
|
||||
margin: -32px 6px 6px;
|
||||
border-radius: 6px;
|
||||
spacing: inherit;
|
||||
background-color: @input-bg;
|
||||
text-color: inherit;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
prompt {
|
||||
padding: 6px 6px 6px 12px;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
placeholder: "Search";
|
||||
padding: 6px 0;
|
||||
cursor: text;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
/* List */
|
||||
|
||||
listview {
|
||||
border: 2px 0 0 0;
|
||||
border-radius: 8px;
|
||||
border-color: @main-br;
|
||||
lines: 6;
|
||||
fixed-height: false;
|
||||
dynamic: false;
|
||||
cycle: false;
|
||||
margin: 0 0 -2px;
|
||||
padding: 6px 6px 40px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 6px;
|
||||
cursor: pointer;
|
||||
background-color: inherit;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected active,
|
||||
element selected normal {
|
||||
border-radius: 6px;
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
}
|
||||
element-text {
|
||||
padding: 0 6px;
|
||||
cursor: inherit;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
60
swaync/config.json
Normal file
60
swaync/config.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||
"ignore-gtk-theme": true,
|
||||
"positionX": "left",
|
||||
"positionY": "top",
|
||||
"layer": "overlay",
|
||||
"control-center-layer": "top",
|
||||
"layer-shell": true,
|
||||
"layer-shell-cover-screen": true,
|
||||
"cssPriority": "user",
|
||||
"control-center-margin-top": 7,
|
||||
"control-center-margin-bottom": 0,
|
||||
"control-center-margin-right": 7,
|
||||
"control-center-margin-left": 0,
|
||||
"notification-2fa-action": true,
|
||||
"notification-inline-replies": false,
|
||||
"notification-body-image-height": 150,
|
||||
"notification-body-image-width": 700,
|
||||
"timeout": 0,
|
||||
"timeout-low": 0,
|
||||
"timeout-critical": 0,
|
||||
"fit-to-screen": false,
|
||||
"relative-timestamps": true,
|
||||
"control-center-width": 350,
|
||||
"control-center-height": 800,
|
||||
"notification-window-width": 350,
|
||||
"keyboard-shortcuts": true,
|
||||
"notification-grouping": true,
|
||||
"image-visibility": "when-available",
|
||||
"transition-time": 200,
|
||||
"hide-on-clear": false,
|
||||
"hide-on-action": true,
|
||||
"text-empty": "No Notifications",
|
||||
"script-fail-notify": true,
|
||||
"widgets": [
|
||||
"mpris",
|
||||
"dnd",
|
||||
"title",
|
||||
"notifications"
|
||||
],
|
||||
"widget-config": {
|
||||
"notifications": {
|
||||
"vexpand": true
|
||||
},
|
||||
"title": {
|
||||
"text": "Notifications",
|
||||
"clear-all-button": true,
|
||||
"button-text": "Clear All"
|
||||
},
|
||||
"dnd": {
|
||||
"text": ""
|
||||
},
|
||||
"mpris": {
|
||||
"blacklist": [],
|
||||
"autohide": false,
|
||||
"show-album-art": "always",
|
||||
"loop-carousel": false
|
||||
}
|
||||
}
|
||||
}
|
||||
265
swaync/style.css
Normal file
265
swaync/style.css
Normal file
@@ -0,0 +1,265 @@
|
||||
/* Universal swaync - theme-independent, optimized for blur */
|
||||
:root {
|
||||
--cc-bg: rgba(20, 20, 20, 0.70); /* rgba(18, 18, 22, 0.70) */
|
||||
--noti-bg: rgba(28, 28, 28, 0.72); /* rgba(28, 28, 32, 0.72) */
|
||||
--noti-bg-hover: rgba(38, 38, 38, 0.75); /* rgba(38, 38, 44, 0.75) */
|
||||
--noti-bg-focus: rgba(48, 48, 48, 0.78); /* rgba(48, 48, 54, 0.78) */
|
||||
--noti-bg-floating: rgba(22, 22, 22, 0.74); /* rgba(22, 22, 26, 0.74) */
|
||||
--noti-border-color: rgba(255, 255, 255, 0.10);
|
||||
--noti-border-hover: rgba(255, 255, 255, 0.15);
|
||||
--noti-border-focus: rgba(255, 255, 255, 0.20);
|
||||
--button-bg: rgba(255, 255, 255, 0.10);
|
||||
--button-hover: rgba(255, 255, 255, 0.15);
|
||||
--button-active: rgba(255, 255, 255, 0.20);
|
||||
--close-bg: rgba(255, 255, 255, 0.10);
|
||||
--close-hover: rgba(255, 70, 70, 0.35);
|
||||
--text-primary: rgba(255, 255, 255, 0.97);
|
||||
--text-secondary: rgba(210, 210, 220, 0.88);
|
||||
--text-disabled: rgba(160, 160, 170, 0.68);
|
||||
--border-radius: 10px;
|
||||
--transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.notification-window, .blank-window { background: transparent; }
|
||||
|
||||
.control-center {
|
||||
background: var(--cc-bg);
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.control-center scrollbar, .control-center scrollbar slider {
|
||||
background: transparent;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* MPRIS */
|
||||
.widget-mpris { margin: 6px 6px 4px 6px; }
|
||||
.widget-mpris > box > box {
|
||||
background: var(--noti-bg);
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
padding: 10px;
|
||||
}
|
||||
.mpris-album-art {
|
||||
border-radius: 6px;
|
||||
margin-right: 10px;
|
||||
min-width: 56px;
|
||||
min-height: 56px;
|
||||
}
|
||||
.mpris-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.mpris-artist {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.mpris-controls button {
|
||||
background: var(--button-bg);
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
min-width: 32px;
|
||||
min-height: 32px;
|
||||
margin: 0 3px;
|
||||
transition: var(--transition);
|
||||
}
|
||||
.mpris-controls button:hover {
|
||||
background: var(--button-hover);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.mpris-controls button:active {
|
||||
background: var(--button-active);
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
/* Title */
|
||||
.widget-title { margin: 4px 6px 4px 6px; }
|
||||
.widget-title > box { padding: 6px; }
|
||||
.widget-title > box > label {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.widget-title > box > button {
|
||||
background: var(--button-bg);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
border-radius: 6px;
|
||||
padding: 4px 10px;
|
||||
font-size: 12px;
|
||||
color: var(--text-primary);
|
||||
transition: var(--transition);
|
||||
}
|
||||
.widget-title > box > button:hover {
|
||||
background: var(--button-hover);
|
||||
border-color: var(--noti-border-hover);
|
||||
transform: scale(1.02);
|
||||
}
|
||||
.widget-title > box > button:active {
|
||||
background: var(--button-active);
|
||||
border-color: var(--noti-border-focus);
|
||||
}
|
||||
|
||||
/* DND */
|
||||
.widget-dnd {
|
||||
margin: 4px 6px 4px 6px;
|
||||
/* REMOVED: text-align - not supported in GTK CSS */
|
||||
}
|
||||
.widget-dnd label {
|
||||
/* REMOVED: display: none - use opacity instead */
|
||||
opacity: 0;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
.widget-dnd switch {
|
||||
background: rgba(40, 40, 45, 0.6);
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
border-radius: 10px;
|
||||
min-height: 24px;
|
||||
min-width: 44px;
|
||||
}
|
||||
.widget-dnd switch:checked {
|
||||
background: rgba(100, 120, 140, 0.35);
|
||||
border-color: rgba(120, 140, 160, 0.4);
|
||||
}
|
||||
.widget-dnd switch slider {
|
||||
background: rgba(200, 200, 210, 0.9);
|
||||
border-radius: 50%;
|
||||
min-width: 18px;
|
||||
min-height: 18px;
|
||||
margin: 3px;
|
||||
}
|
||||
.widget-dnd switch:checked slider { background: rgba(140, 160, 180, 1); }
|
||||
|
||||
/* Notifications */
|
||||
.widget-notifications { margin: 2px; }
|
||||
.notification-row {
|
||||
background: none;
|
||||
outline: none;
|
||||
}
|
||||
.notification-row .notification-background { padding: 3px; }
|
||||
.notification-row .notification-background .notification {
|
||||
background: var(--noti-bg);
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
margin: 3px 0;
|
||||
transition: var(--transition);
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.notification-row .notification-background .notification:hover {
|
||||
background: var(--noti-bg-hover);
|
||||
border-color: var(--noti-border-hover);
|
||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
.notification-row .notification-background .notification .notification-default-action {
|
||||
padding: 10px;
|
||||
color: var(--text-primary);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
/* Floating */
|
||||
.floating-notifications .notification {
|
||||
background: var(--noti-bg-floating) !important;
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* Content */
|
||||
.notification .notification-content { padding: 3px; }
|
||||
.notification .summary {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.notification .body {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.notification .time {
|
||||
font-size: 11px;
|
||||
color: var(--text-disabled);
|
||||
}
|
||||
.notification image {
|
||||
border-radius: 6px;
|
||||
margin-right: 10px;
|
||||
min-width: 44px;
|
||||
min-height: 44px;
|
||||
}
|
||||
.notification .body-image {
|
||||
border-radius: 6px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
/* Close */
|
||||
.close-button {
|
||||
background: var(--close-bg);
|
||||
color: var(--text-primary);
|
||||
border-radius: 100%;
|
||||
min-width: 22px;
|
||||
min-height: 22px;
|
||||
margin: 6px;
|
||||
transition: var(--transition);
|
||||
}
|
||||
.close-button:hover {
|
||||
background: var(--close-hover);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
.close-button:active { transform: scale(0.95); }
|
||||
|
||||
/* Groups */
|
||||
.notification-group {
|
||||
margin: 3px;
|
||||
}
|
||||
.notification-group.collapsed {
|
||||
background: var(--noti-bg);
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid var(--noti-border-color);
|
||||
margin: 3px 0;
|
||||
transition: var(--transition);
|
||||
}
|
||||
.notification-group.collapsed:hover {
|
||||
background: var(--noti-bg-hover);
|
||||
border-color: var(--noti-border-hover);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
.notification-group.collapsed .notification {
|
||||
/* REMOVED: display: none - use opacity instead */
|
||||
opacity: 0;
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
}
|
||||
.notification-group-headers {
|
||||
padding: 10px 12px;
|
||||
margin: 0;
|
||||
/* REMOVED: cursor - not supported in GTK CSS */
|
||||
}
|
||||
.notification-group-headers .notification-group-icon,
|
||||
.notification-group-headers .notification-group-header {
|
||||
color: var(--text-primary);
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
}
|
||||
.notification-group-headers .notification-group-count {
|
||||
color: var(--text-secondary);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Empty */
|
||||
.blank-window label {
|
||||
color: var(--text-disabled);
|
||||
font-size: 13px;
|
||||
font-style: italic;
|
||||
}
|
||||
126
waybar/.github/README.md
vendored
126
waybar/.github/README.md
vendored
@@ -1,126 +0,0 @@
|
||||
<div align="center">
|
||||
|
||||
## 🤖 mechabar
|
||||
|
||||
A mecha-themed, modular Waybar configuration.
|
||||
|
||||
|  |
|
||||
| :--------------------------------------: |
|
||||
|
||||
<details>
|
||||
<summary><b>Themes</b></summary>
|
||||
<br>
|
||||
|
||||
**Catppuccin:**
|
||||
|
||||
| Mocha _(default)_ |
|
||||
| :----------------------------------------------: |
|
||||
|  |
|
||||
|
||||
| Macchiato |
|
||||
| :------------------------------------------------------: |
|
||||
|  |
|
||||
|
||||
| Frappe |
|
||||
| :------------------------------------------------: |
|
||||
|  |
|
||||
|
||||
| Latte |
|
||||
| :----------------------------------------------: |
|
||||
|  |
|
||||
|
||||
</details>
|
||||
</div>
|
||||
|
||||
#
|
||||
|
||||
### Requirements
|
||||
|
||||
1. [Waybar](https://github.com/Alexays/Waybar)
|
||||
|
||||
> [!WARNING]
|
||||
> **Version 0.14.0** has an [issue](https://github.com/Alexays/Waybar/issues/4354) with wildcard includes.
|
||||
> Use the `fix/v0.14.0` branch as a temporary workaround.
|
||||
|
||||
2. A terminal emulator _(default: **Kitty**)_
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you use a different terminal emulator (e.g., **Ghostty**),
|
||||
> you need to replace all instances of `kitty` with your terminal command:
|
||||
>
|
||||
> ```diff
|
||||
> - "on-click": "kitty -e ..."
|
||||
> + "on-click": "ghostty -e ..."
|
||||
> ```
|
||||
|
||||
#
|
||||
|
||||
### Installation
|
||||
|
||||
1. Back up your current configuration:
|
||||
|
||||
```bash
|
||||
mv ~/.config/waybar{,.bak}
|
||||
```
|
||||
|
||||
2. Clone the repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/sejjy/mechabar.git ~/.config/waybar
|
||||
```
|
||||
|
||||
For **Waybar v0.14.0**:
|
||||
|
||||
```bash
|
||||
git clone -b fix/v0.14.0 https://github.com/sejjy/mechabar.git ~/.config/waybar
|
||||
```
|
||||
|
||||
3. Run the [install script](/install.sh):
|
||||
|
||||
```bash
|
||||
~/.config/waybar/install.sh
|
||||
```
|
||||
|
||||
This makes the [scripts](/scripts/) executable and installs all dependencies listed below:
|
||||
|
||||
| Package | Description |
|
||||
| --------------------------------: | ------------------------------------------------------------------------------ |
|
||||
| `bluez` | Daemons for the bluetooth protocol stack<tr></tr> |
|
||||
| _(bluetoothctl)_ `bluez-utils` | Development and debugging utilities for the bluetooth protocol stack<tr></tr> |
|
||||
| `brightnessctl` | Lightweight brightness control tool<tr></tr> |
|
||||
| `fzf` | Command-line fuzzy finder<tr></tr> |
|
||||
| _(nmcli)_ `networkmanager` | Network connection manager and user applications<tr></tr> |
|
||||
| _(checkupdates)_ `pacman-contrib` | Contributed scripts and tools for pacman systems<tr></tr> |
|
||||
| `pipewire-pulse` | Low-latency audio/video router and processor - PulseAudio replacement<tr></tr> |
|
||||
| `ttf-0xproto-nerd` | Patched font 0xProto from nerd fonts library |
|
||||
|
||||
#
|
||||
|
||||
### Customization
|
||||
|
||||
- To change the theme, copy the file with your preferred theme (e.g., `catppuccin-latte.css`) to `theme.css`:
|
||||
|
||||
```bash
|
||||
cd ~/.config/waybar
|
||||
cp themes/catppuccin-latte.css theme.css
|
||||
```
|
||||
|
||||
#
|
||||
|
||||
### Documentation
|
||||
|
||||
- [Waybar wiki](https://github.com/Alexays/Waybar/wiki)
|
||||
|
||||
- Man page:
|
||||
|
||||
```bash
|
||||
man waybar
|
||||
```
|
||||
|
||||
#
|
||||
|
||||
### Credits
|
||||
|
||||
- Font: [0xProto](https://github.com/0xType/0xProto)
|
||||
- Icons: [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts)
|
||||
- Themes: [Catppuccin](https://github.com/catppuccin/waybar)
|
||||
BIN
waybar/.github/assets/catppuccin-frappe.png
vendored
BIN
waybar/.github/assets/catppuccin-frappe.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
BIN
waybar/.github/assets/catppuccin-latte.png
vendored
BIN
waybar/.github/assets/catppuccin-latte.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB |
BIN
waybar/.github/assets/catppuccin-macchiato.png
vendored
BIN
waybar/.github/assets/catppuccin-macchiato.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 23 KiB |
BIN
waybar/.github/assets/catppuccin-mocha.png
vendored
BIN
waybar/.github/assets/catppuccin-mocha.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 23 KiB |
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 Jesse Mirabel
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,128 +1,478 @@
|
||||
{
|
||||
/*------------------------------------------------------------
|
||||
regression: wildcard includes are broken after v0.14.0
|
||||
- https://github.com/Alexays/Waybar/issues/4354
|
||||
- https://github.com/sejjy/mechabar/issues/31
|
||||
------------------------------------------------------------*/
|
||||
/*
|
||||
"include": [
|
||||
"~/.config/waybar/modules/*.jsonc",
|
||||
"~/.config/waybar/modules/custom/*.jsonc",
|
||||
"~/.config/waybar/modules/hyprland/*.jsonc"
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// modules that are not included by default:
|
||||
// "~/.config/waybar/modules/extras/*.jsonc"
|
||||
],
|
||||
*/
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"include": [
|
||||
// modules-left
|
||||
"~/.config/waybar/modules/custom/user.jsonc",
|
||||
"~/.config/waybar/modules/hyprland/workspaces.jsonc",
|
||||
"~/.config/waybar/modules/hyprland/window.jsonc",
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
// modules-center
|
||||
"~/.config/waybar/modules/hyprland/windowcount.jsonc",
|
||||
"~/.config/waybar/modules/temperature.jsonc",
|
||||
"~/.config/waybar/modules/memory.jsonc",
|
||||
"~/.config/waybar/modules/cpu.jsonc",
|
||||
"~/.config/waybar/modules/custom/distro.jsonc",
|
||||
"~/.config/waybar/modules/idle_inhibitor.jsonc",
|
||||
"~/.config/waybar/modules/clock.jsonc",
|
||||
"~/.config/waybar/modules/network.jsonc",
|
||||
"~/.config/waybar/modules/bluetooth.jsonc",
|
||||
"~/.config/waybar/modules/custom/system_update.jsonc",
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
// modules-right
|
||||
"~/.config/waybar/modules/mpris.jsonc",
|
||||
"~/.config/waybar/modules/pulseaudio.jsonc",
|
||||
"~/.config/waybar/modules/backlight.jsonc",
|
||||
"~/.config/waybar/modules/battery.jsonc",
|
||||
"~/.config/waybar/modules/custom/power_menu.jsonc",
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"~/.config/waybar/modules/custom/dividers.jsonc"
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
// modules that are not included by default:
|
||||
// "~/.config/waybar/modules/extras/taskbar.jsonc",
|
||||
// "~/.config/waybar/modules/extras/tray.jsonc",
|
||||
// "~/.config/waybar/modules/extras/wireplumber.jsonc"
|
||||
],
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
/*------------
|
||||
layout
|
||||
------------*/
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"modules-left": [
|
||||
"group/user",
|
||||
"custom/left_div#1",
|
||||
"hyprland/workspaces",
|
||||
"custom/right_div#1",
|
||||
"hyprland/window"
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/windowcount",
|
||||
"custom/left_div#2",
|
||||
"temperature",
|
||||
"custom/left_div#3",
|
||||
"memory",
|
||||
"custom/left_div#4",
|
||||
"cpu",
|
||||
"custom/left_inv#1",
|
||||
"custom/left_div#5",
|
||||
"custom/distro",
|
||||
"custom/right_div#2",
|
||||
"custom/right_inv#1",
|
||||
"idle_inhibitor",
|
||||
"clock#time",
|
||||
"custom/right_div#3",
|
||||
"clock#date",
|
||||
"custom/right_div#4",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"custom/system_update",
|
||||
"custom/right_div#5"
|
||||
],
|
||||
"modules-right": [
|
||||
"mpris",
|
||||
"custom/left_div#6",
|
||||
"group/pulseaudio",
|
||||
"custom/left_div#7",
|
||||
"backlight",
|
||||
"custom/left_div#8",
|
||||
"battery",
|
||||
"custom/left_inv#2",
|
||||
"custom/power_menu"
|
||||
],
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
/*-------------
|
||||
options
|
||||
-------------*/
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
// "expand-center":
|
||||
// "expand-left":
|
||||
// "expand-right":
|
||||
"layer": "top",
|
||||
// "output":
|
||||
// "position":
|
||||
"height": 0,
|
||||
"width": 0,
|
||||
"margin": 0,
|
||||
// "margin-top":
|
||||
// "margin-left":
|
||||
// "margin-bottom":
|
||||
// "margin-right":
|
||||
// "no-center":
|
||||
"spacing": 0,
|
||||
// "name":
|
||||
"mode": "dock",
|
||||
// "start_hidden":
|
||||
// "modifier-reset":
|
||||
// "exclusive":
|
||||
// "fixed-center":
|
||||
// "passthrough":
|
||||
// "ipc":
|
||||
// "id":
|
||||
"reload_style_on_change": true
|
||||
// "on-sigusr1":
|
||||
// "on-sigusr2":
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"custom/wireguard", // wireguard
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#458588'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#cc241d'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#cc241d'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#d65d0e'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#d65d0e'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#458588'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#458588'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#98971a'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#98971a'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#98971a'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#98971a'> </span> $1",
|
||||
|
||||
// Media
|
||||
"OBS(.*)":
|
||||
"<span foreground='#d5c4a1'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#d65d0e'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#d65d0e'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#b16286'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#458588'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#458588'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#98971a'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#d65d0e'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#cc241d'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"weeks-pos": "right",
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#928374'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#d5c4a1' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#cc241d'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/wireguard": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": 10,
|
||||
"exec": "~/.config/waybar/scripts/wireguard-status.sh",
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 180,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#98971a'> </span>",
|
||||
"firefox": "<span foreground='#cc241d'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#928374'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
|
||||
489
waybar/config.jsonc.backup
Normal file
489
waybar/config.jsonc.backup
Normal file
@@ -0,0 +1,489 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"custom/wireguard", // wireguard
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#458588'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#cc241d'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#cc241d'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#d65d0e'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#d65d0e'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#458588'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#458588'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#98971a'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#98971a'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#98971a'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#98971a'> </span> $1",
|
||||
|
||||
// Media
|
||||
|
||||
"(.*)Spotify":
|
||||
"<span foreground='#98971a'> </span> Spotify",
|
||||
"(.*)Spotify Premium":
|
||||
"<span foreground='#98971a'> </span> Spotify Premium",
|
||||
|
||||
"OBS(.*)":
|
||||
"<span foreground='#d5c4a1'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#d65d0e'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#d65d0e'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#b16286'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"vesktop":
|
||||
"<span foreground='#458588'> </span> Discord",
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#458588'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#458588'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#98971a'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#d65d0e'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#cc241d'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"weeks-pos": "right",
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#928374'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#d5c4a1' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#cc241d'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/wireguard": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": 10,
|
||||
"exec": "~/.config/waybar/scripts/wireguard-status.sh",
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 180,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#98971a'> </span>",
|
||||
"firefox": "<span foreground='#cc241d'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#928374'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
478
waybar/config.jsonc.original
Normal file
478
waybar/config.jsonc.original
Normal file
@@ -0,0 +1,478 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#8aadf4'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#ed8796'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#ed8796'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#f5a97f'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#f5a97f'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#8aadf4'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#8aadf4'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#a6da95'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#a6da95'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#a6da95'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#a6da95'> </span> $1",
|
||||
|
||||
// Media
|
||||
|
||||
"(.*)Spotify":
|
||||
"<span foreground='#a6da95'> </span> Spotify",
|
||||
"(.*)Spotify Premium":
|
||||
"<span foreground='#a6da95'> </span> Spotify Premium",
|
||||
|
||||
"OBS(.*)":
|
||||
"<span foreground='#a5adcb'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#f5a97f'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#f5a97f'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#c6a0f6'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"vesktop":
|
||||
"<span foreground='#8aadf4'> </span> Discord",
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#8aadf4'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#8aadf4'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#a6da95'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#f5a97f'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#ed8796'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#b7bdf8'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#a5adcb' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#ed8796'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 30,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#a6da95'> </span>",
|
||||
"firefox": "<span foreground='#ed8796'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#b7bdf8'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
RED='\033[1;31m'
|
||||
GRN='\033[1;32m'
|
||||
BLU='\033[1;34m'
|
||||
RST='\033[0m'
|
||||
|
||||
DEPS=(
|
||||
bluez
|
||||
bluez-utils # bluetoothctl
|
||||
brightnessctl
|
||||
fzf
|
||||
networkmanager # nmcli
|
||||
pacman-contrib # checkupdates
|
||||
pipewire-pulse
|
||||
ttf-0xproto-nerd
|
||||
)
|
||||
|
||||
main() {
|
||||
printf '%bInstalling dependencies...%b\n' "$BLU" "$RST"
|
||||
|
||||
local package
|
||||
local errors=0
|
||||
for package in "${DEPS[@]}"; do
|
||||
if pacman -Qi "$package" > /dev/null; then
|
||||
printf '[%b/%b] %s\n' "$GRN" "$RST" "$package"
|
||||
else
|
||||
printf '[ ] %s...\n' "$package"
|
||||
|
||||
if sudo pacman -S --noconfirm "$package"; then
|
||||
printf '[%b+%b] %s\n' "$GRN" "$RST" "$package"
|
||||
else
|
||||
printf '[%bx%b] %s\n' "$RED" "$RST" "$package"
|
||||
((errors++))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
printf '\n%bMaking scripts executable...%b\n' "$BLU" "$RST"
|
||||
chmod -v +x ~/.config/waybar/scripts/*.sh
|
||||
|
||||
pkill waybar
|
||||
waybar &> /dev/null &
|
||||
disown
|
||||
|
||||
if ((errors > 0)); then
|
||||
printf '\nInstallation completed with %b%d errors%b\n' \
|
||||
"$RED" "$errors" "$RST"
|
||||
else
|
||||
printf '\n%bInstallation complete!%b\n' "$GRN" "$RST"
|
||||
fi
|
||||
}
|
||||
|
||||
main
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"backlight": {
|
||||
// "interval":
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": [
|
||||
"", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "rotate":
|
||||
// "states":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"on-scroll-up": "~/.config/waybar/scripts/backlight.sh up",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/backlight.sh down",
|
||||
// "smooth-scrolling-threshold":
|
||||
// "reverse-scrolling":
|
||||
// "reverse-mouse-scrolling":
|
||||
// "scroll-step":
|
||||
// "min-brightness":
|
||||
"tooltip": false
|
||||
// "tooltip-format":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"battery": {
|
||||
// "bat":
|
||||
// "adapter":
|
||||
// "design-capacity":
|
||||
// "full-at":
|
||||
// "interval":
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-time": "{H} hr {M} min",
|
||||
"format-icons": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"format-charging": " {capacity}%",
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "rotate":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
// "weighted-average":
|
||||
// "bat-compatibility":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
"events": {
|
||||
"on-discharging-warning": "notify-send 'Battery Low (20%)' -i 'battery-020'",
|
||||
"on-discharging-critical": "notify-send 'Battery Critical (10%)' -u critical -i 'battery-010'",
|
||||
"on-charging-100": "notify-send 'Battery Full (100%)' -i 'battery-100-charged'"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"bluetooth": {
|
||||
// "controller":
|
||||
// "format-device-preference":
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-off": "",
|
||||
"format-on": "",
|
||||
"format-connected": "",
|
||||
// "format-connected-battery":
|
||||
// "format-no-controller":
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
"min-length": 2,
|
||||
"max-length": 2,
|
||||
// "align":
|
||||
// "justify":
|
||||
"on-click": "kitty -e ~/.config/waybar/scripts/bluetooth.sh",
|
||||
// "on-click-middle":
|
||||
"on-click-right": "bluetoothctl power off && notify-send 'Bluetooth Off' -i 'network-bluetooth-inactive' -r 1925",
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Device Addr: {device_address}",
|
||||
"tooltip-format-disabled": "Bluetooth Disabled",
|
||||
"tooltip-format-off": "Bluetooth Off",
|
||||
"tooltip-format-on": "Bluetooth Disconnected",
|
||||
"tooltip-format-connected": "Device: {device_alias}",
|
||||
"tooltip-format-enumerate-connected": "Device: {device_alias}",
|
||||
"tooltip-format-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%",
|
||||
"tooltip-format-enumerate-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
{
|
||||
"clock#time": {
|
||||
// "interval":
|
||||
"format": "{:%H:%M}",
|
||||
// "timezone":
|
||||
// "timezones":
|
||||
// "locale":
|
||||
"min-length": 5,
|
||||
"max-length": 5,
|
||||
// "rotate": 0,
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Standard Time: {:%I:%M %p}"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
},
|
||||
|
||||
/*--------------
|
||||
calendar
|
||||
--------------*/
|
||||
|
||||
"clock#date": {
|
||||
// "interval":
|
||||
"format": " {:%m-%d}",
|
||||
// "timezone":
|
||||
// "timezones":
|
||||
// "locale":
|
||||
"min-length": 8,
|
||||
"max-length": 8,
|
||||
// "rotate":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "{calendar}",
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
// "week-pos":
|
||||
// "on-scroll":
|
||||
"format": {
|
||||
"months": "<span alpha='100%'><b>{}</b></span>",
|
||||
"days": "<span alpha='90%'>{}</span>",
|
||||
// "weeks":
|
||||
"weekdays": "<span alpha='80%'><i>{}</i></span>",
|
||||
"today": "<span alpha='100%'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click": "mode"
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": " {usage}%",
|
||||
"format-warning": " {usage}%",
|
||||
"format-critical": " {usage}%",
|
||||
// "format-icons":
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "rotate":
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
"tooltip": false
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"custom/distro": {
|
||||
// "exec":
|
||||
// "exec-if":
|
||||
// "exec-on-event":
|
||||
// "hide-empty-text":
|
||||
// "return-type":
|
||||
// "interval":
|
||||
// "restart-interval":
|
||||
// "signal":
|
||||
"format": "",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
// "min-length":
|
||||
// "max-length":
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
"tooltip": false
|
||||
// "tooltip-format":
|
||||
// "escape":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
/*-------------------
|
||||
left dividers
|
||||
-------------------*/
|
||||
|
||||
"custom/left_div#1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_div#8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// inverse
|
||||
"custom/left_inv#1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left_inv#2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
/*--------------------
|
||||
right dividers
|
||||
--------------------*/
|
||||
|
||||
"custom/right_div#1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right_div#2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right_div#3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right_div#4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right_div#5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// inverse
|
||||
"custom/right_inv#1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"custom/power_menu": {
|
||||
// "exec":
|
||||
// "exec-if":
|
||||
// "exec-on-event":
|
||||
// "hide-empty-text":
|
||||
// "return-type":
|
||||
// "interval":
|
||||
// "restart-interval":
|
||||
// "signal":
|
||||
"format": "",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
// "min-length":
|
||||
// "max-length":
|
||||
// "align":
|
||||
// "justify":
|
||||
"on-click": "kitty -e ~/.config/waybar/scripts/power-menu.sh",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Power Menu"
|
||||
// "escape":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"custom/system_update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh module",
|
||||
// "exec-if":
|
||||
// "exec-on-event":
|
||||
// "hide-empty-text":
|
||||
"return-type": "json",
|
||||
"interval": 3600,
|
||||
// "restart-interval":
|
||||
"signal": 1,
|
||||
"format": "{}",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
// "align":
|
||||
// "justify":
|
||||
"min-length": 2,
|
||||
"max-length": 2,
|
||||
"on-click": "kitty -e ~/.config/waybar/scripts/system-update.sh"
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
// "tooltip-format":
|
||||
// "escape":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
{
|
||||
"group/user": {
|
||||
"orientation": "horizontal",
|
||||
"modules": [
|
||||
"custom/trigger",
|
||||
"custom/user"
|
||||
],
|
||||
"drawer": {
|
||||
// "transition-duration":
|
||||
// "transition-left-to-right":
|
||||
// "children-class":
|
||||
// "click-to-reveal":
|
||||
}
|
||||
},
|
||||
|
||||
"custom/trigger": {
|
||||
// "exec":
|
||||
// "exec-if":
|
||||
// "exec-on-event":
|
||||
// "hide-empty-text":
|
||||
// "return-type":
|
||||
// "interval":
|
||||
// "restart-interval":
|
||||
// "signal":
|
||||
"format": "",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
"min-length": 4,
|
||||
"max-length": 4,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
"tooltip": false
|
||||
// "tooltip-format":
|
||||
// "escape":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
},
|
||||
|
||||
/*--------------
|
||||
username
|
||||
--------------*/
|
||||
|
||||
"custom/user": {
|
||||
"exec": "id -un",
|
||||
// "exec-if":
|
||||
// "exec-on-event":
|
||||
// "hide-empty-text":
|
||||
// "return-type":
|
||||
// "interval":
|
||||
// "restart-interval":
|
||||
// "signal":
|
||||
"format": "{}",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
// "min-length":
|
||||
// "max-length":
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
"tooltip": false
|
||||
// "tooltip-format":
|
||||
// "escape":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"wlr/taskbar": {
|
||||
// "all-outputs":
|
||||
// "format":
|
||||
// "icon-theme":
|
||||
// "icon-size":
|
||||
// "markup":
|
||||
// "tooltip":
|
||||
// "tooltip-format":
|
||||
// "active-first":
|
||||
// "sort-by-app-id":
|
||||
"on-click": "activate",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"ignore-list": [ "kitty" ],
|
||||
// "app_ids-mapping":
|
||||
// "rewrite":
|
||||
"cursor": true
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"tray": {
|
||||
"icon-size": 16,
|
||||
// "show-passive-items":
|
||||
// "smooth-scrolling-threshold":
|
||||
"spacing": 12,
|
||||
// "reverse-direction":
|
||||
// "on-update":
|
||||
// "expand":
|
||||
// "icons":
|
||||
"cursor": true
|
||||
}
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
"group/wireplumber": {
|
||||
"orientation": "horizontal",
|
||||
"modules": [
|
||||
"wireplumber#output",
|
||||
"wireplumber#input"
|
||||
],
|
||||
"drawer": {
|
||||
// "transition-duration":
|
||||
"transition-left-to-right": false
|
||||
// "children-class":
|
||||
// "click-to-reveal":
|
||||
}
|
||||
},
|
||||
|
||||
/*-------------------
|
||||
output device
|
||||
-------------------*/
|
||||
|
||||
"wireplumber#output": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
// "format-source":
|
||||
// "format-source-muted":
|
||||
"format-icons": [
|
||||
"", "", ""
|
||||
],
|
||||
// "rotate":
|
||||
// "states":
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "scroll-step":
|
||||
"on-click": "~/.config/waybar/scripts/volume.sh output mute",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower",
|
||||
// "tooltip":
|
||||
"tooltip-format": "Device: {node_name}",
|
||||
// "max-volume":
|
||||
// "reverse-scrolling":
|
||||
"node-type": "Audio/Sink"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
},
|
||||
|
||||
/*----------------
|
||||
microphone
|
||||
----------------*/
|
||||
|
||||
"wireplumber#input": {
|
||||
"format": " {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
// "format-source":
|
||||
// "format-source-muted":
|
||||
// "rotate":
|
||||
// "states":
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "scroll-step":
|
||||
"on-click": "~/.config/waybar/scripts/volume.sh input mute",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower",
|
||||
// "tooltip":
|
||||
"tooltip-format": "Device: {node_name}",
|
||||
// "max-volume":
|
||||
// "reverse-scrolling":
|
||||
"node-type": "Audio/Source"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"rewrite": {
|
||||
"": "Desktop",
|
||||
"kitty": "Terminal",
|
||||
"zsh": "Terminal",
|
||||
"~": "Terminal"
|
||||
},
|
||||
// "separate-outputs":
|
||||
// "icon":
|
||||
// "icon-size":
|
||||
// "min-length":
|
||||
// "max-length":
|
||||
// "tooltip":
|
||||
"swap-icon-label": false
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"hyprland/windowcount": {
|
||||
"format": "[{}]",
|
||||
// "format-empty":
|
||||
// "format-windowed":
|
||||
// "format-fullscreen":
|
||||
// "separate-outputs":
|
||||
// "min-length":
|
||||
// "max-length":
|
||||
"swap-icon-label": false
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"hyprland/workspaces": {
|
||||
// "active-only":
|
||||
// "hide-active":
|
||||
// "all-outputs":
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": 5
|
||||
},
|
||||
// "persistent-only":
|
||||
// "show-special":
|
||||
// "special-visible-only":
|
||||
// "sort-by":
|
||||
// "window-rewrite":
|
||||
// "window-rewrite-default":
|
||||
// "format-window-separator":
|
||||
"workspace-taskbar": {
|
||||
// "enable":
|
||||
// "update-active-window":
|
||||
// "format":
|
||||
// "icon-size":
|
||||
// "icon-theme":
|
||||
// "orientation":
|
||||
// "ignore-list":
|
||||
// "on-click-window":
|
||||
},
|
||||
// "move-to-monitor":
|
||||
// "ignore-workspaces":
|
||||
"on-scroll-up": "hyprctl dispatch workspace +1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace -1",
|
||||
// "expand":
|
||||
"cursor": true
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
// "rotate":
|
||||
"min-length": 3,
|
||||
"max-length": 3,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format-activated": "Keep Screen On: <span text_transform='capitalize'>{status}</span>",
|
||||
"tooltip-format-deactivated": "Keep Screen On: <span text_transform='capitalize'>{status}</span>",
|
||||
"start-activated": false
|
||||
// "timeout":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"memory": {
|
||||
"interval": 10,
|
||||
"format": " {percentage}%",
|
||||
"format-warning": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"mpris": {
|
||||
// "player":
|
||||
// "ignored-players":
|
||||
// "interval":
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
// "enable-tooltip-len-limits":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
"player-icons": {
|
||||
"default": ""
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": ""
|
||||
},
|
||||
// "artist-len":
|
||||
// "album-len":
|
||||
// "title-len":
|
||||
// "dynamic-len":
|
||||
// "dynamic-order":
|
||||
// "dynamic-separator":
|
||||
// "dynamic-importance-order":
|
||||
// "truncate-hours":
|
||||
// "ellipsis":
|
||||
// "rotate":
|
||||
// "min-length":
|
||||
"max-length": 1000
|
||||
// "align":
|
||||
// "justify":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"network": {
|
||||
// "interface":
|
||||
// "rfkill":
|
||||
"interval": 10,
|
||||
// "family":
|
||||
"format": "",
|
||||
"format-ethernet": "",
|
||||
"format-wifi": "{icon}",
|
||||
// "format-linked":
|
||||
"format-disconnected": "",
|
||||
"format-disabled": "",
|
||||
// "format-alt":
|
||||
"format-icons": [
|
||||
"", "", "", ""
|
||||
],
|
||||
// "rotate":
|
||||
"min-length": 2,
|
||||
"max-length": 2,
|
||||
// "align":
|
||||
// "justify":
|
||||
"on-click": "kitty -e ~/.config/waybar/scripts/network.sh",
|
||||
// "on-click-middle":
|
||||
"on-click-right": "nmcli radio wifi off && notify-send 'Wi-Fi Disabled' -i 'network-wireless-off' -r 1125",
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Gateway: {gwaddr}",
|
||||
"tooltip-format-ethernet": "Interface: {ifname}",
|
||||
"tooltip-format-wifi": "Network: {essid}\nIP Addr: {ipaddr}/{cidr}\nStrength: {signalStrength}%\nFrequency: {frequency} GHz",
|
||||
"tooltip-format-disconnected": "Wi-Fi Disconnected",
|
||||
"tooltip-format-disabled": "Wi-Fi Disabled"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
{
|
||||
"group/pulseaudio": {
|
||||
"orientation": "horizontal",
|
||||
"modules": [
|
||||
"pulseaudio#output",
|
||||
"pulseaudio#input"
|
||||
],
|
||||
"drawer": {
|
||||
// "transition-duration":
|
||||
"transition-left-to-right": false
|
||||
// "children-class":
|
||||
// "click-to-reveal":
|
||||
}
|
||||
},
|
||||
|
||||
/*-------------------
|
||||
output device
|
||||
-------------------*/
|
||||
|
||||
"pulseaudio#output": {
|
||||
"format": "{icon} {volume}%",
|
||||
// "format-bluetooth":
|
||||
"format-muted": "{icon} {volume}%",
|
||||
// "format-source":
|
||||
// "format-source-muted":
|
||||
"format-icons": {
|
||||
"default": [ "", "", "" ],
|
||||
"default-muted": "",
|
||||
"headphone": "",
|
||||
"headphone-muted": "",
|
||||
"headset": "",
|
||||
"headset-muted": ""
|
||||
},
|
||||
// "rotate":
|
||||
// "states":
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "scroll-step":
|
||||
"on-click": "~/.config/waybar/scripts/volume.sh output mute",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower",
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Output Device: {desc}"
|
||||
// "max-volume":
|
||||
// "ignored-sinks":
|
||||
// "reverse-scrolling":
|
||||
// "reverse-mouse-scrolling":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
},
|
||||
|
||||
/*----------------
|
||||
microphone
|
||||
----------------*/
|
||||
|
||||
"pulseaudio#input": {
|
||||
"format": "{format_source}",
|
||||
// "format-bluetooth":
|
||||
// "format-muted":
|
||||
"format-source": " {volume}%",
|
||||
"format-source-muted": " {volume}%",
|
||||
// "format-icons":
|
||||
// "rotate":
|
||||
// "states":
|
||||
"min-length": 7,
|
||||
"max-length": 7,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "scroll-step":
|
||||
"on-click": "~/.config/waybar/scripts/volume.sh input mute",
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower",
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Input Device: {desc}"
|
||||
// "max-volume":
|
||||
// "ignored-sinks":
|
||||
// "reverse-scrolling":
|
||||
// "reverse-mouse-scrolling":
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"temperature": {
|
||||
"thermal-zone": 0,
|
||||
// "hwmon-path":
|
||||
// "hwmon-path-abs":
|
||||
// "input-filename":
|
||||
// "warning-threshold":
|
||||
"critical-threshold": 90,
|
||||
"interval": 10,
|
||||
// "format-warning":
|
||||
"format-critical": " {temperatureC}°C",
|
||||
"format": "{icon} {temperatureC}°C",
|
||||
"format-icons": [
|
||||
"", "", ""
|
||||
],
|
||||
// "rotate":
|
||||
"min-length": 8,
|
||||
"max-length": 8,
|
||||
// "align":
|
||||
// "justify":
|
||||
// "on-click":
|
||||
// "on-click-middle":
|
||||
// "on-click-right":
|
||||
// "on-update":
|
||||
// "on-scroll-up":
|
||||
// "on-scroll-down":
|
||||
// "smooth-scrolling-threshold":
|
||||
// "tooltip":
|
||||
"tooltip-format": "Temp in Fahrenheit: {temperatureF}°F"
|
||||
// "menu":
|
||||
// "menu-file":
|
||||
// "menu-actions":
|
||||
// "expand":
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Adjust screen brightness and send a notification with the current level
|
||||
#
|
||||
# Requirements:
|
||||
# - brightnessctl
|
||||
# - notify-send (libnotify)
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: August 28, 2025
|
||||
# License: MIT
|
||||
|
||||
VALUE=1
|
||||
|
||||
print-usage() {
|
||||
local script=${0##*/}
|
||||
|
||||
cat <<- EOF
|
||||
USAGE: $script [OPTIONS]
|
||||
|
||||
Adjust screen brightness and send a notification with the current level
|
||||
|
||||
OPTIONS:
|
||||
up <value> Increase brightness by <value>
|
||||
down <value> Decrease brightness by <value>
|
||||
Default value: $VALUE
|
||||
|
||||
EXAMPLES:
|
||||
Increase brightness:
|
||||
$ $script up
|
||||
|
||||
Decrease brightness by 5:
|
||||
$ $script down 5
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
set-brightness() {
|
||||
local op
|
||||
case $action in
|
||||
'up') op='+' ;;
|
||||
'down') op='-' ;;
|
||||
esac
|
||||
|
||||
brightnessctl -n set "${value}%${op}" &> /dev/null
|
||||
|
||||
local level
|
||||
level=$(brightnessctl -m | awk -F ',' '{print $4}')
|
||||
|
||||
notify-send "Brightness: $level" -h int:value:"$level" -i 'contrast' -r 2825
|
||||
}
|
||||
|
||||
main() {
|
||||
action=$1
|
||||
value=${2:-$VALUE}
|
||||
|
||||
! ((value > 0)) && print-usage
|
||||
|
||||
case $action in
|
||||
'up' | 'down') set-brightness ;;
|
||||
*) print-usage ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
80
waybar/scripts/battery-level.sh
Executable file
80
waybar/scripts/battery-level.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Original script by Eric Murphy
|
||||
# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert
|
||||
#
|
||||
# Modified by Jesse Mirabel (@sejjy)
|
||||
# https://github.com/sejjy/mechabar
|
||||
|
||||
# This script sends a notification when the battery is full, low, or critical.
|
||||
# icon theme used: tela-circle-icon-theme-dracula
|
||||
#
|
||||
# (see the bottom of the script for more information)
|
||||
|
||||
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
|
||||
|
||||
# battery levels
|
||||
WARNING_LEVEL=20
|
||||
CRITICAL_LEVEL=10
|
||||
|
||||
# get the battery state and percentage using upower (waybar dependency)
|
||||
BAT_PATH=$(upower -e | grep BAT | head -n 1)
|
||||
BATTERY_STATE=$(upower -i "$BAT_PATH" | awk '/state:/ {print $2}')
|
||||
BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%')
|
||||
|
||||
# prevent multiple notifications
|
||||
FILE_FULL=/tmp/battery-full
|
||||
FILE_WARNING=/tmp/battery-warning
|
||||
FILE_CRITICAL=/tmp/battery-critical
|
||||
|
||||
# remove the files if the battery is no longer in that state
|
||||
if [ "$BATTERY_STATE" == "discharging" ]; then
|
||||
rm -f $FILE_FULL
|
||||
elif [ "$BATTERY_STATE" == "charging" ]; then
|
||||
rm -f "$FILE_WARNING" "$FILE_CRITICAL"
|
||||
fi
|
||||
|
||||
# if the battery is full and is plugged in
|
||||
if [ "$BATTERY_LEVEL" -eq 100 ] && [ "$BATTERY_STATE" == "fully-charged" ] && [ ! -f $FILE_FULL ]; then
|
||||
notify-send -a "state" "Battery Charged (${BATTERY_LEVEL}%)" "You might want to unplug your PC." -i "battery-full" -r 9991
|
||||
touch $FILE_FULL
|
||||
|
||||
# if the battery is low and is discharging
|
||||
elif [ "$BATTERY_LEVEL" -le $WARNING_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_WARNING ]; then
|
||||
notify-send -a "state" "Battery Low (${BATTERY_LEVEL}%)" "You might want to plug in your PC." -u critical -i "battery-caution" -r 9991 -h string:fgcolor:\#fab387 -h string:frcolor:\#fab387
|
||||
touch $FILE_WARNING
|
||||
|
||||
# if the battery is critical and is discharging
|
||||
elif [ "$BATTERY_LEVEL" -le $CRITICAL_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_CRITICAL ]; then
|
||||
notify-send -a "state" "Battery Critical (${BATTERY_LEVEL}%)" "Plug in your PC now." -u critical -i "battery-empty" -r 9991
|
||||
touch $FILE_CRITICAL
|
||||
fi
|
||||
|
||||
# systemd service
|
||||
# Add the following to ~/.config/systemd/user/battery-level.service:
|
||||
|
||||
# [Unit]
|
||||
# Description=Battery Level Checker
|
||||
# After=graphical.target
|
||||
#
|
||||
# [Service]
|
||||
# ExecStart=%h/.config/waybar/scripts/battery-level.sh
|
||||
# Type=oneshot
|
||||
|
||||
# systemd timer
|
||||
# Add the following to ~/.config/systemd/user/battery-level.timer:
|
||||
|
||||
# [Unit]
|
||||
# Description=Run Battery Level Checker
|
||||
#
|
||||
# [Timer]
|
||||
# OnBootSec=1min
|
||||
# OnUnitActiveSec=1min
|
||||
# Unit=battery-level.service
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=timers.target
|
||||
|
||||
# enable the timer by running the following commands:
|
||||
# systemctl --user daemon-reload
|
||||
# systemctl --user enable --now battery-level.timer
|
||||
50
waybar/scripts/battery-state.sh
Executable file
50
waybar/scripts/battery-state.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Original script by Eric Murphy
|
||||
# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert
|
||||
#
|
||||
# Modified by Jesse Mirabel (@sejjy)
|
||||
# https://github.com/sejjy/mechabar
|
||||
|
||||
# This script sends a notification when the battery is charging or discharging.
|
||||
# icon theme used: tela-circle-icon-theme-dracula
|
||||
#
|
||||
# (see the bottom of the script for more information)
|
||||
|
||||
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
|
||||
|
||||
# get the battery state from the udev rule
|
||||
BATTERY_STATE=$1
|
||||
|
||||
# get the battery percentage using upower (waybar dependency)
|
||||
BAT_PATH=$(upower -e | grep BAT | head -n 1)
|
||||
BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%')
|
||||
|
||||
# set the battery charging state and icon
|
||||
case "$BATTERY_STATE" in
|
||||
"charging")
|
||||
BATTERY_CHARGING="Charging"
|
||||
BATTERY_ICON="090-charging"
|
||||
;;
|
||||
"discharging")
|
||||
BATTERY_CHARGING="Disharging"
|
||||
BATTERY_ICON="090"
|
||||
;;
|
||||
esac
|
||||
|
||||
# send the notification
|
||||
notify-send -a "state" "Battery ${BATTERY_CHARGING} (${BATTERY_LEVEL}%)" -u normal -i "battery-${BATTERY_ICON}" -r 9991
|
||||
|
||||
# udev rule
|
||||
# Add the following to /etc/udev/rules.d/60-power.rules:
|
||||
|
||||
# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", ENV{DISPLAY}=":0", RUN+="/usr/bin/su <username> -c '$HOME/.config/waybar/scripts/battery-state.sh discharging'"
|
||||
# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", ENV{DISPLAY}=":0", RUN+="/usr/bin/su <username> -c '$HOME/.config/waybar/scripts/battery-state.sh charging'"
|
||||
|
||||
# the number 60 in the udev rule can be changed to any number between 0 and 99.
|
||||
# the lower the number, the higher the priority.
|
||||
#
|
||||
# $USER does not work, so you have to replace "<username>" with your username.
|
||||
|
||||
# reload udev rules by running the following command:
|
||||
# sudo udevadm control --reload-rules
|
||||
106
waybar/scripts/bluetooth-menu.sh
Executable file
106
waybar/scripts/bluetooth-menu.sh
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Author: Jesse Mirabel (@sejjy)
|
||||
# GitHub: https://github.com/sejjy/mechabar
|
||||
|
||||
# Rofi config
|
||||
config="$HOME/.config/rofi/bluetooth-menu.rasi"
|
||||
|
||||
# Rofi window override
|
||||
override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }"
|
||||
|
||||
get_device_icon() {
|
||||
local device_mac=$1
|
||||
device_info=$(bluetoothctl info "$device_mac")
|
||||
device_icon=$(echo "$device_info" | grep "Icon:" | awk '{print $2}')
|
||||
|
||||
case "$device_icon" in
|
||||
"audio-headphones" | "audio-headset") echo " " ;; # Headphones
|
||||
"video-display" | "computer") echo " " ;; # Monitor
|
||||
"audio-input-microphone") echo " " ;; # Microphone
|
||||
"input-keyboard") echo " " ;; # Keyboard
|
||||
"audio-speakers") echo " " ;; # Speakers
|
||||
"input-mouse") echo " " ;; # Mouse
|
||||
"phone") echo " " ;; # Phone
|
||||
*)
|
||||
echo " " # Default
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
while true; do
|
||||
# Get list of paired devices
|
||||
bluetooth_devices=$(bluetoothctl devices | while read -r line; do
|
||||
device_mac=$(echo "$line" | awk '{print $2}')
|
||||
device_name=$(echo "$line" | awk '{$1=$2=""; print substr($0, 3)}')
|
||||
icon=$(get_device_icon "$device_mac")
|
||||
echo "$icon $device_name"
|
||||
done)
|
||||
|
||||
options=$(
|
||||
echo " Scan for devices"
|
||||
echo " Disable Bluetooth"
|
||||
echo "$bluetooth_devices"
|
||||
)
|
||||
option=" Enable Bluetooth"
|
||||
|
||||
# Get Bluetooth status
|
||||
bluetooth_status=$(bluetoothctl show | grep "Powered:" | awk '{print $2}')
|
||||
|
||||
if [[ "$bluetooth_status" == "yes" ]]; then
|
||||
selected_option=$(echo -e "$options" | rofi -dmenu -i -selected-row 1 -config "${config}" -p " " || pkill -x rofi)
|
||||
else
|
||||
selected_option=$(echo -e "$option" | rofi -dmenu -i -selected-row 1 -config "${config}" -theme-str "${override_disabled}" -p " " || pkill -x rofi)
|
||||
fi
|
||||
|
||||
# Exit if no option is selected
|
||||
if [ -z "$selected_option" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Actions based on selected option
|
||||
case "$selected_option" in
|
||||
*"Enable Bluetooth")
|
||||
notify-send "Bluetooth Enabled" -i "package-installed-outdated"
|
||||
rfkill unblock bluetooth
|
||||
bluetoothctl power on
|
||||
sleep 1
|
||||
;;
|
||||
*"Disable Bluetooth")
|
||||
notify-send "Bluetooth Disabled" -i "package-broken"
|
||||
rfkill block bluetooth
|
||||
bluetoothctl power off
|
||||
exit
|
||||
;;
|
||||
*"Scan for devices")
|
||||
notify-send "Press '?' to show help." -i "package-installed-outdated"
|
||||
kitty --title ' Bluetooth TUI' bash -c "bluetui" # Launch bluetui
|
||||
;;
|
||||
*)
|
||||
# Extract device name
|
||||
device_name="${selected_option#* }"
|
||||
device_name="${device_name## }"
|
||||
|
||||
if [[ -n "$device_name" ]]; then
|
||||
# Get MAC address
|
||||
device_mac=$(bluetoothctl devices | grep "$device_name" | awk '{print $2}')
|
||||
|
||||
# Trust and pair device
|
||||
bluetoothctl trust "$device_mac" >/dev/null 2>&1
|
||||
bluetoothctl pair "$device_mac" >/dev/null 2>&1
|
||||
|
||||
# Connect to device
|
||||
bluetoothctl connect "$device_mac" &
|
||||
sleep 3
|
||||
connection_status=$(bluetoothctl info "$device_mac" | grep "Connected:" | awk '{print $2}')
|
||||
|
||||
if [[ "$connection_status" == "yes" ]]; then
|
||||
notify-send "Connected to \"$device_name\"." -i "package-installed-outdated"
|
||||
exit
|
||||
else
|
||||
notify-send "Failed to connect to \"$device_name\"." -i "package-broken"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -1,120 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Scan, select, pair, and connect to Bluetooth devices
|
||||
#
|
||||
# Requirements:
|
||||
# - bluetoothctl (bluez-utils)
|
||||
# - fzf
|
||||
# - notify-send (libnotify)
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: August 19, 2025
|
||||
# License: MIT
|
||||
|
||||
RED='\033[1;31m'
|
||||
RST='\033[0m'
|
||||
|
||||
TIMEOUT=10
|
||||
|
||||
get-device-list() {
|
||||
bluetoothctl --timeout $TIMEOUT scan on > /dev/null &
|
||||
|
||||
local i num
|
||||
for ((i = 1; i <= TIMEOUT; i++)); do
|
||||
printf '\rScanning for devices... (%d/%d)' $i $TIMEOUT
|
||||
printf '\n%bPress [q] to stop%b\n\n' "$RED" "$RST"
|
||||
|
||||
num=$(bluetoothctl devices | grep -c Device)
|
||||
|
||||
printf '\rDevices: %s' "$num"
|
||||
printf '\033[3A' # move cursor up 3 lines
|
||||
|
||||
read -rs -n 1 -t 1
|
||||
[[ $REPLY == [Qq] ]] && break
|
||||
done
|
||||
|
||||
printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST"
|
||||
|
||||
list=$(bluetoothctl devices | grep Device | cut -d ' ' -f 2-)
|
||||
|
||||
if [[ -z $list ]]; then
|
||||
notify-send 'Bluetooth' 'No devices found' -i 'package-broken'
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
select-device() {
|
||||
local header
|
||||
header=$(printf '%-17s %s' 'Address' 'Name')
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||
|
||||
local opts=(
|
||||
--border=sharp
|
||||
--border-label=' Bluetooth Devices '
|
||||
--ghost='Search'
|
||||
--header="$header"
|
||||
--height=~100%
|
||||
--highlight-line
|
||||
--info=inline-right
|
||||
--pointer=
|
||||
--reverse
|
||||
"${COLORS[@]}"
|
||||
)
|
||||
|
||||
address=$(fzf "${opts[@]}" <<< "$list" | awk '{print $1}')
|
||||
|
||||
[[ -z $address ]] && return 1
|
||||
|
||||
local connected
|
||||
connected=$(bluetoothctl info "$address" | grep Connected |
|
||||
awk '{print $2}')
|
||||
|
||||
if [[ $connected == 'yes' ]]; then
|
||||
notify-send 'Bluetooth' 'Already connected to this device' \
|
||||
-i 'package-install'
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pair-and-connect() {
|
||||
local paired
|
||||
paired=$(bluetoothctl info "$address" | grep Paired | awk '{print $2}')
|
||||
|
||||
if [[ $paired == 'no' ]]; then
|
||||
printf 'Pairing...'
|
||||
|
||||
if ! timeout $TIMEOUT bluetoothctl pair "$address" > /dev/null; then
|
||||
notify-send 'Bluetooth' 'Failed to pair' -i 'package-purge'
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
printf '\nConnecting...'
|
||||
|
||||
if timeout $TIMEOUT bluetoothctl connect "$address" > /dev/null; then
|
||||
notify-send 'Bluetooth' 'Successfully connected' -i 'package-install'
|
||||
else
|
||||
notify-send 'Bluetooth' 'Failed to connect' -i 'package-purge'
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
local status
|
||||
status=$(bluetoothctl show | grep PowerState | awk '{print $2}')
|
||||
|
||||
if [[ $status == 'off' ]]; then
|
||||
bluetoothctl power on > /dev/null
|
||||
notify-send 'Bluetooth On' -i 'network-bluetooth-activated' -r 1925
|
||||
fi
|
||||
|
||||
tput civis # make cursor invisible
|
||||
get-device-list || exit 1
|
||||
tput cnorm # make cursor visible
|
||||
|
||||
select-device || exit 1
|
||||
pair-and-connect || exit 1
|
||||
}
|
||||
|
||||
main
|
||||
92
waybar/scripts/brightness-control.sh
Executable file
92
waybar/scripts/brightness-control.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Print error message for invalid arguments
|
||||
print_error() {
|
||||
cat <<"EOF"
|
||||
Usage: ./brightnesscontrol.sh <action>
|
||||
Valid actions are:
|
||||
i -- <i>ncrease brightness [+2%]
|
||||
d -- <d>ecrease brightness [-2%]
|
||||
EOF
|
||||
}
|
||||
|
||||
# Send a notification with brightness info
|
||||
send_notification() {
|
||||
brightness=$(brightnessctl info | grep -oP "(?<=\()\d+(?=%)")
|
||||
notify-send -a "state" -r 91190 -i "gpm-brightness-lcd" -h int:value:"$brightness" "Brightness: ${brightness}%" -u low
|
||||
}
|
||||
|
||||
# Get the current brightness percentage and device name
|
||||
get_brightness() {
|
||||
brightness=$(brightnessctl -m | grep -o '[0-9]\+%' | head -c-2)
|
||||
device=$(brightnessctl -m | head -n 1 | awk -F',' '{print $1}' | sed 's/_/ /g; s/\<./\U&/g') # Get device name
|
||||
current_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $3}') # Get current brightness
|
||||
max_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $5}') # Get max brightness
|
||||
}
|
||||
get_brightness
|
||||
|
||||
# Handle options
|
||||
while getopts o: opt; do
|
||||
case "${opt}" in
|
||||
o)
|
||||
case $OPTARG in
|
||||
i) # Increase brightness
|
||||
if [[ $brightness -lt 10 ]]; then
|
||||
brightnessctl set +1%
|
||||
else
|
||||
brightnessctl set +2%
|
||||
fi
|
||||
send_notification
|
||||
;;
|
||||
d) # Decrease brightness
|
||||
if [[ $brightness -le 1 ]]; then
|
||||
brightnessctl set 1%
|
||||
elif [[ $brightness -le 10 ]]; then
|
||||
brightnessctl set 1%-
|
||||
else
|
||||
brightnessctl set 2%-
|
||||
fi
|
||||
send_notification
|
||||
;;
|
||||
*)
|
||||
print_error
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
print_error
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Determine the icon based on brightness level
|
||||
get_icon() {
|
||||
if ((brightness <= 5)); then
|
||||
icon=""
|
||||
elif ((brightness <= 15)); then
|
||||
icon=""
|
||||
elif ((brightness <= 30)); then
|
||||
icon=""
|
||||
elif ((brightness <= 45)); then
|
||||
icon=""
|
||||
elif ((brightness <= 55)); then
|
||||
icon=""
|
||||
elif ((brightness <= 65)); then
|
||||
icon=""
|
||||
elif ((brightness <= 80)); then
|
||||
icon=""
|
||||
elif ((brightness <= 95)); then
|
||||
icon=""
|
||||
else
|
||||
icon=""
|
||||
fi
|
||||
}
|
||||
|
||||
# Backlight module and tooltip
|
||||
get_icon
|
||||
module="${icon} ${brightness}%"
|
||||
|
||||
tooltip="Device Name: ${device}"
|
||||
tooltip+="\nBrightness: ${current_brightness} / ${max_brightness}"
|
||||
|
||||
echo "{\"text\": \"${module}\", \"tooltip\": \"${tooltip}\"}"
|
||||
67
waybar/scripts/cpu-temp.sh
Executable file
67
waybar/scripts/cpu-temp.sh
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
model=$(awk -F ': ' '/model name/{print $2}' /proc/cpuinfo | head -n 1 | sed 's/@.*//; s/ *\((R)\|(TM)\)//g; s/^[ \t]*//; s/[ \t]*$//')
|
||||
|
||||
# get CPU clock speeds
|
||||
get_cpu_frequency() {
|
||||
freqlist=$(awk '/cpu MHz/ {print $4}' /proc/cpuinfo)
|
||||
maxfreq=$(sed 's/...$//' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
|
||||
if [ -z "$freqlist" ] || [ -z "$maxfreq" ]; then
|
||||
echo "--"
|
||||
return
|
||||
fi
|
||||
average_freq=$(echo "$freqlist" | tr ' ' '\n' | awk "{sum+=\$1} END {printf \"%.0f/%s MHz\", sum/NR, $maxfreq}")
|
||||
echo "$average_freq"
|
||||
}
|
||||
|
||||
# get CPU temp
|
||||
get_cpu_temperature() {
|
||||
temp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}')
|
||||
if [[ -z "$temp" ]]; then
|
||||
temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+°C')
|
||||
fi
|
||||
if [[ -z "$temp" ]]; then
|
||||
temp="--"
|
||||
temp_f="--"
|
||||
else
|
||||
temp=${temp%.*}
|
||||
temp_f=$(awk "BEGIN {printf \"%.1f\", ($temp * 9 / 5) + 32}")
|
||||
fi
|
||||
# Celsius and Fahrenheit
|
||||
echo "${temp:---} ${temp_f:---}"
|
||||
}
|
||||
|
||||
get_temperature_icon() {
|
||||
temp_value=$1
|
||||
if [ "$temp_value" = "--" ]; then
|
||||
icon="" # none
|
||||
elif [ "$temp_value" -ge 80 ]; then
|
||||
icon="" # high
|
||||
elif [ "$temp_value" -ge 70 ]; then
|
||||
icon="" # medium
|
||||
elif [ "$temp_value" -ge 60 ]; then
|
||||
icon="" # normal
|
||||
else
|
||||
icon="" # low
|
||||
fi
|
||||
echo "$icon"
|
||||
}
|
||||
|
||||
cpu_frequency=$(get_cpu_frequency)
|
||||
read -r temp_info < <(get_cpu_temperature)
|
||||
temp=$(echo "$temp_info" | awk '{print $1}')
|
||||
temp_f=$(echo "$temp_info" | awk '{print $2}')
|
||||
thermo_icon=$(get_temperature_icon "$temp")
|
||||
|
||||
# high temp warning
|
||||
if [ "$temp" == "--" ] || [ "$temp" -ge 80 ]; then
|
||||
text_output="<span color='#f38ba8'>${thermo_icon} ${temp}°C</span>"
|
||||
else
|
||||
text_output="${thermo_icon} ${temp}°C"
|
||||
fi
|
||||
|
||||
tooltip=":: ${model}\n"
|
||||
tooltip+="Clock Speed: ${cpu_frequency}\nTemperature: ${temp_f}°F"
|
||||
|
||||
# module and tooltip
|
||||
echo "{\"text\": \"$text_output\", \"tooltip\": \"$tooltip\"}"
|
||||
24
waybar/scripts/current-theme.sh
Executable file
24
waybar/scripts/current-theme.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme"
|
||||
|
||||
# Get the current theme
|
||||
current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "")
|
||||
current_theme_name="Default"
|
||||
|
||||
# Get the theme name
|
||||
if [[ -n "$current_theme" ]]; then
|
||||
current_theme_name=$(basename "$current_theme" .css)
|
||||
|
||||
# Convert "theme-name" to "Theme Name"
|
||||
formatted_theme_name="${current_theme_name//-/ }"
|
||||
formatted_theme_name=$(echo "$formatted_theme_name" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)}1')
|
||||
else
|
||||
formatted_theme_name="Default"
|
||||
fi
|
||||
|
||||
tooltip="Theme: $formatted_theme_name"
|
||||
tooltip+="\nStyle: Classic" # hard-coded for now
|
||||
|
||||
# Tooltip
|
||||
echo "{\"tooltip\": \"$tooltip\"}"
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# NOTE:
|
||||
# The names, maps, and COLORS arrays are all parallel:
|
||||
# - names[i]: the color name as defined in theme.css
|
||||
# - maps[i]: variable to store the hex value
|
||||
# - COLORS: color config passed to fzf
|
||||
#
|
||||
# Add themes by defining the names array in def-colors().
|
||||
|
||||
FILE="$XDG_CONFIG_HOME/waybar/theme.css"
|
||||
|
||||
def-colors() {
|
||||
local theme
|
||||
theme=$(sed 1q "$FILE")
|
||||
|
||||
declare -ga names
|
||||
|
||||
# Add themes here:
|
||||
if [[ $theme == *"catppuccin"* ]]; then
|
||||
names=(
|
||||
'surface0' 'base' 'rosewater'
|
||||
'red' 'text' 'red'
|
||||
'mauve' 'rosewater' 'lavender'
|
||||
'text' 'mauve' 'red'
|
||||
'surface1' 'overlay0' 'text'
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
get-hex() {
|
||||
local defs
|
||||
defs=$(sed -n '3,28p' "$FILE")
|
||||
|
||||
local n hex
|
||||
declare -gA colors
|
||||
|
||||
for n in "${names[@]}"; do
|
||||
read -r _ _ hex < <(grep " $n " <<< "$defs")
|
||||
hex=${hex%;}
|
||||
|
||||
colors[$n]=$hex
|
||||
done
|
||||
}
|
||||
|
||||
map-colors() {
|
||||
local -a maps=(
|
||||
'_cur_bg' '_bg' '_spinner'
|
||||
'_hl' '_fg' '_header'
|
||||
'_info' '_pointer' '_marker'
|
||||
'_cur_fg' '_prompt' '_cur_hl'
|
||||
'_sel_bg' '_border' '_label'
|
||||
)
|
||||
|
||||
local n
|
||||
local i=0
|
||||
|
||||
for n in "${names[@]}"; do
|
||||
declare -g "${maps[i]}"="${colors[$n]}"
|
||||
((i++))
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
def-colors
|
||||
get-hex
|
||||
map-colors
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
# These variables are defined dynamically
|
||||
declare -ga COLORS=(
|
||||
"--color= bg+:$_cur_bg, bg:$_bg, spinner:$_spinner"
|
||||
"--color= hl:$_hl, fg:$_fg, header:$_header"
|
||||
"--color= info:$_info, pointer:$_pointer, marker:$_marker"
|
||||
"--color= fg+:$_cur_fg, prompt:$_prompt, hl+:$_cur_hl"
|
||||
"--color=selected-bg:$_sel_bg, border:$_border, label:$_label"
|
||||
)
|
||||
|
||||
export COLORS
|
||||
}
|
||||
|
||||
main
|
||||
@@ -1,99 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Scan, select, and connect to Wi-Fi networks
|
||||
#
|
||||
# Requirements:
|
||||
# - nmcli (networkmanager)
|
||||
# - fzf
|
||||
# - notify-send (libnotify)
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: August 11, 2025
|
||||
# License: MIT
|
||||
|
||||
RED='\033[1;31m'
|
||||
RST='\033[0m'
|
||||
|
||||
TIMEOUT=5
|
||||
|
||||
get-network-list() {
|
||||
nmcli device wifi rescan 2> /dev/null
|
||||
|
||||
local i
|
||||
for ((i = 1; i <= TIMEOUT; i++)); do
|
||||
printf '\rScanning for networks... (%d/%d)' $i $TIMEOUT
|
||||
printf '\033[1A' # move cursor up 1 line
|
||||
|
||||
list=$(timeout 1 nmcli device wifi list)
|
||||
networks=$(tail -n +2 <<< "$list" | awk '$2 != "--"')
|
||||
|
||||
[[ -n $networks ]] && break
|
||||
done
|
||||
|
||||
printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST"
|
||||
|
||||
if [[ -z $networks ]]; then
|
||||
notify-send 'Wi-Fi' 'No networks found' -i 'package-broken'
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
select-network() {
|
||||
local header
|
||||
header=$(head -n 1 <<< "$list")
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||
|
||||
local opts=(
|
||||
--border=sharp
|
||||
--border-label=' Wi-Fi Networks '
|
||||
--ghost='Search'
|
||||
--header="$header"
|
||||
--height=~100%
|
||||
--highlight-line
|
||||
--info=inline-right
|
||||
--pointer=
|
||||
--reverse
|
||||
"${COLORS[@]}"
|
||||
)
|
||||
|
||||
bssid=$(fzf "${opts[@]}" <<< "$networks" | awk '{print $1}')
|
||||
|
||||
if [[ -z $bssid ]]; then
|
||||
return 1
|
||||
elif [[ $bssid == '*' ]]; then
|
||||
notify-send 'Wi-Fi' 'Already connected to this network' \
|
||||
-i 'package-install'
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
connect-to-network() {
|
||||
printf 'Connecting...\n'
|
||||
|
||||
if nmcli --ask device wifi connect "$bssid"; then
|
||||
notify-send 'Wi-Fi' 'Successfully connected' -i 'package-install'
|
||||
else
|
||||
notify-send 'Wi-Fi' 'Failed to connect' -i 'package-purge'
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
local status
|
||||
status=$(nmcli radio wifi)
|
||||
|
||||
if [[ $status == 'disabled' ]]; then
|
||||
nmcli radio wifi on
|
||||
notify-send 'Wi-Fi Enabled' -i 'network-wireless-on' -r 1125
|
||||
fi
|
||||
|
||||
tput civis # make cursor invisible
|
||||
get-network-list || exit 1
|
||||
tput cnorm # make cursor visible
|
||||
|
||||
select-network || exit 1
|
||||
connect-to-network
|
||||
}
|
||||
|
||||
main
|
||||
@@ -1,49 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Display a power menu to perform system actions
|
||||
#
|
||||
# Requirements:
|
||||
# - fzf
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: August 19, 2025
|
||||
# License: MIT
|
||||
|
||||
LIST=(
|
||||
'Lock'
|
||||
'Shutdown'
|
||||
'Reboot'
|
||||
'Logout'
|
||||
'Hibernate'
|
||||
'Suspend'
|
||||
)
|
||||
config="$HOME/.config/rofi/power-menu.rasi"
|
||||
|
||||
main() {
|
||||
# shellcheck disable=SC1090
|
||||
. ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null
|
||||
actions=$(echo -e " Lock\n Shutdown\n Reboot\n Suspend\n Hibernate\n Logout")
|
||||
|
||||
local opts=(
|
||||
--border=sharp
|
||||
--border-label=' Power Menu '
|
||||
--height=~100%
|
||||
--highlight-line
|
||||
--no-input
|
||||
--pointer=
|
||||
--reverse
|
||||
"${COLORS[@]}"
|
||||
)
|
||||
# Display logout menu
|
||||
selected_option=$(echo -e "$actions" | rofi -dmenu -i -config "${config}" || pkill -x rofi)
|
||||
|
||||
local selected
|
||||
selected=$(printf '%s\n' "${LIST[@]}" | fzf "${opts[@]}")
|
||||
|
||||
case $selected in
|
||||
'Lock') loginctl lock-session ;;
|
||||
'Shutdown') systemctl poweroff ;;
|
||||
'Reboot') systemctl reboot ;;
|
||||
'Logout') loginctl terminate-session "$XDG_SESSION_ID" ;;
|
||||
'Hibernate') systemctl hibernate ;;
|
||||
'Suspend') systemctl suspend ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main
|
||||
# Perform actions based on the selected option
|
||||
case "$selected_option" in
|
||||
*Lock)
|
||||
loginctl lock-session
|
||||
;;
|
||||
*Shutdown)
|
||||
systemctl poweroff
|
||||
;;
|
||||
*Reboot)
|
||||
systemctl reboot
|
||||
;;
|
||||
*Suspend)
|
||||
systemctl suspend
|
||||
;;
|
||||
*Hibernate)
|
||||
systemctl hibernate
|
||||
;;
|
||||
*Logout)
|
||||
loginctl kill-session "$XDG_SESSION_ID"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,82 +1,107 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Check for available updates and optionally upgrade packages on Arch Linux.
|
||||
#
|
||||
# Requirements:
|
||||
# - checkupdates (pacman-contrib)
|
||||
# - notify-send (libnotify)
|
||||
# - optional: an AUR helper (aura, paru, pikaur, trizen, yay)
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: August 16, 2025
|
||||
# License: MIT
|
||||
# Check release
|
||||
if [ ! -f /etc/arch-release ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
GRN='\033[1;32m'
|
||||
BLU='\033[1;34m'
|
||||
RST='\033[0m'
|
||||
|
||||
TIMEOUT=5
|
||||
|
||||
check-updates() {
|
||||
repo=$(timeout $TIMEOUT checkupdates 2> /dev/null | wc -l)
|
||||
|
||||
if [[ -n $helper ]]; then
|
||||
aur=$(timeout $TIMEOUT "$helper" -Quaq 2> /dev/null | wc -l)
|
||||
fi
|
||||
pkg_installed() {
|
||||
local pkg=$1
|
||||
if pacman -Qi "${pkg}" &>/dev/null; then
|
||||
return 0
|
||||
elif command -v "${pkg}" &>/dev/null; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
update-packages() {
|
||||
printf '\n%bUpdating pacman packages...%b\n' "$BLU" "$RST"
|
||||
sudo pacman -Syu
|
||||
|
||||
printf '\n%bUpdating AUR packages...%b\n' "$BLU" "$RST"
|
||||
"$helper" -Syu
|
||||
|
||||
# use signal to update the module
|
||||
pkill -RTMIN+1 waybar
|
||||
|
||||
notify-send 'Update Complete' -i 'package-install'
|
||||
printf '\n%bUpdate Complete!%b\n' "$GRN" "$RST"
|
||||
read -rs -n 1 -p 'Press any key to exit...'
|
||||
get_aur_helper() {
|
||||
if command -v yay &>/dev/null; then
|
||||
aur_helper="yay"
|
||||
elif command -v paru &>/dev/null; then
|
||||
aur_helper="paru"
|
||||
else
|
||||
aur_helper=""
|
||||
fi
|
||||
}
|
||||
|
||||
display-module() {
|
||||
local tooltip="Official: $repo"
|
||||
get_aur_helper
|
||||
|
||||
if [[ -n $helper ]]; then
|
||||
tooltip+="\nAUR($helper): $aur"
|
||||
fi
|
||||
# Trigger upgrade
|
||||
if [ "$1" == "up" ]; then
|
||||
trap 'pkill -RTMIN+20 waybar' EXIT
|
||||
command="
|
||||
echo 'Starting system update...'
|
||||
$0 upgrade
|
||||
if [ -n '$aur_helper' ]; then
|
||||
echo 'Running AUR update with $aur_helper...'
|
||||
$aur_helper -Syu
|
||||
else
|
||||
echo 'Running official repository update...'
|
||||
sudo pacman -Syu
|
||||
fi
|
||||
if command -v flatpak &>/dev/null; then
|
||||
echo 'Running Flatpak update...'
|
||||
flatpak update -y
|
||||
fi
|
||||
echo ''
|
||||
echo 'Update complete! Press Enter to close...'
|
||||
read -r
|
||||
"
|
||||
ghostty -e bash -c "${command}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
local total=$((repo + aur))
|
||||
# Check for official repository updates with timeout
|
||||
official_updates=$(
|
||||
(timeout 10 bash -c 'while pgrep -x checkupdates >/dev/null; do sleep 1; done') 2>/dev/null
|
||||
checkupdates 2>/dev/null | wc -l
|
||||
)
|
||||
official_updates=$((official_updates + 0))
|
||||
|
||||
if ((total == 0)); then
|
||||
echo "{ \"text\": \"\", \"tooltip\": \"No updates available\" }"
|
||||
else
|
||||
echo "{ \"text\": \"\", \"tooltip\": \"$tooltip\" }"
|
||||
fi
|
||||
}
|
||||
# Check for AUR updates with timeout
|
||||
if [ -n "$aur_helper" ]; then
|
||||
aur_updates=$(timeout 10 $aur_helper -Qua 2>/dev/null | wc -l)
|
||||
aur_updates=$((aur_updates + 0))
|
||||
else
|
||||
aur_updates=0
|
||||
fi
|
||||
|
||||
main() {
|
||||
local arg=$1
|
||||
local helpers=(aura paru pikaur trizen yay)
|
||||
local bin
|
||||
# Check for Flatpak updates with timeout
|
||||
if pkg_installed flatpak; then
|
||||
flatpak_updates=$(timeout 10 flatpak remote-ls --updates 2>/dev/null | wc -l)
|
||||
flatpak_updates=$((flatpak_updates + 0))
|
||||
else
|
||||
flatpak_updates=0
|
||||
fi
|
||||
|
||||
bin=$(command -v "${helpers[@]}" | head -n 1)
|
||||
helper=${bin##*/}
|
||||
repo=0
|
||||
aur=0
|
||||
# Calculate total available updates
|
||||
total_updates=$((official_updates + aur_updates + flatpak_updates))
|
||||
|
||||
case $arg in
|
||||
'module')
|
||||
check-updates
|
||||
display-module
|
||||
;;
|
||||
*)
|
||||
printf '%bChecking for updates...%b' "$BLU" "$RST"
|
||||
check-updates
|
||||
update-packages
|
||||
;;
|
||||
esac
|
||||
}
|
||||
# Handle upgrade info display
|
||||
if [ "${1}" == "upgrade" ]; then
|
||||
if [ "$aur_helper" == "yay" ]; then
|
||||
printf "Official: %s\nAUR ($aur_helper): %s\nFlatpak: %s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates"
|
||||
elif [ "$aur_helper" == "paru" ]; then
|
||||
printf "Official: %s\nAUR ($aur_helper): %s\nFlatpak: %s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates"
|
||||
else
|
||||
printf "Official: %s\nFlatpak: %s\n\n" "$official_updates" "$flatpak_updates"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
main "$@"
|
||||
# Create tooltip text
|
||||
if [ "$aur_helper" == "yay" ]; then
|
||||
tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates"
|
||||
elif [ "$aur_helper" == "paru" ]; then
|
||||
tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates"
|
||||
else
|
||||
tooltip="Official: $official_updates\nFlatpak: $flatpak_updates"
|
||||
fi
|
||||
|
||||
# Output compact JSON for Waybar
|
||||
if [ $total_updates -eq 0 ]; then
|
||||
echo '{"text":"","tooltip":"Packages are up to date"}'
|
||||
else
|
||||
printf '{"text":" %s","tooltip":"%s"}\n' "$total_updates" "$tooltip"
|
||||
fi
|
||||
|
||||
54
waybar/scripts/theme-switcher.sh
Executable file
54
waybar/scripts/theme-switcher.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
WAYBAR_CSS_DIR="$HOME/.config/waybar/themes/css"
|
||||
WAYBAR_CSS_FILE="$HOME/.config/waybar/theme.css"
|
||||
WAYBAR_JSONC_DIR="$HOME/.config/waybar/themes/jsonc"
|
||||
WAYBAR_JSONC_FILE="$HOME/.config/waybar/config.jsonc"
|
||||
ROFI_THEMES_DIR="$HOME/.config/rofi/themes"
|
||||
ROFI_THEME_FILE="$HOME/.config/rofi/theme.rasi"
|
||||
CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme"
|
||||
|
||||
for dir in "$WAYBAR_CSS_DIR" "$WAYBAR_JSONC_DIR" "$ROFI_THEMES_DIR"; do
|
||||
[[ ! -d "$dir" ]] && echo "Error: $dir not found" && exit 1
|
||||
done
|
||||
|
||||
# Get all themes
|
||||
waybar_css=("$WAYBAR_CSS_DIR"/*.css)
|
||||
waybar_jsonc=("$WAYBAR_JSONC_DIR"/*.jsonc)
|
||||
rofi_themes=("$ROFI_THEMES_DIR"/*.rasi)
|
||||
|
||||
if [[ ${#waybar_css[@]} -eq 0 || ${#waybar_jsonc[@]} -eq 0 || ${#rofi_themes[@]} -eq 0 ]]; then
|
||||
echo "Error: No themes found in one of the directories"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the current theme
|
||||
current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "")
|
||||
|
||||
# Find the index of the current theme
|
||||
next_theme_index=0
|
||||
for i in "${!waybar_css[@]}"; do
|
||||
[[ "${waybar_css[$i]}" == "$current_theme" ]] && next_theme_index=$(((i + 1) % ${#waybar_css[@]})) && break
|
||||
done
|
||||
|
||||
# Get the new theme
|
||||
new_waybar_css="${waybar_css[$next_theme_index]}"
|
||||
new_waybar_jsonc="${waybar_jsonc[$next_theme_index]}"
|
||||
new_rofi_theme="${rofi_themes[$next_theme_index]}"
|
||||
|
||||
# Save the new theme
|
||||
echo "$new_waybar_css" >"$CURRENT_THEME_FILE"
|
||||
|
||||
declare -A theme_files=(
|
||||
["$new_waybar_css"]="$WAYBAR_CSS_FILE"
|
||||
["$new_waybar_jsonc"]="$WAYBAR_JSONC_FILE"
|
||||
["$new_rofi_theme"]="$ROFI_THEME_FILE"
|
||||
)
|
||||
|
||||
for src in "${!theme_files[@]}"; do
|
||||
cp "$src" "${theme_files[$src]}"
|
||||
done
|
||||
|
||||
# Restart Waybar to apply changes
|
||||
killall waybar || true
|
||||
nohup waybar --config "$HOME/.config/waybar/config.jsonc" --style "$HOME/.config/waybar/style.css" >/dev/null 2>&1 &
|
||||
123
waybar/scripts/volume-control.sh
Executable file
123
waybar/scripts/volume-control.sh
Executable file
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Define functions
|
||||
print_error() {
|
||||
cat <<"EOF"
|
||||
Usage: ./volumecontrol.sh -[device] <actions>
|
||||
...valid devices are...
|
||||
i -- input device
|
||||
o -- output device
|
||||
p -- player application
|
||||
...valid actions are...
|
||||
i -- increase volume [+2]
|
||||
d -- decrease volume [-2]
|
||||
m -- mute [x]
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
icon() {
|
||||
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
|
||||
|
||||
if [ "$mute" = "yes" ] || [ "$vol" -eq 0 ]; then
|
||||
icon="volume-level-muted"
|
||||
elif [ "$vol" -lt 33 ]; then
|
||||
icon="volume-level-low"
|
||||
elif [ "$vol" -lt 66 ]; then
|
||||
icon="volume-level-medium"
|
||||
else
|
||||
icon="volume-level-high"
|
||||
fi
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
icon
|
||||
notify-send -a "state" -r 91190 -i "$icon" -h int:value:"$vol" "Volume: ${vol}%" -u low
|
||||
}
|
||||
|
||||
notify_mute() {
|
||||
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
|
||||
if [ "$mute" = "yes" ]; then
|
||||
notify-send -a "state" -r 91190 -i "volume-level-muted" "Volume: Muted" -u low
|
||||
else
|
||||
icon
|
||||
notify-send -a "state" -r 91190 -i "$icon" "Volume: Unmuted" -u low
|
||||
fi
|
||||
}
|
||||
|
||||
action_volume() {
|
||||
case "${1}" in
|
||||
i)
|
||||
# Increase volume if below 100
|
||||
current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||
if [ "$current_vol" -lt 100 ]; then
|
||||
new_vol=$((current_vol + 2))
|
||||
[ "$new_vol" -gt 100 ] && new_vol=100
|
||||
pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%"
|
||||
fi
|
||||
;;
|
||||
d)
|
||||
# Decrease volume if above 0
|
||||
current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||
new_vol=$((current_vol - 2))
|
||||
[ "$new_vol" -lt 0 ] && new_vol=0
|
||||
pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
select_output() {
|
||||
if [ "$@" ]; then
|
||||
desc="$*"
|
||||
device=$(pactl list sinks | grep -C2 -F "Description: $desc" | grep Name | cut -d: -f2 | xargs)
|
||||
if pactl set-default-sink "$device"; then
|
||||
notify-send -r 91190 "Activated: $desc"
|
||||
else
|
||||
notify-send -r 91190 "Error activating $desc"
|
||||
fi
|
||||
else
|
||||
pactl list sinks | grep -ie "Description:" | awk -F ': ' '{print $2}' | sort
|
||||
fi
|
||||
}
|
||||
|
||||
# Evaluate device option
|
||||
while getopts iops: DeviceOpt; do
|
||||
case "${DeviceOpt}" in
|
||||
i)
|
||||
nsink=$(pactl list sources short | awk '{print $2}')
|
||||
[ -z "${nsink}" ] && echo "ERROR: Input device not found..." && exit 0
|
||||
srce="--default-source"
|
||||
;;
|
||||
o)
|
||||
nsink=$(pactl list sinks short | awk '{print $2}')
|
||||
[ -z "${nsink}" ] && echo "ERROR: Output device not found..." && exit 0
|
||||
srce=""
|
||||
;;
|
||||
p)
|
||||
nsink=$(playerctl --list-all | grep -w "${OPTARG}")
|
||||
[ -z "${nsink}" ] && echo "ERROR: Player ${OPTARG} not active..." && exit 0
|
||||
# shellcheck disable=SC2034
|
||||
srce="${nsink}"
|
||||
;;
|
||||
s)
|
||||
# Select an output device
|
||||
select_output "$@"
|
||||
exit
|
||||
;;
|
||||
*) print_error ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Set default variables
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
# Execute action
|
||||
case "${1}" in
|
||||
i) action_volume i ;;
|
||||
d) action_volume d ;;
|
||||
m) pactl set-sink-mute @DEFAULT_SINK@ toggle && notify_mute && exit 0 ;;
|
||||
*) print_error ;;
|
||||
esac
|
||||
|
||||
send_notification
|
||||
@@ -1,159 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Adjust default device volume and send a notification with the current level
|
||||
#
|
||||
# Requirements:
|
||||
# - pactl (libpulse)
|
||||
# - notify-send (libnotify)
|
||||
#
|
||||
# Author: Jesse Mirabel <sejjymvm@gmail.com>
|
||||
# Created: September 07, 2025
|
||||
# License: MIT
|
||||
|
||||
VALUE=1
|
||||
MIN=0
|
||||
MAX=100
|
||||
ID=2425
|
||||
|
||||
print-usage() {
|
||||
local script=${0##*/}
|
||||
|
||||
cat <<- EOF
|
||||
USAGE: $script [OPTIONS]
|
||||
|
||||
Adjust default device volume and send a notification with the current level
|
||||
|
||||
OPTIONS:
|
||||
input Set device as '@DEFAULT_SOURCE@'
|
||||
output Set device as '@DEFAULT_SINK@'
|
||||
|
||||
mute Toggle device mute
|
||||
|
||||
raise <value> Raise volume by <value>
|
||||
lower <value> Lower volume by <value>
|
||||
Default value: $VALUE
|
||||
|
||||
EXAMPLES:
|
||||
Toggle microphone mute:
|
||||
$ $script input mute
|
||||
|
||||
Raise speaker volume:
|
||||
$ $script output raise
|
||||
|
||||
Lower speaker volume by 5:
|
||||
$ $script output lower 5
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
check-muted() {
|
||||
local muted
|
||||
muted=$(pactl "get-$dev_mute" "$dev" | awk '{print $2}')
|
||||
|
||||
local state
|
||||
case $muted in
|
||||
'yes') state='Muted' ;;
|
||||
'no') state='Unmuted' ;;
|
||||
esac
|
||||
|
||||
echo "$state"
|
||||
}
|
||||
|
||||
get-volume() {
|
||||
local vol
|
||||
vol=$(pactl "get-$dev_vol" "$dev" | awk '{print $5}' | tr -d '%')
|
||||
|
||||
echo "$vol"
|
||||
}
|
||||
|
||||
get-icon() {
|
||||
local state vol
|
||||
state=$(check-muted)
|
||||
vol=$(get-volume)
|
||||
|
||||
local icon
|
||||
local new_vol=${1:-$vol}
|
||||
|
||||
if [[ $state == 'Muted' ]]; then
|
||||
icon="$dev_icon-muted"
|
||||
else
|
||||
if ((new_vol < ((MAX * 33) / 100))); then
|
||||
icon="$dev_icon-low"
|
||||
elif ((new_vol < ((MAX * 66) / 100))); then
|
||||
icon="$dev_icon-medium"
|
||||
else
|
||||
icon="$dev_icon-high"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$icon"
|
||||
}
|
||||
|
||||
toggle-mute() {
|
||||
pactl "set-$dev_mute" "$dev" toggle
|
||||
|
||||
local state icon
|
||||
state=$(check-muted)
|
||||
icon=$(get-icon)
|
||||
|
||||
notify-send "$title: $state" -i "$icon" -r $ID
|
||||
}
|
||||
|
||||
set-volume() {
|
||||
local vol
|
||||
vol=$(get-volume)
|
||||
|
||||
local new_vol
|
||||
case $action in
|
||||
'raise')
|
||||
new_vol=$((vol + value))
|
||||
((new_vol > MAX)) && new_vol=$MAX
|
||||
;;
|
||||
'lower')
|
||||
new_vol=$((vol - value))
|
||||
((new_vol < MIN)) && new_vol=$MIN
|
||||
;;
|
||||
esac
|
||||
|
||||
pactl "set-$dev_vol" "$dev" "${new_vol}%"
|
||||
|
||||
local icon
|
||||
icon=$(get-icon "$new_vol")
|
||||
|
||||
notify-send "$title: ${new_vol}%" -h int:value:$new_vol -i "$icon" -r $ID
|
||||
}
|
||||
|
||||
main() {
|
||||
device=$1
|
||||
action=$2
|
||||
value=${3:-$VALUE}
|
||||
|
||||
! ((value > 0)) && print-usage
|
||||
|
||||
case $device in
|
||||
'input')
|
||||
dev='@DEFAULT_SOURCE@'
|
||||
dev_mute='source-mute'
|
||||
dev_vol='source-volume'
|
||||
dev_icon='mic-volume'
|
||||
title='Microphone'
|
||||
;;
|
||||
'output')
|
||||
dev='@DEFAULT_SINK@'
|
||||
dev_mute='sink-mute'
|
||||
dev_vol='sink-volume'
|
||||
dev_icon='audio-volume'
|
||||
title='Volume'
|
||||
;;
|
||||
*) print-usage ;;
|
||||
esac
|
||||
|
||||
case $action in
|
||||
'mute') toggle-mute ;;
|
||||
'raise' | 'lower') set-volume ;;
|
||||
*) print-usage ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
126
waybar/scripts/wifi-menu.sh
Executable file
126
waybar/scripts/wifi-menu.sh
Executable file
@@ -0,0 +1,126 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Author: Jesse Mirabel (@sejjy)
|
||||
# GitHub: https://github.com/sejjy/mechabar
|
||||
|
||||
# Rofi config
|
||||
config="$HOME/.config/rofi/wifi-menu.rasi"
|
||||
|
||||
options=$(
|
||||
echo " Manual Entry"
|
||||
echo " Disable Wi-Fi"
|
||||
)
|
||||
option_disabled=" Enable Wi-Fi"
|
||||
|
||||
# Rofi window override
|
||||
override_ssid="entry { placeholder: \"Enter SSID\"; } listview { lines: 0; padding: 20px 6px; }"
|
||||
override_password="entry { placeholder: \"Enter password\"; } listview { lines: 0; padding: 20px 6px; }"
|
||||
override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }"
|
||||
|
||||
# Prompt for password
|
||||
get_password() {
|
||||
rofi -dmenu -password -config "${config}" -theme-str "${override_password}" -p " " || pkill -x rofi
|
||||
}
|
||||
|
||||
while true; do
|
||||
wifi_list() {
|
||||
nmcli --fields "SECURITY,SSID" device wifi list |
|
||||
tail -n +2 | # Skip the header line from nmcli output
|
||||
sed 's/ */ /g' | # Replace multiple spaces with a single space
|
||||
sed -E "s/WPA*.?\S/ /g" | # Replace 'WPA*' with a Wi-Fi lock icon
|
||||
sed "s/^--/ /g" | # Replace '--' (open networks) with an open Wi-Fi icon
|
||||
sed "s/ //g" | # Remove duplicate Wi-Fi lock icons
|
||||
sed "/--/d" | # Remove lines containing '--' (empty SSIDs)
|
||||
awk '!seen[$0]++' # Filter out duplicate SSIDs
|
||||
}
|
||||
|
||||
# Get Wi-Fi status
|
||||
wifi_status=$(nmcli -fields WIFI g)
|
||||
|
||||
case "$wifi_status" in
|
||||
*"enabled"*)
|
||||
selected_option=$(echo "$options"$'\n'"$(wifi_list)" |
|
||||
rofi -dmenu -i -selected-row 1 -config "${config}" -p " " || pkill -x rofi)
|
||||
;;
|
||||
*"disabled"*)
|
||||
selected_option=$(echo "$option_disabled" |
|
||||
rofi -dmenu -i -config "${config}" -theme-str "${override_disabled}" || pkill -x rofi)
|
||||
;;
|
||||
esac
|
||||
|
||||
# Extract selected SSID
|
||||
read -r selected_ssid <<<"${selected_option:3}"
|
||||
|
||||
# Actions based on selected option
|
||||
case "$selected_option" in
|
||||
"")
|
||||
exit
|
||||
;;
|
||||
*"Enable Wi-Fi")
|
||||
notify-send "Scanning for networks..." -i "package-installed-outdated"
|
||||
nmcli radio wifi on
|
||||
nmcli device wifi rescan
|
||||
sleep 3
|
||||
;;
|
||||
*"Disable Wi-Fi")
|
||||
notify-send "Wi-Fi Disabled" -i "package-broken"
|
||||
nmcli radio wifi off
|
||||
exit
|
||||
;;
|
||||
*"Manual Entry")
|
||||
# Prompt for SSID
|
||||
manual_ssid=$(rofi -dmenu -config "${config}" -theme-str "${override_ssid}" -p " " || pkill -x rofi)
|
||||
|
||||
# Exit if no option is selected
|
||||
if [ -z "$manual_ssid" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Prompt for Wi-Fi password
|
||||
wifi_password=$(get_password)
|
||||
|
||||
if [ -z "$wifi_password" ]; then
|
||||
# Without password
|
||||
if nmcli device wifi connect "$manual_ssid" | grep -q "successfully"; then
|
||||
notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated"
|
||||
exit
|
||||
else
|
||||
notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken"
|
||||
fi
|
||||
else
|
||||
# With password
|
||||
if nmcli device wifi connect "$manual_ssid" password "$wifi_password" | grep -q "successfully"; then
|
||||
notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated"
|
||||
exit
|
||||
else
|
||||
notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Get saved connections
|
||||
saved_connections=$(nmcli -g NAME connection)
|
||||
|
||||
if echo "$saved_connections" | grep -qw "$selected_ssid"; then
|
||||
if nmcli connection up id "$selected_ssid" | grep -q "successfully"; then
|
||||
notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated"
|
||||
exit
|
||||
else
|
||||
notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken"
|
||||
fi
|
||||
else
|
||||
# Handle secure network connection
|
||||
if [[ "$selected_option" =~ ^"" ]]; then
|
||||
wifi_password=$(get_password)
|
||||
fi
|
||||
|
||||
if nmcli device wifi connect "$selected_ssid" password "$wifi_password" | grep -q "successfully"; then
|
||||
notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated"
|
||||
exit
|
||||
else
|
||||
notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
84
waybar/scripts/wifi-status.sh
Executable file
84
waybar/scripts/wifi-status.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if ! command -v nmcli &>/dev/null; then
|
||||
echo "{\"text\": \"\", \"tooltip\": \"nmcli utility is missing\"}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Wi-Fi is enabled
|
||||
wifi_status=$(nmcli radio wifi 2>/dev/null)
|
||||
|
||||
if [ "$wifi_status" = "disabled" ]; then
|
||||
echo "{\"text\": \"\", \"tooltip\": \"Wi-Fi Disabled\"}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Initialize variables with defaults
|
||||
essid="No Connection"
|
||||
signal=0
|
||||
tooltip="No Wi-Fi Connection"
|
||||
ip_address="Not Connected"
|
||||
security="None"
|
||||
chan="N/A"
|
||||
|
||||
wifi_info=$(nmcli -t -f active,ssid,signal,security dev wifi 2>/dev/null | grep "^yes" | head -1)
|
||||
|
||||
if [ -n "$wifi_info" ]; then
|
||||
# Parse the wifi info with error handling
|
||||
essid=$(echo "$wifi_info" | awk -F: '{print $2}')
|
||||
signal=$(echo "$wifi_info" | awk -F: '{print $3}')
|
||||
security=$(echo "$wifi_info" | awk -F: '{print $4}')
|
||||
|
||||
# Set defaults if parsing failed
|
||||
[ -z "$essid" ] && essid="Unknown"
|
||||
[ -z "$signal" ] && signal=0
|
||||
[ -z "$security" ] && security="None"
|
||||
|
||||
# Get active WiFi device, ignoring WireGuard interfaces
|
||||
active_device=$(nmcli -t -f DEVICE,TYPE,STATE device status 2>/dev/null |
|
||||
grep -E 'wifi:connected$' |
|
||||
grep -v -E '^(wg0|wg1|wg2):' |
|
||||
awk -F: '{print $1}' | head -1)
|
||||
|
||||
if [ -n "$active_device" ]; then
|
||||
# Get IP address with error handling
|
||||
ip_output=$(nmcli -e no -g ip4.address device show "$active_device" 2>/dev/null | head -1)
|
||||
[ -n "$ip_output" ] && ip_address="$ip_output"
|
||||
|
||||
# Get channel and frequency info
|
||||
wifi_details=$(nmcli -e no -t -f active,bssid,chan,freq device wifi 2>/dev/null | grep "^yes" | head -1)
|
||||
if [ -n "$wifi_details" ]; then
|
||||
chan_temp=$(echo "$wifi_details" | awk -F: '{print $8}')
|
||||
freq_temp=$(echo "$wifi_details" | awk -F: '{print $9}')
|
||||
[ -n "$chan_temp" ] && [ -n "$freq_temp" ] && chan="$chan_temp ($freq_temp)"
|
||||
fi
|
||||
|
||||
# Build tooltip with proper formatting
|
||||
tooltip="SSID: ${essid}"
|
||||
tooltip+="\\nIP Address: ${ip_address}"
|
||||
tooltip+="\\nSecurity: ${security}"
|
||||
tooltip+="\\nChannel: ${chan}"
|
||||
tooltip+="\\nStrength: ${signal}/100"
|
||||
else
|
||||
tooltip="Connected to: ${essid}\\nStrength: ${signal}/100\\nSecurity: ${security}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure signal is a number for comparison
|
||||
signal=$((signal + 0))
|
||||
|
||||
# Determine Wi-Fi icon based on signal strength
|
||||
if [ "$signal" -ge 80 ]; then
|
||||
icon="" # Strong signal
|
||||
elif [ "$signal" -ge 60 ]; then
|
||||
icon="" # Good signal
|
||||
elif [ "$signal" -ge 40 ]; then
|
||||
icon="" # Weak signal
|
||||
elif [ "$signal" -ge 20 ]; then
|
||||
icon="" # Very weak signal
|
||||
else
|
||||
icon="" # No signal
|
||||
fi
|
||||
|
||||
# Output JSON with proper escaping
|
||||
echo "{\"text\": \"${icon}\", \"tooltip\": \"${tooltip}\"}"
|
||||
482
waybar/style.css
482
waybar/style.css
@@ -1,12 +1,476 @@
|
||||
/* ignore GTK theme */
|
||||
@import "theme.css";
|
||||
|
||||
* {
|
||||
all: initial;
|
||||
min-height: 0;
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@import "theme.css";
|
||||
@import "styles/fonts.css";
|
||||
@import "styles/global.css";
|
||||
@import "styles/modules-center.css";
|
||||
@import "styles/modules-left.css";
|
||||
@import "styles/modules-right.css";
|
||||
@import "styles/states.css";
|
||||
/* ----------------------------------------------------- MAIN BACKGROUND --- */
|
||||
|
||||
window#waybar>box {
|
||||
background: @main-bg;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------- DROP SHADOW --- */
|
||||
|
||||
window#waybar {
|
||||
background: @shadow;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ TOOLTIPS --- */
|
||||
|
||||
tooltip {
|
||||
background: @main-bg;
|
||||
border: 1.5px solid @main-br;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @main-fg;
|
||||
margin: -1.5px 3px;
|
||||
}
|
||||
|
||||
/* ---------------------------------------- WORKSPACE BUTTONS and LABELS --- */
|
||||
|
||||
#workspaces button {
|
||||
color: @module-fg;
|
||||
border-radius: 8px;
|
||||
box-shadow: none;
|
||||
margin: 2px 0;
|
||||
padding: 0 2px;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @hover-fg;
|
||||
background: @hover-bg;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @active-fg;
|
||||
background: @active-bg;
|
||||
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.4);
|
||||
margin: 2px;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- GENERAL --- */
|
||||
|
||||
#custom-ws,
|
||||
#workspaces,
|
||||
#window,
|
||||
#custom-temperature,
|
||||
#memory,
|
||||
#cpu,
|
||||
#idle_inhibitor,
|
||||
#clock,
|
||||
#custom-wifi,
|
||||
#custom-wireguard,
|
||||
#bluetooth,
|
||||
#custom-update,
|
||||
#mpris,
|
||||
#pulseaudio,
|
||||
#backlight,
|
||||
#battery,
|
||||
#custom-power {
|
||||
opacity: 1;
|
||||
color: @module-fg;
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
#custom-left1,
|
||||
#custom-left2,
|
||||
#custom-left3,
|
||||
#custom-left4,
|
||||
#custom-left5,
|
||||
#custom-left6,
|
||||
#custom-left7,
|
||||
#custom-left8 {
|
||||
margin-bottom: 0;
|
||||
text-shadow: -2px 0 2px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
#custom-right1,
|
||||
#custom-right2,
|
||||
#custom-right3,
|
||||
#custom-right4,
|
||||
#custom-right5 {
|
||||
margin-bottom: 0;
|
||||
padding-right: 3px;
|
||||
text-shadow: 2px 0 2px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- MODULES --- */
|
||||
|
||||
/* --------------------------------------------------------- window icon --- */
|
||||
|
||||
#custom-ws {
|
||||
background: @main-bg;
|
||||
}
|
||||
|
||||
#custom-ws:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------- workspaces --- */
|
||||
|
||||
#custom-left1 {
|
||||
color: @workspaces;
|
||||
background: @main-bg;
|
||||
margin-bottom: 0;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: @workspaces;
|
||||
}
|
||||
|
||||
#custom-right1 {
|
||||
color: @workspaces;
|
||||
background: @main-bg;
|
||||
text-shadow: 3px 0 2px rgba(0, 0, 0, 0.4);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------- temperature --- */
|
||||
|
||||
#custom-paddc {
|
||||
padding-right: 22px;
|
||||
}
|
||||
|
||||
#custom-left2 {
|
||||
color: @temperature;
|
||||
background: @main-bg;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-temperature {
|
||||
background: @temperature;
|
||||
padding: 0 0 0 1px;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------- memory --- */
|
||||
|
||||
#custom-left3 {
|
||||
color: @memory;
|
||||
background: @temperature;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background: @memory;
|
||||
padding: 0 0 0 1px;
|
||||
}
|
||||
|
||||
#memory.warning {
|
||||
color: @warning;
|
||||
}
|
||||
|
||||
#memory.critical {
|
||||
color: @critical;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------- cpu --- */
|
||||
|
||||
#custom-left4 {
|
||||
color: @cpu;
|
||||
background: @memory;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background: @cpu;
|
||||
}
|
||||
|
||||
#custom-leftin1 {
|
||||
color: @cpu;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------- distro icon --- */
|
||||
|
||||
#custom-left5 {
|
||||
color: @distro-bg;
|
||||
background: @main-bg;
|
||||
text-shadow: none;
|
||||
margin-bottom: -2px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-distro {
|
||||
color: @distro-fg;
|
||||
background: @distro-bg;
|
||||
margin: 0 -1px -2px 0;
|
||||
padding: 0 0 0 3px;
|
||||
text-shadow: 0 0 1.5px rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
||||
#custom-right2 {
|
||||
color: @distro-bg;
|
||||
background: @main-bg;
|
||||
text-shadow: none;
|
||||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- time --- */
|
||||
|
||||
#custom-rightin1 {
|
||||
color: @time;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
background: @time;
|
||||
padding: 0 0 0 7px;
|
||||
}
|
||||
|
||||
#idle_inhibitor:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#clock.time {
|
||||
background: @time;
|
||||
margin-left: -2px;
|
||||
padding: 0 3px 0 0;
|
||||
}
|
||||
|
||||
#custom-right3 {
|
||||
color: @time;
|
||||
background: @date;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- date --- */
|
||||
|
||||
#clock.date {
|
||||
background: @date;
|
||||
}
|
||||
|
||||
#clock.date:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#custom-right4 {
|
||||
color: @date;
|
||||
background: @tray;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------- tray --- */
|
||||
|
||||
#custom-wifi {
|
||||
background: @tray;
|
||||
padding: 0 8px 0 5px;
|
||||
}
|
||||
|
||||
#custom-wifi:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#custom-wireguard {
|
||||
background: @tray;
|
||||
padding: 0 8px 0 5px;
|
||||
}
|
||||
|
||||
#custom-wireguard:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
background: @tray;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#bluetooth:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#custom-update {
|
||||
padding-right: 8px;
|
||||
background: @tray;
|
||||
}
|
||||
|
||||
#custom-update:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#custom-right5 {
|
||||
color: @tray;
|
||||
background: @main-bg;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------- media info --- */
|
||||
|
||||
#mpris {
|
||||
background: @main-bg;
|
||||
padding: 0 8px 0;
|
||||
}
|
||||
|
||||
#mpris:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
/*
|
||||
output device
|
||||
*/
|
||||
|
||||
#custom-left6 {
|
||||
color: @pulseaudio;
|
||||
background: @main-bg;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
background: @pulseaudio;
|
||||
}
|
||||
|
||||
#pulseaudio:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------- brightness --- */
|
||||
|
||||
#custom-left7 {
|
||||
color: @backlight;
|
||||
background: @pulseaudio;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background: @backlight;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- battery --- */
|
||||
|
||||
#custom-left8 {
|
||||
color: @battery;
|
||||
background: @backlight;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @module-fg;
|
||||
background: @battery;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: @warning;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: @critical;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @charging;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------- power button --- */
|
||||
|
||||
#custom-leftin2 {
|
||||
color: @battery;
|
||||
background: @main-bg;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: @main-bg;
|
||||
background: @power;
|
||||
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.6);
|
||||
border-radius: 10px;
|
||||
margin: 2px 4px 2px 0;
|
||||
padding: 0 6px 0 9px;
|
||||
}
|
||||
|
||||
#custom-power:hover {
|
||||
color: @hover-fg;
|
||||
background: @hover-bg;
|
||||
text-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------- FONT SIZES --- */
|
||||
|
||||
/*
|
||||
NOTE: Be careful when changing font sizes, as they
|
||||
can affect alignment.
|
||||
|
||||
Try adjusting whole numbers first, then refine with
|
||||
decimals.
|
||||
|
||||
If you increase or decrease a value, make the same
|
||||
change to all properties in this section to keep
|
||||
the layout consistent.
|
||||
*/
|
||||
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tooltip label,
|
||||
#window label,
|
||||
#mpris {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------- left and right arrows --- */
|
||||
|
||||
#custom-left1,
|
||||
#custom-left2,
|
||||
#custom-left3,
|
||||
#custom-left4,
|
||||
#custom-left5,
|
||||
#custom-left6,
|
||||
#custom-left7,
|
||||
#custom-left8,
|
||||
#custom-right1,
|
||||
#custom-right2,
|
||||
#custom-right3,
|
||||
#custom-right4,
|
||||
#custom-right5 {
|
||||
font-size: 14.68px;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------- left and right inverse --- */
|
||||
|
||||
#custom-leftin1,
|
||||
#custom-leftin2,
|
||||
#custom-rightin1 {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------- distro --- */
|
||||
|
||||
#custom-distro {
|
||||
font-size: 14.6px;
|
||||
}
|
||||
|
||||
#custom-left5,
|
||||
#custom-right2 {
|
||||
font-size: 15.68px;
|
||||
}
|
||||
|
||||
/*
|
||||
Adjust these properties as well to keep the design
|
||||
consistent.
|
||||
*/
|
||||
|
||||
#workspaces button {
|
||||
border-radius: 8px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
border-radius: 10px;
|
||||
padding: 0 6px 0 9px;
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
* {
|
||||
font-family: "0xProto Nerd Font";
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#custom-user,
|
||||
#window label,
|
||||
#mpris,
|
||||
tooltip label {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#workspaces button.active label,
|
||||
#custom-distro {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
#custom-power_menu {
|
||||
font-size: 19px;
|
||||
}
|
||||
|
||||
#custom-left_div,
|
||||
#custom-left_inv,
|
||||
#custom-right_div,
|
||||
#custom-right_inv {
|
||||
font-size: 22px;
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
* {
|
||||
color: @main-fg;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
background-color: @outline;
|
||||
}
|
||||
#waybar > box {
|
||||
margin: 4px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 16px;
|
||||
min-width: 16px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
button:hover {
|
||||
background-color: @hover-bg;
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
border: 2px solid @main-br;
|
||||
border-radius: 10px;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
tooltip > box {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.module,
|
||||
#custom-left_div,
|
||||
#custom-left_inv,
|
||||
#custom-right_div,
|
||||
#custom-right_inv {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
@@ -1,119 +0,0 @@
|
||||
/*------------------
|
||||
window count
|
||||
------------------*/
|
||||
|
||||
#windowcount {
|
||||
margin-right: 12px;
|
||||
}
|
||||
#windowcount label {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
/*-----------------
|
||||
temperature
|
||||
-----------------*/
|
||||
|
||||
#custom-left_div.2 {
|
||||
color: @temperature;
|
||||
}
|
||||
#temperature {
|
||||
background-color: @temperature;
|
||||
}
|
||||
|
||||
/*------------
|
||||
memory
|
||||
------------*/
|
||||
|
||||
#custom-left_div.3 {
|
||||
background-color: @temperature;
|
||||
color: @memory;
|
||||
}
|
||||
#memory {
|
||||
background-color: @memory;
|
||||
}
|
||||
|
||||
/*---------
|
||||
cpu
|
||||
---------*/
|
||||
|
||||
#custom-left_div.4 {
|
||||
background-color: @memory;
|
||||
color: @cpu;
|
||||
}
|
||||
#cpu {
|
||||
background-color: @cpu;
|
||||
}
|
||||
#custom-left_inv.1 {
|
||||
color: @cpu;
|
||||
}
|
||||
|
||||
/*-----------------
|
||||
distro icon
|
||||
-----------------*/
|
||||
|
||||
#custom-left_div.5,
|
||||
#custom-right_div.2 {
|
||||
color: @accent;
|
||||
}
|
||||
#custom-distro {
|
||||
padding: 0 10px 0 5px;
|
||||
background-color: @accent;
|
||||
color: @main-bg;
|
||||
}
|
||||
|
||||
/*--------------------
|
||||
idle inhibitor
|
||||
--------------------*/
|
||||
|
||||
#custom-right_inv.1 {
|
||||
color: @time;
|
||||
}
|
||||
#idle_inhibitor {
|
||||
background-color: @time;
|
||||
}
|
||||
|
||||
/*----------
|
||||
time
|
||||
----------*/
|
||||
|
||||
#clock.time {
|
||||
padding-right: 6px;
|
||||
background-color: @time;
|
||||
}
|
||||
#custom-right_div.3 {
|
||||
background-color: @date;
|
||||
color: @time;
|
||||
}
|
||||
|
||||
/*----------
|
||||
date
|
||||
----------*/
|
||||
|
||||
#clock.date {
|
||||
padding-left: 6px;
|
||||
background-color: @date;
|
||||
}
|
||||
#custom-right_div.4 {
|
||||
background-color: @tray;
|
||||
color: @date;
|
||||
}
|
||||
|
||||
/*-----------------
|
||||
system tray
|
||||
-----------------*/
|
||||
|
||||
#network {
|
||||
background-color: @tray;
|
||||
padding: 0 6px 0 4px;
|
||||
}
|
||||
#bluetooth {
|
||||
background-color: @tray;
|
||||
padding: 0 5px;
|
||||
}
|
||||
#custom-system_update {
|
||||
background-color: @tray;
|
||||
padding: 0 8px 0 2px;
|
||||
}
|
||||
#custom-right_div.5 {
|
||||
color: @tray;
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
/*--------------
|
||||
username
|
||||
--------------*/
|
||||
|
||||
#custom-user {
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
/*----------------
|
||||
workspaces
|
||||
----------------*/
|
||||
|
||||
#custom-left_div.1,
|
||||
#custom-right_div.1 {
|
||||
color: @workspaces;
|
||||
}
|
||||
#workspaces {
|
||||
padding: 0 1px;
|
||||
background-color: @workspaces;
|
||||
}
|
||||
#workspaces button.active label {
|
||||
color: @accent;
|
||||
}
|
||||
|
||||
/*------------------
|
||||
window title
|
||||
------------------*/
|
||||
|
||||
#window {
|
||||
margin-left: 12px;
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
/*----------------
|
||||
media info
|
||||
----------------*/
|
||||
|
||||
#mpris {
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
/*------------
|
||||
volume
|
||||
------------*/
|
||||
|
||||
#custom-left_div.6 {
|
||||
color: @volume;
|
||||
}
|
||||
#pulseaudio,
|
||||
#wireplumber {
|
||||
background-color: @volume;
|
||||
}
|
||||
|
||||
/*----------------
|
||||
brightness
|
||||
----------------*/
|
||||
|
||||
#custom-left_div.7 {
|
||||
background-color: @volume;
|
||||
color: @backlight;
|
||||
}
|
||||
#backlight {
|
||||
background-color: @backlight;
|
||||
}
|
||||
|
||||
/*-------------
|
||||
battery
|
||||
-------------*/
|
||||
|
||||
#custom-left_div.8 {
|
||||
background-color: @backlight;
|
||||
color: @battery;
|
||||
}
|
||||
#battery {
|
||||
background-color: @battery;
|
||||
}
|
||||
#custom-left_inv.2 {
|
||||
color: @battery;
|
||||
}
|
||||
|
||||
/*----------------
|
||||
power menu
|
||||
----------------*/
|
||||
|
||||
#custom-power_menu {
|
||||
border-radius: 16px;
|
||||
padding: 0 19px 0 16px;
|
||||
color: @accent;
|
||||
}
|
||||
#custom-power_menu:hover {
|
||||
background-color: @hover-bg;
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
#custom-trigger:hover,
|
||||
#idle_inhibitor:hover,
|
||||
#clock.date:hover,
|
||||
#network:hover,
|
||||
#bluetooth:hover,
|
||||
#custom-system_update:hover,
|
||||
#mpris:hover,
|
||||
#pulseaudio:hover,
|
||||
#wireplumber:hover {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
/* inactive state */
|
||||
#idle_inhibitor.deactivated,
|
||||
#mpris.paused,
|
||||
#pulseaudio.output.muted,
|
||||
#pulseaudio.input.source-muted,
|
||||
#wireplumber.muted {
|
||||
color: @hover-fg;
|
||||
}
|
||||
|
||||
#memory.warning,
|
||||
#cpu.warning,
|
||||
#battery.warning {
|
||||
color: @warning;
|
||||
}
|
||||
|
||||
#temperature.critical,
|
||||
#memory.critical,
|
||||
#cpu.critical,
|
||||
#battery.critical {
|
||||
color: @critical;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @charging;
|
||||
}
|
||||
108
waybar/theme.css
108
waybar/theme.css
@@ -1,32 +1,30 @@
|
||||
/* Gruvbox Dark */
|
||||
|
||||
@define-color bg0_h #1d2021;
|
||||
@define-color bg0 #282828;
|
||||
@define-color bg1 #3c3836;
|
||||
@define-color bg2 #504945;
|
||||
@define-color bg3 #665c54;
|
||||
@define-color bg4 #7c6f64;
|
||||
@define-color gray #928374;
|
||||
@define-color fg4 #a89984;
|
||||
@define-color fg3 #bdae93;
|
||||
@define-color fg2 #d5c4a1;
|
||||
@define-color fg1 #ebdbb2;
|
||||
@define-color fg0 #fbf1c7;
|
||||
@define-color red #cc241d;
|
||||
@define-color bright_red #fb4934;
|
||||
@define-color green #98971a;
|
||||
@define-color bright_green #b8bb26;
|
||||
@define-color yellow #d79921;
|
||||
@define-color bright_yellow #fabd2f;
|
||||
@define-color blue #458588;
|
||||
@define-color bright_blue #83a598;
|
||||
@define-color purple #b16286;
|
||||
@define-color bright_purple #d3869b;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color bright_aqua #8ec07c;
|
||||
@define-color orange #d65d0e;
|
||||
@define-color bright_orange #fe8019;
|
||||
|
||||
/* Custom Theme - Warm Muted with Orange Accents */
|
||||
@define-color bg0_h #1c1c1f;
|
||||
@define-color bg0 #1c1c1f;
|
||||
@define-color bg1 #252529;
|
||||
@define-color bg2 #2d2d33;
|
||||
@define-color bg3 #35353d;
|
||||
@define-color bg4 #3d3d47;
|
||||
@define-color gray #6d6860;
|
||||
@define-color fg4 #7d7972;
|
||||
@define-color fg3 #8a8580;
|
||||
@define-color fg2 #ff9100;
|
||||
@define-color fg1 #b39a76;
|
||||
@define-color fg0 #c9b08a;
|
||||
@define-color red #ff0000;
|
||||
@define-color bright_red #ff0000;
|
||||
@define-color green #ff9100;
|
||||
@define-color bright_green #b39a76;
|
||||
@define-color yellow #ff9100;
|
||||
@define-color bright_yellow #ff9100;
|
||||
@define-color blue #ff9100;
|
||||
@define-color bright_blue #b39a76;
|
||||
@define-color purple #ff9100;
|
||||
@define-color bright_purple #b39a76;
|
||||
@define-color aqua #ff9100;
|
||||
@define-color bright_aqua #b39a76;
|
||||
@define-color orange #ff9100;
|
||||
@define-color bright_orange #ff9100;
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
@@ -37,40 +35,32 @@
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color outline shade(@bg0_h, 0.5);
|
||||
@define-color accent @orange;
|
||||
@define-color main-fg @fg0;
|
||||
@define-color shadow shade(@bg0_h, 0.5);
|
||||
@define-color main-fg @fg2;
|
||||
@define-color main-bg @bg0_h;
|
||||
@define-color main-br @fg0;
|
||||
|
||||
@define-color active-bg @yellow;
|
||||
@define-color active-fg @bg0_h;
|
||||
|
||||
@define-color main-br @fg2;
|
||||
@define-color active-bg @orange;
|
||||
@define-color active-fg @black;
|
||||
@define-color hover-bg @bg2;
|
||||
@define-color hover-fg alpha(@fg0, 0.75);
|
||||
@define-color hover-fg @fg1;
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @fg0;
|
||||
@define-color workspaces @bg0;
|
||||
|
||||
@define-color temperature @bg0;
|
||||
@define-color memory @bg1;
|
||||
@define-color cpu @bg2;
|
||||
@define-color module-fg @fg2;
|
||||
@define-color workspaces @bg1;
|
||||
@define-color temperature @bg1;
|
||||
@define-color memory @bg2;
|
||||
@define-color cpu @bg3;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @yellow;
|
||||
@define-color time @bg2;
|
||||
@define-color date @bg1;
|
||||
@define-color tray @bg0;
|
||||
|
||||
@define-color pulseaudio @bg0;
|
||||
@define-color backlight @bg1;
|
||||
@define-color battery @bg2;
|
||||
@define-color power @yellow;
|
||||
@define-color distro-bg @orange;
|
||||
@define-color time @bg3;
|
||||
@define-color date @bg2;
|
||||
@define-color tray @bg1;
|
||||
@define-color pulseaudio @bg1;
|
||||
@define-color backlight @bg2;
|
||||
@define-color battery @bg3;
|
||||
@define-color power @orange;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @bright_orange;
|
||||
@define-color critical @bright_red;
|
||||
@define-color charging @fg0;
|
||||
@define-color warning @orange;
|
||||
@define-color critical @red;
|
||||
@define-color charging @fg2;
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
/* catppuccin-frappe */
|
||||
|
||||
@define-color rosewater #f2d5cf;
|
||||
@define-color flamingo #eebebe;
|
||||
@define-color pink #f4b8e4;
|
||||
@define-color mauve #ca9ee6;
|
||||
@define-color red #e78284;
|
||||
@define-color maroon #ea999c;
|
||||
@define-color peach #ef9f76;
|
||||
@define-color yellow #e5c890;
|
||||
@define-color green #a6d189;
|
||||
@define-color teal #81c8be;
|
||||
@define-color sky #99d1db;
|
||||
@define-color sapphire #85c1dc;
|
||||
@define-color blue #8caaee;
|
||||
@define-color lavender #babbf1;
|
||||
@define-color text #c6d0f5;
|
||||
@define-color subtext1 #b5bfe2;
|
||||
@define-color subtext0 #a5adce;
|
||||
@define-color overlay2 #949cbb;
|
||||
@define-color overlay1 #838ba7;
|
||||
@define-color overlay0 #737994;
|
||||
@define-color surface2 #626880;
|
||||
@define-color surface1 #51576d;
|
||||
@define-color surface0 #414559;
|
||||
@define-color base #303446;
|
||||
@define-color mantle #292c3c;
|
||||
@define-color crust #232634;
|
||||
|
||||
/*
|
||||
br - border
|
||||
bg - background
|
||||
fg - foreground
|
||||
*/
|
||||
|
||||
/* main colors */
|
||||
|
||||
@define-color accent @lavender;
|
||||
@define-color main-br @subtext0;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-fg @text;
|
||||
@define-color hover-bg @base;
|
||||
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||
@define-color outline shade(@main-bg, 0.5);
|
||||
|
||||
/* module colors */
|
||||
|
||||
@define-color workspaces @mantle;
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
@define-color volume @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
|
||||
/* state colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @green;
|
||||
@@ -1,63 +0,0 @@
|
||||
/* catppuccin-latte */
|
||||
|
||||
@define-color rosewater #dc8a78;
|
||||
@define-color flamingo #dd7878;
|
||||
@define-color pink #ea76cb;
|
||||
@define-color mauve #8839ef;
|
||||
@define-color red #d20f39;
|
||||
@define-color maroon #e64553;
|
||||
@define-color peach #fe640b;
|
||||
@define-color yellow #df8e1d;
|
||||
@define-color green #40a02b;
|
||||
@define-color teal #179299;
|
||||
@define-color sky #04a5e5;
|
||||
@define-color sapphire #209fb5;
|
||||
@define-color blue #1e66f5;
|
||||
@define-color lavender #7287fd;
|
||||
@define-color text #4c4f69;
|
||||
@define-color subtext1 #5c5f77;
|
||||
@define-color subtext0 #6c6f85;
|
||||
@define-color overlay2 #7c7f93;
|
||||
@define-color overlay1 #8c8fa1;
|
||||
@define-color overlay0 #9ca0b0;
|
||||
@define-color surface2 #acb0be;
|
||||
@define-color surface1 #bcc0cc;
|
||||
@define-color surface0 #ccd0da;
|
||||
@define-color base #eff1f5;
|
||||
@define-color mantle #e6e9ef;
|
||||
@define-color crust #dce0e8;
|
||||
|
||||
/*
|
||||
br - border
|
||||
bg - background
|
||||
fg - foreground
|
||||
*/
|
||||
|
||||
/* main colors */
|
||||
|
||||
@define-color accent @lavender;
|
||||
@define-color main-br @subtext0;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-fg @text;
|
||||
@define-color hover-bg @base;
|
||||
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||
@define-color outline shade(@main-bg, 0.5);
|
||||
|
||||
/* module colors */
|
||||
|
||||
@define-color workspaces @mantle;
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
@define-color volume @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
|
||||
/* state colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @green;
|
||||
@@ -1,63 +0,0 @@
|
||||
/* catppuccin-macchiato */
|
||||
|
||||
@define-color rosewater #f4dbd6;
|
||||
@define-color flamingo #f0c6c6;
|
||||
@define-color pink #f5bde6;
|
||||
@define-color mauve #c6a0f6;
|
||||
@define-color red #ed8796;
|
||||
@define-color maroon #ee99a0;
|
||||
@define-color peach #f5a97f;
|
||||
@define-color yellow #eed49f;
|
||||
@define-color green #a6da95;
|
||||
@define-color teal #8bd5ca;
|
||||
@define-color sky #91d7e3;
|
||||
@define-color sapphire #7dc4e4;
|
||||
@define-color blue #8aadf4;
|
||||
@define-color lavender #b7bdf8;
|
||||
@define-color text #cad3f5;
|
||||
@define-color subtext1 #b8c0e0;
|
||||
@define-color subtext0 #a5adcb;
|
||||
@define-color overlay2 #939ab7;
|
||||
@define-color overlay1 #8087a2;
|
||||
@define-color overlay0 #6e738d;
|
||||
@define-color surface2 #5b6078;
|
||||
@define-color surface1 #494d64;
|
||||
@define-color surface0 #363a4f;
|
||||
@define-color base #24273a;
|
||||
@define-color mantle #1e2030;
|
||||
@define-color crust #181926;
|
||||
|
||||
/*
|
||||
br - border
|
||||
bg - background
|
||||
fg - foreground
|
||||
*/
|
||||
|
||||
/* main colors */
|
||||
|
||||
@define-color accent @lavender;
|
||||
@define-color main-br @subtext0;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-fg @text;
|
||||
@define-color hover-bg @base;
|
||||
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||
@define-color outline shade(@main-bg, 0.5);
|
||||
|
||||
/* module colors */
|
||||
|
||||
@define-color workspaces @mantle;
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
@define-color volume @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
|
||||
/* state colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @green;
|
||||
@@ -1,63 +0,0 @@
|
||||
/* catppuccin-mocha */
|
||||
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
|
||||
/*
|
||||
br - border
|
||||
bg - background
|
||||
fg - foreground
|
||||
*/
|
||||
|
||||
/* main colors */
|
||||
|
||||
@define-color accent @lavender;
|
||||
@define-color main-br @subtext0;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-fg @text;
|
||||
@define-color hover-bg @base;
|
||||
@define-color hover-fg alpha(@main-fg, 0.75);
|
||||
@define-color outline shade(@main-bg, 0.5);
|
||||
|
||||
/* module colors */
|
||||
|
||||
@define-color workspaces @mantle;
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
@define-color volume @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
|
||||
/* state colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @green;
|
||||
75
waybar/themes/css/catppuccin-frappe.css
Normal file
75
waybar/themes/css/catppuccin-frappe.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Catppuccin Frappe */
|
||||
|
||||
@define-color rosewater #f2d5cf;
|
||||
@define-color flamingo #eebebe;
|
||||
@define-color pink #f4b8e4;
|
||||
@define-color mauve #ca9ee6;
|
||||
@define-color red #e78284;
|
||||
@define-color maroon #ea999c;
|
||||
@define-color peach #ef9f76;
|
||||
@define-color yellow #e5c890;
|
||||
@define-color green #a6d189;
|
||||
@define-color teal #81c8be;
|
||||
@define-color sky #99d1db;
|
||||
@define-color sapphire #85c1dc;
|
||||
@define-color blue #8caaee;
|
||||
@define-color lavender #babbf1;
|
||||
@define-color text #c6d0f5;
|
||||
@define-color subtext1 #b5bfe2;
|
||||
@define-color subtext0 #a5adce;
|
||||
@define-color overlay2 #949cbb;
|
||||
@define-color overlay1 #838ba7;
|
||||
@define-color overlay0 #737994;
|
||||
@define-color surface2 #626880;
|
||||
@define-color surface1 #51576d;
|
||||
@define-color surface0 #414559;
|
||||
@define-color base #303446;
|
||||
@define-color mantle #292c3c;
|
||||
@define-color crust #232634;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@crust, 0.5);
|
||||
@define-color main-fg @text;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-br @text;
|
||||
|
||||
@define-color active-bg @overlay2;
|
||||
@define-color active-fg @crust;
|
||||
|
||||
@define-color hover-bg @surface0;
|
||||
@define-color hover-fg alpha(@text, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @text;
|
||||
@define-color workspaces @mantle;
|
||||
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @overlay2;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
|
||||
@define-color pulseaudio @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
@define-color power @overlay2;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @text;
|
||||
75
waybar/themes/css/catppuccin-latte.css
Normal file
75
waybar/themes/css/catppuccin-latte.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Catppuccin Latte */
|
||||
|
||||
@define-color rosewater #dc8a78;
|
||||
@define-color flamingo #dd7878;
|
||||
@define-color pink #ea76cb;
|
||||
@define-color mauve #8839ef;
|
||||
@define-color red #d20f39;
|
||||
@define-color maroon #e64553;
|
||||
@define-color peach #fe640b;
|
||||
@define-color yellow #df8e1d;
|
||||
@define-color green #40a02b;
|
||||
@define-color teal #179299;
|
||||
@define-color sky #04a5e5;
|
||||
@define-color sapphire #209fb5;
|
||||
@define-color blue #1e66f5;
|
||||
@define-color lavender #7287fd;
|
||||
@define-color text #4c4f69;
|
||||
@define-color subtext1 #5c5f77;
|
||||
@define-color subtext0 #6c6f85;
|
||||
@define-color overlay2 #7c7f93;
|
||||
@define-color overlay1 #8c8fa1;
|
||||
@define-color overlay0 #9ca0b0;
|
||||
@define-color surface2 #acb0be;
|
||||
@define-color surface1 #bcc0cc;
|
||||
@define-color surface0 #ccd0da;
|
||||
@define-color base #eff1f5;
|
||||
@define-color mantle #e6e9ef;
|
||||
@define-color crust #dce0e8;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@crust, 0.5);
|
||||
@define-color main-fg @text;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-br @text;
|
||||
|
||||
@define-color active-bg @overlay2;
|
||||
@define-color active-fg @crust;
|
||||
|
||||
@define-color hover-bg @surface0;
|
||||
@define-color hover-fg alpha(@text, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @text;
|
||||
@define-color workspaces @mantle;
|
||||
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @overlay2;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
|
||||
@define-color pulseaudio @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
@define-color power @overlay2;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @text;
|
||||
75
waybar/themes/css/catppuccin-macchiato.css
Normal file
75
waybar/themes/css/catppuccin-macchiato.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Catppuccin Macchiato */
|
||||
|
||||
@define-color rosewater #f4dbd6;
|
||||
@define-color flamingo #f0c6c6;
|
||||
@define-color pink #f5bde6;
|
||||
@define-color mauve #c6a0f6;
|
||||
@define-color red #ed8796;
|
||||
@define-color maroon #ee99a0;
|
||||
@define-color peach #f5a97f;
|
||||
@define-color yellow #eed49f;
|
||||
@define-color green #a6da95;
|
||||
@define-color teal #8bd5ca;
|
||||
@define-color sky #91d7e3;
|
||||
@define-color sapphire #7dc4e4;
|
||||
@define-color blue #8aadf4;
|
||||
@define-color lavender #b7bdf8;
|
||||
@define-color text #cad3f5;
|
||||
@define-color subtext1 #b8c0e0;
|
||||
@define-color subtext0 #a5adcb;
|
||||
@define-color overlay2 #939ab7;
|
||||
@define-color overlay1 #8087a2;
|
||||
@define-color overlay0 #6e738d;
|
||||
@define-color surface2 #5b6078;
|
||||
@define-color surface1 #494d64;
|
||||
@define-color surface0 #363a4f;
|
||||
@define-color base #24273a;
|
||||
@define-color mantle #1e2030;
|
||||
@define-color crust #181926;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@crust, 0.5);
|
||||
@define-color main-fg @text;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-br @text;
|
||||
|
||||
@define-color active-bg @overlay2;
|
||||
@define-color active-fg @crust;
|
||||
|
||||
@define-color hover-bg @surface0;
|
||||
@define-color hover-fg alpha(@text, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @text;
|
||||
@define-color workspaces @mantle;
|
||||
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @overlay2;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
|
||||
@define-color pulseaudio @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
@define-color power @overlay2;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @text;
|
||||
75
waybar/themes/css/catppuccin-mocha.css
Normal file
75
waybar/themes/css/catppuccin-mocha.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Catppuccin Mocha */
|
||||
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@crust, 0.5);
|
||||
@define-color main-fg @text;
|
||||
@define-color main-bg @crust;
|
||||
@define-color main-br @text;
|
||||
|
||||
@define-color active-bg @overlay2;
|
||||
@define-color active-fg @crust;
|
||||
|
||||
@define-color hover-bg @surface0;
|
||||
@define-color hover-fg alpha(@text, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @text;
|
||||
@define-color workspaces @mantle;
|
||||
|
||||
@define-color temperature @mantle;
|
||||
@define-color memory @base;
|
||||
@define-color cpu @surface0;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @overlay2;
|
||||
@define-color time @surface0;
|
||||
@define-color date @base;
|
||||
@define-color tray @mantle;
|
||||
|
||||
@define-color pulseaudio @mantle;
|
||||
@define-color backlight @base;
|
||||
@define-color battery @surface0;
|
||||
@define-color power @overlay2;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @yellow;
|
||||
@define-color critical @red;
|
||||
@define-color charging @text;
|
||||
@@ -38,8 +38,7 @@
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color outline shade(@bg0_h, 0.5);
|
||||
@define-color accent @orange;
|
||||
@define-color shadow shade(@bg0_h, 0.5);
|
||||
@define-color main-fg @fg0;
|
||||
@define-color main-bg @bg0_h;
|
||||
@define-color main-br @fg0;
|
||||
75
waybar/themes/css/gruvbox-light.css
Normal file
75
waybar/themes/css/gruvbox-light.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Gruvbox Light */
|
||||
|
||||
@define-color bg0_h #f9f5d7;
|
||||
@define-color bg0 #fbf1c7;
|
||||
@define-color bg1 #ebdbb2;
|
||||
@define-color bg2 #d5c4a1;
|
||||
@define-color bg3 #bdae93;
|
||||
@define-color bg4 #a89984;
|
||||
@define-color gray #928374;
|
||||
@define-color fg4 #7c6f64;
|
||||
@define-color fg3 #665c54;
|
||||
@define-color fg2 #504945;
|
||||
@define-color fg1 #3c3836;
|
||||
@define-color fg0 #282828;
|
||||
@define-color red #cc241d;
|
||||
@define-color bright_red #9d0006;
|
||||
@define-color green #98971a;
|
||||
@define-color bright_green #79740e;
|
||||
@define-color yellow #d79921;
|
||||
@define-color bright_yellow #b57614;
|
||||
@define-color blue #458588;
|
||||
@define-color bright_blue #076678;
|
||||
@define-color purple #b16286;
|
||||
@define-color bright_purple #8f3f71;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color bright_aqua #427b58;
|
||||
@define-color orange #d65d0e;
|
||||
@define-color bright_orange #af3a03;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@bg0_h, 0.5);
|
||||
@define-color main-fg @fg0;
|
||||
@define-color main-bg @bg0_h;
|
||||
@define-color main-br @fg0;
|
||||
|
||||
@define-color active-bg @yellow;
|
||||
@define-color active-fg @bg0_h;
|
||||
|
||||
@define-color hover-bg @bg2;
|
||||
@define-color hover-fg alpha(@fg0, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @fg0;
|
||||
@define-color workspaces @bg0;
|
||||
|
||||
@define-color temperature @bg0;
|
||||
@define-color memory @bg1;
|
||||
@define-color cpu @bg2;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @yellow;
|
||||
@define-color time @bg2;
|
||||
@define-color date @bg1;
|
||||
@define-color tray @bg0;
|
||||
|
||||
@define-color pulseaudio @bg0;
|
||||
@define-color backlight @bg1;
|
||||
@define-color battery @bg2;
|
||||
@define-color power @yellow;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @bright_orange;
|
||||
@define-color critical @bright_red;
|
||||
@define-color charging @fg0;
|
||||
1
waybar/themes/current-theme
Normal file
1
waybar/themes/current-theme
Normal file
@@ -0,0 +1 @@
|
||||
/home/saeijou/.config/waybar/themes/css/gruvbox-dark.css
|
||||
75
waybar/themes/gruvbox-theme.css
Normal file
75
waybar/themes/gruvbox-theme.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Gruvbox Dark */
|
||||
|
||||
@define-color bg0_h #1d2021;
|
||||
@define-color bg0 #282828;
|
||||
@define-color bg1 #3c3836;
|
||||
@define-color bg2 #504945;
|
||||
@define-color bg3 #665c54;
|
||||
@define-color bg4 #7c6f64;
|
||||
@define-color gray #928374;
|
||||
@define-color fg4 #a89984;
|
||||
@define-color fg3 #bdae93;
|
||||
@define-color fg2 #d5c4a1;
|
||||
@define-color fg1 #ebdbb2;
|
||||
@define-color fg0 #fbf1c7;
|
||||
@define-color red #cc241d;
|
||||
@define-color bright_red #fb4934;
|
||||
@define-color green #98971a;
|
||||
@define-color bright_green #b8bb26;
|
||||
@define-color yellow #d79921;
|
||||
@define-color bright_yellow #fabd2f;
|
||||
@define-color blue #458588;
|
||||
@define-color bright_blue #83a598;
|
||||
@define-color purple #b16286;
|
||||
@define-color bright_purple #d3869b;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color bright_aqua #8ec07c;
|
||||
@define-color orange #d65d0e;
|
||||
@define-color bright_orange #fe8019;
|
||||
|
||||
@define-color white #ffffff;
|
||||
@define-color black #000000;
|
||||
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
br - border
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
|
||||
@define-color shadow shade(@bg0_h, 0.5);
|
||||
@define-color main-fg @fg0;
|
||||
@define-color main-bg @bg0_h;
|
||||
@define-color main-br @fg0;
|
||||
|
||||
@define-color active-bg @yellow;
|
||||
@define-color active-fg @bg0_h;
|
||||
|
||||
@define-color hover-bg @bg2;
|
||||
@define-color hover-fg alpha(@fg0, 0.75);
|
||||
|
||||
/* Module Colors */
|
||||
|
||||
@define-color module-fg @fg0;
|
||||
@define-color workspaces @bg0;
|
||||
|
||||
@define-color temperature @bg0;
|
||||
@define-color memory @bg1;
|
||||
@define-color cpu @bg2;
|
||||
@define-color distro-fg @black;
|
||||
@define-color distro-bg @yellow;
|
||||
@define-color time @bg2;
|
||||
@define-color date @bg1;
|
||||
@define-color tray @bg0;
|
||||
|
||||
@define-color pulseaudio @bg0;
|
||||
@define-color backlight @bg1;
|
||||
@define-color battery @bg2;
|
||||
@define-color power @yellow;
|
||||
|
||||
/* State Colors */
|
||||
|
||||
@define-color warning @bright_orange;
|
||||
@define-color critical @bright_red;
|
||||
@define-color charging @fg0;
|
||||
478
waybar/themes/jsonc/catppuccin-frappe.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-frappe.jsonc
Normal file
@@ -0,0 +1,478 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#8caaee'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#e78284'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#e78284'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#ef9f76'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#ef9f76'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#8caaee'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#8caaee'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#a6d189'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#a6d189'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#a6d189'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#a6d189'> </span> $1",
|
||||
|
||||
// Media
|
||||
|
||||
"(.*)Spotify":
|
||||
"<span foreground='#a6d189'> </span> Spotify",
|
||||
"(.*)Spotify Premium":
|
||||
"<span foreground='#a6d189'> </span> Spotify Premium",
|
||||
|
||||
"OBS(.*)":
|
||||
"<span foreground='#a5adce'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#ef9f76'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#ef9f76'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#ca9ee6'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"vesktop":
|
||||
"<span foreground='#8caaee'> </span> Discord",
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#8caaee'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#e78284'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#8caaee'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#a6d189'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#ef9f76'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#e78284'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#babbf1'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#a5adce' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#e78284'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 30,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#a6d189'> </span>",
|
||||
"firefox": "<span foreground='#e78284'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#babbf1'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
478
waybar/themes/jsonc/catppuccin-latte.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-latte.jsonc
Normal file
@@ -0,0 +1,478 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#1e66f5'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#d20f39'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#d20f39'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#fe640b'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#fe640b'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#1e66f5'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#1e66f5'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#40a02b'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#40a02b'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#40a02b'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#40a02b'> </span> $1",
|
||||
|
||||
// Media
|
||||
|
||||
"(.*)Spotify":
|
||||
"<span foreground='#40a02b'> </span> Spotify",
|
||||
"(.*)Spotify Premium":
|
||||
"<span foreground='#40a02b'> </span> Spotify Premium",
|
||||
|
||||
"OBS(.*)":
|
||||
"<span foreground='#6c6f85'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#fe640b'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#fe640b'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#8839ef'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"vesktop":
|
||||
"<span foreground='#1e66f5'> </span> Discord",
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#1e66f5'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#d20f39'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#1e66f5'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#40a02b'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#fe640b'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#d20f39'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#7287fd'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#6c6f85' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#d20f39'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 30,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#40a02b'> </span>",
|
||||
"firefox": "<span foreground='#d20f39'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#7287fd'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
478
waybar/themes/jsonc/catppuccin-macchiato.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-macchiato.jsonc
Normal file
@@ -0,0 +1,478 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"reload_style_on_change": true,
|
||||
"gtk-layer-shell": true,
|
||||
|
||||
// <<--< Positions >-->>
|
||||
|
||||
"modules-left": [
|
||||
"custom/ws", // window icon
|
||||
"custom/left1",
|
||||
|
||||
"hyprland/workspaces", // workspaces
|
||||
"custom/right1",
|
||||
|
||||
"custom/paddw",
|
||||
"hyprland/window" // window title
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"custom/paddc",
|
||||
"custom/left2",
|
||||
"custom/temperature", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"custom/distro", // distro icon
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"idle_inhibitor", // idle inhibitor
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // wi-fi
|
||||
"bluetooth", // bluetooth
|
||||
"custom/update", // system update
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"mpris", // media info
|
||||
|
||||
"custom/left6",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left7",
|
||||
"backlight", // brightness
|
||||
|
||||
"custom/left8",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// <<--< Modules >-->>
|
||||
|
||||
"custom/ws": {
|
||||
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||
"return-type": "json",
|
||||
"format": " ",
|
||||
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||
"min-length": 3,
|
||||
"max-length": 3
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
"min-length": 5,
|
||||
|
||||
"rewrite": {
|
||||
// Desktop
|
||||
"":
|
||||
"<span foreground='#8aadf4'> </span> Hyprland",
|
||||
|
||||
// Terminal
|
||||
"~": " Terminal",
|
||||
"zsh": " Terminal",
|
||||
"kitty": " Terminal",
|
||||
|
||||
"tmux(.*)":
|
||||
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||
|
||||
// Browser
|
||||
|
||||
"(.*)Mozilla Firefox":
|
||||
"<span foreground='#ed8796'> </span> Firefox",
|
||||
"(.*) — Mozilla Firefox":
|
||||
"<span foreground='#ed8796'> </span> $1",
|
||||
|
||||
"(.*)Zen Browser":
|
||||
"<span foreground='#f5a97f'> </span> Zen Browser",
|
||||
"(.*) — Zen Browser":
|
||||
"<span foreground='#f5a97f'> </span> $1",
|
||||
|
||||
// Development
|
||||
|
||||
"(.*) - Visual Studio Code":
|
||||
"<span foreground='#8aadf4'> </span> $1",
|
||||
"(.*)Visual Studio Code":
|
||||
"<span foreground='#8aadf4'> </span> Visual Studio Code",
|
||||
|
||||
"nvim":
|
||||
"<span foreground='#a6da95'> </span> Neovim",
|
||||
"nvim (.*)":
|
||||
"<span foreground='#a6da95'> </span> $1",
|
||||
|
||||
"vim":
|
||||
"<span foreground='#a6da95'> </span> Vim",
|
||||
"vim (.*)":
|
||||
"<span foreground='#a6da95'> </span> $1",
|
||||
|
||||
// Media
|
||||
|
||||
"(.*)Spotify":
|
||||
"<span foreground='#a6da95'> </span> Spotify",
|
||||
"(.*)Spotify Premium":
|
||||
"<span foreground='#a6da95'> </span> Spotify Premium",
|
||||
|
||||
"OBS(.*)":
|
||||
"<span foreground='#a5adcb'> </span> OBS Studio",
|
||||
|
||||
"VLC media player":
|
||||
"<span foreground='#f5a97f'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player":
|
||||
"<span foreground='#f5a97f'> </span> $1",
|
||||
|
||||
"(.*) - mpv":
|
||||
"<span foreground='#c6a0f6'> </span> $1",
|
||||
|
||||
"qView": " qView",
|
||||
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Social
|
||||
|
||||
"vesktop":
|
||||
"<span foreground='#8aadf4'> </span> Discord",
|
||||
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)":
|
||||
"<span foreground='#8aadf4'> </span> $1Discord$2",
|
||||
|
||||
// Documents
|
||||
|
||||
"ONLYOFFICE Desktop Editors":
|
||||
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
|
||||
|
||||
"(.*).docx":
|
||||
"<span foreground='#8aadf4'> </span> $1.docx",
|
||||
"(.*).xlsx":
|
||||
"<span foreground='#a6da95'> </span> $1.xlsx",
|
||||
"(.*).pptx":
|
||||
"<span foreground='#f5a97f'> </span> $1.pptx",
|
||||
"(.*).pdf":
|
||||
"<span foreground='#ed8796'> </span> $1.pdf",
|
||||
|
||||
// System
|
||||
"Authenticate": " Authenticate"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/temperature": {
|
||||
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"warning": 75,
|
||||
"critical": 90
|
||||
},
|
||||
|
||||
"format": " {percentage}%",
|
||||
"format-critical": " {percentage}%",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"format": " {usage}%",
|
||||
"tooltip": false,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/distro": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
|
||||
"format-icons": {
|
||||
"activated": " ",
|
||||
"deactivated": " "
|
||||
},
|
||||
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"on-click-right": "mode",
|
||||
|
||||
"format": {
|
||||
"months":
|
||||
"<span color='#b7bdf8'><b>{}</b></span>",
|
||||
"weekdays":
|
||||
"<span color='#a5adcb' font='7'>{}</span>",
|
||||
"today":
|
||||
"<span color='#ed8796'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
|
||||
"actions": {
|
||||
"on-click": "mode",
|
||||
"on-click-right": "mode"
|
||||
},
|
||||
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"format-connected-battery": "",
|
||||
|
||||
"tooltip-format":
|
||||
"{num_connections} connected",
|
||||
"tooltip-format-disabled":
|
||||
"Bluetooth Disabled",
|
||||
"tooltip-format-connected":
|
||||
"{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected":
|
||||
"{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery":
|
||||
":: {device_alias}: {device_battery_percentage}%",
|
||||
|
||||
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||
"interval": 1,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"custom/update": {
|
||||
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||
"interval": 30,
|
||||
"min-length": 1,
|
||||
"max-length": 1
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"spotify": "<span foreground='#a6da95'> </span>",
|
||||
"firefox": "<span foreground='#ed8796'> </span>"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "<span color='#b7bdf8'>\u200A\u200A\u2009\u2009</span>"
|
||||
},
|
||||
|
||||
"tooltip-format": "Playing: {title} - {artist}",
|
||||
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||
"min-length": 5,
|
||||
"max-length": 35
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
"headphone": "",
|
||||
"headset": ""
|
||||
},
|
||||
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"tooltip": false,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
|
||||
"tooltip-format": "Discharging: {time}",
|
||||
"tooltip-format-charging": "Charging: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
// "tooltip-format": "Power Menu",
|
||||
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||
},
|
||||
|
||||
// <<--< Padding >-->>
|
||||
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/paddc": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Arrows
|
||||
|
||||
"custom/left1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left6": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left7": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left8": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Arrows
|
||||
|
||||
"custom/right1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right3": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right4": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right5": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Left Inverse
|
||||
|
||||
"custom/leftin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/leftin2": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Right Inverse
|
||||
|
||||
"custom/rightin1": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user