Compare commits

54 Commits

Author SHA1 Message Date
nvrl bc9e2b7c19 added fluxo 2026-03-13 17:28:37 +01:00
nvrl 85feb977a1 updated dotfiles 2026-02-24 22:44:05 +01:00
nvrl 5356157750 updated waybar script to not crash with my usb c hub 2026-02-13 19:39:31 +01:00
nvrl 2f31b86e65 updated nvim and fish config 2026-02-13 19:17:39 +01:00
nvrl 6acb9b9aaa updated user systemd services 2026-02-13 19:17:22 +01:00
nvrl 918c52f6f3 added gitzip + hypr config 2026-02-07 04:02:48 +01:00
nvrl c93e9cf826 updated hypr dots + fixed waybar cpu style 2026-01-28 12:49:34 +01:00
nvrl 8c8ca7b0f2 updated dots 2026-01-14 11:28:55 +01:00
nvrl fe2e971850 updated some stuff 2025-11-25 00:29:47 +01:00
nvrl fb67c05bb6 added zen browser + window rule for opening workspaces 2025-10-22 15:31:01 +02:00
nvrl edcfc9d911 updated hyprland config + gdrive mount 2025-10-21 13:10:45 +02:00
nvrl 801d990154 added systemd service for gdrive 2025-09-11 13:44:08 +02:00
nvrl 9679cb29f0 updated hypr conf 2025-09-11 13:39:55 +02:00
nvrl 7d16572181 rearranged modules 2025-09-09 10:38:59 +02:00
nvrl d835a4c4ab fixed waybar 2025-09-09 09:53:57 +02:00
nvrl 6af5a295b1 added input module 2025-09-09 09:33:04 +02:00
nvrl 8e5a15395a updated network script 2025-09-08 03:17:41 +02:00
nvrl 653591289d updated nvim init.lua and waybar network module 2025-08-29 14:38:51 +02:00
nvrl 251b5a5eeb upadted waybar + hypr theme 2025-08-29 01:12:56 +02:00
nvrl 02e48b7d1e updated waybar 2025-08-29 00:58:18 +02:00
nvrl 52cc37a102 fixed buds script 2025-08-15 18:06:04 +02:00
nvrl b81c6e2228 updated the not connected string for pixelbuds 2025-08-15 17:23:03 +02:00
nvrl 1b88c5cc71 updated status bar 2025-08-15 16:36:05 +02:00
nvrl 6a3de0df23 updated 2025-08-15 12:59:28 +02:00
nvrl 2a3f8f7294 chnages 2025-08-07 06:06:53 +02:00
nvrl 5599be8150 added fish_vars to ignore 2025-08-04 07:31:22 +02:00
nvrl 5696aeed8d updated hyprland confs 2025-08-02 00:16:14 +02:00
nvrl bc2cabece3 refactored hyprland conf for better maintainability 2025-08-01 10:03:02 +02:00
nvrl bab1718ea5 added wallpapers 2025-08-01 09:45:23 +02:00
nvrl 9f31f26325 added different wallpapers 2025-07-31 10:53:09 +02:00
nvrl c6d9cfc270 added packages + fuzzel 2025-07-30 12:08:36 +02:00
nvrl 7850c7bb0e added fish config 2025-07-30 11:46:46 +02:00
nvrl 44b40bc8e7 added updated rice pics 2025-07-23 23:37:08 +02:00
nvrl 53b1b5bc27 added btop 2025-07-23 23:04:08 +02:00
nvrl 0244eef63d added submodules 2025-07-23 23:01:04 +02:00
nvrl e32ff37a24 removed waybar catppuccin git 2025-07-23 22:30:40 +02:00
nvrl dc30bbe28d added btop 2025-07-23 22:23:45 +02:00
nvrl 97b5d87d30 added pixel buds control 2025-07-23 20:58:55 +02:00
nvrl 23e2f7492e updated font and lock 2025-07-23 14:14:05 +02:00
nvrl a4434d7f97 fixed battery display 2025-07-23 12:46:08 +02:00
nvrl 1ed4ef0963 fixed deprecation in nvim 2025-07-23 12:23:52 +02:00
nvrl ec15fc0bcd edited dunstrc 2025-07-23 11:43:05 +02:00
nvrl beaf8a4547 updated screenshot 2025-07-23 11:24:52 +02:00
nvrl 6ddc32b262 some tweaks 2025-07-23 11:22:08 +02:00
nvrl c7e388d153 added readme 2025-07-23 10:53:43 +02:00
nvrl 7d06bfd2c1 wallpaper 2025-07-23 10:52:01 +02:00
nvrl 99ffef8803 added protonvpn and change waybar style 2025-07-23 10:28:32 +02:00
nvrl 090a0186f9 updated waybar and uswm for hyprland 2025-07-23 10:03:41 +02:00
nvrl 569cfeb68f added chromium and brave flags 2025-07-19 13:51:47 +02:00
nvrl a5327dd263 updatde alacritty and nvim 2025-07-19 13:50:57 +02:00
nvrl c7cda90e07 added fuzzel 2025-07-12 14:16:59 +02:00
nvrl 976842b66e added zathura and mineapps 2025-07-12 11:33:23 +02:00
nvrl 3eb06362a9 added files 2025-07-12 11:31:54 +02:00
nvrl c8b5f931f9 added gitignore 2025-07-12 11:30:13 +02:00
70 changed files with 2817 additions and 776 deletions
+1
View File
@@ -6,6 +6,7 @@
!alacritty/
!dunst/
!hypr/
!hyprpanel/
!nvim/
!waybar/
!zathura/
+12 -12
View File
@@ -1,12 +1,3 @@
[submodule "zathura/catppuccin-zathura"]
path = zathura/catppuccin-zathura
url = https://github.com/catppuccin/zathura.git
[submodule "nvim/pack/nvim/start/mini.nvim"]
path = nvim/pack/nvim/start/mini.nvim
url = https://github.com/echasnovski/mini.nvim
[submodule "nvim/pack/nvim/start/nvim-lspconfig"]
path = nvim/pack/nvim/start/nvim-lspconfig
url = https://github.com/neovim/nvim-lspconfig
[submodule "waybar/catppuccin-waybar"]
path = waybar/catppuccin-waybar
url = https://github.com/catppuccin/waybar.git
@@ -16,9 +7,18 @@
[submodule "hypr/catppuccin-hyprlock"]
path = hypr/catppuccin-hyprlock
url = https://github.com/catppuccin/hyprlock.git
[submodule "fuzzel/catppuccin-fuzzel"]
path = fuzzel/catppuccin-fuzzel
url = https://github.com/catppuccin/fuzzel.git
[submodule "zathura/catppuccin-zathura"]
path = zathura/catppuccin-zathura
url = https://github.com/catppuccin/zathura.git
[submodule "nvim/pack/nvim/start/mini.nvim"]
path = nvim/pack/nvim/start/mini.nvim
url = https://github.com/echasnovski/mini.nvim
[submodule "nvim/pack/nvim/start/nvim-lspconfig"]
path = nvim/pack/nvim/start/nvim-lspconfig
url = https://github.com/neovim/nvim-lspconfig
[submodule "btop/catppuccin-btop"]
path = btop/catppuccin-btop
url = https://github.com/catppuccin/btop.git
[submodule "fuzzel/catppuccin-fuzzel"]
path = fuzzel/catppuccin-fuzzel
url = https://github.com/catppuccin/fuzzel.git
+3 -1
View File
@@ -1,3 +1,5 @@
# desktop rice
# My dotfiles
![image not found](./rice.png)
![image not found](./rice-2.png)
![image not found](./rice-3.png)
+5 -5
View File
@@ -4,26 +4,26 @@
[font]
## Font size in points.
size = 14
size = 10
## When true, Alacritty will use a custom built-in font for box drawing characters and powerline symbols.
builtin_box_drawing = true
## Normal font family.
[font.normal]
family = "Fira Mono"
family = "0xProto Nerd Font Mono"
## If the family is not specified, it will fall back to the value specified for the normal font.
[font.bold]
family = "Fira Mono"
family = "0xProto Nerd Font Mono"
## If the family is not specified, it will fall back to the value specified for the normal font.
[font.italic]
family = "Fira Mono"
family = "0xProto Nerd Font Mono"
## If the family is not specified, it will fall back to the value specified for the normal font.
[font.bold_italic]
family = "Fira Mono"
family = "0xProto Nerd Font Mono"
## 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.
+64 -49
View File
@@ -1,18 +1,18 @@
#? Config file for btop v. 1.4.5
#? Config file for btop v.1.4.6
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "/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.
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.
truecolor = True
truecolor = true
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
force_tty = false
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
@@ -22,10 +22,13 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = True
vim_keys = true
#* 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".
#* "braille" offers the highest resolution but might not be included in all fonts.
@@ -57,40 +60,43 @@ update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu direct"
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
proc_reversed = false
#* Show processes as a tree.
proc_tree = True
proc_tree = true
#* Use the cpu graph colors in the process list.
proc_colors = True
proc_colors = true
#* Use a darkening gradient in the process list.
proc_gradient = True
proc_gradient = true
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = True
proc_per_core = false
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
proc_mem_bytes = true
#* Show cpu graph for each process.
proc_cpu_graphs = True
proc_cpu_graphs = true
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
proc_info_smaps = false
#* Show proc box on left side of screen instead of right.
proc_left = False
proc_left = false
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
proc_filter_kernel = false
#* 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.
#* Select from a list of detected attributes from the options menu.
@@ -104,28 +110,28 @@ cpu_graph_lower = "Auto"
show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
cpu_invert_lower = true
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
cpu_single_graph = false
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
cpu_bottom = false
#* Shows the system uptime in the CPU box.
show_uptime = True
show_uptime = true
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = True
show_cpu_watts = true
#* Show cpu temperature.
check_temp = True
check_temp = true
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
show_coretemp = true
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
@@ -137,17 +143,20 @@ cpu_core_map = ""
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
base_10_sizes = false
#* 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.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
background_update = true
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
@@ -157,43 +166,43 @@ custom_cpu_name = ""
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
mem_graphs = true
#* Show mem box below net box instead of above.
mem_below_net = False
mem_below_net = false
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
zfs_arc_cached = true
#* If swap memory should be shown in memory box.
show_swap = True
show_swap = true
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
swap_disk = true
#* If mem box should be split to also show disks info.
show_disks = True
show_disks = true
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
only_physical = true
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
use_fstab = true
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
zfs_hide_datasets = false
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
disk_free_priv = false
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
show_io_stat = true
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
io_mode = false
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
io_graph_combined = false
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
@@ -205,10 +214,10 @@ net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
net_auto = true
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
net_sync = true
#* Starts with the Network Interface specified here.
net_iface = ""
@@ -217,26 +226,32 @@ net_iface = ""
base_10_bitrate = "Auto"
#* 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.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
show_battery_watts = true
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
#* Automatically save current settings to config file on exit.
save_config_on_exit = true
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
nvml_measure_pcie_speeds = true
#* 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.
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_gpu_name0 = ""
+3
View File
@@ -0,0 +1,3 @@
--enable-features=AcceleratedVideoDecodeLinuxGL,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,Vulkan,VulkanFromANGLE,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder
--use-angle=vulkan
--use-gl=angle
+14
View File
@@ -0,0 +1,14 @@
# 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
+49
View File
@@ -0,0 +1,49 @@
# 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
+7
View File
@@ -0,0 +1,7 @@
# 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
+30
View File
@@ -1,9 +1,39 @@
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_insert line blink
set fish_cursor_replace_one underscore blink
set fish_cursor_visual block
# starship init fish | source
fish_vi_key_bindings
if test -e ~/.cache/wal/colors.fish
source ~/.cache/wal/colors.fish
end
zoxide init --cmd cd fish | source
set -gx PATH ~/.local/bin $PATH
# if not pgrep --full ssh-agent | string collect > /dev/null
# 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
-1
View File
@@ -1,3 +1,2 @@
franciscolourenco/done
jorgebucaran/autopair.fish
catppuccin/fish
-130
View File
@@ -1,130 +0,0 @@
# 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
-3
View File
@@ -1,3 +0,0 @@
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
+30
View File
@@ -0,0 +1,30 @@
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
-3
View File
@@ -1,3 +0,0 @@
function get_open_ports --wraps='netstat -tunlp' --description 'alias get_open_ports=netstat -tunlp'
netstat -tunlp $argv;
end
+3
View File
@@ -0,0 +1,3 @@
function gitzip
git archive HEAD -o (basename $PWD).zip
end
-3
View File
@@ -1,3 +0,0 @@
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
+3
View File
@@ -0,0 +1,3 @@
function open -d "Open an application detached from the terminal"
nohup $argv >/dev/null 2>&1 &
end
-2
View File
@@ -1,6 +1,5 @@
# narls hyprland dotfiles
source = ~/.config/hypr/modules/plugins.conf
source = ~/.config/hypr/modules/monitors.conf
@@ -17,4 +16,3 @@ source = ~/.config/hypr/modules/input.conf
source = ~/.config/hypr/modules/keybinds.conf
source = ~/.config/hypr/modules/window_rules.conf
+1 -1
View File
@@ -12,7 +12,7 @@ general {
# BACKGROUND
background {
monitor =
path = $HOME/Pictures/wallpapers/rem-latte.jpg
path = $HOME/Pictures/mandelbrot.png
blur_passes = 0
color = $base
}
+5 -4
View File
@@ -1,4 +1,5 @@
# preload = ~/Pictures/red_moon/red_moon-latte.jpg
preload = ~/Pictures/wallpapers/rem.jpg
# wallpaper = ,~/Pictures/red_moon/red_moon-latte.jpg
wallpaper = ,~/Pictures/wallpapers/rem.jpg
wallpaper {
monitor =
path = ~/Pictures/mandelbrot.png
fit_mode = fill
}
-3
View File
@@ -1,3 +0,0 @@
color_scheme=/usr/share/qt6ct/colors/catppuccin-mocha-maroon.conf
icon_theme=Papirus
style=Fusion
+3 -2
View File
@@ -3,13 +3,14 @@
# Or execute your favorite apps at launch like this:
# exec-once = uwsm app -- waybar
# exec-once = uwsm app -- hyprpanel
# exec-once = uwsm app -- nextcloud --background
exec-once = uwsm app -- nm-applet --indicator
# 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 -- /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 = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
+5 -6
View File
@@ -1,17 +1,16 @@
# 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_SIZE,24
env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Bibata-Modern-Classic
env = XDG_CURRENT_DESKTOP,Hyprland
env = debug:full_cm_proto,true
# env = debug:full_cm_proto,true
env = QT_QPA_PLATFORMTHEME,qt6ct
env = LIBVA_DRIVER_NAME,radeonsi
env = VDPAU_DRIVER,radeonsi
# env = LIBVA_DRIVER_NAME,radeonsi
# env = VDPAU_DRIVER,radeonsi
env = MOZ_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = AMD_VULKAN_ICD,RADV
env = WLR_NO_HARDWARE_CURSORS,0
env = QT_QPA_PLATFORMTHEME,hyprqt6engine
+17 -2
View File
@@ -2,11 +2,12 @@
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
# kb_variant = dvorak-intl, intl
kb_variant = intl
kb_variant = dvorak-intl, intl
# kb_variant = intl
kb_model =
kb_options =
kb_rules =
kb_options = ctrl:nocaps
follow_mouse = 0
@@ -17,3 +18,17 @@ input {
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
}
+5 -2
View File
@@ -1,6 +1,9 @@
$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
bind = , PRINT, exec, grim -g "$(slurp)" - | wl-copy
bindr = ALT SHIFT, z, exec, ~/.config/hypr/scripts/replay-ctrl.sh save
@@ -60,8 +63,8 @@ bind = ALT, Tab, changegroupactive, next
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod, S, togglespecialworkspace, virtual
bind = $mainMod SHIFT, S, movetoworkspace, special:virtual
bind = $mainMod, D, togglespecialworkspace, discord
bind = $mainMod SHIFT, D, movetoworkspace, special:discord
+6 -9
View File
@@ -1,10 +1,7 @@
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@240, 0x0, 1
# monitorv2 {
# desc = Samsung Electric Company LC27G7xT H4ZRA00734
# mode = 2560x1440@240
# position = 0x0
# scale = 1
# bitdepth = 10
# cm = wide
# }
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@90, 0x-1440, 1
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@90, 0x-1440, 1, bitdepth, 10
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 1920x1080@75, 0x-1080, 1
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 1920x1080@60, 0x-1080, 1
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 1280x720@240, 0x-720, 1
monitor = eDP-1, 1920x1080@60, 0x0, 1
+27 -61
View File
@@ -1,87 +1,53 @@
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# windowrule = suppress_event maximize, match:class .*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrulev2=noblur,class:^()$,title:^()$
# windowrule = no_focus 1, match:class ^$, match:title ^$, match:xwayland 1, match:floating 1, match:fullscreen 0, match:pinned 0
windowrule = no_blur 1, match:class ^$, match:title ^$
# games for tearing add the immediate rule
# Float Windows
windowrulev2=float,title:^(Open File)$
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)$
windowrule = float 1, match:title ^(Open File|Select a File|Select Folder|Choose a file|Open Form|Open Workspace|Choose Directory|Save As|Save File|branchdialog|pinentry-gtk-2|Confirm to replace files|File Operation Progress)$
windowrule = float 1, match:class ^(pavucontrol|blueman-manager|nm-connection-editor)$
# Center and Resize Windows
windowrulev2=size 800 600,title:^(Open File)$
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)$
windowrule = size 800 600, match:title ^(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)$
windowrule = size 800 600, match:class ^(pavucontrol|blueman-manager|nm-connection-editor)$
windowrule = center 1, match:title ^(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)$
windowrule = center 1, match:class ^(pavucontrol|blueman-manager|nm-connection-editor)$
windowrule = no_blur 1, match:title ^(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)$
windowrule = no_blur 1, match:class ^(pavucontrol|blueman-manager|nm-connection-editor)$
# Workspace Rules
# windowrule=workspace 1,class:^(firefox)$
# windowrule=workspace 2,class:^(kitty)$
# windowrule=workspace 3,class:^(Code)$
# windowrule = workspace 1, match:class ^(firefox)$
# windowrule = workspace 2, match:class ^(kitty)$
# windowrule = workspace 3, match:class ^(Code)$
windowrulev2=workspace special:magic,class:^(Spotify)$
windowrulev2=workspace special:magic,class:^(spotify)$
windowrulev2=workspace special:discord,class:^(discord|vesktop)$
# windowrulev2=workspace 2, class:^(brave-browser)$
windowrule = workspace special:virtual, match:class ^(Spotify|spotify)$
windowrule = workspace special:discord, match:class ^(discord|vesktop)$
# steam rules
windowrulev2=workspace 3 silent, class:^(steam)$, title:^(Steam)$
windowrulev2=workspace 4, class:^(gamescope)$
windowrule = workspace 3 silent, match:class ^(steam)$, match:title ^(Steam)$
windowrule = workspace 4, match:class ^(gamescope)$
# fixed sizes for different windows
windowrulev2=size 400 800,title:^(Friends List)$ class:^(steam)$
windowrulev2=size 1000 800,title:^(Steam Settings)$ class:^(steam)$
windowrulev2=size 1000 800,title:^(Add Non-Steam Game)$ class:^(steam)$
windowrule = size 400 800, match:title ^(Friends List)$, match:class ^(steam)$
windowrule = size 1000 800, match:title ^(Steam Settings)$, match:class ^(steam)$
windowrule = size 1000 800, match:title ^(Add Non-Steam Game)$, match:class ^(steam)$
# float windows that arent the main steam window
windowrulev2 = float, class:^(steam)$, title:negative:^(Steam)$
windowrulev2 = noblur, class:^(steam)$, title:negative:^(Steam)$
# windowrulev2 = center, class:^(steam)$, title:negative:^(Steam)$
windowrule = float 1, match:class ^(steam)$, match:title negative:^(Steam)$
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
windowrulev2 = immediate, class:^(gamescope)$
windowrule = immediate 1, match:class ^(gamescope)$
+1 -7
View File
@@ -15,13 +15,7 @@ start() {
notify-send -u low "$PROGRAM_NAME" "$PROGRAM_NAME is starting ..."
ANDROID_SERIAL=$ANDROID_SERIAL droidcam-cli -a -v -size=1920x1080 adb 4747 &> /dev/null &
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"
echo $! > "$PID_FILE"
}
+19
View File
@@ -0,0 +1,19 @@
#!/bin/bash
# ~/.config/hypr/scripts/lid_handler.sh
if [[ "$1" == "close" ]]; then
# Lid closed: disable laptop screen if any DP-* monitor is present
# Using 'all' to detect monitors even if they are currently disabled
if hyprctl monitors all | grep -q "Monitor DP-"; then
hyprctl keyword monitor "eDP-1, disable" # Disable laptop display
# Enable all detected DP-* monitors
for monitor in $(hyprctl monitors all | grep "Monitor DP-" | awk '{print $2}'); do
hyprctl keyword monitor "$monitor, enable"
done
systemd-run --user --on-active=5s systemctl --user restart waybar.service hyprpaper.service
fi
elif [[ "$1" == "open" ]]; then
# Lid opened: re-enable laptop screen
hyprctl keyword monitor "eDP-1, enable"
fi
+2 -2
View File
@@ -18,14 +18,14 @@ start() {
gpu-screen-recorder \
-w screen \
-f 60 \
-a "default_input|default_output" \
-a default_output -a default_input \
-fm vfr \
-c mkv \
-encoder gpu \
-bm qp \
-cr full \
-tune quality \
-k av1 \
-k av1_10bit \
-q high \
-r 120 \
-replay-storage ram \
+166
View File
@@ -0,0 +1,166 @@
{
"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",
"--"
]
}
+127
View File
@@ -0,0 +1,127 @@
/* 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;
}
+12 -19
View File
@@ -1,35 +1,28 @@
[Default Applications]
text/html=zen.desktop
application/pdf=org.pwmt.zathura-pdf-poppler.desktop
image/jpeg=feh.desktop
image/png=feh.desktop
x-scheme-handler/http=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
text/html=zen.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
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
[Added Associations]
image/png=feh.desktop;
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
image/jpeg=feh.desktop;
audio/flac=mpv.desktop;
image/webp=feh.desktop;
image/png=feh.desktop;
x-scheme-handler/http=zen.desktop;
x-scheme-handler/https=zen.desktop;
x-scheme-handler/chrome=zen.desktop;
text/html=zen.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;
x-scheme-handler/chrome=zen.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
+69
View File
@@ -17,6 +17,9 @@ require('mini.deps').setup()
local add = MiniDeps.add
add({
source = 'chomosuke/typst-preview.nvim'
})
add({
source = 'williamboman/mason.nvim'
})
@@ -279,6 +282,72 @@ 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>')
require 'typst-preview'.setup {
-- Setting this true will enable logging debug information to
-- `vim.fn.stdpath 'data' .. '/typst-preview/log.txt'`
debug = false,
-- Custom format string to open the output link provided with %s
-- Example: open_cmd = 'firefox %s -P typst-preview --class typst-preview'
open_cmd = nil,
-- Custom port to open the preview server. Default is random.
-- Example: port = 8000
port = 0,
-- Custom host to bind the preview server to.
-- Note that '0.0.0.0' is not supported and [won't be](https://github.com/Myriad-Dreamin/tinymist/issues/2105)
-- Example: host = '192.168.0.10'
host = '127.0.0.1',
-- Setting this to 'always' will invert black and white in the preview
-- Setting this to 'auto' will invert depending if the browser has enable
-- dark mode
-- Setting this to '{"rest": "<option>","image": "<option>"}' will apply
-- your choice of color inversion to images and everything else
-- separately.
invert_colors = 'never',
-- Whether the preview will follow the cursor in the source file
follow_cursor = true,
-- Provide the path to binaries for dependencies.
-- Setting this will skip the download of the binary by the plugin.
-- Warning: Be aware that your version might be older than the one
-- required.
dependencies_bin = {
['tinymist'] = '/home/narl/.local/share/nvim/mason/bin/tinymist',
['websocat'] = '/usr/bin/websocat'
},
-- A list of extra arguments (or nil) to be passed to previewer.
-- For example, extra_args = { "--input=ver=draft", "--ignore-system-fonts" }
extra_args = nil,
-- This function will be called to determine the root of the typst project
get_root = function(path_of_main_file)
local root = os.getenv 'TYPST_ROOT'
if root then
return root
end
-- Look for a project marker so imports from parent dirs stay inside root
local main_dir = vim.fs.dirname(vim.fn.fnamemodify(path_of_main_file, ':p'))
local found = vim.fs.find({ 'typst.toml', '.git' }, { path = main_dir, upward = true })
if #found > 0 then
return vim.fs.dirname(found[1])
end
return main_dir
end,
-- This function will be called to determine the main file of the typst
-- project.
get_main_file = function(path_of_buffer)
return path_of_buffer
end,
}
-- Rust
local cmp = require'cmp'
-6
View File
@@ -1,6 +0,0 @@
#!/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
+1799
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 658 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1017 KiB

@@ -1 +0,0 @@
/usr/lib/systemd/user/gamemoded.service
@@ -1 +0,0 @@
/usr/lib/systemd/user/gnome-keyring-daemon.service
@@ -0,0 +1 @@
/home/narl/.config/systemd/user/narl_io_mount.service
@@ -0,0 +1 @@
/home/narl/.config/systemd/user/vaulthunters_mount.service
@@ -1 +0,0 @@
/home/narl/.config/systemd/user/openrgb.service
+1
View File
@@ -0,0 +1 @@
/usr/lib/systemd/user/wayvnc.service
+21
View File
@@ -0,0 +1,21 @@
# ~/.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/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
-10
View File
@@ -1,10 +0,0 @@
[Unit]
Description=OpenRGB Autostart
After=graphical-session.target
[Service]
ExecStart=/usr/bin/openrgb --profile white_static
Restart=on-failure
[Install]
WantedBy=graphical-session.target
@@ -1 +0,0 @@
/usr/lib/systemd/user/wireplumber.service
@@ -1 +0,0 @@
/usr/lib/systemd/user/wireplumber.service
-1
View File
@@ -1 +0,0 @@
/dev/null
@@ -0,0 +1 @@
/usr/lib/systemd/user/gcr-ssh-agent.socket
@@ -1 +0,0 @@
/usr/lib/systemd/user/gnome-keyring-daemon.socket
+10
View File
@@ -0,0 +1,10 @@
[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
+22
View File
@@ -0,0 +1,22 @@
# ~/.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 narl@vh3.narl.io:/opt/minecraft_vaulthunters %h/vaulthunters_server/
# 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
+64 -89
View File
@@ -2,38 +2,22 @@
{
"layer": "top",
"position": "top",
"height": 36,
"modules-left": [
"hyprland/workspaces"
],
"modules-center": [
],
// "output": "eDP-1",
"height": 30,
"modules-left": ["hyprland/workspaces"],
"modules-center": [],
"modules-right": [
// "custom/bluetooth-audio",
// "custom/pixelbuds_pro",
"custom/network",
"custom/mem",
"custom/cpu",
"custom/gpu",
"custom/network",
"custom/disk-root",
// "custom/disk-gdrive",
"custom/disk-data",
"custom/disk-games",
// "network",
"custom/audio-output",
"wireplumber",
"custom/tlp",
"custom/volume",
"custom/mic",
"tray",
"custom/gpu-screen-recorder",
"custom/droidcam",
"custom/gamemode",
"clock"
],
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
},
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
@@ -45,7 +29,7 @@
"clock": {
"format": "{:%a %d %b %H:%M}",
"format-alt": false,
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month > /dev/null ",
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
"tooltip": false,
},
"cpu": {
@@ -63,54 +47,47 @@
"format-disconnected": "Disconnected",
"tooltip-format": "{ifname} via {gwaddr}"
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "--- ",
"format-icons": {
"headphone": "",
"hands-free": "",
"default": ["", "", ""]
},
"custom/volume": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle ",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-",
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs vol --cycle",
"on-click-middle": "pavucontrol",
"scroll-step": 1
"interval": 2
},
"custom/mic": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-",
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mic --cycle",
"on-click-middle": "pavucontrol",
"interval": 2
},
"custom/bluetooth-audio": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt",
"interval": 3,
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect "
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": " Muted",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol "
"on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs bt disconnect"
},
"tray": {
"icon-size": 18,
"spacing": 10
"spacing": 6
},
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "~/.config/hypr/scripts/powermenu.sh "
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown"
},
"custom/tlp": {
"format": "{}",
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs power",
"return-type": "json",
"interval": 5
},
@@ -129,89 +106,87 @@
"custom/pixelbuds_pro": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds",
"interval": 5,
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect ",
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc "
},
"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 ",
"interval": 1
"on-click": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds connect & disown",
"on-click-right": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs buds cycle_anc & disown"
},
"custom/gamemode": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
"on-click": "~/.config/hypr/scripts/gamemode.sh ",
"interval": 1
},
"custom/droidcam": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/droidcam_status.sh",
"on-click": "~/.config/hypr/scripts/droidcam-ctrl.sh toggle",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs game",
"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 ",
"on-click-middle": "nautilus ~/Videos/replay ",
"on-click": "~/.config/waybar/scripts/toggle-replay.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 ",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs gpu",
"on-click": "lact gui & disown",
"interval": 3
},
"custom/sys": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs sys",
"interval": 5
},
"custom/cpu": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/cpu_info.sh",
"on-click": "zenmonitor ",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs cpu",
"on-click": "zenmonitor & disown",
"interval": 3
},
"custom/mem": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/memory.sh",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs mem",
"interval": 3
},
"custom/btrfs": {
"format": "{}",
"exec": "~/.config/waybar/scripts/btrfs.sh",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs pool",
"return-type": "json",
"interval": 30
},
"custom/disk-root": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh /",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk",
"interval": 30
},
"custom/disk-gdrive": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/gdrive",
"interval": 30
},
"custom/disk-data": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/data",
"interval": 30
},
"custom/disk-games": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs disk ~/games",
"interval": 30
},
"custom/network": {
"exec": "~/.config/waybar/fluxo-rs/target/release/fluxo-rs net",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
}
}
+18 -218
View File
@@ -1,225 +1,31 @@
// ~/.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"
"height": 36,
"modules-left": [
"hyprland/workspaces"
],
"modules-center": [
],
"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/bluetooth-audio",
// "custom/pixelbuds_pro",
"wireplumber",
"custom/audio-output",
"custom/network",
"custom/mem",
"custom/cpu",
"custom/gpu",
"custom/disk-root",
"custom/disk-gdrive",
"custom/tlp",
"custom/disk-data",
"custom/disk-games",
// "network",
"custom/audio-output",
"wireplumber",
"tray",
"custom/gpu-screen-recorder",
"custom/gamemode",
"clock"
],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
@@ -251,7 +57,7 @@
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-muted": "--- ",
"format-icons": {
"headphone": "",
"hands-free": "",
@@ -287,7 +93,7 @@
},
"tray": {
"icon-size": 18,
"spacing": 6
"spacing": 10
},
"custom/power": {
"format": "",
@@ -392,11 +198,5 @@
"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"
}
}]
}
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
USAGE=$(mpstat 1 1 | awk '/Average:/ {print 100 - $12}')
TEMP=$(cat /sys/class/hwmon/hwmon3/temp1_input)
TEMP=$(cat /sys/class/hwmon/hwmon6/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}')
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
DEFAULT_SOURCE=$(pactl info | grep 'Default Source' | cut -d ' ' -f3)
DESCRIPTION=$(pactl list sources | grep -A2 "Name: $DEFAULT_SOURCE" | grep "Description:" | cut -d ' ' -f2-)
case $1 in
cycle)
# Filter out monitor sources
SOURCES=($(pactl list short sources | awk '{print $2}' | grep -v ".monitor"))
NUM_SOURCES=${#SOURCES[@]}
CURRENT_SOURCE=$(pactl info | grep 'Default Source' | cut -d ' ' -f3)
for i in "${!SOURCES[@]}"; do
if [[ "${SOURCES[$i]}" == "$CURRENT_SOURCE" ]]; then
NEXT_INDEX=$(( (i + 1) % NUM_SOURCES ))
pactl set-default-source "${SOURCES[$NEXT_INDEX]}"
exit 0
fi
done
# If current source was a monitor or not in list, just pick the first one
if [ $NUM_SOURCES -gt 0 ]; then
pactl set-default-source "${SOURCES[0]}"
fi
;;
show)
TEXT=$(echo "$DESCRIPTION" | cut -c -20)
if [ -z "$DESCRIPTION" ]; then
DESCRIPTION=$DEFAULT_SOURCE
fi
CLASS=""
case $(pactl get-source-mute @DEFAULT_SOURCE@ | awk '{print $2}') in
yes)
CLASS="muted"
;;
no)
CLASS="unmuted"
;;
esac
printf '{"text": "%s", "tooltip": "%s", "class": "%s"}' "$TEXT" "$DESCRIPTION" "$CLASS"
;;
*)
echo "usage cycle_input.sh {cycle|show}"
;;
esac
-7
View File
@@ -1,7 +0,0 @@
#!/bin/bash
if [ -f /tmp/droidcam.pid ]; then
echo "{\"text\": \"\", \"class\": \"active\"}"
else
echo "{\"text\": \"\"}"
fi
+2 -2
View File
@@ -1,8 +1,8 @@
#!/bin/bash
PID_FILE="/tmp/gpu-screen-recorder.pid"
FORMAT_RECORDING="<span size='large'>󰄄</span>"
FORMAT_STOPPED="<span size='large'>󰄄</span>"
FORMAT_RECORDING="<span size='large'></span>"
FORMAT_STOPPED="<span size='large'></span>"
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
TYPE=$1 # "mic" for source, empty for sink
if [ "$TYPE" == "mic" ]; then
TARGET="@DEFAULT_AUDIO_SOURCE@"
else
TARGET="@DEFAULT_AUDIO_SINK@"
fi
# Get volume and mute status from wpctl
OUTPUT=$(wpctl get-volume $TARGET)
VOLUME_RAW=$(echo "$OUTPUT" | awk '{print $2}')
VOLUME=$(echo "$VOLUME_RAW * 100 / 1" | bc)
MUTE=$(echo "$OUTPUT" | grep -c "MUTED")
if [ "$MUTE" -eq 1 ]; then
if [ "$TYPE" == "mic" ]; then
ICON=""
else
ICON=""
fi
printf '{"text": "%s", "class": "muted", "percentage": %d}' "$ICON" "$VOLUME"
else
if [ "$TYPE" == "mic" ]; then
ICON=""
else
if [ "$VOLUME" -le 30 ]; then
ICON=""
elif [ "$VOLUME" -le 60 ]; then
ICON=""
else
ICON=""
fi
fi
printf '{"text": "%d%% %s", "class": "unmuted", "percentage": %d}' "$VOLUME" "$ICON" "$VOLUME"
fi
+64
View File
@@ -0,0 +1,64 @@
import subprocess
import json
import sys
def get_wpctl_status(target):
try:
output = subprocess.check_output(["wpctl", "get-volume", target], text=True)
parts = output.strip().split()
if len(parts) < 2:
return 0, False
vol = int(float(parts[1]) * 100)
muted = "[MUTED]" in output
return vol, muted
except:
return 0, False
def get_pactl_description(target_type):
try:
cmd_info = ["pactl", "info"]
info = subprocess.check_output(cmd_info, text=True)
search_key = "Default Sink" if target_type == "sink" else "Default Source"
default_dev = next(line.split(": ")[1] for line in info.splitlines() if search_key in line)
cmd_list = ["pactl", "list", "sinks" if target_type == "sink" else "sources"]
output = subprocess.check_output(cmd_list, text=True)
blocks = output.split("\n\n")
for block in blocks:
if f"Name: {default_dev}" in block:
for line in block.splitlines():
if "Description:" in line:
desc = line.split(": ")[1].strip()
# Add a small hint if it is a monitor, though cycle_input should prevent it
if ".monitor" in default_dev:
return "Monitor: " + desc[:11]
return desc[:20]
except:
pass
return "Unknown"
try:
target_type = sys.argv[1] if len(sys.argv) > 1 else "sink"
target = "@DEFAULT_AUDIO_SINK@" if target_type == "sink" else "@DEFAULT_AUDIO_SOURCE@"
vol, muted = get_wpctl_status(target)
name = get_pactl_description(target_type)
if muted:
icon = "" if target_type == "sink" else ""
text = f"{name} {icon}"
cls = "muted"
else:
if target_type == "sink":
if vol <= 30: icon = ""
elif vol <= 60: icon = ""
else: icon = ""
else:
icon = ""
text = f"{name} {vol}% {icon}"
cls = "unmuted"
print(json.dumps({"text": text, "class": cls, "percentage": vol}))
except Exception as e:
print(json.dumps({"text": "Error", "class": "error"}))
+25 -36
View File
@@ -11,7 +11,7 @@
window#waybar {
background-color: alpha(@base, 0.4);
padding: 10px;
padding: 4px;
transition-property: background-color;
transition-duration: 0.5s;
color: @text;
@@ -28,7 +28,7 @@ window#waybar.hidden {
/* Fix weird spacing in materia (waybar #450) */
box-shadow: inset 0 -3px transparent;
/* Use box-shadow instead of border so the text isn't offset */
padding: 6px 18px;
padding: 0px 12px;
margin: 0px 3px;
border-radius: 10px;
background-color: @base;
@@ -62,8 +62,10 @@ window#waybar.hidden {
#battery,
#backlight,
#wireplumber,
#network,
#custom-volume,
#custom-mic,
#custom-network,
#network,
#clock,
#tray,
#custom-disk-root,
@@ -72,43 +74,35 @@ window#waybar.hidden {
#custom-disk-data,
#custom-pixelbuds_pro,
#custom-bluetooth-audio,
#custom-audio-output,
#custom-btrfs,
#custom-gpu-screen-recorder,
#custom-droidcam {
#custom-gpu-screen-recorder {
border-radius: 10px;
margin: 0px 3px;
padding: 6px 12px;
margin: 0px 2px;
padding: 0px 10px;
background-color: @base;
color: @text;
}
#wireplumber.muted, #custom-pixelbuds_pro, #custom-audio-output.muted {
#wireplumber.muted, #custom-pixelbuds_pro, #custom-volume.muted, #custom-mic.muted {
background-color: @base;
color: @subtext1;
border-bottom: 3px solid @subtext1;
}
#custom-pixelbuds_pro.disconnected {
padding-right: 16px;
padding-left: 12px;
padding-right: 10px;
padding-left: 8px;
}
#custom-gpu-screen-recorder,
#custom-gpu-screen-recorder.recording {
padding-right: 14px;
padding-left: 10px;
}
#custom-droidcam,
#custom-droidcam.active {
padding-right: 14px;
padding-left: 10px;
padding-right: 12px;
padding-left: 4px;
}
#custom-gamemode {
padding-right: 15px;
padding-left: 11px;
padding-right: 9px;
padding-left: 5px;
}
#custom-pixelbuds_pro.anc-active {
@@ -132,8 +126,7 @@ window#waybar.hidden {
}
#custom-gpu-screen-recorder,
#custom-gamemode,
#custom-droidcam {
#custom-gamemode {
background-color: @base;
color: @subtext1;
border-bottom: 3px solid @subtext1;
@@ -144,8 +137,7 @@ window#waybar.hidden {
}
#custom-gpu-screen-recorder.recording,
#custom-gamemode.active,
#custom-droidcam.active {
#custom-gamemode.active {
color: @maroon;
border-bottom: 3px solid @maroon;
}
@@ -156,8 +148,8 @@ window#waybar.hidden {
}
#custom-tlp.charging {
color: @teal;
border-bottom: 3px solid @teal;
color: @mauve;
border-bottom: 3px solid @mauve;
}
#custom-tlp.bat {
@@ -202,6 +194,7 @@ window#waybar.hidden {
#custom-gpu.high,
#custom-gpu.high,
#custom-cpu.high,
#custom-mem.high,
#custom-btrfs.high,
#custom-disk-root.high,
@@ -215,6 +208,7 @@ window#waybar.hidden {
#memory,
#cpu,
#disk,
#network,
#custom-network,
#custom-gpu.normal,
#custom-cpu.normal,
@@ -233,15 +227,11 @@ window#waybar.hidden {
color: @mauve;
}
#wireplumber {
padding-right: 16px;
#custom-volume.muted, #custom-mic.muted {
padding-right: 15px;
}
#network {
color: @maroon;
}
#custom-audio-output.unmuted, #wireplumber {
#custom-volume.unmuted, #custom-mic.unmuted, #wireplumber {
color: @mauve;
border-bottom: 3px solid @mauve;
}
@@ -251,12 +241,11 @@ window#waybar.hidden {
}
#network {
padding-right: 15px;
}
tooltip {
border-radius: 10px;
padding: 15px;
padding: 9px;
background-color: @base;
}
@@ -1,21 +0,0 @@
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
}
}
}
]
-37
View File
@@ -1,37 +0,0 @@
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)
+1
View File
@@ -0,0 +1 @@
catppuccin-zathura/src/catppuccin-mocha