Compare commits
26 Commits
9365615f06
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 26f8c79767 | |||
| a1ac6850bb | |||
| bd49925080 | |||
| f0739adf34 | |||
| 98bd7c5393 | |||
| 01f7b4fb8e | |||
| 6e647070d8 | |||
| e45ea11b28 | |||
| df361218f9 | |||
| ac16d751ce | |||
| dc3133cc94 | |||
| 8eb626164b | |||
| bc86670611 | |||
| 0eb25b77a6 | |||
| 30b83934d1 | |||
| 087f199ca0 | |||
| e2d9f5ab05 | |||
| b0783e09e5 | |||
| eb3c74373d | |||
| 283a649486 | |||
| 134a0ff79a | |||
| 6a4f312ec9 | |||
| 2f7b121bda | |||
| 52137e5e3b | |||
| e240822532 | |||
| b6e8123c91 |
@@ -6,7 +6,6 @@
|
|||||||
!alacritty/
|
!alacritty/
|
||||||
!dunst/
|
!dunst/
|
||||||
!hypr/
|
!hypr/
|
||||||
!hyprpanel/
|
|
||||||
!nvim/
|
!nvim/
|
||||||
!waybar/
|
!waybar/
|
||||||
!zathura/
|
!zathura/
|
||||||
@@ -24,4 +23,3 @@
|
|||||||
!wireplumber/
|
!wireplumber/
|
||||||
!systemd/
|
!systemd/
|
||||||
fish/fish_variables
|
fish/fish_variables
|
||||||
waybar/fluxo-rs
|
|
||||||
|
|||||||
+12
-15
@@ -1,12 +1,3 @@
|
|||||||
[submodule "waybar/catppuccin-waybar"]
|
|
||||||
path = waybar/catppuccin-waybar
|
|
||||||
url = https://github.com/catppuccin/waybar.git
|
|
||||||
[submodule "hypr/catppuccin-hyprland"]
|
|
||||||
path = hypr/catppuccin-hyprland
|
|
||||||
url = https://github.com/catppuccin/hyprland.git
|
|
||||||
[submodule "hypr/catppuccin-hyprlock"]
|
|
||||||
path = hypr/catppuccin-hyprlock
|
|
||||||
url = https://github.com/catppuccin/hyprlock.git
|
|
||||||
[submodule "zathura/catppuccin-zathura"]
|
[submodule "zathura/catppuccin-zathura"]
|
||||||
path = zathura/catppuccin-zathura
|
path = zathura/catppuccin-zathura
|
||||||
url = https://github.com/catppuccin/zathura.git
|
url = https://github.com/catppuccin/zathura.git
|
||||||
@@ -16,12 +7,18 @@
|
|||||||
[submodule "nvim/pack/nvim/start/nvim-lspconfig"]
|
[submodule "nvim/pack/nvim/start/nvim-lspconfig"]
|
||||||
path = nvim/pack/nvim/start/nvim-lspconfig
|
path = nvim/pack/nvim/start/nvim-lspconfig
|
||||||
url = https://github.com/neovim/nvim-lspconfig
|
url = https://github.com/neovim/nvim-lspconfig
|
||||||
[submodule "btop/catppuccin-btop"]
|
[submodule "waybar/catppuccin-waybar"]
|
||||||
path = btop/catppuccin-btop
|
path = waybar/catppuccin-waybar
|
||||||
url = https://github.com/catppuccin/btop.git
|
url = https://github.com/catppuccin/waybar.git
|
||||||
|
[submodule "hypr/catppuccin-hyprland"]
|
||||||
|
path = hypr/catppuccin-hyprland
|
||||||
|
url = https://github.com/catppuccin/hyprland.git
|
||||||
|
[submodule "hypr/catppuccin-hyprlock"]
|
||||||
|
path = hypr/catppuccin-hyprlock
|
||||||
|
url = https://github.com/catppuccin/hyprlock.git
|
||||||
[submodule "fuzzel/catppuccin-fuzzel"]
|
[submodule "fuzzel/catppuccin-fuzzel"]
|
||||||
path = fuzzel/catppuccin-fuzzel
|
path = fuzzel/catppuccin-fuzzel
|
||||||
url = https://github.com/catppuccin/fuzzel.git
|
url = https://github.com/catppuccin/fuzzel.git
|
||||||
[submodule "nvim"]
|
[submodule "btop/catppuccin-btop"]
|
||||||
path = nvim
|
path = btop/catppuccin-btop
|
||||||
url = https://git.narl.io/nvrl/nvim-config.git
|
url = https://github.com/catppuccin/btop.git
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
# My dotfiles
|
# desktop rice
|
||||||
|
|
||||||

|

|
||||||

|
|
||||||

|
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ lines = 24
|
|||||||
|
|
||||||
## Blank space added around the window in pixels.
|
## Blank space added around the window in pixels.
|
||||||
[window.padding]
|
[window.padding]
|
||||||
x = 3
|
x = 30
|
||||||
y = 0
|
y = 30
|
||||||
|
|
||||||
## SCROLLING ------------------------------------------------------
|
## SCROLLING ------------------------------------------------------
|
||||||
[scrolling]
|
[scrolling]
|
||||||
@@ -104,8 +104,3 @@ ipc_socket = true
|
|||||||
|
|
||||||
## Import additional configuration files.
|
## Import additional configuration files.
|
||||||
import = ["~/.config/alacritty/colors.toml", "~/.config/alacritty/fonts.toml"]
|
import = ["~/.config/alacritty/colors.toml", "~/.config/alacritty/fonts.toml"]
|
||||||
|
|
||||||
[[keyboard.bindings]]
|
|
||||||
key = "Return"
|
|
||||||
mods = "Shift"
|
|
||||||
chars = "\u001B\r"
|
|
||||||
|
|||||||
@@ -4,26 +4,26 @@
|
|||||||
|
|
||||||
[font]
|
[font]
|
||||||
## Font size in points.
|
## Font size in points.
|
||||||
size = 10
|
size = 14
|
||||||
|
|
||||||
## When true, Alacritty will use a custom built-in font for box drawing characters and powerline symbols.
|
## When true, Alacritty will use a custom built-in font for box drawing characters and powerline symbols.
|
||||||
builtin_box_drawing = true
|
builtin_box_drawing = true
|
||||||
|
|
||||||
## Normal font family.
|
## Normal font family.
|
||||||
[font.normal]
|
[font.normal]
|
||||||
family = "0xProto Nerd Font Mono"
|
family = "Fira Mono"
|
||||||
|
|
||||||
## If the family is not specified, it will fall back to the value specified for the normal font.
|
## If the family is not specified, it will fall back to the value specified for the normal font.
|
||||||
[font.bold]
|
[font.bold]
|
||||||
family = "0xProto Nerd Font Mono"
|
family = "Fira Mono"
|
||||||
|
|
||||||
## If the family is not specified, it will fall back to the value specified for the normal font.
|
## If the family is not specified, it will fall back to the value specified for the normal font.
|
||||||
[font.italic]
|
[font.italic]
|
||||||
family = "0xProto Nerd Font Mono"
|
family = "Fira Mono"
|
||||||
|
|
||||||
## If the family is not specified, it will fall back to the value specified for the normal font.
|
## If the family is not specified, it will fall back to the value specified for the normal font.
|
||||||
[font.bold_italic]
|
[font.bold_italic]
|
||||||
family = "0xProto Nerd Font Mono"
|
family = "Fira Mono"
|
||||||
|
|
||||||
## Offset is the extra space around each character.
|
## Offset is the extra space around each character.
|
||||||
## 'y' can be thought of as modifying the line spacing, and 'x' as modifying the letter spacing.
|
## 'y' can be thought of as modifying the line spacing, and 'x' as modifying the letter spacing.
|
||||||
|
|||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
--enable-features=AcceleratedVideoDecodeLinuxGL,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,Vulkan,VulkanFromANGLE,PlatformHEVCDecoderSupport,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder
|
--enable-features=AcceleratedVideoDecodeLinuxGL,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,Vulkan,VulkanFromANGLE,PlatformHEVCDecoderSupport,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder
|
||||||
--use-angle=vulkan
|
--use-angle=vulkan
|
||||||
--use-gl=angle
|
--use-gl=angle
|
||||||
--ozone-platform=wayland
|
--ozone-platform=wayland
|
||||||
|
|||||||
+50
-65
@@ -1,18 +1,18 @@
|
|||||||
#? Config file for btop v.1.4.6
|
#? Config file for btop v. 1.4.5
|
||||||
|
|
||||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
#* 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"
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
color_theme = "/home/narl/.config/btop/themes/catppuccin_mocha.theme"
|
color_theme = "/home/narl/.config/btop/themes/catppuccin_mocha.theme"
|
||||||
|
|
||||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
theme_background = false
|
theme_background = False
|
||||||
|
|
||||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
truecolor = true
|
truecolor = True
|
||||||
|
|
||||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
#* 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.
|
#* 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
|
force_tty = False
|
||||||
|
|
||||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
#* 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.
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
@@ -22,13 +22,10 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
|
|||||||
|
|
||||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
#* 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.
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
vim_keys = true
|
vim_keys = True
|
||||||
|
|
||||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
rounded_corners = true
|
rounded_corners = True
|
||||||
|
|
||||||
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
|
|
||||||
terminal_sync = true
|
|
||||||
|
|
||||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
@@ -56,47 +53,44 @@ graph_symbol_proc = "default"
|
|||||||
shown_boxes = "cpu mem net proc"
|
shown_boxes = "cpu mem net proc"
|
||||||
|
|
||||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||||
update_ms = 1000
|
update_ms = 2000
|
||||||
|
|
||||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
#* 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.
|
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||||
proc_sorting = "cpu lazy"
|
proc_sorting = "cpu direct"
|
||||||
|
|
||||||
#* Reverse sorting order, True or False.
|
#* Reverse sorting order, True or False.
|
||||||
proc_reversed = false
|
proc_reversed = False
|
||||||
|
|
||||||
#* Show processes as a tree.
|
#* Show processes as a tree.
|
||||||
proc_tree = true
|
proc_tree = True
|
||||||
|
|
||||||
#* Use the cpu graph colors in the process list.
|
#* Use the cpu graph colors in the process list.
|
||||||
proc_colors = true
|
proc_colors = True
|
||||||
|
|
||||||
#* Use a darkening gradient in the process list.
|
#* Use a darkening gradient in the process list.
|
||||||
proc_gradient = true
|
proc_gradient = True
|
||||||
|
|
||||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
proc_per_core = false
|
proc_per_core = True
|
||||||
|
|
||||||
#* Show process memory as bytes instead of percent.
|
#* Show process memory as bytes instead of percent.
|
||||||
proc_mem_bytes = true
|
proc_mem_bytes = True
|
||||||
|
|
||||||
#* Show cpu graph for each process.
|
#* Show cpu graph for each process.
|
||||||
proc_cpu_graphs = true
|
proc_cpu_graphs = True
|
||||||
|
|
||||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
proc_info_smaps = false
|
proc_info_smaps = False
|
||||||
|
|
||||||
#* Show proc box on left side of screen instead of right.
|
#* Show proc box on left side of screen instead of right.
|
||||||
proc_left = false
|
proc_left = False
|
||||||
|
|
||||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
proc_filter_kernel = false
|
proc_filter_kernel = False
|
||||||
|
|
||||||
#* In tree-view, always accumulate child process resources in the parent process.
|
#* In tree-view, always accumulate child process resources in the parent process.
|
||||||
proc_aggregate = false
|
proc_aggregate = False
|
||||||
|
|
||||||
#* Should cpu and memory usage display be preserved for dead processes when paused.
|
|
||||||
keep_dead_proc_usage = false
|
|
||||||
|
|
||||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
#* 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.
|
#* Select from a list of detected attributes from the options menu.
|
||||||
@@ -110,28 +104,28 @@ cpu_graph_lower = "Auto"
|
|||||||
show_gpu_info = "Auto"
|
show_gpu_info = "Auto"
|
||||||
|
|
||||||
#* Toggles if the lower CPU graph should be inverted.
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
cpu_invert_lower = true
|
cpu_invert_lower = True
|
||||||
|
|
||||||
#* Set to True to completely disable the lower CPU graph.
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
cpu_single_graph = false
|
cpu_single_graph = False
|
||||||
|
|
||||||
#* Show cpu box at bottom of screen instead of top.
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
cpu_bottom = false
|
cpu_bottom = False
|
||||||
|
|
||||||
#* Shows the system uptime in the CPU box.
|
#* Shows the system uptime in the CPU box.
|
||||||
show_uptime = true
|
show_uptime = True
|
||||||
|
|
||||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
#* 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_watts = True
|
||||||
|
|
||||||
#* Show cpu temperature.
|
#* Show cpu temperature.
|
||||||
check_temp = true
|
check_temp = True
|
||||||
|
|
||||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
cpu_sensor = "Auto"
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
show_coretemp = true
|
show_coretemp = True
|
||||||
|
|
||||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
#* 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.
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
@@ -143,20 +137,17 @@ cpu_core_map = ""
|
|||||||
temp_scale = "celsius"
|
temp_scale = "celsius"
|
||||||
|
|
||||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
base_10_sizes = false
|
base_10_sizes = False
|
||||||
|
|
||||||
#* Show CPU frequency.
|
#* Show CPU frequency.
|
||||||
show_cpu_freq = true
|
show_cpu_freq = True
|
||||||
|
|
||||||
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
|
|
||||||
freq_mode = "first"
|
|
||||||
|
|
||||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
clock_format = "%X"
|
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.
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
background_update = true
|
background_update = True
|
||||||
|
|
||||||
#* Custom cpu model name, empty string to disable.
|
#* Custom cpu model name, empty string to disable.
|
||||||
custom_cpu_name = ""
|
custom_cpu_name = ""
|
||||||
@@ -166,43 +157,43 @@ custom_cpu_name = ""
|
|||||||
disks_filter = ""
|
disks_filter = ""
|
||||||
|
|
||||||
#* Show graphs instead of meters for memory values.
|
#* Show graphs instead of meters for memory values.
|
||||||
mem_graphs = true
|
mem_graphs = True
|
||||||
|
|
||||||
#* Show mem box below net box instead of above.
|
#* Show mem box below net box instead of above.
|
||||||
mem_below_net = false
|
mem_below_net = False
|
||||||
|
|
||||||
#* Count ZFS ARC in cached and available memory.
|
#* Count ZFS ARC in cached and available memory.
|
||||||
zfs_arc_cached = true
|
zfs_arc_cached = True
|
||||||
|
|
||||||
#* If swap memory should be shown in memory box.
|
#* If swap memory should be shown in memory box.
|
||||||
show_swap = true
|
show_swap = True
|
||||||
|
|
||||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
swap_disk = true
|
swap_disk = True
|
||||||
|
|
||||||
#* If mem box should be split to also show disks info.
|
#* If mem box should be split to also show disks info.
|
||||||
show_disks = true
|
show_disks = True
|
||||||
|
|
||||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
only_physical = true
|
only_physical = True
|
||||||
|
|
||||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
use_fstab = true
|
use_fstab = True
|
||||||
|
|
||||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
zfs_hide_datasets = false
|
zfs_hide_datasets = False
|
||||||
|
|
||||||
#* Set to true to show available disk space for privileged users.
|
#* Set to true to show available disk space for privileged users.
|
||||||
disk_free_priv = false
|
disk_free_priv = False
|
||||||
|
|
||||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
show_io_stat = true
|
show_io_stat = True
|
||||||
|
|
||||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
io_mode = false
|
io_mode = False
|
||||||
|
|
||||||
#* Set to True to show combined read/write io graphs in io mode.
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
io_graph_combined = false
|
io_graph_combined = False
|
||||||
|
|
||||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
#* 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".
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
@@ -214,10 +205,10 @@ net_download = 100
|
|||||||
net_upload = 100
|
net_upload = 100
|
||||||
|
|
||||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
net_auto = true
|
net_auto = True
|
||||||
|
|
||||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
net_sync = true
|
net_sync = True
|
||||||
|
|
||||||
#* Starts with the Network Interface specified here.
|
#* Starts with the Network Interface specified here.
|
||||||
net_iface = ""
|
net_iface = ""
|
||||||
@@ -226,32 +217,26 @@ net_iface = ""
|
|||||||
base_10_bitrate = "Auto"
|
base_10_bitrate = "Auto"
|
||||||
|
|
||||||
#* Show battery stats in top right if battery is present.
|
#* Show battery stats in top right if battery is present.
|
||||||
show_battery = true
|
show_battery = True
|
||||||
|
|
||||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
selected_battery = "Auto"
|
selected_battery = "Auto"
|
||||||
|
|
||||||
#* Show power stats of battery next to charge indicator.
|
#* Show power stats of battery next to charge indicator.
|
||||||
show_battery_watts = true
|
show_battery_watts = True
|
||||||
|
|
||||||
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
log_level = "WARNING"
|
log_level = "WARNING"
|
||||||
|
|
||||||
#* Automatically save current settings to config file on exit.
|
|
||||||
save_config_on_exit = true
|
|
||||||
|
|
||||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||||
nvml_measure_pcie_speeds = true
|
nvml_measure_pcie_speeds = True
|
||||||
|
|
||||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||||
rsmi_measure_pcie_speeds = true
|
rsmi_measure_pcie_speeds = True
|
||||||
|
|
||||||
#* Horizontally mirror the GPU graph.
|
#* Horizontally mirror the GPU graph.
|
||||||
gpu_mirror_graph = true
|
gpu_mirror_graph = True
|
||||||
|
|
||||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
|
|
||||||
shown_gpus = "nvidia amd intel"
|
|
||||||
|
|
||||||
#* Custom gpu0 model name, empty string to disable.
|
#* Custom gpu0 model name, empty string to disable.
|
||||||
custom_gpu_name0 = ""
|
custom_gpu_name0 = ""
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
--enable-features=AcceleratedVideoDecodeLinuxGL,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,Vulkan,VulkanFromANGLE,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder
|
|
||||||
--use-angle=vulkan
|
|
||||||
--use-gl=angle
|
|
||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
[global]
|
[global]
|
||||||
corner_radius = 4
|
corner_radius = 4
|
||||||
transparency = 90
|
transparency = 90
|
||||||
frame_color = "#f38ba8"
|
frame_color = "#94e2d5"
|
||||||
frame_width = 1
|
frame_width = 1
|
||||||
separator_color= frame
|
separator_color= frame
|
||||||
highlight = "#89dceb"
|
highlight = "#89b4fa"
|
||||||
|
|
||||||
[urgency_low]
|
[urgency_low]
|
||||||
background = "#1e1e2e"
|
background = "#1e1e2e"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
# This file was created by fish when upgrading to version 4.3, to migrate
|
|
||||||
# the 'fish_key_bindings' variable from its old default scope (universal)
|
|
||||||
# to its new default scope (global). We recommend you delete this file
|
|
||||||
# and configure key bindings in ~/.config/fish/config.fish if needed.
|
|
||||||
|
|
||||||
set --global fish_key_bindings fish_vi_key_bindings
|
|
||||||
|
|
||||||
# Prior to version 4.3, fish shipped an event handler that runs
|
|
||||||
# `set --universal fish_key_bindings fish_default_key_bindings`
|
|
||||||
# whenever the fish_key_bindings variable is erased.
|
|
||||||
# This means that as long as any fish < 4.3 is still running on this system,
|
|
||||||
# we cannot complete the migration.
|
|
||||||
# As a workaround, erase the universal variable at every shell startup.
|
|
||||||
set --erase --universal fish_key_bindings
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# This file was created by fish when upgrading to version 4.3, to migrate
|
|
||||||
# theme variables from universal to global scope.
|
|
||||||
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
|
|
||||||
# To customize your theme, delete this file and see
|
|
||||||
# help interactive#syntax-highlighting
|
|
||||||
# or
|
|
||||||
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
|
|
||||||
# for appropriate commands to add to ~/.config/fish/config.fish instead.
|
|
||||||
# See also the release notes for fish 4.3.0 (run `help relnotes`).
|
|
||||||
|
|
||||||
set --global fish_color_autosuggestion 6c7086
|
|
||||||
set --global fish_color_cancel f38ba8
|
|
||||||
set --global fish_color_command 89b4fa
|
|
||||||
set --global fish_color_comment 7f849c
|
|
||||||
set --global fish_color_cwd f9e2af
|
|
||||||
set --global fish_color_cwd_root red
|
|
||||||
set --global fish_color_end fab387
|
|
||||||
set --global fish_color_error f38ba8
|
|
||||||
set --global fish_color_escape eba0ac
|
|
||||||
set --global fish_color_gray 6c7086
|
|
||||||
set --global fish_color_history_current --bold
|
|
||||||
set --global fish_color_host 89b4fa
|
|
||||||
set --global fish_color_host_remote a6e3a1
|
|
||||||
set --global fish_color_keyword f38ba8
|
|
||||||
set --global fish_color_match --background=brblue
|
|
||||||
set --global fish_color_normal cdd6f4
|
|
||||||
set --global fish_color_operator f5c2e7
|
|
||||||
set --global fish_color_option a6e3a1
|
|
||||||
set --global fish_color_param f2cdcd
|
|
||||||
set --global fish_color_quote a6e3a1
|
|
||||||
set --global fish_color_redirection f5c2e7
|
|
||||||
set --global fish_color_search_match --background=313244
|
|
||||||
set --global fish_color_selection --background=313244
|
|
||||||
set --global fish_color_status f38ba8
|
|
||||||
set --global fish_color_user 94e2d5
|
|
||||||
set --global fish_color_valid_path --underline
|
|
||||||
set --global fish_pager_color_background
|
|
||||||
set --global fish_pager_color_completion cdd6f4
|
|
||||||
set --global fish_pager_color_description 6c7086
|
|
||||||
set --global fish_pager_color_prefix f5c2e7
|
|
||||||
set --global fish_pager_color_progress 6c7086
|
|
||||||
set --global fish_pager_color_secondary_background
|
|
||||||
set --global fish_pager_color_secondary_completion
|
|
||||||
set --global fish_pager_color_secondary_description
|
|
||||||
set --global fish_pager_color_secondary_prefix
|
|
||||||
set --global fish_pager_color_selected_background
|
|
||||||
set --global fish_pager_color_selected_completion
|
|
||||||
set --global fish_pager_color_selected_description
|
|
||||||
set --global fish_pager_color_selected_prefix
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# Path to Oh My Fish install.
|
|
||||||
set -q XDG_DATA_HOME
|
|
||||||
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
|
|
||||||
or set -gx OMF_PATH "$HOME/.local/share/omf"
|
|
||||||
|
|
||||||
# Load Oh My Fish configuration.
|
|
||||||
source $OMF_PATH/init.fish
|
|
||||||
+2
-32
@@ -1,39 +1,9 @@
|
|||||||
if status is-interactive
|
|
||||||
# Commands to run in interactive sessions can go here
|
|
||||||
end
|
|
||||||
# set SPACESHIP_PROMPT_ADD_NEWLINE false
|
|
||||||
# set SPACESHIP_TIME_SHOW false
|
|
||||||
# set SPACESHIP_USER_SHOW always
|
|
||||||
# set SPACESHIP_HOST_SHOW true
|
|
||||||
# set SPACESHIP_CHAR_SYMBOL ""
|
|
||||||
# set SPACESHIP_CHAR_SYMBOL=" "
|
|
||||||
# set SPACESHIP_VI_MODE_INSERT
|
|
||||||
# set SPACESHIP_VI_MODE_NORMAL
|
|
||||||
# Set the cursor shapes for the different vi modes.
|
|
||||||
set fish_cursor_default block blink
|
set fish_cursor_default block blink
|
||||||
set fish_cursor_insert line blink
|
set fish_cursor_insert line blink
|
||||||
set fish_cursor_replace_one underscore blink
|
set fish_cursor_replace_one underscore blink
|
||||||
set fish_cursor_visual block
|
set fish_cursor_visual block
|
||||||
# starship init fish | source
|
|
||||||
fish_vi_key_bindings
|
fish_vi_key_bindings
|
||||||
if test -e ~/.cache/wal/colors.fish
|
|
||||||
source ~/.cache/wal/colors.fish
|
|
||||||
end
|
|
||||||
zoxide init --cmd cd fish | source
|
zoxide init --cmd cd fish | source
|
||||||
set -gx PATH ~/.local/bin $PATH
|
if uwsm check may-start && uwsm select
|
||||||
# if not pgrep --full ssh-agent | string collect > /dev/null
|
exec uwsm start default
|
||||||
# eval (ssh-agent -c)
|
|
||||||
# set -Ux SSH_AGENT_PID $SSH_AGENT_PID
|
|
||||||
# set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
|
|
||||||
# end
|
|
||||||
# Set SSH_AUTH_SOCK for GNOME Keyring / systemd
|
|
||||||
# The socket path is predictable
|
|
||||||
set -l GCR_SSH_SOCK $XDG_RUNTIME_DIR/gcr/ssh
|
|
||||||
if test -S "$GCR_SSH_SOCK"
|
|
||||||
set -gx SSH_AUTH_SOCK "$GCR_SSH_SOCK"
|
|
||||||
end
|
|
||||||
if status is-login && test -z "$DISPLAY" -a -z "$WAYLAND_DISPLAY"
|
|
||||||
if uwsm check may-start && uwsm select
|
|
||||||
exec uwsm start default
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
franciscolourenco/done
|
franciscolourenco/done
|
||||||
jorgebucaran/autopair.fish
|
jorgebucaran/autopair.fish
|
||||||
|
catppuccin/fish
|
||||||
|
|||||||
@@ -0,0 +1,130 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR CUDAToolkit_ROOT:/opt/cuda/
|
||||||
|
SETUVAR DATABASE_URL:sqlite\x3adatabase\x2esqlite
|
||||||
|
SETUVAR GLFW_IM_MODULE:ibus
|
||||||
|
SETUVAR MANPAGER:sh\x20\x2dc\x20\x27col\x20\x2dbx\x20\x7c\x20bat\x20\x2dl\x20man\x20\x2dp\x27
|
||||||
|
SETUVAR RUST_LOG:debug
|
||||||
|
SETUVAR --export SSH_AGENT_PID:967
|
||||||
|
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXX7Ck8nI/agent\x2e966
|
||||||
|
SETUVAR SXHKD_SHELL:/usr/bin/bash
|
||||||
|
SETUVAR ZO_CMD:zo
|
||||||
|
SETUVAR Z_CMD:z
|
||||||
|
SETUVAR Z_DATA:/home/narl/\x2elocal/share/z/data
|
||||||
|
SETUVAR Z_DATA_DIR:/home/narl/\x2elocal/share/z
|
||||||
|
SETUVAR Z_EXCLUDE:\x5e/home/narl\x24
|
||||||
|
SETUVAR __done_min_cmd_duration:5000
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme
|
||||||
|
SETUVAR _fisher_franciscolourenco_2F_done_files:/home/niru/\x2econfig/fish/conf\x2ed/done\x2efish
|
||||||
|
SETUVAR _fisher_jorgebucaran_2F_autopair_2E_fish_files:/home/niru/\x2econfig/fish/functions/_autopair_backspace\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_left\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_right\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_same\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_tab\x2efish\x1e/home/niru/\x2econfig/fish/conf\x2ed/autopair\x2efish
|
||||||
|
SETUVAR _fisher_plugins:franciscolourenco/done\x1ejorgebucaran/autopair\x2efish\x1ecatppuccin/fish
|
||||||
|
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
||||||
|
SETUVAR fish_color_autosuggestion:6c7086
|
||||||
|
SETUVAR fish_color_cancel:f38ba8
|
||||||
|
SETUVAR fish_color_command:89b4fa
|
||||||
|
SETUVAR fish_color_comment:7f849c
|
||||||
|
SETUVAR fish_color_cwd:f9e2af
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:fab387
|
||||||
|
SETUVAR fish_color_error:f38ba8
|
||||||
|
SETUVAR fish_color_escape:eba0ac
|
||||||
|
SETUVAR fish_color_gray:6c7086
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:89b4fa
|
||||||
|
SETUVAR fish_color_host_remote:a6e3a1
|
||||||
|
SETUVAR fish_color_keyword:f38ba8
|
||||||
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SETUVAR fish_color_normal:cdd6f4
|
||||||
|
SETUVAR fish_color_operator:f5c2e7
|
||||||
|
SETUVAR fish_color_option:a6e3a1
|
||||||
|
SETUVAR fish_color_param:f2cdcd
|
||||||
|
SETUVAR fish_color_quote:a6e3a1
|
||||||
|
SETUVAR fish_color_redirection:f5c2e7
|
||||||
|
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d313244
|
||||||
|
SETUVAR fish_color_selection:\x2d\x2dbackground\x3d313244
|
||||||
|
SETUVAR fish_color_status:f38ba8
|
||||||
|
SETUVAR fish_color_user:94e2d5
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:\x1d
|
||||||
|
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||||
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_completion:cdd6f4
|
||||||
|
SETUVAR fish_pager_color_description:6c7086
|
||||||
|
SETUVAR fish_pager_color_prefix:f5c2e7
|
||||||
|
SETUVAR fish_pager_color_progress:6c7086
|
||||||
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:/home/narl/\x2elocal/share/nvim/mason/bin\x1e/home/niru/\x2escripts\x1e/home/niru/Documents/rust\x2ddev/practice\x2drs/target/release\x1e/opt/cuda/bin\x1e/home/niru/\x2e
|
||||||
|
SETUVAR pure_begin_prompt_with_current_directory:true
|
||||||
|
SETUVAR pure_check_for_new_release:false
|
||||||
|
SETUVAR pure_color_at_sign:pure_color_mute
|
||||||
|
SETUVAR pure_color_aws_profile:pure_color_warning
|
||||||
|
SETUVAR pure_color_command_duration:pure_color_warning
|
||||||
|
SETUVAR pure_color_current_directory:pure_color_primary
|
||||||
|
SETUVAR pure_color_danger:red
|
||||||
|
SETUVAR pure_color_dark:black
|
||||||
|
SETUVAR pure_color_git_branch:pure_color_mute
|
||||||
|
SETUVAR pure_color_git_dirty:pure_color_mute
|
||||||
|
SETUVAR pure_color_git_stash:pure_color_info
|
||||||
|
SETUVAR pure_color_git_unpulled_commits:pure_color_info
|
||||||
|
SETUVAR pure_color_git_unpushed_commits:pure_color_info
|
||||||
|
SETUVAR pure_color_hostname:pure_color_mute
|
||||||
|
SETUVAR pure_color_info:cyan
|
||||||
|
SETUVAR pure_color_jobs:pure_color_normal
|
||||||
|
SETUVAR pure_color_k8s_context:pure_color_success
|
||||||
|
SETUVAR pure_color_k8s_namespace:pure_color_primary
|
||||||
|
SETUVAR pure_color_k8s_prefix:pure_color_info
|
||||||
|
SETUVAR pure_color_light:white
|
||||||
|
SETUVAR pure_color_mute:brblack
|
||||||
|
SETUVAR pure_color_nixdevshell_prefix:pure_color_info
|
||||||
|
SETUVAR pure_color_nixdevshell_symbol:pure_color_mute
|
||||||
|
SETUVAR pure_color_normal:normal
|
||||||
|
SETUVAR pure_color_prefix_root_prompt:pure_color_danger
|
||||||
|
SETUVAR pure_color_primary:blue
|
||||||
|
SETUVAR pure_color_prompt_on_error:pure_color_danger
|
||||||
|
SETUVAR pure_color_prompt_on_success:pure_color_success
|
||||||
|
SETUVAR pure_color_success:magenta
|
||||||
|
SETUVAR pure_color_system_time:pure_color_mute
|
||||||
|
SETUVAR pure_color_username_normal:pure_color_mute
|
||||||
|
SETUVAR pure_color_username_root:pure_color_light
|
||||||
|
SETUVAR pure_color_virtualenv:pure_color_mute
|
||||||
|
SETUVAR pure_color_warning:yellow
|
||||||
|
SETUVAR pure_enable_aws_profile:true
|
||||||
|
SETUVAR pure_enable_container_detection:true
|
||||||
|
SETUVAR pure_enable_git:true
|
||||||
|
SETUVAR pure_enable_k8s:false
|
||||||
|
SETUVAR pure_enable_nixdevshell:false
|
||||||
|
SETUVAR pure_enable_single_line_prompt:false
|
||||||
|
SETUVAR pure_enable_virtualenv:true
|
||||||
|
SETUVAR pure_reverse_prompt_symbol_in_vimode:true
|
||||||
|
SETUVAR pure_separate_prompt_on_error:false
|
||||||
|
SETUVAR pure_shorten_prompt_current_directory_length:0
|
||||||
|
SETUVAR pure_shorten_window_title_current_directory_length:0
|
||||||
|
SETUVAR pure_show_jobs:true
|
||||||
|
SETUVAR pure_show_prefix_root_prompt:false
|
||||||
|
SETUVAR pure_show_subsecond_command_duration:false
|
||||||
|
SETUVAR pure_show_system_time:false
|
||||||
|
SETUVAR pure_symbol_aws_profile_prefix:
|
||||||
|
SETUVAR pure_symbol_container_prefix:
|
||||||
|
SETUVAR pure_symbol_git_dirty:\x2a
|
||||||
|
SETUVAR pure_symbol_git_stash:\u2261
|
||||||
|
SETUVAR pure_symbol_git_unpulled_commits:\u21e3
|
||||||
|
SETUVAR pure_symbol_git_unpushed_commits:\u21e1
|
||||||
|
SETUVAR pure_symbol_k8s_prefix:\u2638
|
||||||
|
SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f
|
||||||
|
SETUVAR pure_symbol_prefix_root_prompt:\x23
|
||||||
|
SETUVAR pure_symbol_prompt:\x3e_
|
||||||
|
SETUVAR pure_symbol_reverse_prompt:\x7c_
|
||||||
|
SETUVAR pure_symbol_ssh_prefix:
|
||||||
|
SETUVAR pure_symbol_title_bar_separator:\x2d
|
||||||
|
SETUVAR pure_symbol_virtualenv_prefix:
|
||||||
|
SETUVAR pure_threshold_command_duration:5
|
||||||
|
SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1
|
||||||
|
SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
function convert_discord --wraps='ffmpeg -i <source> -s 1280x720 <source>-discord.mp4' --description 'alias convert_discord=ffmpeg -i <source> -s 1280x720 <source>-discord.mp4'
|
||||||
|
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -i $argv[1] -s 1280x720 (string split -r -m1 . $argv[1])[1]-discord.mp4;
|
||||||
|
end
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
function fish_prompt --description 'Write out the prompt'
|
|
||||||
set -l last_status $status
|
|
||||||
set -l normal (set_color normal)
|
|
||||||
set -l status_color (set_color brgreen)
|
|
||||||
set -l cwd_color (set_color $fish_color_cwd)
|
|
||||||
set -l vcs_color (set_color brpurple)
|
|
||||||
set -l prompt_status ""
|
|
||||||
|
|
||||||
# Since we display the prompt on a new line allow the directory names to be longer.
|
|
||||||
set -q fish_prompt_pwd_dir_length
|
|
||||||
or set -lx fish_prompt_pwd_dir_length 0
|
|
||||||
|
|
||||||
# Color the prompt differently when we're root
|
|
||||||
set -l suffix '❯'
|
|
||||||
if functions -q fish_is_root_user; and fish_is_root_user
|
|
||||||
if set -q fish_color_cwd_root
|
|
||||||
set cwd_color (set_color $fish_color_cwd_root)
|
|
||||||
end
|
|
||||||
set suffix '#'
|
|
||||||
end
|
|
||||||
|
|
||||||
# Color the prompt in red on error
|
|
||||||
if test $last_status -ne 0
|
|
||||||
set status_color (set_color $fish_color_error)
|
|
||||||
set prompt_status $status_color "[" $last_status "]" $normal
|
|
||||||
end
|
|
||||||
|
|
||||||
echo -s (prompt_login) ' ' $cwd_color (prompt_pwd) $vcs_color (fish_vcs_prompt) $normal ' ' $prompt_status
|
|
||||||
echo -n -s $status_color $suffix ' ' $normal
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
function get_open_ports --wraps='netstat -tunlp' --description 'alias get_open_ports=netstat -tunlp'
|
||||||
|
netstat -tunlp $argv;
|
||||||
|
end
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
function gitzip
|
|
||||||
git archive HEAD -o (basename $PWD).zip
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
function mpv_vr --wraps='mpv --script=360plugin.lua --script-opts=360plugin-enabled=yes' --description 'alias mpv_vr=mpv --script=360plugin.lua --script-opts=360plugin-enabled=yes'
|
||||||
|
mpv --script=~/.config/mpv/scripts/360plugin.lua --script-opts=360plugin-enabled=yes $argv;
|
||||||
|
end
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
function open -d "Open an application detached from the terminal"
|
|
||||||
nohup $argv >/dev/null 2>&1 &
|
|
||||||
end
|
|
||||||
+5
-20
@@ -1,28 +1,13 @@
|
|||||||
include=~/.config/fuzzel/catppuccin-fuzzel/themes/catppuccin-mocha/red.ini
|
include=~/.config/fuzzel/catppuccin-fuzzel/themes/catppuccin-mocha/mauve.ini
|
||||||
include=~/.config/fuzzel/catppuccin-fuzzel/themes/catppuccin-mocha/red.ini
|
|
||||||
|
|
||||||
[main]
|
[main]
|
||||||
font=FiraCode Nerd Font:size=14
|
font=FiraCode Nerd Font:size=14
|
||||||
terminal=alacritty
|
terminal=alacritty
|
||||||
dpi-aware=no
|
dpi-aware=no
|
||||||
|
prompt="> "
|
||||||
width=45
|
icon-theme=Papirus-Dark
|
||||||
lines=8
|
show-actions=yes
|
||||||
horizontal-pad=20
|
|
||||||
vertical-pad=20
|
|
||||||
inner-pad=10
|
|
||||||
|
|
||||||
prompt=" "
|
|
||||||
|
|
||||||
show-actions=no
|
|
||||||
layer=overlay
|
|
||||||
|
|
||||||
[border]
|
[border]
|
||||||
radius=12
|
radius=4
|
||||||
width=2
|
width=2
|
||||||
|
|
||||||
[colors]
|
|
||||||
background=1e1e2e80
|
|
||||||
# Matches the background so the counter becomes invisible for a cleaner look
|
|
||||||
counter=1e1e2eff
|
|
||||||
border=f38ba8ff
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
# narls hyprland dotfiles
|
# narls hyprland dotfiles
|
||||||
|
source = ~/.config/hypr/modules/plugins.conf
|
||||||
|
|
||||||
source = ~/.config/hypr/modules/monitors.conf
|
source = ~/.config/hypr/modules/monitors.conf
|
||||||
|
|
||||||
@@ -16,3 +17,4 @@ source = ~/.config/hypr/modules/input.conf
|
|||||||
source = ~/.config/hypr/modules/keybinds.conf
|
source = ~/.config/hypr/modules/keybinds.conf
|
||||||
|
|
||||||
source = ~/.config/hypr/modules/window_rules.conf
|
source = ~/.config/hypr/modules/window_rules.conf
|
||||||
|
|
||||||
|
|||||||
+43
-98
@@ -7,35 +7,38 @@ $font = JetBrainsMono Nerd Font
|
|||||||
# GENERAL
|
# GENERAL
|
||||||
general {
|
general {
|
||||||
hide_cursor = true
|
hide_cursor = true
|
||||||
no_fade_in = false
|
|
||||||
grace = 0
|
|
||||||
disable_loading_bar = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# BACKGROUND
|
# BACKGROUND
|
||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
path = $HOME/Pictures/reze/reze.png
|
path = $HOME/Pictures/wallpapers/rem-latte.jpg
|
||||||
blur_passes = 3
|
blur_passes = 0
|
||||||
blur_size = 7
|
|
||||||
noise = 0.0117
|
|
||||||
contrast = 0.8916
|
|
||||||
brightness = 0.8172
|
|
||||||
vibrancy = 0.1696
|
|
||||||
vibrancy_darkness = 0.0
|
|
||||||
color = $base
|
color = $base
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# LAYOUT
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = Layout: $LAYOUT
|
||||||
|
color = $text
|
||||||
|
font_size = 25
|
||||||
|
font_family = $font
|
||||||
|
position = 30, -30
|
||||||
|
halign = left
|
||||||
|
valign = top
|
||||||
|
}
|
||||||
|
|
||||||
# TIME
|
# TIME
|
||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = $TIME
|
text = $TIME
|
||||||
color = $text
|
color = $text
|
||||||
font_size = 120
|
font_size = 90
|
||||||
font_family = $font
|
font_family = $font
|
||||||
position = 0, 300
|
position = -30, 0
|
||||||
halign = center
|
halign = right
|
||||||
valign = center
|
valign = top
|
||||||
}
|
}
|
||||||
|
|
||||||
# DATE
|
# DATE
|
||||||
@@ -43,34 +46,46 @@ label {
|
|||||||
monitor =
|
monitor =
|
||||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||||
color = $text
|
color = $text
|
||||||
font_size = 30
|
font_size = 25
|
||||||
font_family = $font
|
font_family = $font
|
||||||
position = 0, 200
|
position = -30, -150
|
||||||
halign = center
|
halign = right
|
||||||
valign = center
|
valign = top
|
||||||
}
|
}
|
||||||
|
|
||||||
# USER AVATAR (Center)
|
# FINGERPRINT
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "$FPRINTPROMPT";
|
||||||
|
color = "$text";
|
||||||
|
font_size = 14;
|
||||||
|
font_family = $font;
|
||||||
|
position = "0, -107";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
|
||||||
|
# USER AVATAR
|
||||||
image {
|
image {
|
||||||
monitor =
|
monitor =
|
||||||
path = $HOME/.face
|
path = $HOME/.face
|
||||||
size = 120
|
size = 100
|
||||||
border_color = rgba(255, 255, 255, 0.1)
|
border_color = $accent
|
||||||
position = 0, 50
|
position = 0, 75
|
||||||
halign = center
|
halign = center
|
||||||
valign = center
|
valign = center
|
||||||
}
|
}
|
||||||
|
|
||||||
# INPUT FIELD (Center)
|
# INPUT FIELD
|
||||||
input-field {
|
input-field {
|
||||||
monitor =
|
monitor =
|
||||||
size = 300, 60
|
size = 300, 60
|
||||||
outline_thickness = 2
|
outline_thickness = 4
|
||||||
dots_size = 0.2
|
dots_size = 0.2
|
||||||
dots_spacing = 0.2
|
dots_spacing = 0.2
|
||||||
dots_center = true
|
dots_center = true
|
||||||
outer_color = rgba(255, 255, 255, 0.1)
|
outer_color = $accent
|
||||||
inner_color = rgba(0, 0, 0, 0.2)
|
inner_color = $surface0
|
||||||
font_color = $text
|
font_color = $text
|
||||||
fade_on_empty = false
|
fade_on_empty = false
|
||||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||||
@@ -79,77 +94,7 @@ input-field {
|
|||||||
fail_color = $red
|
fail_color = $red
|
||||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||||
capslock_color = $yellow
|
capslock_color = $yellow
|
||||||
position = 0, -60
|
position = 0, -47
|
||||||
halign = center
|
halign = center
|
||||||
valign = center
|
valign = center
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- MUSIC DASHBOARD (TOP RIGHT) ---
|
|
||||||
|
|
||||||
# ALBUM ART (At the very top right, 80px high, adjusted -3px for perfect alignment)
|
|
||||||
image {
|
|
||||||
monitor =
|
|
||||||
path = /tmp/hyprlock_art.png
|
|
||||||
size = 80
|
|
||||||
rounding = 15
|
|
||||||
border_color = rgba(255, 255, 255, 0.1)
|
|
||||||
reload_time = 2
|
|
||||||
reload_cmd = ~/.config/hypr/scripts/album_art.sh
|
|
||||||
position = -20, -17
|
|
||||||
halign = right
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
# MUSIC TEXT BOX (To the left of the image, same height)
|
|
||||||
shape {
|
|
||||||
monitor =
|
|
||||||
size = 300, 80
|
|
||||||
color = rgba(0, 0, 0, 0.3)
|
|
||||||
rounding = 15
|
|
||||||
border_size = 1
|
|
||||||
border_color = rgba(255, 255, 255, 0.1)
|
|
||||||
position = -110, -20
|
|
||||||
halign = right
|
|
||||||
valign = top
|
|
||||||
}
|
|
||||||
|
|
||||||
# MUSIC TEXT (Right aligned and vertically centered inside the 80px box)
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:1000] ~/.config/hypr/scripts/songdetail.sh
|
|
||||||
color = $text
|
|
||||||
font_size = 14
|
|
||||||
font_family = $font
|
|
||||||
position = -125, -37
|
|
||||||
halign = right
|
|
||||||
valign = top
|
|
||||||
text_align = right
|
|
||||||
}
|
|
||||||
|
|
||||||
# --- STATUS DASHBOARD (BOTTOM RIGHT) ---
|
|
||||||
|
|
||||||
# SYSTEM INFO BOX (Vertical stack container)
|
|
||||||
shape {
|
|
||||||
monitor =
|
|
||||||
size = 300, 100
|
|
||||||
color = rgba(0, 0, 0, 0.3)
|
|
||||||
rounding = 15
|
|
||||||
border_size = 1
|
|
||||||
border_color = rgba(255, 255, 255, 0.1)
|
|
||||||
position = -20, 20
|
|
||||||
halign = right
|
|
||||||
valign = bottom
|
|
||||||
}
|
|
||||||
|
|
||||||
# SYSTEM INFO TEXT (3 lines, top of each other, right aligned)
|
|
||||||
label {
|
|
||||||
monitor =
|
|
||||||
text = cmd[update:5000] ~/.config/hypr/scripts/status_info.sh
|
|
||||||
color = $text
|
|
||||||
font_size = 14
|
|
||||||
font_family = $font
|
|
||||||
position = -35, 35
|
|
||||||
halign = right
|
|
||||||
valign = bottom
|
|
||||||
text_align = right
|
|
||||||
}
|
|
||||||
|
|||||||
+4
-7
@@ -1,7 +1,4 @@
|
|||||||
wallpaper {
|
# preload = ~/Pictures/red_moon/red_moon-latte.jpg
|
||||||
monitor =
|
preload = ~/Pictures/wallpapers/rem.jpg
|
||||||
path = ~/Pictures/reze/reze.png
|
# wallpaper = ,~/Pictures/red_moon/red_moon-latte.jpg
|
||||||
fit_mode = cover
|
wallpaper = ,~/Pictures/wallpapers/rem.jpg
|
||||||
}
|
|
||||||
|
|
||||||
splash = false
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
color_scheme=/usr/share/qt6ct/colors/catppuccin-mocha-maroon.conf
|
||||||
|
icon_theme=Papirus
|
||||||
|
style=Fusion
|
||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
@@ -3,15 +3,13 @@
|
|||||||
# Or execute your favorite apps at launch like this:
|
# Or execute your favorite apps at launch like this:
|
||||||
|
|
||||||
# exec-once = uwsm app -- waybar
|
# exec-once = uwsm app -- waybar
|
||||||
# exec-once = uwsm app -- hyprpanel
|
|
||||||
# exec-once = uwsm app -- nextcloud --background
|
# exec-once = uwsm app -- nextcloud --background
|
||||||
exec-once = uwsm app -- nm-applet --indicator
|
exec-once = uwsm app -- nm-applet --indicator
|
||||||
# exec-once = uwsm app -- rclone mount google_drive: ~/gdrive
|
# exec-once = uwsm app -- rclone mount google_drive: ~/gdrive
|
||||||
# exec-once = uwsm app -- protonvpn-app
|
exec-once = uwsm app -- protonvpn-app
|
||||||
exec-once = uwsm app -- hyprpaper
|
exec-once = uwsm app -- hyprpaper
|
||||||
# exec-once = uwsm app -- /usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --start-minimized &> /dev/null
|
# exec-once = uwsm app -- /usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --start-minimized &> /dev/null
|
||||||
# exec-once = sleep 5 && ~/.config/hypr/scripts/replay-ctrl.sh start
|
exec-once = sleep 5 && ~/.config/hypr/scripts/replay-ctrl.sh start
|
||||||
# exec-once = uwsm app -- /usr/lib/xdg-desktop-portal-hyprland
|
# exec-once = uwsm app -- /usr/lib/xdg-desktop-portal-hyprland
|
||||||
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
|
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
|
||||||
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
|
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
|
||||||
exec-once = uwsm app -- ~/.cargo/bin/fluxo-rs daemon
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||||
|
|
||||||
# env = INTEL_DEBUG,noccs
|
|
||||||
# env = WLR_DRM_NO_ATOMIC,1
|
|
||||||
env = HYPRCURSOR_THEME,Bibata-Modern-Classic
|
env = HYPRCURSOR_THEME,Bibata-Modern-Classic
|
||||||
env = HYPRCURSOR_SIZE,24
|
env = HYPRCURSOR_SIZE,24
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
env = XCURSOR_THEME,Bibata-Modern-Classic
|
env = XCURSOR_THEME,Bibata-Modern-Classic
|
||||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
# env = debug:full_cm_proto,true
|
env = debug:full_cm_proto,true
|
||||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||||
# env = LIBVA_DRIVER_NAME,radeonsi
|
env = LIBVA_DRIVER_NAME,radeonsi
|
||||||
# env = VDPAU_DRIVER,radeonsi
|
env = VDPAU_DRIVER,radeonsi
|
||||||
env = MOZ_ENABLE_WAYLAND,1
|
env = MOZ_ENABLE_WAYLAND,1
|
||||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||||
env = EDITOR,nvim
|
env = AMD_VULKAN_ICD,RADV
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,0
|
||||||
|
env = QT_QPA_PLATFORMTHEME,hyprqt6engine
|
||||||
|
|||||||
+3
-18
@@ -1,13 +1,12 @@
|
|||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
input {
|
input {
|
||||||
kb_layout = us,us
|
kb_layout = us
|
||||||
kb_variant = dvorak-intl, intl
|
# kb_variant = dvorak-intl, intl
|
||||||
# kb_variant = intl
|
kb_variant = intl
|
||||||
kb_model =
|
kb_model =
|
||||||
kb_options =
|
kb_options =
|
||||||
kb_rules =
|
kb_rules =
|
||||||
kb_options = ctrl:nocaps
|
|
||||||
|
|
||||||
follow_mouse = 0
|
follow_mouse = 0
|
||||||
|
|
||||||
@@ -18,17 +17,3 @@ input {
|
|||||||
natural_scroll = false
|
natural_scroll = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
device {
|
|
||||||
name = at-translated-set-2-keyboard
|
|
||||||
resolve_binds_by_sym = 1
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = dvorak-intl
|
|
||||||
}
|
|
||||||
|
|
||||||
device {
|
|
||||||
name = topre-corporation-hhkb-professional
|
|
||||||
resolve_binds_by_sym = 1
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = dvorak-intl
|
|
||||||
}
|
|
||||||
|
|||||||
+10
-11
@@ -1,9 +1,6 @@
|
|||||||
|
|
||||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
bindl=,switch:on:Lid Switch,exec,~/.config/hypr/scripts/lid_handler.sh close
|
|
||||||
bindl=,switch:off:Lid Switch,exec,~/.config/hypr/scripts/lid_handler.sh open
|
|
||||||
|
|
||||||
bindr = ALT, m, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
|
bindr = ALT, m, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
|
||||||
bind = , PRINT, exec, grim -g "$(slurp)" - | wl-copy
|
bind = , PRINT, exec, grim -g "$(slurp)" - | wl-copy
|
||||||
bindr = ALT SHIFT, z, exec, ~/.config/hypr/scripts/replay-ctrl.sh save
|
bindr = ALT SHIFT, z, exec, ~/.config/hypr/scripts/replay-ctrl.sh save
|
||||||
@@ -63,8 +60,8 @@ bind = ALT, Tab, changegroupactive, next
|
|||||||
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
# Example special workspace (scratchpad)
|
||||||
bind = $mainMod, S, togglespecialworkspace, virtual
|
bind = $mainMod, S, togglespecialworkspace, magic
|
||||||
bind = $mainMod SHIFT, S, movetoworkspace, special:virtual
|
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||||
bind = $mainMod, D, togglespecialworkspace, discord
|
bind = $mainMod, D, togglespecialworkspace, discord
|
||||||
bind = $mainMod SHIFT, D, movetoworkspace, special:discord
|
bind = $mainMod SHIFT, D, movetoworkspace, special:discord
|
||||||
|
|
||||||
@@ -77,15 +74,17 @@ bindm = $mainMod, mouse:272, movewindow
|
|||||||
bindm = $mainMod, mouse:273, resizewindow
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
# Laptop multimedia keys for volume and LCD brightness
|
# Laptop multimedia keys for volume and LCD brightness
|
||||||
bindel = ,XF86AudioRaiseVolume, exec, fluxo-rs vol up 5
|
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
bindel = ,XF86AudioLowerVolume, exec, fluxo-rs vol down 5
|
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
bindel = ,XF86AudioMute, exec, fluxo-rs vol mute
|
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
bindel = ,XF86AudioMicMute, exec, fluxo-rs mic mute
|
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||||
|
|
||||||
# Requires playerctl
|
# Requires playerctl
|
||||||
bindl = , XF86AudioNext, exec, playerctl next
|
bindl = , XF86AudioNext, exec, playerctl next
|
||||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||||
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
|
||||||
# laptop screen
|
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@240, 0x0, 1
|
||||||
monitor = eDP-1, 1920x1080@60, 0x0, 1
|
# monitorv2 {
|
||||||
# samsung home monitor
|
# desc = Samsung Electric Company LC27G7xT H4ZRA00734
|
||||||
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@144, 0x-1440, 1
|
# mode = 2560x1440@240
|
||||||
|
# position = 0x0
|
||||||
|
# scale = 1
|
||||||
# lid_state fallback
|
# bitdepth = 10
|
||||||
source = ~/.config/hypr/lid_state.conf
|
# cm = wide
|
||||||
|
# }
|
||||||
|
|||||||
+15
-36
@@ -12,22 +12,23 @@ general {
|
|||||||
border_size = 3
|
border_size = 3
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
col.active_border = $mauve $lavender 45deg
|
# col.active_border = rgba(cba6f7ee) rgba(f38ba8ee) 45deg
|
||||||
|
col.active_border = rgb($mauveAlpha) rgb($blueAlpha) 30deg
|
||||||
col.inactive_border = rgb($surface2Alpha)
|
col.inactive_border = rgb($surface2Alpha)
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
resize_on_border = false
|
resize_on_border = false
|
||||||
|
|
||||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
allow_tearing = false
|
allow_tearing = true
|
||||||
|
|
||||||
layout = dwindle
|
layout = dwindle
|
||||||
}
|
}
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
decoration {
|
decoration {
|
||||||
rounding = 12
|
rounding = 4
|
||||||
rounding_power = 3
|
rounding_power = 1
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
# Change transparency of focused and unfocused windows
|
||||||
active_opacity = 1.0
|
active_opacity = 1.0
|
||||||
@@ -95,40 +96,18 @@ master {
|
|||||||
misc {
|
misc {
|
||||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
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. :(
|
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||||
vrr = 1
|
vrr = 0
|
||||||
font_family = FiraCode Nerd Font
|
font_family = FiraCode Nerd Font
|
||||||
}
|
}
|
||||||
|
|
||||||
group {
|
group {
|
||||||
# The border around the grouped windows
|
groupbar {
|
||||||
col.border_active = $mauve $lavender 45deg
|
font_size = 14
|
||||||
col.border_inactive = $surface1
|
text_color = $text
|
||||||
|
text_color_inactive = $text
|
||||||
groupbar {
|
col.active = $maroon
|
||||||
font_family = JetBrainsMono Nerd Font
|
col.inactive = $surface2
|
||||||
font_size = 11
|
}
|
||||||
|
col.border_active = $maroon $teal 30deg
|
||||||
# Increase the height so the text has room to breathe
|
col.border_inactive = $surface2
|
||||||
height = 24
|
|
||||||
|
|
||||||
# Disable the default 3D gradient for a modern flat look
|
|
||||||
gradients = false
|
|
||||||
|
|
||||||
# --- Active Tab ---
|
|
||||||
# Bright background with very dark text for perfect readability
|
|
||||||
col.active = $mauve
|
|
||||||
text_color = $crust
|
|
||||||
|
|
||||||
# --- Inactive Tab ---
|
|
||||||
# Dark surface background with dimmed, soft text
|
|
||||||
col.inactive = $surface0
|
|
||||||
text_color_inactive = $subtext0
|
|
||||||
height = 1
|
|
||||||
font_size = 11
|
|
||||||
# about half the indicator height
|
|
||||||
text_offset = -7
|
|
||||||
|
|
||||||
# Make the indicator tall enough to render text inside
|
|
||||||
indicator_height = 15
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,89 +1,87 @@
|
|||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
# ==========================================
|
|
||||||
# VARIABLES
|
|
||||||
# ==========================================
|
|
||||||
# Dialogs and utility apps that should float in the center
|
|
||||||
$dialog_titles = ^(Open Form|Open File|Select a File|Choose a file|Open Workspace|Choose Directory|Save As|Save File|branchdialog|pinentry-gtk-2|Confirm to replace files|File Operation Progress|Open Files|Anmelden – Google Konten — Zen Browser)$
|
|
||||||
$dialog_classes = ^(pavucontrol|blueman-manager|nm-connection-editor|org.pulseaudio.pavucontrol)$
|
|
||||||
|
|
||||||
# App classes
|
|
||||||
$steam = ^(steam)$
|
|
||||||
$gamescope = ^(gamescope)$
|
|
||||||
|
|
||||||
|
|
||||||
# ==========================================
|
|
||||||
# GENERAL & FIXES
|
|
||||||
# ==========================================
|
|
||||||
# Ignore maximize requests from apps. You'll probably like this.
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
# windowrule = suppress_event maximize, match:class .*
|
windowrule = suppressevent maximize, class:.*
|
||||||
|
|
||||||
# Fix some dragging issues with XWayland
|
# Fix some dragging issues with XWayland
|
||||||
# windowrule = no_focus 1, match:class ^$, match:title ^$, match:xwayland 1, match:floating 1, match:fullscreen 0, match:pinned 0
|
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
windowrule = no_blur 1, match:class ^$, match:title ^$
|
windowrulev2=noblur,class:^()$,title:^()$
|
||||||
|
|
||||||
|
|
||||||
# ==========================================
|
# games for tearing add the immediate rule
|
||||||
# FLOATING & CENTERED DIALOGS
|
|
||||||
# ==========================================
|
|
||||||
# Make them float
|
|
||||||
windowrule = float 1, match:title $dialog_titles
|
|
||||||
windowrule = float 1, match:class $dialog_classes
|
|
||||||
|
|
||||||
# Set to 800x600
|
# Float Windows
|
||||||
windowrule = size 800 600, match:title $dialog_titles
|
windowrulev2=float,title:^(Open File)$
|
||||||
windowrule = size 800 600, match:class $dialog_classes
|
windowrulev2=float,title:^(Select a File)$
|
||||||
|
windowrulev2=float,title:^(Select Folder)$
|
||||||
|
windowrulev2=float,title:^(Choose a file)$
|
||||||
|
windowrulev2=float,title:^(Save As)$
|
||||||
|
windowrulev2=float,title:^(Save File)$
|
||||||
|
windowrulev2=float,title:^(branchdialog)$
|
||||||
|
windowrulev2=float,title:^(pinentry-gtk-2)$
|
||||||
|
windowrulev2=float,title:^(Confirm to replace files)$
|
||||||
|
windowrulev2=float,title:^(File Operation Progress)$
|
||||||
|
windowrulev2=float,class:^(pavucontrol|blueman-manager|nm-connection-editor)$
|
||||||
|
|
||||||
# Center them on the screen
|
# Center and Resize Windows
|
||||||
windowrule = center 1, match:title $dialog_titles
|
windowrulev2=size 800 600,title:^(Open File)$
|
||||||
windowrule = center 1, match:class $dialog_classes
|
windowrulev2=size 800 600,title:^(Select a File)$
|
||||||
|
windowrulev2=size 800 600,title:^(Choose a file)$
|
||||||
|
windowrulev2=size 800 600,title:^(Save As)$
|
||||||
|
windowrulev2=size 800 600,title:^(Save File)$
|
||||||
|
windowrulev2=size 800 600,title:^(branchdialog)$
|
||||||
|
windowrulev2=size 800 600,title:^(pinentry-gtk-2)$
|
||||||
|
windowrulev2=size 800 600,title:^(Confirm to replace files)$
|
||||||
|
windowrulev2=size 800 600,title:^(File Operation Progress)$
|
||||||
|
windowrulev2=size 800 600,class:^(pavucontrol|blueman-manager|nm-connection-editor)$
|
||||||
|
windowrulev2=center,title:^(Open File)$
|
||||||
|
windowrulev2=center,title:^(Select a File)$
|
||||||
|
windowrulev2=center,title:^(Choose a file)$
|
||||||
|
windowrulev2=center,title:^(Save As)$
|
||||||
|
windowrulev2=center,title:^(Save File)$
|
||||||
|
windowrulev2=center,title:^(branchdialog)$
|
||||||
|
windowrulev2=center,title:^(pinentry-gtk-2)$
|
||||||
|
windowrulev2=center,title:^(Confirm to replace files)$
|
||||||
|
windowrulev2=center,title:^(File Operation Progress)$
|
||||||
|
windowrulev2=center,class:^(pavucontrol|blueman-manager|nm-connection-editor)$
|
||||||
|
windowrulev2=noblur,title:^(Open File)$
|
||||||
|
windowrulev2=noblur,title:^(Select a File)$
|
||||||
|
windowrulev2=noblur,title:^(Choose a file)$
|
||||||
|
windowrulev2=noblur,title:^(Save As)$
|
||||||
|
windowrulev2=noblur,title:^(Save File)$
|
||||||
|
windowrulev2=noblur,title:^(branchdialog)$
|
||||||
|
windowrulev2=noblur,title:^(pinentry-gtk-2)$
|
||||||
|
windowrulev2=noblur,title:^(Confirm to replace files)$
|
||||||
|
windowrulev2=noblur,title:^(File Operation Progress)$
|
||||||
|
windowrulev2=noblur,class:^(pavucontrol|blueman-manager|nm-connection-editor)$
|
||||||
|
|
||||||
# Disable blur
|
# Workspace Rules
|
||||||
windowrule = no_blur 1, match:title $dialog_titles
|
# windowrule=workspace 1,class:^(firefox)$
|
||||||
windowrule = no_blur 1, match:class $dialog_classes
|
# windowrule=workspace 2,class:^(kitty)$
|
||||||
|
# windowrule=workspace 3,class:^(Code)$
|
||||||
|
|
||||||
|
|
||||||
# ==========================================
|
windowrulev2=workspace special:magic,class:^(Spotify)$
|
||||||
# WORKSPACE ASSIGNMENTS
|
windowrulev2=workspace special:magic,class:^(spotify)$
|
||||||
# ==========================================
|
windowrulev2=workspace special:discord,class:^(discord|vesktop)$
|
||||||
# Normal Workspaces
|
# windowrulev2=workspace 2, class:^(brave-browser)$
|
||||||
# windowrule = workspace 1, match:class ^(firefox)$
|
|
||||||
# windowrule = workspace 2, match:class ^(kitty)$
|
|
||||||
# windowrule = workspace 3, match:class ^(Code)$
|
|
||||||
windowrule = workspace 1, match:class $gamescope
|
|
||||||
|
|
||||||
# Special Workspaces
|
# steam rules
|
||||||
windowrule = workspace special:virtual, match:class ^(Spotify|spotify)$
|
|
||||||
windowrule = workspace special:discord, match:class ^(discord|vesktop)$
|
|
||||||
|
|
||||||
|
windowrulev2=workspace 3 silent, class:^(steam)$, title:^(Steam)$
|
||||||
|
windowrulev2=workspace 4, class:^(gamescope)$
|
||||||
|
|
||||||
# ==========================================
|
# fixed sizes for different windows
|
||||||
# APP-SPECIFIC RULES: STEAM & GAMING
|
windowrulev2=size 400 800,title:^(Friends List)$ class:^(steam)$
|
||||||
# ==========================================
|
windowrulev2=size 1000 800,title:^(Steam Settings)$ class:^(steam)$
|
||||||
# windowrule = workspace 3 silent, match:class $steam, match:title ^(Steam)$
|
windowrulev2=size 1000 800,title:^(Add Non-Steam Game)$ class:^(steam)$
|
||||||
|
|
||||||
# Fixed sizes for specific Steam windows
|
# float windows that arent the main steam window
|
||||||
windowrule = size 400 800, match:title ^(Friends List)$, match:class $steam
|
windowrulev2 = float, class:^(steam)$, title:negative:^(Steam)$
|
||||||
windowrule = size 1000 800, match:title ^(Steam Settings)$, match:class $steam
|
windowrulev2 = noblur, class:^(steam)$, title:negative:^(Steam)$
|
||||||
windowrule = size 1000 800, match:title ^(Add Non-Steam Game)$, match:class $steam
|
# windowrulev2 = center, class:^(steam)$, title:negative:^(Steam)$
|
||||||
|
|
||||||
# Float and disable blur for Steam windows that aren't the main window
|
# allow tearing for games started with gamescope
|
||||||
windowrule = float 1, match:class $steam, match:title negative:^(Steam)$
|
windowrulev2 = immediate, class:^(gamescope)$
|
||||||
windowrule = no_blur 1, match:class $steam, match:title negative:^(Steam)$
|
|
||||||
# windowrule = center 1, match:class $steam, match:title negative:^(Steam)$
|
|
||||||
|
|
||||||
# Allow tearing for games started with Gamescope
|
|
||||||
windowrule = immediate 1, match:class $gamescope
|
|
||||||
|
|
||||||
|
|
||||||
# Layer rules
|
|
||||||
|
|
||||||
# waybar blur
|
|
||||||
layerrule = blur on, match:namespace bottom
|
|
||||||
layerrule = blur on, match:namespace top
|
|
||||||
layerrule = ignore_alpha 0.5, match:namespace bottom
|
|
||||||
layerrule = ignore_alpha 0.5, match:namespace top
|
|
||||||
# launcher blur
|
|
||||||
layerrule = blur on, match:namespace launcher
|
|
||||||
layerrule = ignore_alpha 0.5, match:namespace launcher
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
url=$(playerctl metadata mpris:artUrl 2>/dev/null)
|
|
||||||
if [[ "$url" == file://* ]]; then
|
|
||||||
cp "${url#file://}" /tmp/hyprlock_art.png
|
|
||||||
echo "/tmp/hyprlock_art.png"
|
|
||||||
elif [[ "$url" == http* ]]; then
|
|
||||||
curl -s "$url" -o /tmp/hyprlock_art.png
|
|
||||||
echo "/tmp/hyprlock_art.png"
|
|
||||||
else
|
|
||||||
echo "$HOME/.config/hypr/catppuccin-hyprland/assets/mocha.webp"
|
|
||||||
fi
|
|
||||||
@@ -15,7 +15,13 @@ start() {
|
|||||||
notify-send -u low "$PROGRAM_NAME" "$PROGRAM_NAME is starting ..."
|
notify-send -u low "$PROGRAM_NAME" "$PROGRAM_NAME is starting ..."
|
||||||
|
|
||||||
ANDROID_SERIAL=$ANDROID_SERIAL droidcam-cli -a -v -size=1920x1080 adb 4747 &> /dev/null &
|
ANDROID_SERIAL=$ANDROID_SERIAL droidcam-cli -a -v -size=1920x1080 adb 4747 &> /dev/null &
|
||||||
echo $! > "$PID_FILE"
|
PID=$!
|
||||||
|
sleep 1
|
||||||
|
if ! ps -p "$PID" > /dev/null; then
|
||||||
|
notify-send -u critical "$PROGRAM_NAME" "$PROGRAM_NAME did not start"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "$PID" > "$PID_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -65,4 +71,4 @@ case "$1" in
|
|||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# ~/.config/hypr/scripts/lid_handler.sh
|
|
||||||
|
|
||||||
# The file that tells Hyprland to keep the lid off during reloads
|
|
||||||
LID_STATE_FILE="$HOME/.config/hypr/lid_state.conf"
|
|
||||||
|
|
||||||
restart_ui() {
|
|
||||||
# Spawn in background and detach
|
|
||||||
systemctl restart --user waybar hyprpaper
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ "$1" == "close" ]]; then
|
|
||||||
# Check if ANY external monitor is connected and active
|
|
||||||
if hyprctl monitors all | grep -qE "Monitor (DP|HDMI|Type-C)-"; then
|
|
||||||
|
|
||||||
# Prevent laptop screen from turning on during manual config reloads
|
|
||||||
echo "monitor=eDP-1, disable" > "$LID_STATE_FILE"
|
|
||||||
|
|
||||||
# Extract the CURRENT live settings of all external monitors using jq
|
|
||||||
# This grabs the active resolution, refresh rate, position, and scale.
|
|
||||||
LIVE_MONITORS=$(hyprctl -j monitors | jq -c '.[] | select(.name != "eDP-1")')
|
|
||||||
|
|
||||||
# 3. Disable the laptop screen
|
|
||||||
hyprctl keyword monitor "eDP-1, disable"
|
|
||||||
|
|
||||||
# 4. Re-apply the live settings to external monitors so they don't reset
|
|
||||||
echo "$LIVE_MONITORS" | while read -r mon_json; do
|
|
||||||
NAME=$(echo "$mon_json" | jq -r '.name')
|
|
||||||
WIDTH=$(echo "$mon_json" | jq -r '.width')
|
|
||||||
HEIGHT=$(echo "$mon_json" | jq -r '.height')
|
|
||||||
REFRESH=$(echo "$mon_json" | jq -r '.refreshRate')
|
|
||||||
X=$(echo "$mon_json" | jq -r '.x')
|
|
||||||
Y=$(echo "$mon_json" | jq -r '.y')
|
|
||||||
SCALE=$(echo "$mon_json" | jq -r '.scale')
|
|
||||||
|
|
||||||
# Formats it exactly as Hyprland expects: DP-1, 1920x1080@240, 0x0, 1
|
|
||||||
hyprctl keyword monitor "$NAME, ${WIDTH}x${HEIGHT}@${REFRESH}, ${X}x${Y}, $SCALE"
|
|
||||||
done
|
|
||||||
|
|
||||||
# restart ui
|
|
||||||
restart_ui
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [[ "$1" == "open" ]]; then
|
|
||||||
# Clear the override file so the laptop screen is allowed to turn on again
|
|
||||||
echo "" > "$LID_STATE_FILE"
|
|
||||||
|
|
||||||
# Let Hyprland reload itself.
|
|
||||||
# This automatically re-enables eDP-1 based on your hardcoded hyprland.conf!
|
|
||||||
hyprctl reload
|
|
||||||
|
|
||||||
restart_ui
|
|
||||||
fi
|
|
||||||
@@ -18,14 +18,14 @@ start() {
|
|||||||
gpu-screen-recorder \
|
gpu-screen-recorder \
|
||||||
-w screen \
|
-w screen \
|
||||||
-f 60 \
|
-f 60 \
|
||||||
-a default_output -a default_input \
|
-a "default_input|default_output" \
|
||||||
-fm vfr \
|
-fm vfr \
|
||||||
-c mkv \
|
-c mkv \
|
||||||
-encoder gpu \
|
-encoder gpu \
|
||||||
-bm qp \
|
-bm qp \
|
||||||
-cr full \
|
-cr full \
|
||||||
-tune quality \
|
-tune quality \
|
||||||
-k av1_10bit \
|
-k av1 \
|
||||||
-q high \
|
-q high \
|
||||||
-r 120 \
|
-r 120 \
|
||||||
-replay-storage ram \
|
-replay-storage ram \
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
status=$(playerctl status 2>/dev/null)
|
|
||||||
if [ "$status" = "Playing" ] || [ "$status" = "Paused" ]; then
|
|
||||||
title=$(playerctl metadata title | sed 's/&/\&/g; s/</\</g; s/>/\>/g')
|
|
||||||
artist=$(playerctl metadata artist | sed 's/&/\&/g; s/</\</g; s/>/\>/g')
|
|
||||||
if [ ${#title} -gt 25 ]; then title="${title:0:22}..."; fi
|
|
||||||
if [ ${#artist} -gt 25 ]; then artist="${artist:0:22}..."; fi
|
|
||||||
echo "<span weight='bold' foreground='#cba6f7'>$title</span>"
|
|
||||||
echo "<span foreground='#bac2de' size='small'>$artist</span>"
|
|
||||||
else
|
|
||||||
echo "<span weight='bold' foreground='#cdd6f4'>No Media</span>"
|
|
||||||
echo "<span size='small' foreground='#a6adc8'>Idling</span>"
|
|
||||||
fi
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# 1. Network
|
|
||||||
net=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 || echo 'Offline')
|
|
||||||
if [ ${#net} -gt 15 ]; then net="${net:0:12}..."; fi
|
|
||||||
# 2. Battery
|
|
||||||
bat_cap=$(cat /sys/class/power_supply/BAT0/capacity)
|
|
||||||
bat_stat=$(cat /sys/class/power_supply/BAT0/status)
|
|
||||||
if [ "$bat_stat" = "Charging" ]; then icon=""; else icon=""; fi
|
|
||||||
# 3. Load
|
|
||||||
cpu=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}' | cut -d. -f1)
|
|
||||||
# Output 3 lines for the vertical stack
|
|
||||||
echo " $net"
|
|
||||||
echo "$icon $bat_cap% ($bat_stat)"
|
|
||||||
echo " Load: $cpu%"
|
|
||||||
@@ -1,166 +0,0 @@
|
|||||||
{
|
|
||||||
"log_level": "LOG_LEVEL_INFO",
|
|
||||||
"log_subprocesses_to_journal": false,
|
|
||||||
"dbus": {
|
|
||||||
"enabled": true,
|
|
||||||
"connect_timeout": "20s",
|
|
||||||
"connect_interval": "0.200s",
|
|
||||||
"notifications": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"systray": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"shortcuts": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"brightness": {
|
|
||||||
"enabled": true,
|
|
||||||
"adjust_step_percent": 5,
|
|
||||||
"min_brightness": 1,
|
|
||||||
"enable_logind": true,
|
|
||||||
"hud_notifications": true
|
|
||||||
},
|
|
||||||
"power": {
|
|
||||||
"enabled": true,
|
|
||||||
"low_percent": 10,
|
|
||||||
"critical_percent": 5,
|
|
||||||
"hud_notifications": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"audio": {
|
|
||||||
"enabled": true,
|
|
||||||
"volume_step_percent": 5,
|
|
||||||
"volume_exceed_maximum": false,
|
|
||||||
"hud_notifications": true
|
|
||||||
},
|
|
||||||
"panels": [
|
|
||||||
{
|
|
||||||
"id": "panel0",
|
|
||||||
"edge": "EDGE_TOP",
|
|
||||||
"size": 34,
|
|
||||||
"monitor": "",
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"pager": {
|
|
||||||
"icon_size": 14,
|
|
||||||
"active_monitor_only": false,
|
|
||||||
"scroll_wrap_workspaces": true,
|
|
||||||
"scroll_include_inactive": true,
|
|
||||||
"enable_workspace_names": false,
|
|
||||||
"pinned": [1, 2, 3, 4, 5, 6],
|
|
||||||
"preview_width": 256
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"size": 8,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"taskbar": {
|
|
||||||
"icon_size": 24,
|
|
||||||
"active_workspace_only": true,
|
|
||||||
"active_monitor_only": true,
|
|
||||||
"group_tasks": true,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"expand": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"clock": {
|
|
||||||
"time_format": "15:04",
|
|
||||||
"date_format": "%a %d %b",
|
|
||||||
"tooltip_time_format": "15:04",
|
|
||||||
"tooltip_date_format": "Monday, 02 January 2006"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"expand": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"systray": {
|
|
||||||
"icon_size": 18,
|
|
||||||
"menu_icon_size": 18,
|
|
||||||
"pinned": [
|
|
||||||
"nm-applet"
|
|
||||||
],
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"power": {
|
|
||||||
"icon_size": 18,
|
|
||||||
"icon_symbolic": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"size": 8,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"notifications": {
|
|
||||||
"icon_size": 18,
|
|
||||||
"notification_icon_size": 48,
|
|
||||||
"default_timeout": "7s",
|
|
||||||
"position": "POSITION_TOP_RIGHT",
|
|
||||||
"margin": 24
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"size": 8,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"audio": {
|
|
||||||
"icon_size": 18,
|
|
||||||
"icon_symbolic": true,
|
|
||||||
"command_mixer": "pavucontrol",
|
|
||||||
"enable_source": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"size": 8,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"session": {
|
|
||||||
"icon_size": 18,
|
|
||||||
"icon_symbolic": true,
|
|
||||||
"overlay_icon_size": 64,
|
|
||||||
"overlay_icon_symbolic": true,
|
|
||||||
"command_logout": "uwsm stop",
|
|
||||||
"command_reboot": "systemctl reboot",
|
|
||||||
"command_suspend": "systemctl suspend",
|
|
||||||
"command_shutdown": "systemctl poweroff"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"spacer": {
|
|
||||||
"size": 8,
|
|
||||||
"expand": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"launch_wrapper": [
|
|
||||||
"uwsm",
|
|
||||||
"app",
|
|
||||||
"--"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
/* Catppuccin Mocha Palette */
|
|
||||||
@define-color base #1e1e2e;
|
|
||||||
@define-color mantle #181825;
|
|
||||||
@define-color crust #11111b;
|
|
||||||
@define-color surface0 #313244;
|
|
||||||
@define-color surface1 #45475a;
|
|
||||||
@define-color surface2 #585b70;
|
|
||||||
@define-color text #cdd6f4;
|
|
||||||
@define-color subtext0 #a6adc8;
|
|
||||||
@define-color subtext1 #bac2de;
|
|
||||||
@define-color overlay0 #6c7086;
|
|
||||||
@define-color overlay1 #7f849c;
|
|
||||||
@define-color overlay2 #9399b2;
|
|
||||||
@define-color blue #89b4fa;
|
|
||||||
@define-color lavender #b4befe;
|
|
||||||
@define-color sapphire #74c7ec;
|
|
||||||
@define-color sky #89dceb;
|
|
||||||
@define-color teal #94e2d5;
|
|
||||||
@define-color green #a6e3a1;
|
|
||||||
@define-color yellow #f9e2af;
|
|
||||||
@define-color peach #fab387;
|
|
||||||
@define-color maroon #eba0ac;
|
|
||||||
@define-color red #f38ba8;
|
|
||||||
@define-color mauve #cba6f7;
|
|
||||||
@define-color flamingo #f2cdcd;
|
|
||||||
@define-color rosewater #f5e0dc;
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: "JetBrainsMono Nerd Font";
|
|
||||||
font-size: 13px;
|
|
||||||
border: none;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#panel0 {
|
|
||||||
background-color: alpha(@base, 0.7);
|
|
||||||
color: @text;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pager {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pager button {
|
|
||||||
background-color: @surface0;
|
|
||||||
color: @subtext0;
|
|
||||||
border-radius: 12px;
|
|
||||||
margin: 0 2px;
|
|
||||||
padding: 0 12px;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pager button.active {
|
|
||||||
background-color: @mauve;
|
|
||||||
color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pager button:hover {
|
|
||||||
background-color: @surface1;
|
|
||||||
color: @text;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskbar button {
|
|
||||||
background-color: transparent;
|
|
||||||
color: @subtext1;
|
|
||||||
border-radius: 12px;
|
|
||||||
margin: 0 2px;
|
|
||||||
padding: 0 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskbar button.active {
|
|
||||||
background-color: @surface0;
|
|
||||||
border-bottom: 2px solid @mauve;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock, #systray, #audio, #session, #notifications {
|
|
||||||
background-color: @surface0;
|
|
||||||
color: @text;
|
|
||||||
border-radius: 15px;
|
|
||||||
margin: 4px 3px;
|
|
||||||
padding: 0 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#notifications {
|
|
||||||
color: @yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
color: @mauve;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#audio {
|
|
||||||
color: @sapphire;
|
|
||||||
}
|
|
||||||
|
|
||||||
#audio.muted {
|
|
||||||
color: @subtext0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#session {
|
|
||||||
color: @red;
|
|
||||||
padding: 0 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Notifications and HUD */
|
|
||||||
#notifications {
|
|
||||||
background-color: @base;
|
|
||||||
color: @text;
|
|
||||||
border: 1px solid @surface1;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hud {
|
|
||||||
background-color: alpha(@base, 0.8);
|
|
||||||
color: @text;
|
|
||||||
border-radius: 20px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hud .progress-bar {
|
|
||||||
background-color: @surface1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hud .progress-bar-fill {
|
|
||||||
background-color: @mauve;
|
|
||||||
}
|
|
||||||
+19
-15
@@ -1,31 +1,35 @@
|
|||||||
[Default Applications]
|
[Default Applications]
|
||||||
application/pdf=org.pwmt.zathura-pdf-poppler.desktop
|
text/html=zen.desktop
|
||||||
image/jpeg=feh.desktop
|
|
||||||
image/png=feh.desktop
|
|
||||||
x-scheme-handler/http=zen.desktop
|
x-scheme-handler/http=zen.desktop
|
||||||
x-scheme-handler/https=zen.desktop
|
x-scheme-handler/https=zen.desktop
|
||||||
|
x-scheme-handler/about=brave-browser.desktop
|
||||||
|
x-scheme-handler/unknown=brave-browser.desktop
|
||||||
|
image/png=feh.desktop
|
||||||
|
x-scheme-handler/discord=vesktop.desktop
|
||||||
|
image/jpeg=feh.desktop
|
||||||
|
audio/flac=mpv.desktop
|
||||||
|
x-scheme-handler/ror2mm=r2modman.desktop
|
||||||
|
image/webp=feh.desktop
|
||||||
x-scheme-handler/chrome=zen.desktop
|
x-scheme-handler/chrome=zen.desktop
|
||||||
text/html=zen.desktop
|
|
||||||
application/x-extension-htm=zen.desktop
|
application/x-extension-htm=zen.desktop
|
||||||
application/x-extension-html=zen.desktop
|
application/x-extension-html=zen.desktop
|
||||||
application/x-extension-shtml=zen.desktop
|
application/x-extension-shtml=zen.desktop
|
||||||
application/xhtml+xml=zen.desktop
|
application/xhtml+xml=zen.desktop
|
||||||
application/x-extension-xhtml=zen.desktop
|
application/x-extension-xhtml=zen.desktop
|
||||||
application/x-extension-xht=zen.desktop
|
application/x-extension-xht=zen.desktop
|
||||||
x-scheme-handler/about=google-chrome.desktop
|
|
||||||
x-scheme-handler/unknown=google-chrome.desktop
|
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop
|
|
||||||
x-scheme-handler/ror2mm=r2modman.desktop
|
|
||||||
image/webp=feh.desktop
|
|
||||||
x-scheme-handler/claude-cli=claude-code-url-handler.desktop
|
|
||||||
|
|
||||||
[Added Associations]
|
[Added Associations]
|
||||||
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
|
|
||||||
image/jpeg=feh.desktop;
|
|
||||||
image/png=feh.desktop;
|
image/png=feh.desktop;
|
||||||
|
image/jpeg=feh.desktop;
|
||||||
|
audio/flac=mpv.desktop;
|
||||||
|
image/webp=feh.desktop;
|
||||||
x-scheme-handler/http=zen.desktop;
|
x-scheme-handler/http=zen.desktop;
|
||||||
x-scheme-handler/https=zen.desktop;
|
x-scheme-handler/https=zen.desktop;
|
||||||
text/html=zen.desktop;
|
|
||||||
x-scheme-handler/chrome=zen.desktop;
|
x-scheme-handler/chrome=zen.desktop;
|
||||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
|
text/html=zen.desktop;
|
||||||
image/webp=feh.desktop;
|
application/x-extension-htm=zen.desktop;
|
||||||
|
application/x-extension-html=zen.desktop;
|
||||||
|
application/x-extension-shtml=zen.desktop;
|
||||||
|
application/xhtml+xml=zen.desktop;
|
||||||
|
application/x-extension-xhtml=zen.desktop;
|
||||||
|
application/x-extension-xht=zen.desktop;
|
||||||
|
|||||||
-1
Submodule nvim deleted from 8d657d0f8d
+334
@@ -0,0 +1,334 @@
|
|||||||
|
vim.o.number = true
|
||||||
|
vim.o.wrap = false
|
||||||
|
vim.o.tabstop = 4
|
||||||
|
vim.o.shiftwidth = 4
|
||||||
|
vim.o.smartcase = true
|
||||||
|
vim.o.ignorecase = true
|
||||||
|
vim.o.hlsearch = false
|
||||||
|
vim.o.signcolumn = 'yes'
|
||||||
|
vim.o.clipboard = 'unnamedplus'
|
||||||
|
vim.o.undofile = true
|
||||||
|
vim.o.undodir = '/home/narl/.cache/nvim-undodir'
|
||||||
|
|
||||||
|
vim.g.mapleader = ','
|
||||||
|
|
||||||
|
-- Set up 'mini.deps' (customize to your liking)
|
||||||
|
require('mini.deps').setup()
|
||||||
|
|
||||||
|
local add = MiniDeps.add
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'williamboman/mason.nvim'
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'stevearc/conform.nvim'
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'williamboman/mason-lspconfig.nvim'
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'mfussenegger/nvim-lint'
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'akinsho/toggleterm.nvim'
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Add to current session (install if absent)
|
||||||
|
add({
|
||||||
|
source = 'neovim/nvim-lspconfig',
|
||||||
|
-- Supply dependencies near target plugin
|
||||||
|
depends = { 'williamboman/mason.nvim' },
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'seblyng/roslyn.nvim',
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'tris203/rzls.nvim',
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
source = 'nvim-treesitter/nvim-treesitter',
|
||||||
|
-- Use 'master' while monitoring updates in 'main'
|
||||||
|
checkout = 'master',
|
||||||
|
monitor = 'main',
|
||||||
|
-- Perform action after every checkout
|
||||||
|
hooks = { post_checkout = function() vim.cmd('TSUpdate') end },
|
||||||
|
})
|
||||||
|
|
||||||
|
add({
|
||||||
|
-- Completion framework:
|
||||||
|
source = 'hrsh7th/nvim-cmp',
|
||||||
|
|
||||||
|
-- LSP completion source:
|
||||||
|
depends = {'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'hrsh7th/cmp-nvim-lua',
|
||||||
|
'hrsh7th/cmp-nvim-lsp-signature-help',
|
||||||
|
'hrsh7th/cmp-vsnip',
|
||||||
|
'hrsh7th/cmp-path',
|
||||||
|
'hrsh7th/cmp-buffer',
|
||||||
|
'hrsh7th/vim-vsnip',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
add({ source = "catppuccin/nvim", name = "catppuccin" })
|
||||||
|
|
||||||
|
require('mini.files').setup({
|
||||||
|
mappings = {
|
||||||
|
show_help = 'gh',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
require('mini.icons').setup({style = 'ascii'})
|
||||||
|
require('mini.pick').setup({})
|
||||||
|
require('mini.snippets').setup({})
|
||||||
|
require('mini.notify').setup({})
|
||||||
|
require('mini.statusline').setup({})
|
||||||
|
require('mini.tabline').setup({})
|
||||||
|
require('mini.git').setup({})
|
||||||
|
local imap_expr = function(lhs, rhs)
|
||||||
|
vim.keymap.set('i', lhs, rhs, { expr = true })
|
||||||
|
end
|
||||||
|
imap_expr('<Tab>', [[pumvisible() ? "\<C-n>" : "\<Tab>"]])
|
||||||
|
imap_expr('<S-Tab>', [[pumvisible() ? "\<C-p>" : "\<S-Tab>"]])
|
||||||
|
_G.cr_action = function()
|
||||||
|
-- If there is selected item in popup, accept it with <C-y>
|
||||||
|
if vim.fn.complete_info()['selected'] ~= -1 then return '\25' end
|
||||||
|
-- Fall back to plain `<CR>`. You might want to customize this
|
||||||
|
-- according to other plugins. For example if 'mini.pairs' is set up, replace
|
||||||
|
-- next line with `return MiniPairs.cr()`
|
||||||
|
return '\r'
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set('i', '<CR>', 'v:lua.cr_action()', { expr = true })
|
||||||
|
require("toggleterm").setup{
|
||||||
|
size = function(term)
|
||||||
|
if term.direction == "horizontal" then
|
||||||
|
return 30
|
||||||
|
elseif term.direction == "vertical" then
|
||||||
|
return 69
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
open_mapping = [[<c-\>]],
|
||||||
|
hide_numbers = true,
|
||||||
|
shade_terminals = true,
|
||||||
|
persist_size = true,
|
||||||
|
direction = 'float',
|
||||||
|
close_on_exit = true,
|
||||||
|
shell = vim.o.shell,
|
||||||
|
}
|
||||||
|
|
||||||
|
require('nvim-treesitter.configs').setup {
|
||||||
|
ensure_installed = { "lua", "rust", "toml", "c_sharp" },
|
||||||
|
auto_install = true,
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting=false,
|
||||||
|
},
|
||||||
|
ident = { enable = true },
|
||||||
|
rainbow = {
|
||||||
|
enable = true,
|
||||||
|
extended_mode = true,
|
||||||
|
max_file_lines = nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require("mason").setup({
|
||||||
|
registries = {
|
||||||
|
"github:mason-org/mason-registry",
|
||||||
|
"github:Crashdummyy/mason-registry",
|
||||||
|
},
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_installed = "✓",
|
||||||
|
package_pending = "➜",
|
||||||
|
package_uninstalled = "✗"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
require("mason-lspconfig").setup()
|
||||||
|
vim.lsp.config('rust_analyzer', {
|
||||||
|
-- Server-specific settings. See `:help lsp-quickstart`
|
||||||
|
settings = {
|
||||||
|
['rust-analyzer'] = {},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require('roslyn').setup({
|
||||||
|
config = {
|
||||||
|
-- the rest of your Roslyn configuration
|
||||||
|
handlers = require("rzls.roslyn_handlers"),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require("catppuccin").setup({
|
||||||
|
flavour = "auto", -- latte, frappe, macchiato, mocha
|
||||||
|
background = { -- :h background
|
||||||
|
light = "latte",
|
||||||
|
dark = "mocha",
|
||||||
|
},
|
||||||
|
transparent_background = false, -- disables setting the background color.
|
||||||
|
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
|
||||||
|
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
|
||||||
|
dim_inactive = {
|
||||||
|
enabled = false, -- dims the background color of inactive window
|
||||||
|
shade = "dark",
|
||||||
|
percentage = 0.15, -- percentage of the shade to apply to the inactive window
|
||||||
|
},
|
||||||
|
no_italic = false, -- Force no italic
|
||||||
|
no_bold = false, -- Force no bold
|
||||||
|
no_underline = false, -- Force no underline
|
||||||
|
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
|
||||||
|
comments = { "italic" }, -- Change the style of comments
|
||||||
|
conditionals = { "italic" },
|
||||||
|
loops = {},
|
||||||
|
functions = {},
|
||||||
|
keywords = {},
|
||||||
|
strings = {},
|
||||||
|
variables = {},
|
||||||
|
numbers = {},
|
||||||
|
booleans = {},
|
||||||
|
properties = {},
|
||||||
|
types = {},
|
||||||
|
operators = {},
|
||||||
|
-- miscs = {}, -- Uncomment to turn off hard-coded styles
|
||||||
|
},
|
||||||
|
color_overrides = {},
|
||||||
|
custom_highlights = {},
|
||||||
|
default_integrations = true,
|
||||||
|
integrations = {
|
||||||
|
cmp = true,
|
||||||
|
gitsigns = true,
|
||||||
|
nvimtree = true,
|
||||||
|
treesitter = true,
|
||||||
|
notify = false,
|
||||||
|
mini = {
|
||||||
|
enabled = true,
|
||||||
|
indentscope_color = "",
|
||||||
|
},
|
||||||
|
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local sign = function(opts)
|
||||||
|
vim.fn.sign_define(opts.name, {
|
||||||
|
texthl = opts.name,
|
||||||
|
text = opts.text,
|
||||||
|
numhl = ''
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
sign({name = 'DiagnosticSignError', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignWarn', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignHint', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignInfo', text = ''})
|
||||||
|
--Set completeopt to have a better completion experience
|
||||||
|
-- :help completeopt
|
||||||
|
-- menuone: popup even when there's only one match
|
||||||
|
-- noinsert: Do not insert text until a selection is made
|
||||||
|
-- noselect: Do not select, force to select one from the menu
|
||||||
|
-- shortness: avoid showing extra messages when using completion
|
||||||
|
-- updatetime: set updatetime for CursorHold
|
||||||
|
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
|
||||||
|
vim.opt.shortmess = vim.opt.shortmess + { c = true}
|
||||||
|
vim.api.nvim_set_option('updatetime', 300)
|
||||||
|
|
||||||
|
-- Fixed column for diagnostics to appear
|
||||||
|
-- Show autodiagnostic popup on cursor hover_range
|
||||||
|
-- Goto previous / next diagnostic warning / error
|
||||||
|
-- Show inlay_hints more frequently
|
||||||
|
vim.cmd([[
|
||||||
|
set signcolumn=yes
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
signs = true,
|
||||||
|
update_in_insert = true,
|
||||||
|
underline = true,
|
||||||
|
severity_sort = false,
|
||||||
|
float = {
|
||||||
|
border = 'rounded',
|
||||||
|
source = 'always',
|
||||||
|
header = '',
|
||||||
|
prefix = '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- setup must be called before loading
|
||||||
|
vim.cmd.colorscheme "catppuccin"
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>w', '<cmd>write<cr>', {desc = 'Save file'})
|
||||||
|
vim.keymap.set('n', '<leader>q', '<cmd>quitall<cr>', {desc = 'Exit vim'})
|
||||||
|
|
||||||
|
-- Simplified clipboard mappings
|
||||||
|
-- vim.keymap.set({'n', 'x', 'o'}, '<leader>y', '"+y', {desc = 'Copy to clipboard'})
|
||||||
|
-- vim.keymap.set({'n', 'x'}, '<leader>p', '"+p', {desc = 'Paste from clipboard'})
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>e', '<cmd>lua MiniFiles.open()<cr>', {desc = 'File explorer'})
|
||||||
|
vim.keymap.set('n', '<leader><space>', '<cmd>Pick buffers<cr>', {desc = 'Search open files'})
|
||||||
|
vim.keymap.set('n', '<leader>ff', '<cmd>Pick files<cr>', {desc = 'Search all files'})
|
||||||
|
vim.keymap.set('n', '<leader>fh', '<cmd>Pick help<cr>', {desc = 'Search help tags'})
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>h', '<cmd>wincmd h<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>l', '<cmd>wincmd l<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>j', '<cmd>wincmd j<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>k', '<cmd>wincmd k<cr>')
|
||||||
|
|
||||||
|
-- Rust
|
||||||
|
|
||||||
|
local cmp = require'cmp'
|
||||||
|
cmp.setup({
|
||||||
|
-- Enable LSP snippets
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
-- Add tab support
|
||||||
|
['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<Tab>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Insert,
|
||||||
|
select = true,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
-- Installed sources:
|
||||||
|
sources = {
|
||||||
|
{ name = 'path' }, -- file paths
|
||||||
|
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
|
||||||
|
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
|
||||||
|
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
|
||||||
|
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
|
||||||
|
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
|
||||||
|
{ name = 'calc'}, -- source for math calculation
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = {'menu', 'abbr', 'kind'},
|
||||||
|
format = function(entry, item)
|
||||||
|
local menu_icon ={
|
||||||
|
nvim_lsp = 'λ',
|
||||||
|
vsnip = '⋗',
|
||||||
|
buffer = 'Ω',
|
||||||
|
path = '🖫',
|
||||||
|
}
|
||||||
|
item.menu = menu_icon[entry.source.name]
|
||||||
|
return item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
Submodule
+1
Submodule nvim/pack/nvim/start/mini.nvim added at 3f5d06a6f7
Submodule
+1
Submodule nvim/pack/nvim/start/nvim-lspconfig added at 314b35335c
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm -rf ~/.config/nvim
|
||||||
|
cp -r nvim ~/.config/
|
||||||
|
git clone https://github.com/neovim/nvim-lspconfig ~/.config/nvim/pack/vendor/start/nvim-lspconfig
|
||||||
|
git clone https://github.com/echasnovski/mini.nvim ~/.config/nvim/pack/vendor/start/mini.nvim
|
||||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 MiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 658 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1017 KiB After Width: | Height: | Size: 1.5 MiB |
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/gamemoded.service
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/gnome-keyring-daemon.service
|
||||||
@@ -1 +0,0 @@
|
|||||||
/home/narl/.config/systemd/user/narl_io_mount.service
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/home/narl/.config/systemd/user/vaulthunters_mount.service
|
|
||||||
@@ -9,7 +9,7 @@ After=network-online.target
|
|||||||
# The command to start the mount.
|
# The command to start the mount.
|
||||||
# Replace "my-remote:" and "/path/to/local/mount" accordingly.
|
# Replace "my-remote:" and "/path/to/local/mount" accordingly.
|
||||||
# The flags below are highly recommended for a good experience.
|
# The flags below are highly recommended for a good experience.
|
||||||
ExecStart=rclone mount google_drive: %h/remote/gdrive \
|
ExecStart=rclone mount google_drive: %h/gdrive \
|
||||||
--vfs-cache-mode writes \
|
--vfs-cache-mode writes \
|
||||||
--log-file /tmp/rclone.log \
|
--log-file /tmp/rclone.log \
|
||||||
--log-level INFO
|
--log-level INFO
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
/home/narl/.config/systemd/user/openrgb.service
|
||||||
@@ -1 +0,0 @@
|
|||||||
/usr/lib/systemd/user/wayvnc.service
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# ~/.config/systemd/user/rclone-mount.service
|
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=sshfs mount for narl.io server
|
|
||||||
# This ensures your network is ready before it tries to mount
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
# The command to start the mount.
|
|
||||||
# Replace "my-remote:" and "/path/to/local/mount" accordingly.
|
|
||||||
# The flags below are highly recommended for a good experience.
|
|
||||||
ExecStart=sshfs -f -p 420 narl@narl.io:/opt %h/remote/narl.io
|
|
||||||
|
|
||||||
# The command to unmount gracefully.
|
|
||||||
ExecStop=fusermount -u %h/narl_io
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=10
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
# This tells systemd to start the service at user login.
|
|
||||||
WantedBy=default.target
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=OpenRGB Autostart
|
||||||
|
After=graphical-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/openrgb --profile white_static
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=graphical-session.target
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/wireplumber.service
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/wireplumber.service
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
/dev/null
|
||||||
@@ -1 +0,0 @@
|
|||||||
/usr/lib/systemd/user/gcr-ssh-agent.socket
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/lib/systemd/user/gnome-keyring-daemon.socket
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=SSH key agent
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=forking
|
|
||||||
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
|
|
||||||
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
# ~/.config/systemd/user/rclone-mount.service
|
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=sshfs mount for narl.io vaulthunters server
|
|
||||||
# This ensures your network is ready before it tries to mount
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
# The command to start the mount.
|
|
||||||
# Replace "my-remote:" and "/path/to/local/mount" accordingly.
|
|
||||||
# The flags below are highly recommended for a good experience.
|
|
||||||
ExecStart=sshfs -f -p 420 narl@vh3.narl.io:/opt/minecraft_vaulthunters %h/remote/vh3.narl.io
|
|
||||||
|
|
||||||
# The command to unmount gracefully.
|
|
||||||
ExecStop=fusermount -u %h/vaulthunters_server
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=10
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
# This tells systemd to start the service at user login.
|
|
||||||
WantedBy=default.target
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/usr/lib/systemd/user/sunshine.service
|
|
||||||
+211
-193
@@ -1,199 +1,217 @@
|
|||||||
// ~/.config/waybar/config.jsonc
|
// ~/.config/waybar/config.jsonc
|
||||||
[
|
{
|
||||||
{
|
"layer": "top",
|
||||||
"name": "top",
|
"position": "top",
|
||||||
"layer": "top",
|
"height": 36,
|
||||||
"position": "top",
|
"modules-left": [
|
||||||
"height": 39,
|
"hyprland/workspaces"
|
||||||
"spacing": 4,
|
],
|
||||||
"margin-top": 6,
|
"modules-center": [
|
||||||
"margin-left": 10,
|
],
|
||||||
"margin-right": 10,
|
"modules-right": [
|
||||||
|
// "custom/bluetooth-audio",
|
||||||
"modules-left": [
|
// "custom/pixelbuds_pro",
|
||||||
"hyprland/workspaces",
|
"custom/mem",
|
||||||
"hyprland/window"
|
"custom/cpu",
|
||||||
],
|
"custom/gpu",
|
||||||
"modules-center": [
|
"custom/network",
|
||||||
"group/center"
|
"custom/disk-root",
|
||||||
],
|
// "custom/disk-gdrive",
|
||||||
"modules-right": [
|
"custom/disk-data",
|
||||||
"tray",
|
"custom/disk-games",
|
||||||
"custom/gamemode",
|
// "network",
|
||||||
"custom/power_status"
|
"custom/audio-output",
|
||||||
],
|
"wireplumber",
|
||||||
|
"tray",
|
||||||
// --- Standard Modules ---
|
"custom/gpu-screen-recorder",
|
||||||
"hyprland/workspaces": {
|
"custom/droidcam",
|
||||||
"format": "{icon}",
|
"custom/gamemode",
|
||||||
"on-click": "activate"
|
"clock"
|
||||||
},
|
],
|
||||||
"hyprland/window": {
|
"custom/network": {
|
||||||
"format": "{}",
|
"exec": "~/.config/waybar/scripts/network.sh",
|
||||||
"max-length": 50
|
"interval": 2, // in seconds
|
||||||
},
|
"format": "{}",
|
||||||
"clock": {
|
"return-type": "json"
|
||||||
"format": "{:%a %d %b %H:%M}",
|
},
|
||||||
"tooltip": false
|
"hyprland/workspaces": {
|
||||||
},
|
"format": "{icon}",
|
||||||
"custom/mpris": {
|
"on-click": "activate"
|
||||||
"format": "{}",
|
},
|
||||||
"return-type": "json",
|
"hyprland/window": {
|
||||||
"exec": "fluxo-rs mpris",
|
"format": "{}",
|
||||||
"on-click": "playerctl play-pause",
|
"max-length": 35
|
||||||
"signal": 11,
|
},
|
||||||
"interval": 0
|
"clock": {
|
||||||
},
|
"format": "{:%a %d %b %H:%M}",
|
||||||
"tray": {
|
"format-alt": false,
|
||||||
"icon-size": 18,
|
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month > /dev/null ",
|
||||||
"spacing": 10
|
"tooltip": false,
|
||||||
},
|
},
|
||||||
|
"cpu": {
|
||||||
"group/center": {
|
"format": "CPU: {usage}%",
|
||||||
"orientation": "horizontal",
|
"tooltip": true,
|
||||||
"modules": [
|
"interval": 1
|
||||||
"custom/mpris",
|
},
|
||||||
"clock"
|
"memory": {
|
||||||
// "custom/dnd"
|
"format": "MEM: {used}/{total}GB",
|
||||||
]
|
"interval": 3
|
||||||
},
|
},
|
||||||
"custom/gamemode": {
|
"network": {
|
||||||
"format": "{}",
|
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
|
||||||
"return-type": "json",
|
"format-ethernet": "{ifname}: {ipaddr}",
|
||||||
"exec": "fluxo-rs game",
|
"format-disconnected": "Disconnected",
|
||||||
"on-click": "~/.config/hypr/scripts/gamemode.sh",
|
"tooltip-format": "{ifname} via {gwaddr}"
|
||||||
"signal": 7,
|
},
|
||||||
"interval": 5
|
"wireplumber": {
|
||||||
},
|
"format": "{volume}% {icon}",
|
||||||
|
"format-muted": "--- ",
|
||||||
"custom/power_status": {
|
"format-icons": {
|
||||||
"format": "{} ",
|
"headphone": "",
|
||||||
"return-type": "json",
|
"hands-free": "",
|
||||||
"exec": "fluxo-rs power",
|
"default": ["", "", ""]
|
||||||
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown",
|
},
|
||||||
"signal": 10,
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ",
|
||||||
"interval": 5
|
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle ",
|
||||||
}
|
"on-click-middle": "pavucontrol",
|
||||||
|
"scroll-step": 1
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "bottom",
|
|
||||||
"layer": "top",
|
|
||||||
"position": "bottom",
|
|
||||||
"height": 35,
|
|
||||||
"spacing": 4,
|
|
||||||
"margin-bottom": 6,
|
|
||||||
"margin-left": 10,
|
|
||||||
"margin-right": 10,
|
|
||||||
|
|
||||||
"modules-left": [
|
"custom/bluetooth-audio": {
|
||||||
"group/hardware"
|
"format": "{}",
|
||||||
],
|
"return-type": "json",
|
||||||
"group/hardware": {
|
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
|
||||||
"orientation": "horizontal",
|
"interval": 3,
|
||||||
"modules": [
|
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect "
|
||||||
"custom/sys",
|
},
|
||||||
"custom/cpu",
|
|
||||||
"custom/mem",
|
|
||||||
"custom/disk-root",
|
|
||||||
"custom/network"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"modules-center": [
|
|
||||||
],
|
|
||||||
"modules-right": [
|
|
||||||
"custom/bluetooth-audio",
|
|
||||||
"custom/volume",
|
|
||||||
"custom/mic"
|
|
||||||
],
|
|
||||||
|
|
||||||
// --- Fluxo-rs System & Hardware ---
|
"pulseaudio": {
|
||||||
"custom/sys": {
|
"format": "{icon} {volume}%",
|
||||||
"format": "{}",
|
"format-muted": " Muted",
|
||||||
"return-type": "json",
|
"format-icons": {
|
||||||
"exec": "fluxo-rs sys",
|
"headphone": "",
|
||||||
"signal": 5,
|
"hands-free": "",
|
||||||
"interval": 1
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", ""]
|
||||||
},
|
},
|
||||||
"custom/cpu": {
|
"on-click": "pavucontrol "
|
||||||
"format": "{}",
|
},
|
||||||
"return-type": "json",
|
"tray": {
|
||||||
"exec": "fluxo-rs cpu",
|
"icon-size": 18,
|
||||||
"on-click": "zenmonitor & disown",
|
"spacing": 10
|
||||||
"signal": 2,
|
},
|
||||||
"interval": 1
|
"custom/power": {
|
||||||
},
|
"format": "",
|
||||||
"custom/mem": {
|
"tooltip": false,
|
||||||
"format": "{}",
|
"on-click": "~/.config/hypr/scripts/powermenu.sh "
|
||||||
"return-type": "json",
|
},
|
||||||
"exec": "fluxo-rs mem",
|
"custom/tlp": {
|
||||||
"signal": 3,
|
"format": "{}",
|
||||||
"interval": 1
|
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
|
||||||
},
|
"return-type": "json",
|
||||||
"custom/gpu": {
|
"interval": 5
|
||||||
"format": "{}",
|
},
|
||||||
"return-type": "json",
|
"battery": {
|
||||||
"exec": "fluxo-rs gpu",
|
"states": {
|
||||||
"signal": 4,
|
"warning": 30,
|
||||||
"interval": 1
|
"critical": 15
|
||||||
},
|
},
|
||||||
"custom/network": {
|
"format": "{capacity}%",
|
||||||
"format": "{}",
|
"format-charging": "{capacity}%",
|
||||||
"return-type": "json",
|
"format-plugged": "{capacity}%",
|
||||||
"exec": "fluxo-rs net",
|
"format-alt": "{time} {icon}",
|
||||||
"signal": 1,
|
"format-full": "{capacity}%",
|
||||||
"interval": 1
|
"format-icons": ["", "", "", "", ""]
|
||||||
},
|
},
|
||||||
|
"custom/pixelbuds_pro": {
|
||||||
"custom/disk-root": {
|
"format": "{}",
|
||||||
"format": "{}",
|
"return-type": "json",
|
||||||
"return-type": "json",
|
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
|
||||||
"exec": "fluxo-rs disk /",
|
"interval": 5,
|
||||||
"signal": 6,
|
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect ",
|
||||||
"interval": 1
|
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc "
|
||||||
},
|
},
|
||||||
|
"custom/audio-output": {
|
||||||
// --- Fluxo-rs Audio & BT ---
|
"format": "{}",
|
||||||
"custom/volume": {
|
"return-type": "json",
|
||||||
"format": "{}",
|
"exec": "/home/narl/.config/waybar/scripts/audio.sh show",
|
||||||
"return-type": "json",
|
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle ",
|
||||||
"exec": "fluxo-rs vol",
|
"interval": 1
|
||||||
"on-click": "fluxo-rs vol mute",
|
},
|
||||||
"on-scroll-up": "fluxo-rs vol up 5",
|
"custom/gamemode": {
|
||||||
"on-scroll-down": "fluxo-rs vol down 5",
|
"format": "{}",
|
||||||
"on-click-right": "fluxo-rs vol cycle",
|
"return-type": "json",
|
||||||
"on-click-middle": "pavucontrol",
|
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
|
||||||
"signal": 8,
|
"on-click": "~/.config/hypr/scripts/gamemode.sh ",
|
||||||
"interval": 1
|
"interval": 1
|
||||||
},
|
},
|
||||||
"custom/mic": {
|
"custom/droidcam": {
|
||||||
"format": "{}",
|
"format": "{}",
|
||||||
"return-type": "json",
|
"return-type": "json",
|
||||||
"exec": "fluxo-rs mic",
|
"exec": "~/.config/waybar/scripts/droidcam_status.sh",
|
||||||
"on-click": "fluxo-rs mic mute",
|
"on-click": "~/.config/hypr/scripts/droidcam-ctrl.sh toggle",
|
||||||
"on-scroll-up": "fluxo-rs mic up 5",
|
"interval": 1
|
||||||
"on-scroll-down": "fluxo-rs mic down 5",
|
},
|
||||||
"on-click-right": "fluxo-rs mic cycle",
|
"custom/gpu-screen-recorder": {
|
||||||
"on-click-middle": "pavucontrol",
|
"format": "{}",
|
||||||
"signal": 8,
|
"return-type": "json",
|
||||||
"interval": 1
|
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
|
||||||
},
|
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save ",
|
||||||
"custom/bluetooth-audio": {
|
"on-click-middle": "nautilus ~/Videos/replay ",
|
||||||
"format": "{}",
|
"on-click": "~/.config/waybar/scripts/toggle-replay.sh ",
|
||||||
"return-type": "json",
|
"interval": 1
|
||||||
"exec": "fluxo-rs bt",
|
},
|
||||||
"on-click": "fluxo-rs bt menu",
|
"custom/gpu": {
|
||||||
"on-click-right": "fluxo-rs bt cycle_mode",
|
"format": "{}",
|
||||||
"signal": 9,
|
"return-type": "json",
|
||||||
"interval": 1,
|
"exec": "~/.config/waybar/scripts/gpu_info.sh",
|
||||||
"tooltip": true
|
"on-click": "lact gui ",
|
||||||
},
|
"interval": 3
|
||||||
"custom/dnd": {
|
},
|
||||||
"format": "{}",
|
"custom/cpu": {
|
||||||
"return-type": "json",
|
"format": "{}",
|
||||||
"exec": "fluxo-rs dnd",
|
"return-type": "json",
|
||||||
"on-click": "fluxo-rs dnd toggle",
|
"exec": "~/.config/waybar/scripts/cpu_info.sh",
|
||||||
"signal": 14,
|
"on-click": "zenmonitor ",
|
||||||
"interval": 0
|
"interval": 3
|
||||||
}
|
},
|
||||||
|
"custom/mem": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/memory.sh",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/btrfs": {
|
||||||
|
"format": "{}",
|
||||||
|
"exec": "~/.config/waybar/scripts/btrfs.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-root": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh /",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-gdrive": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-data": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-games": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
|
||||||
|
"interval": 30
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
|
|||||||
@@ -0,0 +1,402 @@
|
|||||||
|
// ~/.config/waybar/config.jsonc
|
||||||
|
[{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"output": "eDP-1",
|
||||||
|
"height": 30,
|
||||||
|
"modules-left": ["hyprland/workspaces"],
|
||||||
|
"modules-center": [],
|
||||||
|
"modules-right": [
|
||||||
|
"custom/pixelbuds_pro",
|
||||||
|
"wireplumber",
|
||||||
|
"custom/audio-output",
|
||||||
|
"custom/network",
|
||||||
|
"custom/mem",
|
||||||
|
"custom/cpu",
|
||||||
|
"custom/disk-root",
|
||||||
|
"custom/disk-gdrive",
|
||||||
|
"custom/tlp",
|
||||||
|
"tray",
|
||||||
|
"clock"
|
||||||
|
],
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"on-click": "activate"
|
||||||
|
},
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%a %d %b %H:%M}",
|
||||||
|
"format-alt": false,
|
||||||
|
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
|
||||||
|
"tooltip": false,
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "CPU: {usage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "MEM: {used}/{total}GB",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
|
||||||
|
"format-ethernet": "{ifname}: {ipaddr}",
|
||||||
|
"format-disconnected": "Disconnected",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr}"
|
||||||
|
},
|
||||||
|
"wireplumber": {
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
||||||
|
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle",
|
||||||
|
"on-click-middle": "pavucontrol",
|
||||||
|
"scroll-step": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/bluetooth-audio": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
|
||||||
|
"interval": 3,
|
||||||
|
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect & disown"
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": " Muted",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol & disown"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 18,
|
||||||
|
"spacing": 6
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false,
|
||||||
|
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown"
|
||||||
|
},
|
||||||
|
"custom/tlp": {
|
||||||
|
"format": "{}",
|
||||||
|
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 5
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}%",
|
||||||
|
"format-charging": "{capacity}%",
|
||||||
|
"format-plugged": "{capacity}%",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-full": "{capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"custom/pixelbuds_pro": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
|
||||||
|
"interval": 5,
|
||||||
|
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect & disown",
|
||||||
|
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc & disown"
|
||||||
|
},
|
||||||
|
"custom/audio-output": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "/home/narl/.config/waybar/scripts/audio.sh show",
|
||||||
|
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gamemode": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
|
||||||
|
"on-click": "~/.config/hypr/scripts/gamemode.sh & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gpu-screen-recorder": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
|
||||||
|
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown",
|
||||||
|
"on-click-middle": "nautilus ~/Videos/replay & disown",
|
||||||
|
"on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gpu": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gpu_info.sh",
|
||||||
|
"on-click": "lact gui & disown",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/cpu": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu_info.sh",
|
||||||
|
"on-click": "zenmonitor & disown",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/mem": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/memory.sh",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/btrfs": {
|
||||||
|
"format": "{}",
|
||||||
|
"exec": "~/.config/waybar/scripts/btrfs.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-root": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh /",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-gdrive": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-data": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-games": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/network": {
|
||||||
|
"exec": "~/.config/waybar/scripts/network.sh",
|
||||||
|
"interval": 2, // in seconds
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json"
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"output": "!eDP-1",
|
||||||
|
"height": 30,
|
||||||
|
"modules-left": ["hyprland/workspaces"],
|
||||||
|
"modules-center": [],
|
||||||
|
"modules-right": [
|
||||||
|
// "custom/pixelbuds_pro",
|
||||||
|
"wireplumber",
|
||||||
|
"custom/audio-output",
|
||||||
|
"custom/network",
|
||||||
|
"custom/mem",
|
||||||
|
"custom/cpu",
|
||||||
|
"custom/disk-root",
|
||||||
|
"custom/disk-gdrive",
|
||||||
|
"custom/tlp",
|
||||||
|
"tray",
|
||||||
|
"clock"
|
||||||
|
],
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"on-click": "activate"
|
||||||
|
},
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%a %d %b %H:%M}",
|
||||||
|
"format-alt": false,
|
||||||
|
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
|
||||||
|
"tooltip": false,
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "CPU: {usage}%",
|
||||||
|
"tooltip": true,
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "MEM: {used}/{total}GB",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
|
||||||
|
"format-ethernet": "{ifname}: {ipaddr}",
|
||||||
|
"format-disconnected": "Disconnected",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr}"
|
||||||
|
},
|
||||||
|
"wireplumber": {
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
||||||
|
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle",
|
||||||
|
"on-click-middle": "pavucontrol",
|
||||||
|
"scroll-step": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/bluetooth-audio": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
|
||||||
|
"interval": 3,
|
||||||
|
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect & disown"
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": " Muted",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol & disown"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 18,
|
||||||
|
"spacing": 6
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false,
|
||||||
|
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown"
|
||||||
|
},
|
||||||
|
"custom/tlp": {
|
||||||
|
"format": "{}",
|
||||||
|
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 5
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}%",
|
||||||
|
"format-charging": "{capacity}%",
|
||||||
|
"format-plugged": "{capacity}%",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-full": "{capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"custom/pixelbuds_pro": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
|
||||||
|
"interval": 5,
|
||||||
|
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect & disown",
|
||||||
|
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc & disown"
|
||||||
|
},
|
||||||
|
"custom/audio-output": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "/home/narl/.config/waybar/scripts/audio.sh show",
|
||||||
|
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gamemode": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
|
||||||
|
"on-click": "~/.config/hypr/scripts/gamemode.sh & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gpu-screen-recorder": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
|
||||||
|
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown",
|
||||||
|
"on-click-middle": "nautilus ~/Videos/replay & disown",
|
||||||
|
"on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"custom/gpu": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/gpu_info.sh",
|
||||||
|
"on-click": "lact gui & disown",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/cpu": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu_info.sh",
|
||||||
|
"on-click": "zenmonitor & disown",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/mem": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/memory.sh",
|
||||||
|
"interval": 3
|
||||||
|
},
|
||||||
|
"custom/btrfs": {
|
||||||
|
"format": "{}",
|
||||||
|
"exec": "~/.config/waybar/scripts/btrfs.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-root": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh /",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-gdrive": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-data": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/disk-games": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
|
||||||
|
"interval": 30
|
||||||
|
},
|
||||||
|
"custom/network": {
|
||||||
|
"exec": "~/.config/waybar/scripts/network.sh",
|
||||||
|
"interval": 2, // in seconds
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json"
|
||||||
|
}
|
||||||
|
}]
|
||||||
Executable
+40
@@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
DEFAULT_SINK=$(pactl info | grep 'Default Sink' | cut -d ' ' -f3)
|
||||||
|
DESCRIPTION=$(pactl list sinks | grep -A2 "Name: $DEFAULT_SINK" | grep "Description:" | cut -d ' ' -f2-)
|
||||||
|
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
cycle)
|
||||||
|
SINKS=($(pactl list short sinks | awk '{print $2}'))
|
||||||
|
NUM_SINKS=${#SINKS[@]}
|
||||||
|
CURRENT_SINK=$(pactl info | grep 'Default Sink' | cut -d ' ' -f3)
|
||||||
|
|
||||||
|
for i in "${!SINKS[@]}"; do
|
||||||
|
if [[ "${SINKS[$i]}" == "$CURRENT_SINK" ]]; then
|
||||||
|
NEXT_INDEX=$(( (i + 1) % NUM_SINKS ))
|
||||||
|
pactl set-default-sink "${SINKS[$NEXT_INDEX]}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
show)
|
||||||
|
TEXT=$(echo "$DESCRIPTION" | cut -c -20)
|
||||||
|
if [ -z "$DESCRIPTION" ]; then
|
||||||
|
DESCRIPTION=$DEFAULT_SINK
|
||||||
|
fi
|
||||||
|
CLASS=""
|
||||||
|
case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
|
||||||
|
yes)
|
||||||
|
CLASS="muted"
|
||||||
|
;;
|
||||||
|
no)
|
||||||
|
CLASS="unmuted"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printf '{"text": "%s", "tooltip": "%s", "class": "%s"}' "$TEXT" "$DESCRIPTION" "$CLASS"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "usage audio.sh {cycle|show}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Executable
+118
@@ -0,0 +1,118 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
bt-audio-info() {
|
||||||
|
# Check if a MAC address was provided as the first argument.
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: $0 <MAC_ADDRESS>"
|
||||||
|
echo "Example: $0 00:11:22:33:AA:BB"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
MAC_ADDRESS="$1"
|
||||||
|
|
||||||
|
# --- Main Logic ---
|
||||||
|
|
||||||
|
# Construct the PipeWire sink name from the MAC address.
|
||||||
|
# The format is typically: bluez_output.XX_XX_XX_XX_XX_XX.a2dp_sink
|
||||||
|
# We replace colons with underscores for the format.
|
||||||
|
SINK_IDENTIFIER="bluez_output.$(echo "$MAC_ADDRESS" | tr ':' '_')"
|
||||||
|
|
||||||
|
# Use pactl to get the full details for all sinks, then find the one
|
||||||
|
# that contains our device's identifier. We use awk to print the
|
||||||
|
# entire block of text for that specific sink.
|
||||||
|
# We check for a partial match on the sink identifier because the profile
|
||||||
|
# (e.g., .a2dp_sink) can change.
|
||||||
|
sink_info=$(pactl list sinks | awk -v id="$SINK_IDENTIFIER" '/Sink #/ {p=0} $0 ~ "Name: " id {p=1} p')
|
||||||
|
|
||||||
|
# If sink_info is empty, the device might not be an audio sink or isn't connected.
|
||||||
|
if [ -z "$sink_info" ]; then
|
||||||
|
echo "Error: Could not find an active audio sink for MAC ${MAC_ADDRESS}"
|
||||||
|
echo "Please ensure the device is connected and is an audio output device."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the full block of info for the device from bluetoothctl.
|
||||||
|
device_info=$(bluetoothctl info "$MAC_ADDRESS")
|
||||||
|
|
||||||
|
# --- Parse Information ---
|
||||||
|
|
||||||
|
# Parse bluetoothctl output for general device details.
|
||||||
|
alias=$(echo "$device_info" | rg "Alias:" | cut -d ' ' -f 2-)
|
||||||
|
trusted=$(echo "$device_info" | rg "Trusted:" | awk '{print $2}')
|
||||||
|
battery_raw=$(echo "$device_info" | rg "Battery Percentage:" | awk -F'[()]' '{print $2}')
|
||||||
|
|
||||||
|
# Parse pactl output for audio-specific details.
|
||||||
|
volume=$(echo "$sink_info" | rg "Volume:" | head -n1 | awk '{print $5}')
|
||||||
|
codec=$(echo "$sink_info" | rg -e 'bluetooth.codec|api.bluez5.codec' | awk -F'"' '{print $2}')
|
||||||
|
|
||||||
|
# --- Build and Display Compact Output ---
|
||||||
|
|
||||||
|
# Build the output string with all the information.
|
||||||
|
output_string="${alias} | MAC: ${MAC_ADDRESS}\n"
|
||||||
|
output_string+="Trusted: ${trusted}"
|
||||||
|
|
||||||
|
# Append battery info if available, otherwise show N/A.
|
||||||
|
if [ -n "$battery_raw" ]; then
|
||||||
|
output_string+=" | Bat: ${battery_raw}%"
|
||||||
|
else
|
||||||
|
output_string+=" | Bat: N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
output_string+=" | Vol: ${volume} | Codec: ${codec:-N/A}"
|
||||||
|
|
||||||
|
# Print the final, single-line string.
|
||||||
|
echo "$output_string"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find the MAC address of the first connected device that is an audio sink
|
||||||
|
find_audio_device() {
|
||||||
|
default_sink_name=$(pactl get-default-sink)
|
||||||
|
|
||||||
|
# Check if the default sink is a Bluetooth device. Their names typically
|
||||||
|
# start with "bluez_output.". If not, print a message and exit.
|
||||||
|
if [[ "$default_sink_name" == bluez_output* ]]; then
|
||||||
|
# Extract the MAC address from the sink name.
|
||||||
|
# The format is bluez_output.XX_XX_XX_XX_XX_XX.profile
|
||||||
|
# We extract the middle part and replace underscores with colons.
|
||||||
|
mac_with_underscores=$(echo "$default_sink_name" | cut -d '.' -f 2)
|
||||||
|
mac=$(echo "$mac_with_underscores" | tr '_' ':')
|
||||||
|
echo "$mac"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# else look for the first bluetooth device that provides a sink
|
||||||
|
bluetoothctl devices Connected | rg '^Device ' | awk '{print $2}' | while read -r mac;
|
||||||
|
do
|
||||||
|
# Check if the device provides the "Audio Sink" service
|
||||||
|
if bluetoothctl info "$mac" | rg -q "0000110b-0000-1000-8000-00805f9b34fb"; then
|
||||||
|
echo "$mac"
|
||||||
|
# If you only want the first audio device found, you can 'break' or 'exit' here.
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# If the script is called with "disconnect"
|
||||||
|
if [ "$1" == "disconnect" ]; then
|
||||||
|
device_mac=$(find_audio_device)
|
||||||
|
if [ -n "$device_mac" ]; then
|
||||||
|
bluetoothctl disconnect "$device_mac"
|
||||||
|
fi
|
||||||
|
echo "{}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Main logic to display the device name
|
||||||
|
device_mac=$(find_audio_device)
|
||||||
|
|
||||||
|
if [ -n "$device_mac" ]; then
|
||||||
|
# Get the device alias (name)
|
||||||
|
device_name=$(bluetoothctl info "$device_mac" | rg "Alias:" | cut -d ' ' -f 2-)
|
||||||
|
# Output in Waybar's JSON format
|
||||||
|
tooltip=$(bt-audio-info $device_mac)
|
||||||
|
echo "{\"text\": \"$device_name <span size='large'></span>\", \"tooltip\": \"$tooltip\"}"
|
||||||
|
else
|
||||||
|
# Output empty string when no device is connected
|
||||||
|
echo "{}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
Executable
+45
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get BTRFS filesystems
|
||||||
|
btrfs_filesystems=$(df -hT | grep btrfs)
|
||||||
|
|
||||||
|
# Initialize variables
|
||||||
|
total_used=0
|
||||||
|
total_size=0
|
||||||
|
|
||||||
|
# Process each BTRFS filesystem
|
||||||
|
while read -r line; do
|
||||||
|
size_str=$(echo "$line" | awk '{print $3}')
|
||||||
|
used_str=$(echo "$line" | awk '{print $4}')
|
||||||
|
|
||||||
|
size=$(echo "$size_str" | sed 's/[GT]//')
|
||||||
|
used=$(echo "$used_str" | sed 's/[GT]//')
|
||||||
|
|
||||||
|
if [[ $size_str == *T ]]; then
|
||||||
|
size=$(awk -v s="$size" 'BEGIN {print s*1024}')
|
||||||
|
fi
|
||||||
|
if [[ $used_str == *T ]]; then
|
||||||
|
used=$(awk -v u="$used" 'BEGIN {print u*1024}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
total_size=$(awk -v total="$total_size" -v size="$size" 'BEGIN {print total+size}')
|
||||||
|
total_used=$(awk -v total="$total_used" -v used="$used" 'BEGIN {print total+used}')
|
||||||
|
|
||||||
|
done <<< "$btrfs_filesystems"
|
||||||
|
|
||||||
|
# Calculate usage percentage
|
||||||
|
usage_percentage=$(awk -v used="$total_used" -v total="$total_size" 'BEGIN {printf "%.0f", (used/total)*100}')
|
||||||
|
|
||||||
|
# Set class based on usage
|
||||||
|
if [ "$usage_percentage" -gt 95 ]; then
|
||||||
|
class="max"
|
||||||
|
elif [ "$usage_percentage" -gt 80 ]; then
|
||||||
|
class="high"
|
||||||
|
else
|
||||||
|
class="normal"
|
||||||
|
fi
|
||||||
|
|
||||||
|
text="$(printf "%.0f" $total_used)G / $(printf "%.0f" $total_size)G"
|
||||||
|
|
||||||
|
# Manually construct the JSON output
|
||||||
|
echo "{\"text\": \"$text\", \"tooltip\": \"\", \"class\": \"$class\"}"
|
||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
USAGE=$(mpstat 1 1 | awk '/Average:/ {print 100 - $12}')
|
||||||
|
TEMP=$(cat /sys/class/hwmon/hwmon3/temp1_input)
|
||||||
|
TEXT="$(printf "%.1f" $(echo "$USAGE"))% $(printf "%.1f" $(echo "scale=2; $TEMP"/1000 | bc -l))C"
|
||||||
|
CPU=$(lscpu | grep 'Model name' | awk -F': ' '{print $2}' | sed 's/^[ \t]*//')
|
||||||
|
# TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk '{output = output sprintf("%.1f%%\t%s\\n", $1, $2)} END {printf "%s", output}')
|
||||||
|
# TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\n", $1/ncores, $2}')
|
||||||
|
# TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\\n", $1/ncores, $2}')
|
||||||
|
# TOOLTIP=$(top -b -n 1 | sed '1,7d' | head -n 5 | awk '{output = output sprintf("%.1f%%\t%s\\n", $9, $12)} END {printf "%s", output}')
|
||||||
|
|
||||||
|
CLASS=""
|
||||||
|
|
||||||
|
if (( $(echo "$USAGE > 95" | bc -l) )); then
|
||||||
|
CLASS="max"
|
||||||
|
elif (( $(echo "$USAGE > 75" | bc -l) )); then
|
||||||
|
CLASS="high"
|
||||||
|
else
|
||||||
|
CLASS="normal"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# echo "{\"text\":\"CPU: $TEXT\", \"tooltip\": \"$TOOLTIP\", \"class\":\"$CLASS\"}"
|
||||||
|
echo "{\"text\":\"CPU: $TEXT\", \"class\":\"$CLASS\"}"
|
||||||
Executable
+31
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: $0 <mountpoint>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MOUNTPOINT=$1
|
||||||
|
|
||||||
|
# Get disk usage info
|
||||||
|
USED=$(df -h --output=used "$MOUNTPOINT" | sed '1d' | awk '{print $1}')
|
||||||
|
TOTAL=$(df -h --output=size "$MOUNTPOINT" | sed '1d' | awk '{print $1}')
|
||||||
|
PERCENTAGE=$(df --output=pcent "$MOUNTPOINT" | sed '1d' | tr -d '%' | awk '{print $1}')
|
||||||
|
|
||||||
|
# Set class based on usage
|
||||||
|
CLASS="normal"
|
||||||
|
if [ "$PERCENTAGE" -gt 95 ]; then
|
||||||
|
CLASS="max"
|
||||||
|
elif [ "$PERCENTAGE" -gt 80 ]; then
|
||||||
|
CLASS="high"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create tooltip with more details
|
||||||
|
TOOLTIP=$(df -h "$MOUNTPOINT" | sed '1d' | awk '{printf "Used: %s\nTotal: %s\nFree: %s", $3, $2, $4}')
|
||||||
|
|
||||||
|
# Output JSON for Waybar using jq
|
||||||
|
jq -n -c \
|
||||||
|
--arg text "$1 $USED/$TOTAL" \
|
||||||
|
--arg tooltip "$TOOLTIP" \
|
||||||
|
--arg class "$CLASS" \
|
||||||
|
'{"text": $text, "tooltip": $tooltip, "class": $class}'
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f /tmp/droidcam.pid ]; then
|
||||||
|
echo "{\"text\": \"\", \"class\": \"active\"}"
|
||||||
|
else
|
||||||
|
echo "{\"text\": \"\"}"
|
||||||
|
fi
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
FORMAT_ACTIVATED="<span size='large'></span>"
|
||||||
|
FORMAT_DEACTIVATED="<span size='large'></span>"
|
||||||
|
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
|
||||||
|
if [ "$HYPRGAMEMODE" = 1 ] ; then
|
||||||
|
printf "{\"text\": \"$FORMAT_DEACTIVATED\", \"tooltip\": \"Gamemode deactivated\"}"
|
||||||
|
else
|
||||||
|
printf "{\"text\": \"$FORMAT_ACTIVATED\", \"tooltip\": \"Gamemode activated\", \"class\": \"active\"}"
|
||||||
|
fi
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
PID_FILE="/tmp/gpu-screen-recorder.pid"
|
PID_FILE="/tmp/gpu-screen-recorder.pid"
|
||||||
FORMAT_RECORDING="<span size='large'></span>"
|
FORMAT_RECORDING="<span size='large'></span>"
|
||||||
FORMAT_STOPPED="<span size='large'></span>"
|
FORMAT_STOPPED="<span size='large'></span>"
|
||||||
|
|
||||||
if [ -f "$PID_FILE" ]; then
|
if [ -f "$PID_FILE" ]; then
|
||||||
PID=$(cat "$PID_FILE")
|
PID=$(cat "$PID_FILE")
|
||||||
|
|||||||
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
USAGE=$(cat /sys/class/drm/card1/device/gpu_busy_percent)
|
||||||
|
MEM_USED=$(cat /sys/class/drm/card1/device/mem_info_vram_used)
|
||||||
|
MEM_TOTAL=$(cat /sys/class/drm/card1/device/mem_info_vram_total)
|
||||||
|
EDGE_TEMP=$(cat /sys/class/drm/card1/device/hwmon/hwmon2/temp1_input)
|
||||||
|
JUNC_TEMP=$(cat /sys/class/drm/card1/device/hwmon/hwmon2/temp2_input)
|
||||||
|
MEM_TEMP=$(cat /sys/class/drm/card1/device/hwmon/hwmon2/temp3_input)
|
||||||
|
GPU=$(/opt/rocm/bin/rocm-smi --showproductname | grep "Card Series" | awk -F':' '{print $3}' | xargs)
|
||||||
|
TEXT="$USAGE% $(printf "%.1f" $(echo "scale=2; $MEM_USED/1024/1024/1024" | bc -l))/$(printf "%.1f" $(echo "scale=2; $MEM_TOTAL/1024/1024/1024" | bc -l))GB $(printf "%.1f" $(echo "scale=2; $EDGE_TEMP/1000" | bc -l))/$(printf "%.1f" $(echo "scale=2; $MEM_TEMP/1000" | bc -l))C"
|
||||||
|
RATIO=$(echo "$MEM_USED/ $MEM_TOTAL" | bc -l)
|
||||||
|
|
||||||
|
CLASS=""
|
||||||
|
|
||||||
|
if (( $(echo "$USAGE > 95" | bc -l) )); then
|
||||||
|
CLASS="max"
|
||||||
|
elif (( $(echo "$USAGE > 75" | bc -l) )); then
|
||||||
|
CLASS="high"
|
||||||
|
else
|
||||||
|
CLASS="normal"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "{\"text\":\"GPU: $TEXT\", \"tooltip\": \"$GPU\", \"class\":\"$CLASS\"}"
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# TOOLTIP=$(ps -eo rss,comm --sort=-rss | head -n 6 | sed '1d' | awk '{output = output sprintf("%.2f GB\t%s\\n", $1/1024/1024, $2)} END {printf "%s", output}')
|
||||||
|
TOTAL=$(awk '/MemTotal/ {printf "%.2f\n", $2/1024/1024}' /proc/meminfo)
|
||||||
|
USED=$(awk '/MemTotal/ {total=$2} /MemAvailable/ {available=$2} END {printf "%.2f\n", (total-available)/1024/1024}' /proc/meminfo)
|
||||||
|
RATIO=$(echo "$USED/ $TOTAL" | bc -l)
|
||||||
|
|
||||||
|
CLASS=""
|
||||||
|
|
||||||
|
if (( $(echo "$RATIO> 95" | bc -l) )); then
|
||||||
|
CLASS="max"
|
||||||
|
elif (( $(echo "$RATIO> 75" | bc -l) )); then
|
||||||
|
CLASS="high"
|
||||||
|
else
|
||||||
|
CLASS="normal"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# printf '{"text": "%s/%sGB", "tooltip": "%s", "class": "%s"}' "$USED" "$TOTAL" "$TOOLTIP" "$CLASS"
|
||||||
|
printf '{"text": "%s/%sGB", "class": "%s"}' "$USED" "$TOTAL" "$CLASS"
|
||||||
Executable
+62
@@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Path for the temporary file to store previous stats
|
||||||
|
STATS_FILE="/tmp/waybar_net_stats"
|
||||||
|
|
||||||
|
# Find the primary default network interface by sorting routing metrics.
|
||||||
|
# This correctly prioritizes a VPN connection when it's active.
|
||||||
|
INTERFACE_INFO=$(ip route list | grep '^default' | sort -k 9 -n | head -n1)
|
||||||
|
INTERFACE=$(echo "$INTERFACE_INFO" | awk '{print $5}')
|
||||||
|
|
||||||
|
# Exit if no active interface is found
|
||||||
|
if [ -z "$INTERFACE" ]; then
|
||||||
|
echo "{\"text\": \"No connection\"}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the IP address for the interface
|
||||||
|
IP_ADDR=$(ip -4 addr show "$INTERFACE" | grep -oP 'inet \K[\d.]+')
|
||||||
|
|
||||||
|
# Get current time and byte counts
|
||||||
|
TIME_NOW=$(date +%s)
|
||||||
|
RX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/rx_bytes")
|
||||||
|
TX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/tx_bytes")
|
||||||
|
|
||||||
|
# Initialize speeds to 0
|
||||||
|
RX_MBPS="0.00"
|
||||||
|
TX_MBPS="0.00"
|
||||||
|
|
||||||
|
# Read previous values if the stats file exists
|
||||||
|
if [ -f "$STATS_FILE" ]; then
|
||||||
|
source "$STATS_FILE" # This loads PREV_TIME, PREV_RX_BYTES, PREV_TX_BYTES
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Calculate speed if we have previous data and time has passed
|
||||||
|
if [ -n "$PREV_TIME" ] && [ "$TIME_NOW" -gt "$PREV_TIME" ]; then
|
||||||
|
TIME_DIFF=$((TIME_NOW - PREV_TIME))
|
||||||
|
|
||||||
|
RX_BPS=$(( (RX_BYTES_NOW - PREV_RX_BYTES) / TIME_DIFF ))
|
||||||
|
TX_BPS=$(( (TX_BYTES_NOW - PREV_TX_BYTES) / TIME_DIFF ))
|
||||||
|
|
||||||
|
# Using printf for better formatting (forces two decimal places)
|
||||||
|
RX_MBPS=$(printf "%.2f" "$(echo "$RX_BPS / 1024 / 1024" | bc -l)")
|
||||||
|
TX_MBPS=$(printf "%.2f" "$(echo "$TX_BPS / 1024 / 1024" | bc -l)")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Save current values for the next run
|
||||||
|
echo "PREV_TIME=$TIME_NOW" > "$STATS_FILE"
|
||||||
|
echo "PREV_RX_BYTES=$RX_BYTES_NOW" >> "$STATS_FILE"
|
||||||
|
echo "PREV_TX_BYTES=$TX_BYTES_NOW" >> "$STATS_FILE"
|
||||||
|
|
||||||
|
# Format the main output string
|
||||||
|
OUTPUT_TEXT="$INTERFACE ($IP_ADDR): ${RX_MBPS} MB/s ${TX_MBPS} MB/s"
|
||||||
|
|
||||||
|
# Prepend a VPN icon if a common VPN interface is active
|
||||||
|
case "$INTERFACE" in
|
||||||
|
tun*|wg*|ppp*|pvpn*)
|
||||||
|
OUTPUT_TEXT=" $OUTPUT_TEXT"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Output JSON for Waybar
|
||||||
|
echo "{\"text\": \"$OUTPUT_TEXT\"}"
|
||||||
Executable
+126
@@ -0,0 +1,126 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# --- CONFIGURATION ---
|
||||||
|
# Your Pixel Buds Pro's MAC Address
|
||||||
|
MAC_ADDRESS="B4:23:A2:09:D3:53"
|
||||||
|
# --- END CONFIGURATION ---
|
||||||
|
|
||||||
|
not_connected() {
|
||||||
|
printf "{\"text\": \"<span size='large'></span>\", \"tooltip\": \"Pixel Buds Pro 2 not connected\", \"class\": \"disconnected\"}\n"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# This function gets the current status and formats it for Waybar.
|
||||||
|
get_status() {
|
||||||
|
# Get all info from pbpctrl in one go. Redirect errors to null.
|
||||||
|
battery_output=$(pbpctrl show battery 2>/dev/null)
|
||||||
|
|
||||||
|
# Fallback: If pbpctrl fails or returns 'unknown', hide the module.
|
||||||
|
if [[ $? -ne 0 || -z "$battery_output" ]]; then
|
||||||
|
not_connected
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- PARSE BATTERY INFO ---
|
||||||
|
left_bud=$(echo "$battery_output" | grep "left bud:" | awk '{print $3}')
|
||||||
|
right_bud=$(echo "$battery_output" | grep "right bud:" | awk '{print $3}')
|
||||||
|
|
||||||
|
if ([[ "$left_bud" == "unknown" ]] && [[ "$right_bud" == "unknown" ]]) || \
|
||||||
|
[[ -z "$left_bud" && -z "$right_bud" ]]; then
|
||||||
|
echo "{}"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$left_bud" == "unknown" ]]; then
|
||||||
|
left_display="L: ---"
|
||||||
|
else
|
||||||
|
left_display="L: $left_bud"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$right_bud" == "unknown" ]]; then
|
||||||
|
right_display="R: ---"
|
||||||
|
else
|
||||||
|
right_display="R: $right_bud"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- PARSE ANC INFO ---
|
||||||
|
current_mode=$(pbpctrl get anc 2>/dev/null)
|
||||||
|
|
||||||
|
case "$current_mode" in
|
||||||
|
"active")
|
||||||
|
anc_icon="ANC"
|
||||||
|
class="anc-active"
|
||||||
|
;;
|
||||||
|
"aware")
|
||||||
|
anc_icon="Aware"
|
||||||
|
class="anc-aware"
|
||||||
|
;;
|
||||||
|
"off")
|
||||||
|
anc_icon="Off"
|
||||||
|
class="anc-off"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
anc_icon="?"
|
||||||
|
class="anc-unknown"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --- FORMAT OUTPUT ---
|
||||||
|
printf '{"text": "%s | %s | %s", "tooltip": "Pixel Buds Pro 2", "class": "%s"}\n' \
|
||||||
|
"$left_display" "$right_display" "$anc_icon" "$class"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
# First, check if the device is connected using bluetoothctl.
|
||||||
|
if bluetoothctl info "$MAC_ADDRESS" | grep -q "Connected: yes"; then
|
||||||
|
# --- DEVICE IS CONNECTED ---
|
||||||
|
get_status
|
||||||
|
else
|
||||||
|
# --- DEVICE IS NOT CONNECTED ---
|
||||||
|
not_connected
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Handle click actions passed from Waybar.
|
||||||
|
case "$1" in
|
||||||
|
cycle_anc)
|
||||||
|
current_mode=$(pbpctrl get anc 2>/dev/null)
|
||||||
|
next_mode="active"
|
||||||
|
case "$current_mode" in
|
||||||
|
active)
|
||||||
|
next_mode="aware"
|
||||||
|
;;
|
||||||
|
aware)
|
||||||
|
next_mode="off"
|
||||||
|
;;
|
||||||
|
off)
|
||||||
|
next_mode="active"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
pbpctrl set anc "$next_mode"
|
||||||
|
sleep 0.1
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
connect)
|
||||||
|
if bluetoothctl info "$MAC_ADDRESS" | grep -q "Connected: yes"; then
|
||||||
|
notify-send "Pixel Buds Pro 2 are already connected"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
bluetoothctl connect "$MAC_ADDRESS"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
disconnect)
|
||||||
|
if bluetoothctl info "$MAC_ADDRESS" | grep -q "Connected: yes"; then
|
||||||
|
bluetoothctl disconnect "$MAC_ADDRESS"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Pixel Buds Pro 2 aren't connected"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
status
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Executable
+54
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# --- Configuration ---
|
||||||
|
CRITICAL_THRESHOLD=15
|
||||||
|
WARNING_THRESHOLD=50
|
||||||
|
# ---------------------
|
||||||
|
|
||||||
|
# Get the battery path from upower
|
||||||
|
battery_path=$(upower -e | grep 'BAT')
|
||||||
|
|
||||||
|
# Handle case where no battery is found
|
||||||
|
if [ -z "$battery_path" ]; then
|
||||||
|
# Check if we are on AC power anyway
|
||||||
|
if [[ $(tlp-stat -s | grep "Power source" | awk '{print $4}') == "AC" ]]; then
|
||||||
|
printf '{"text": "", "tooltip": "AC Power (No Battery)", "class": "ac"}\n'
|
||||||
|
else
|
||||||
|
printf '{"text": "", "tooltip": "Error: Battery not found", "class": "unknown"}\n'
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get battery percentage and state
|
||||||
|
percentage=$(upower -i "$battery_path" | grep "percentage" | awk '{print $2}' | tr -d '%')
|
||||||
|
state=$(upower -i "$battery_path" | grep "state" | awk '{print $2}')
|
||||||
|
tlp_profile=$(tlp-stat -s | grep "Power source" | awk '{print $4}')
|
||||||
|
|
||||||
|
# Set icon, class, and tooltip based on state and percentage
|
||||||
|
if [ "$state" == "charging" ] || [ "$tlp_profile" == "AC" ]; then
|
||||||
|
icon=""
|
||||||
|
class="charging"
|
||||||
|
tooltip="TLP: AC | Charging at ${percentage}%"
|
||||||
|
elif [ "$state" == "discharging" ]; then
|
||||||
|
tooltip="TLP: Battery | Discharging at ${percentage}%"
|
||||||
|
if [ "$percentage" -le "$CRITICAL_THRESHOLD" ]; then
|
||||||
|
icon="" # Very low
|
||||||
|
class="critical"
|
||||||
|
elif [ "$percentage" -le "$WARNING_THRESHOLD" ]; then
|
||||||
|
icon="" # Low
|
||||||
|
class="warning"
|
||||||
|
elif [ "$percentage" -le 85 ]; then
|
||||||
|
icon="" # Healthy
|
||||||
|
class="bat"
|
||||||
|
else
|
||||||
|
icon="" # Full
|
||||||
|
class="bat"
|
||||||
|
fi
|
||||||
|
else # Fallback for "fully-charged", "pending-charge", etc.
|
||||||
|
icon=""
|
||||||
|
class="charging"
|
||||||
|
tooltip="TLP: AC | Fully Charged at ${percentage}%"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output JSON for Waybar
|
||||||
|
printf '{"text": "%s%% %s", "tooltip": "%s", "class": "%s"}\n' "$percentage" "$icon" "$tooltip" "$class"
|
||||||
+204
-163
@@ -1,225 +1,266 @@
|
|||||||
/* ~/.config/waybar/style.css */
|
/* ~/.config/waybar/style.css */
|
||||||
@import "./catppuccin-waybar/themes/mocha.css";
|
@import "./catppuccin-waybar/themes/mocha.css";
|
||||||
|
|
||||||
/* --- Global Reset --- */
|
|
||||||
* {
|
* {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 12px;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
font-family: JetBrainsMono Nerd Font, sans-serif;
|
font-family: JetBrainsMono Nerd Font;
|
||||||
font-size: 12px;
|
font-size: 13px;
|
||||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Bar Background (Floating Island Style) --- */
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background-color: transparent;
|
background-color: alpha(@base, 0.4);
|
||||||
|
padding: 10px;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: 0.5s;
|
||||||
color: @text;
|
color: @text;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Top Bar Special Handling --- */
|
window#waybar.hidden {
|
||||||
window#waybar.top {
|
opacity: 0.5;
|
||||||
margin-top: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- Bottom Bar Special Handling --- */
|
|
||||||
window#waybar.bottom {
|
|
||||||
margin-bottom: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- Shared Island Styling --- */
|
|
||||||
#workspaces,
|
|
||||||
#window,
|
|
||||||
#tray,
|
|
||||||
#hardware,
|
|
||||||
#custom-bluetooth-audio,
|
|
||||||
#custom-volume,
|
|
||||||
#custom-buds,
|
|
||||||
#custom-mic,
|
|
||||||
#custom-dnd,
|
|
||||||
#custom-gamemode,
|
|
||||||
#custom-power_status {
|
|
||||||
background-color: alpha(@surface0, 0.8);
|
|
||||||
margin: 4px 6px;
|
|
||||||
padding: 4px 16px;
|
|
||||||
border: 1px solid alpha(@surface1, 0.5);
|
|
||||||
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
|
|
||||||
color: @text; /* Unifies all standard text to the soft Catppuccin white */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- Workspaces --- */
|
|
||||||
#workspaces {
|
|
||||||
padding: 2px 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 0;
|
all: initial;
|
||||||
margin: 4px;
|
/* Remove GTK theme values (waybar #1351) */
|
||||||
min-width: 12px;
|
min-width: 0;
|
||||||
min-height: 12px;
|
/* Fix weird spacing in materia (waybar #450) */
|
||||||
background-color: @subtext0; /* Subtle dark gray for inactive */
|
box-shadow: inset 0 -3px transparent;
|
||||||
color: transparent;
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
border-radius: 12px;
|
padding: 6px 18px;
|
||||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
margin: 0px 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: @base;
|
||||||
|
color: @subtext0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
min-width: 30px;
|
color: @text;
|
||||||
background-color: @mauve; /* Signature Catppuccin accent */
|
border-bottom: 3px solid @blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.active:hover { min-width: 30px; background-color: @mauve; }
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
#workspaces button:hover {
|
||||||
background-color: @lavender;
|
box-shadow: inherit;
|
||||||
min-width: 20px;
|
text-shadow: inherit;
|
||||||
|
background-color: @surface0;
|
||||||
|
color: @text;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background-color: @red;
|
border-bottom: 3px solid @maroon;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Clock (Centered Pill) --- */
|
#memory,
|
||||||
#center {
|
#cpu,
|
||||||
background: linear-gradient(45deg, @mauve, @lavender); /* Cohesive pastel gradient */
|
#custom-gpu,
|
||||||
color: @surface0;
|
#custom-cpu,
|
||||||
font-weight: 900;
|
#custom-mem,
|
||||||
margin: 4px 6px;
|
#custom-power,
|
||||||
padding: 4px 20px;
|
#custom-gamemode,
|
||||||
border-radius: 12px;
|
#custom-tlp,
|
||||||
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);
|
#battery,
|
||||||
|
#backlight,
|
||||||
|
#wireplumber,
|
||||||
|
#network,
|
||||||
|
#custom-network,
|
||||||
|
#clock,
|
||||||
|
#tray,
|
||||||
|
#custom-disk-root,
|
||||||
|
#custom-disk-gdrive,
|
||||||
|
#custom-disk-games,
|
||||||
|
#custom-disk-data,
|
||||||
|
#custom-pixelbuds_pro,
|
||||||
|
#custom-bluetooth-audio,
|
||||||
|
#custom-audio-output,
|
||||||
|
#custom-btrfs,
|
||||||
|
#custom-gpu-screen-recorder,
|
||||||
|
#custom-droidcam {
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 0px 3px;
|
||||||
|
padding: 6px 12px;
|
||||||
|
background-color: @base;
|
||||||
|
color: @text;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Power Status --- */
|
#wireplumber.muted, #custom-pixelbuds_pro, #custom-audio-output.muted {
|
||||||
#custom-power_status {
|
background-color: @base;
|
||||||
font-weight: bold;
|
color: @subtext1;
|
||||||
|
border-bottom: 3px solid @subtext1;
|
||||||
}
|
}
|
||||||
#custom-power_status.charging {
|
|
||||||
color: @green;
|
#custom-pixelbuds_pro.disconnected {
|
||||||
|
padding-right: 16px;
|
||||||
|
padding-left: 12px;
|
||||||
}
|
}
|
||||||
#custom-power_status.warning {
|
|
||||||
color: @peach;
|
#custom-gpu-screen-recorder,
|
||||||
|
#custom-gpu-screen-recorder.recording {
|
||||||
|
padding-right: 14px;
|
||||||
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
#custom-power_status.critical {
|
|
||||||
color: @red;
|
#custom-droidcam,
|
||||||
animation: blink 1s infinite alternate;
|
#custom-droidcam.active {
|
||||||
|
padding-right: 14px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-gamemode {
|
||||||
|
padding-right: 15px;
|
||||||
|
padding-left: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-pixelbuds_pro.anc-active {
|
||||||
|
color: @sapphire;
|
||||||
|
border-bottom: 3px solid @sapphire;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-bluetooth-audio {
|
||||||
|
color: @sapphire;
|
||||||
|
border-bottom: 3px solid @sapphire;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-pixelbuds_pro.anc-aware {
|
||||||
|
color: @sapphire;
|
||||||
|
border-bottom: 3px solid @sapphire;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-pixelbuds_pro.anc-off {
|
||||||
|
color: @text;
|
||||||
|
border-bottom: 3px solid @text;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-gpu-screen-recorder,
|
||||||
|
#custom-gamemode,
|
||||||
|
#custom-droidcam {
|
||||||
|
background-color: @base;
|
||||||
|
color: @subtext1;
|
||||||
|
border-bottom: 3px solid @subtext1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @maroon;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-gpu-screen-recorder.recording,
|
||||||
|
#custom-gamemode.active,
|
||||||
|
#custom-droidcam.active {
|
||||||
|
color: @maroon;
|
||||||
|
border-bottom: 3px solid @maroon;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tlp {
|
||||||
|
padding: 0 10px;
|
||||||
|
min-width: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tlp.charging {
|
||||||
|
color: @teal;
|
||||||
|
border-bottom: 3px solid @teal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tlp.bat {
|
||||||
|
color: @sapphire;
|
||||||
|
border-bottom: 3px solid @sapphire;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tlp.warning {
|
||||||
|
color: @yellow;
|
||||||
|
border-bottom: 3px solid @yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-tlp.critical {
|
||||||
|
color: @red;
|
||||||
|
border-bottom: 3px solid @red;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.8s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
to {
|
to {
|
||||||
color: @base;
|
color: @yellow;
|
||||||
background-color: @red;
|
border-bottom: 3px solid @yellow;
|
||||||
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Hardware Group (Left Bottom) --- */
|
#custom-gpu.max,
|
||||||
#hardware {
|
#custom-cpu.max,
|
||||||
border-radius: 24px;
|
#custom-mem.max,
|
||||||
padding: 4px 10px;
|
#custom-btrfs.max,
|
||||||
|
#custom-disk-root.max,
|
||||||
|
#custom-disk-gdrive.max,
|
||||||
|
#custom-disk-games.max,
|
||||||
|
#custom-disk-data.max {
|
||||||
|
color: @maroon;
|
||||||
|
/* border-bottom: 3px solid @maroon; */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Strip backgrounds and borders from the items inside the group */
|
#custom-gpu.high,
|
||||||
#custom-cpu,
|
#custom-gpu.high,
|
||||||
#custom-mem,
|
#custom-mem.high,
|
||||||
#custom-network
|
#custom-btrfs.high,
|
||||||
#custom-sys,
|
#custom-disk-root.high,
|
||||||
#custom-gpu,
|
#custom-disk-gdrive.high,
|
||||||
#custom-disk-root,
|
#custom-disk-games.high,
|
||||||
#custom-mpris,
|
#custom-disk-data.high {
|
||||||
#clock,
|
color: @yellow;
|
||||||
#custom-dnd {
|
/* border-bottom: 3px solid @yellow; */
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
box-shadow: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Subtle vertical separator line between them */
|
#memory,
|
||||||
#custom-cpu,
|
#cpu,
|
||||||
#custom-mem,
|
#disk,
|
||||||
#custom-sys,
|
#custom-network,
|
||||||
#custom-gpu,
|
#custom-gpu.normal,
|
||||||
#custom-disk-root,
|
#custom-cpu.normal,
|
||||||
#custom-mpris
|
#custom-mem.normal,
|
||||||
/* #clock */ {
|
#custom-btrfs.normal,
|
||||||
border-right: 1px solid alpha(@surface1, 0.5);
|
#custom-disk-root.normal,
|
||||||
border-radius: 0;
|
#custom-disk-gdrive.normal,
|
||||||
}
|
#custom-disk-games.normal,
|
||||||
|
#custom-disk-data.normal {
|
||||||
#custom-network {
|
color: @blue;
|
||||||
padding-left: 8px;
|
/* border-bottom: 3px solid @mauve; */
|
||||||
color: @mauve;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hardware Semantic Alerts */
|
|
||||||
.normal { color: @mauve; }
|
|
||||||
.high { color: @peach; }
|
|
||||||
.max { color: @red; }
|
|
||||||
|
|
||||||
/* Stale Data Warning (Module in backoff/failure state) */
|
|
||||||
/* .warning {
|
|
||||||
color: @peach;
|
|
||||||
opacity: 0.6;
|
|
||||||
} */
|
|
||||||
|
|
||||||
/* --- Center Bottom Utilities --- */
|
|
||||||
#custom-gamemode.active {
|
|
||||||
color: @mauve; /* Matches the workspace accent */
|
|
||||||
/* padding-left: 9px; */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- Right Bottom Controls Semantic Alerts --- */
|
|
||||||
#custom-volume.muted,
|
|
||||||
#custom-mic.muted {
|
|
||||||
color: @overlay1; /* Dims when muted */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#custom-bluetooth-audio.disabled {
|
#backlight {
|
||||||
color: @overlay1; /* Green for active ANC */
|
color: @mauve;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-bluetooth-audio.connected {
|
#wireplumber {
|
||||||
color: @blue; /* Green for active ANC */
|
padding-right: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-bluetooth-audio.anc-off {
|
#network {
|
||||||
color: @blue; /* Green for active ANC */
|
color: @maroon;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-bluetooth-audio.anc-active {
|
#custom-audio-output.unmuted, #wireplumber {
|
||||||
color: @blue; /* Green for active ANC */
|
color: @mauve;
|
||||||
|
border-bottom: 3px solid @mauve;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-bluetooth-audio.anc-aware {
|
#clock {
|
||||||
color: @blue; /* Yellow for transparency mode */
|
color: @mauve;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-bluetooth-audio.disconnected {
|
#network {
|
||||||
color: @text; /* Gray when off */
|
padding-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Hover States --- */
|
|
||||||
#custom-volume:hover,
|
|
||||||
#custom-buds:hover,
|
|
||||||
#custom-mic:hover,
|
|
||||||
#custom-bluetooth-audio:hover,
|
|
||||||
#custom-power_status:hover {
|
|
||||||
background-color: @surface1;
|
|
||||||
color: @mauve; /* Subtle accent color on hover instead of jarring borders */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* --- Tooltip --- */
|
|
||||||
tooltip {
|
tooltip {
|
||||||
background-color: alpha(@base, 0.9);
|
border-radius: 10px;
|
||||||
border: 1px solid @surface1;
|
padding: 15px;
|
||||||
border-radius: 8px;
|
background-color: @base;
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip label {
|
tooltip label {
|
||||||
color: @text;
|
padding: 5px;
|
||||||
padding: 8px;
|
background-color: @base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
# iFi (by AMR) HD USB Audio
|
||||||
|
device.name = "*iFi*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# UMC204HD 192k
|
||||||
|
node.description = "*UMC204HD*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
audio.format = "S32_LE"
|
||||||
|
audio.rate = 96000
|
||||||
|
session.suspend-timeout-seconds = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1 +0,0 @@
|
|||||||
catppuccin-zathura/src/catppuccin-mocha
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
set default-fg rgba(205,214,244,1)
|
||||||
|
set default-bg rgba(30,30,46,1)
|
||||||
|
|
||||||
|
set completion-bg rgba(49,50,68,1)
|
||||||
|
set completion-fg rgba(205,214,244,1)
|
||||||
|
set completion-highlight-bg rgba(203,166,247,1)
|
||||||
|
set completion-highlight-fg rgba(30,30,46,1)
|
||||||
|
set completion-group-bg rgba(24,24,37,1)
|
||||||
|
set completion-group-fg rgba(205,214,244,1)
|
||||||
|
|
||||||
|
set statusbar-fg rgba(205,214,244,1)
|
||||||
|
set statusbar-bg rgba(17,17,27,1)
|
||||||
|
set inputbar-fg rgba(205,214,244,1)
|
||||||
|
set inputbar-bg rgba(30,30,46,1)
|
||||||
|
|
||||||
|
set notification-bg rgba(30,30,46,1)
|
||||||
|
set notification-fg rgba(205,214,244,1)
|
||||||
|
set notification-error-bg rgba(30,30,46,1)
|
||||||
|
set notification-error-fg rgba(243,139,168,1)
|
||||||
|
set notification-warning-bg rgba(30,30,46,1)
|
||||||
|
set notification-warning-fg rgba(249,226,175,1)
|
||||||
|
|
||||||
|
set recolor "true"
|
||||||
|
set recolor-lightcolor rgba(30,30,46,1)
|
||||||
|
set recolor-darkcolor rgba(205,214,244,1)
|
||||||
|
|
||||||
|
set index-fg rgba(205,214,244,1)
|
||||||
|
set index-bg rgba(30,30,46,1)
|
||||||
|
set index-active-fg rgba(205,214,244,1)
|
||||||
|
set index-active-bg rgba(49,50,68,1)
|
||||||
|
|
||||||
|
set render-loading-bg rgba(30,30,46,1)
|
||||||
|
set render-loading-fg rgba(205,214,244,1)
|
||||||
|
|
||||||
|
set highlight-color rgba(147,153,178,0.3)
|
||||||
|
set highlight-fg rgba(205,214,244,1)
|
||||||
|
set highlight-active-color rgba(203,166,247,0.3)
|
||||||
Submodule zathura/catppuccin-zathura updated: 0adc53028d...9f29c2c162
Reference in New Issue
Block a user