Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbaf55cfc5 | ||
|
|
ad1b8fe3a9 | ||
|
|
667e42ba15 | ||
|
|
5e6d48b30a | ||
|
|
9e8411a176 |
+18
-4
@@ -1,4 +1,4 @@
|
||||
#? Config file for btop v.1.4.6
|
||||
#? Config file for btop v.1.4.7
|
||||
|
||||
#* 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"
|
||||
@@ -14,6 +14,11 @@ truecolor = true
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = false
|
||||
|
||||
#* Option to disable presets. Either the default preset, custom presets, or all presets.
|
||||
#* "Off" All presets are enabled.
|
||||
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
|
||||
disable_presets = "Off"
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
@@ -24,6 +29,9 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = true
|
||||
|
||||
#* Disable all mouse events.
|
||||
disable_mouse = false
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = true
|
||||
|
||||
@@ -60,7 +68,7 @@ update_ms = 1000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
proc_sorting = "memory"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = false
|
||||
@@ -92,6 +100,9 @@ proc_left = false
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = false
|
||||
|
||||
#* Should the process list follow the selected process when detailed view is open.
|
||||
proc_follow_detailed = true
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = false
|
||||
|
||||
@@ -208,6 +219,9 @@ io_graph_combined = false
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
|
||||
swap_upload_download = false
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
@@ -250,11 +264,11 @@ rsmi_measure_pcie_speeds = true
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = true
|
||||
|
||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
|
||||
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
|
||||
shown_gpus = "nvidia amd intel"
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
custom_gpu_name0 = "Radeon Vega"
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
@@ -37,3 +37,7 @@ if status is-login && test -z "$DISPLAY" -a -z "$WAYLAND_DISPLAY"
|
||||
exec uwsm start default
|
||||
end
|
||||
end
|
||||
|
||||
# Claude environments
|
||||
alias claude="CLAUDE_CONFIG_DIR=~/.claude command claude"
|
||||
alias claude-work="CLAUDE_CONFIG_DIR=~/.claude-work command claude"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
function feh --description 'alias feh=feh -.'
|
||||
command feh -. $argv
|
||||
end
|
||||
@@ -1,3 +1,3 @@
|
||||
function ls --wraps='exa --long --color=auto' --description 'alias ls=exa --long --color=auto'
|
||||
exa --long --color=auto $argv;
|
||||
exa -l --color=auto $argv;
|
||||
end
|
||||
|
||||
+10
-10
@@ -39,16 +39,16 @@ format = "{mount} {used:^3.0}/{total:^3.0}G"
|
||||
format = "{percentage:>3}% {icon}"
|
||||
|
||||
[audio]
|
||||
format_sink_unmuted = " {icon} {name} {volume:>3}%"
|
||||
format_sink_muted = " {icon} {name}"
|
||||
format_source_unmuted = "{icon} {name} {volume:>3}%"
|
||||
format_source_muted = "{icon} {name}"
|
||||
format_sink_unmuted = "{name} {volume:>3}% <span size='large'>{icon}</span>"
|
||||
format_sink_muted = "{name} <span size='large'> {icon}</span>"
|
||||
format_source_unmuted = "{name} {volume:>3}% <span size='large'>{icon}</span>"
|
||||
format_source_muted = "{name} <span size='large'>{icon}</span>"
|
||||
|
||||
[bt]
|
||||
format_plugin = " {alias} [{left}|{right}] {anc}"
|
||||
format_connected = " {alias}"
|
||||
format_disconnected = " Disconnected"
|
||||
format_disabled = " Off"
|
||||
format_plugin = "{alias} [{left}|{right}] {anc} <span size='large'></span>"
|
||||
format_connected = "{alias} <span size='large'></span>"
|
||||
format_disconnected = "Disconnected <span size='large'></span>"
|
||||
format_disabled = "<span size='large'></span>"
|
||||
|
||||
[game]
|
||||
format_active = "<span size='large'></span>"
|
||||
@@ -81,5 +81,5 @@ format = " {icon} {percentage}"
|
||||
|
||||
[dnd]
|
||||
enabled = true
|
||||
format_dnd = ""
|
||||
format_normal = ""
|
||||
format_dnd = "<span size='large'></span>"
|
||||
format_normal = "<span size='large'></span>"
|
||||
|
||||
+19
-12
@@ -1,5 +1,7 @@
|
||||
# For more information visit https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
||||
|
||||
source = ~/.config/hypr/catppuccin-hyprland/themes/mocha.conf
|
||||
|
||||
$scrPath = ~/.config/hypr/hyprlock/
|
||||
$imgPath = ~/.config/hypr/hyprlock/assets/
|
||||
|
||||
@@ -28,19 +30,19 @@ $font-display = PP Neue Machina Ultra-Bold
|
||||
$font-symbol = JetBrainsMono Nerd Font Mono
|
||||
# Input Var
|
||||
$weight = 2
|
||||
$inner-color = rgba(0, 0, 0, 0.5)
|
||||
$border-color = rgba(255, 255, 255, 0.15)
|
||||
$inner-color = rgba($baseAlpha80)
|
||||
$border-color = rgba($mauveAlpha80)
|
||||
|
||||
# Colors
|
||||
$clock-color = rgba(255, 255, 255, 1)
|
||||
$fg0 = rgba(255, 255, 255, 1)
|
||||
$fg1 = rgba(0, 0, 0, 1)
|
||||
$shape-col0 = rgba(255, 255, 255, 1)
|
||||
$shape-col1 = rgba(0, 0, 0, 0.25)
|
||||
$shape-col2 = rgba(255, 255, 255, 0.25)
|
||||
$clock-color = $text
|
||||
$fg0 = $text
|
||||
$fg1 = $base
|
||||
$shape-col0 = $mauve
|
||||
$shape-col1 = rgba($surface0Alpha80)
|
||||
$shape-col2 = rgba($surface1Alpha80)
|
||||
$shadow-pass = 2
|
||||
$shadow-size = 3
|
||||
$shadow-color = rgb(0,0,0)
|
||||
$shadow-color = $crust
|
||||
$shadow-boost = 1.2
|
||||
$text-shadow-pass = 1
|
||||
$text-shadow-boost = 0.5
|
||||
@@ -83,6 +85,7 @@ image {
|
||||
|
||||
rounding = $rounding # negative values mean circle
|
||||
border_size = 4
|
||||
border_color = $mauve
|
||||
rotate = 0 # degrees, counter-clockwise
|
||||
|
||||
position = 20, -20
|
||||
@@ -142,8 +145,12 @@ input-field {
|
||||
fade_on_empty = false
|
||||
|
||||
font_family = $font-text
|
||||
placeholder_text = <span> $USER</span>
|
||||
placeholder_text = <span foreground="##$textAlpha"> $USER</span>
|
||||
hide_input = false
|
||||
check_color = $mauve
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
|
||||
position = 0, -240
|
||||
halign = center
|
||||
@@ -497,7 +504,7 @@ label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$($scrPath/playerctl.sh --source-symbol)"
|
||||
|
||||
color = rgba(255, 255, 255, 0.6)
|
||||
color = rgba($subtext0Alpha99)
|
||||
font_size = 16
|
||||
font_family = $font-symbol
|
||||
|
||||
@@ -512,7 +519,7 @@ label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$($scrPath/playerctl.sh --source)"
|
||||
|
||||
color = rgba(255, 255, 255, 0.6)
|
||||
color = rgba($subtext0Alpha99)
|
||||
font_size = 10
|
||||
font_family = $font-text
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
wallpaper {
|
||||
monitor =
|
||||
path = ~/Pictures/rem/rem-oled.png
|
||||
path = ~/.wallpapers/takemi_2.jpg
|
||||
fit_mode = cover
|
||||
}
|
||||
|
||||
|
||||
@@ -14,4 +14,3 @@ exec-once = uwsm app -- hyprpaper
|
||||
# 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
|
||||
exec-once = uwsm app -- ~/.cargo/bin/fluxo-rs daemon
|
||||
|
||||
@@ -10,8 +10,9 @@ env = XCURSOR_THEME,Bibata-Modern-Classic
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
# 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 = AMD_VULKAN_ICD,RADV
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = EDITOR,nvim
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
# index 0 = dvorak-intl (default), index 1 = us-intl
|
||||
# switch with $mainMod ALT, SPACE (see keybinds.conf)
|
||||
kb_layout = us,us
|
||||
kb_variant = dvorak-intl,intl
|
||||
# kb_variant = intl
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
kb_options = ctrl:nocaps
|
||||
kb_options = caps:backspace
|
||||
|
||||
follow_mouse = 0
|
||||
|
||||
@@ -19,16 +19,14 @@ input {
|
||||
}
|
||||
}
|
||||
|
||||
# Layouts are inherited from the global input block so that layout
|
||||
# switching applies to these too. Only bind resolution differs here.
|
||||
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
|
||||
}
|
||||
|
||||
@@ -6,11 +6,16 @@ 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
|
||||
bind = SHIFT, PRINT, exec, grim -g "$(slurp)" ~/Pictures/Screenshots/$(date +'%Y-%m-%d_%H-%M-%S').png
|
||||
bind = CTRL, PRINT, exec, ~/.config/hypr/scripts/screenshot_window.sh copy
|
||||
bind = CTRL SHIFT, PRINT, exec, ~/.config/hypr/scripts/screenshot_window.sh save
|
||||
bindr = ALT SHIFT, z, exec, ~/.config/hypr/scripts/replay-ctrl.sh save
|
||||
bindr = ALT, z, exec, ~/.config/hypr/scripts/replay-ctrl.sh toggle
|
||||
bindr = ALT SHIFT, c, exec, ~/.config/hypr/scripts/droidcam-ctrl.sh toggle
|
||||
|
||||
# general binds
|
||||
bind = $mainMod, M, exec, pdfs-prompt
|
||||
bind = $mainMod, B, exec, fluxo bt menu
|
||||
bind = $mainMod, RETURN, exec, $terminal
|
||||
bind = $mainMod SHIFT, Q, killactive,
|
||||
bind = $mainMod CTRL, L, exec, hyprlock
|
||||
@@ -19,7 +24,9 @@ bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, F, fullscreen,
|
||||
bind = $mainMod, SPACE, exec, $menu
|
||||
bind = $mainMod, P, exec, ~/.config/hypr/scripts/powermenu.sh
|
||||
bind = $mainMod, t, togglesplit, # dwindle
|
||||
# cycle keyboard layout (dvorak-intl <-> us-intl)
|
||||
bind = $mainMod ALT, SPACE, exec, hyprctl switchxkblayout all next
|
||||
# bind = $mainMod, t, togglesplit, # dwindle
|
||||
bind = $mainMod, n, togglegroup
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
@@ -77,12 +84,12 @@ bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, fluxo-rs vol up 5
|
||||
bindel = ,XF86AudioLowerVolume, exec, fluxo-rs vol down 5
|
||||
bindel = ,XF86AudioMute, exec, fluxo-rs vol mute
|
||||
bindel = ,XF86AudioMicMute, exec, fluxo-rs mic mute
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
bindel = ,XF86AudioRaiseVolume, exec, fluxo vol up 5
|
||||
bindel = ,XF86AudioLowerVolume, exec, fluxo vol down 5
|
||||
bindel = ,XF86AudioMute, exec, fluxo vol mute
|
||||
bindel = ,XF86AudioMicMute, exec, fluxo mic mute
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s +10%
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
# laptop screen
|
||||
monitor = eDP-1, 1920x1080@60, 0x0, 1
|
||||
# samsung home monitor
|
||||
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@144, 0x-1440, 1
|
||||
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 1280x720@240, 0x0, 1
|
||||
monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@240, -2560x0, 1
|
||||
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@144, 0x0, 1
|
||||
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 1920x1080@144, 0x0, 1
|
||||
# monitor = desc:Samsung Electric Company LC27G7xT H4ZRA00734, 2560x1440@60, 0x0, 1
|
||||
|
||||
|
||||
# lid_state fallback
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
exec-once = hyprpm reload -n
|
||||
|
||||
# plugin:hyprfocus {
|
||||
# enabled = yes
|
||||
# animate_floating = yes
|
||||
# animate_workspacechange = yes
|
||||
# focus_animation = shrink
|
||||
# # Beziers for focus animations
|
||||
# bezier = bezIn, 0.5,0.0,1.0,0.5
|
||||
# bezier = bezOut, 0.0,0.5,0.5,1.0
|
||||
# bezier = overshot, 0.05, 0.9, 0.1, 1.05
|
||||
# bezier = smoothOut, 0.36, 0, 0.66, -0.56
|
||||
# bezier = smoothIn, 0.25, 1, 0.5, 1
|
||||
# bezier = realsmooth, 0.28,0.29,.69,1.08
|
||||
# # Flash settings
|
||||
# flash {
|
||||
# flash_opacity = 0.95
|
||||
# in_bezier = realsmooth
|
||||
# in_speed = 0.5
|
||||
# out_bezier = realsmooth
|
||||
# out_speed = 3
|
||||
# }
|
||||
# # Shrink settings
|
||||
# shrink {
|
||||
# shrink_percentage = 0.95
|
||||
# in_bezier = realsmooth
|
||||
# in_speed = 1
|
||||
# out_bezier = realsmooth
|
||||
# out_speed = 2
|
||||
# }
|
||||
# }
|
||||
#
|
||||
# plugin:csgo-vulkan-fix {
|
||||
# res_w = 1280
|
||||
# res_h = 960
|
||||
# class = gamescope
|
||||
# fix_mouse = true
|
||||
# }
|
||||
+3
-12
@@ -80,12 +80,6 @@ animations {
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
@@ -95,7 +89,8 @@ master {
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
vrr = 1
|
||||
# 0 = off, 1 = always, 2 = fullscreen only (G7 is a 240Hz VRR panel)
|
||||
vrr = 2
|
||||
font_family = FiraCode Nerd Font
|
||||
}
|
||||
|
||||
@@ -123,12 +118,8 @@ group {
|
||||
# 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
|
||||
# Colored indicator bar, roughly half the groupbar height
|
||||
indicator_height = 15
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
# 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)$
|
||||
$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.*|File Upload.*|TRuDI-Export laden)$
|
||||
$dialog_classes = ^(pavucontrol|blueman-manager|nm-connection-editor|org.pulseaudio.pavucontrol|io.narl.proton-drive-linux-prompt)$
|
||||
|
||||
# App classes
|
||||
$steam = ^(steam)$
|
||||
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Get active window info in JSON format
|
||||
WINDOW_INFO=$(hyprctl activewindow -j)
|
||||
|
||||
# Extract window class name (app name)
|
||||
APP_NAME=$(echo "$WINDOW_INFO" | jq -r '.class')
|
||||
|
||||
# If app name is empty, null, or invalid, default to "unknown"
|
||||
if [ -z "$APP_NAME" ] || [ "$APP_NAME" = "null" ]; then
|
||||
APP_NAME="unknown"
|
||||
fi
|
||||
|
||||
# Sanitize app name: convert to lowercase and replace characters that aren't letters, numbers, hyphens, or underscores with underscores
|
||||
APP_NAME_SAFE=$(echo "$APP_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9_-]/_/g')
|
||||
|
||||
# Extract geometry: "x,y wxh"
|
||||
GEOMETRY=$(echo "$WINDOW_INFO" | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
|
||||
|
||||
# Check if geometry is valid
|
||||
if [ -z "$GEOMETRY" ] || [ "$GEOMETRY" = "null,null nullxnull" ]; then
|
||||
notify-send -u normal "Screenshot Error" "No active window found to screenshot."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ACTION=$1
|
||||
|
||||
case "$ACTION" in
|
||||
copy)
|
||||
grim -g "$GEOMETRY" - | wl-copy
|
||||
notify-send -u low "Screenshot" "Active window ($APP_NAME) copied to clipboard"
|
||||
;;
|
||||
save)
|
||||
SCREENSHOTS_DIR="$HOME/Pictures/Screenshots"
|
||||
APP_DIR="$SCREENSHOTS_DIR/$APP_NAME_SAFE"
|
||||
mkdir -p "$APP_DIR"
|
||||
FILE_NAME="$(date +'%Y-%m-%d_%H-%M-%S').png"
|
||||
FILE_PATH="$APP_DIR/$FILE_NAME"
|
||||
|
||||
grim -g "$GEOMETRY" "$FILE_PATH"
|
||||
notify-send -u low "Screenshot" "Saved active window to $APP_NAME_SAFE/$FILE_NAME"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {copy|save}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
+16
-5
@@ -2,22 +2,26 @@
|
||||
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/http=brave-browser.desktop
|
||||
x-scheme-handler/https=brave-browser.desktop
|
||||
x-scheme-handler/chrome=zen.desktop
|
||||
text/html=zen.desktop
|
||||
text/html=brave-browser.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
|
||||
x-scheme-handler/about=brave-browser.desktop
|
||||
x-scheme-handler/unknown=brave-browser.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
|
||||
x-scheme-handler/msteams=teams-for-linux.desktop
|
||||
x-scheme-handler/slack=slack.desktop
|
||||
audio/flac=mpv.desktop
|
||||
x-scheme-handler/codex=ChatGPT.desktop
|
||||
|
||||
[Added Associations]
|
||||
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
|
||||
@@ -29,3 +33,10 @@ text/html=zen.desktop;
|
||||
x-scheme-handler/chrome=zen.desktop;
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.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;
|
||||
audio/flac=mpv.desktop;
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/user/proton-drive.service
|
||||
@@ -1 +0,0 @@
|
||||
/home/narl/.config/systemd/user/vaulthunters_mount.service
|
||||
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Fluxo — high-performance Waybar module daemon
|
||||
Documentation=https://github.com/narl/fluxo-rs
|
||||
PartOf=graphical-session.target
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/.cargo/bin/fluxo daemon
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
# Ensure the daemon can reach the user's D-Bus session and Wayland/Hyprland sockets.
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
@@ -15,7 +15,7 @@ ExecStart=rclone mount google_drive: %h/remote/gdrive \
|
||||
--log-level INFO
|
||||
|
||||
# The command to unmount gracefully.
|
||||
ExecStop=fusermount -u %h/gdrive
|
||||
ExecStop=fusermount -u %h/remote/gdrive
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/home/narl/.config/systemd/user/fluxo.service
|
||||
@@ -12,7 +12,7 @@ After=network-online.target
|
||||
ExecStart=sshfs -f -p 420 narl@narl.io:/opt %h/remote/narl.io
|
||||
|
||||
# The command to unmount gracefully.
|
||||
ExecStop=fusermount -u %h/narl_io
|
||||
ExecStop=fusermount -u %h/remote/narl.io
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
|
||||
|
||||
@@ -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
|
||||
+37
-38
@@ -22,8 +22,7 @@
|
||||
|
||||
// --- Standard Modules ---
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"on-click": "activate"
|
||||
"format": "{icon}"
|
||||
},
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
@@ -36,7 +35,7 @@
|
||||
"custom/mpris": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs mpris",
|
||||
"exec": "fluxo mpris",
|
||||
"on-click": "playerctl play-pause",
|
||||
"signal": 11
|
||||
},
|
||||
@@ -44,6 +43,14 @@
|
||||
"icon-size": 18,
|
||||
"spacing": 10
|
||||
},
|
||||
"custom/dnd": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo dnd",
|
||||
"on-click": "dunstctl set-paused toggle",
|
||||
"signal": 13,
|
||||
"interval": 5
|
||||
},
|
||||
"group/spaces": {
|
||||
"orientation": "horizontal",
|
||||
"modules": [
|
||||
@@ -54,8 +61,8 @@
|
||||
"group/powertray": {
|
||||
"orientation": "horizontal",
|
||||
"modules": [
|
||||
"tray",
|
||||
"custom/dnd",
|
||||
"tray",
|
||||
"custom/gamemode",
|
||||
"custom/power_status"
|
||||
]
|
||||
@@ -70,7 +77,7 @@
|
||||
"custom/gamemode": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs game",
|
||||
"exec": "fluxo game",
|
||||
"on-click": "~/.config/hypr/scripts/gamemode.sh",
|
||||
"signal": 7,
|
||||
"interval": 5
|
||||
@@ -79,7 +86,7 @@
|
||||
"custom/power_status": {
|
||||
"format": "{} ",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs power",
|
||||
"exec": "fluxo power",
|
||||
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown",
|
||||
"signal": 10,
|
||||
"interval": 5
|
||||
@@ -117,94 +124,86 @@
|
||||
"custom/mic"
|
||||
],
|
||||
|
||||
// --- Fluxo-rs System & Hardware ---
|
||||
// --- fluxo System & Hardware ---
|
||||
"custom/sys": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs sys",
|
||||
"exec": "fluxo sys",
|
||||
"signal": 5,
|
||||
"interval": 5
|
||||
},
|
||||
"custom/cpu": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs cpu",
|
||||
"exec": "fluxo cpu",
|
||||
"on-click": "zenmonitor & disown",
|
||||
"signal": 2
|
||||
},
|
||||
"custom/mem": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs mem",
|
||||
"exec": "fluxo mem",
|
||||
"signal": 3
|
||||
},
|
||||
"custom/gpu": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs gpu",
|
||||
"exec": "fluxo gpu",
|
||||
"signal": 4
|
||||
},
|
||||
"custom/network": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs net",
|
||||
"exec": "fluxo net",
|
||||
"signal": 1
|
||||
},
|
||||
|
||||
"custom/disk-root": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs disk /",
|
||||
"exec": "fluxo disk /",
|
||||
"signal": 6
|
||||
},
|
||||
|
||||
// --- Fluxo-rs Audio & BT ---
|
||||
// --- fluxo Audio & BT ---
|
||||
"custom/volume": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs vol",
|
||||
"on-click": "fluxo-rs vol mute",
|
||||
"on-scroll-up": "fluxo-rs vol up 5",
|
||||
"on-scroll-down": "fluxo-rs vol down 5",
|
||||
"on-click-right": "fluxo-rs vol cycle",
|
||||
"exec": "fluxo vol",
|
||||
"on-click": "fluxo vol mute",
|
||||
"on-scroll-up": "fluxo vol up 5",
|
||||
"on-scroll-down": "fluxo vol down 5",
|
||||
"on-click-right": "fluxo vol cycle",
|
||||
"on-click-middle": "pavucontrol",
|
||||
"signal": 8
|
||||
},
|
||||
"custom/mic": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs mic",
|
||||
"on-click": "fluxo-rs mic mute",
|
||||
"on-scroll-up": "fluxo-rs mic up 5",
|
||||
"on-scroll-down": "fluxo-rs mic down 5",
|
||||
"on-click-right": "fluxo-rs mic cycle",
|
||||
"exec": "fluxo mic",
|
||||
"on-click": "fluxo mic mute",
|
||||
"on-scroll-up": "fluxo mic up 5",
|
||||
"on-scroll-down": "fluxo mic down 5",
|
||||
"on-click-right": "fluxo mic cycle",
|
||||
"on-click-middle": "pavucontrol",
|
||||
"signal": 8
|
||||
},
|
||||
"custom/bluetooth-audio": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs bt",
|
||||
"on-click": "fluxo-rs bt menu",
|
||||
"on-click-right": "fluxo-rs bt cycle",
|
||||
"on-click-middle": "fluxo-rs bt cycle_mode",
|
||||
"exec": "fluxo bt",
|
||||
"on-click": "fluxo bt menu",
|
||||
"on-click-right": "fluxo bt cycle",
|
||||
"on-click-middle": "fluxo bt cycle_mode",
|
||||
"signal": 9,
|
||||
"tooltip": true
|
||||
},
|
||||
"custom/dnd": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs dnd",
|
||||
"on-click": "fluxo-rs dnd toggle",
|
||||
"signal": 13,
|
||||
"interval": 5
|
||||
},
|
||||
"custom/backlight": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "fluxo-rs backlight",
|
||||
"exec": "fluxo backlight",
|
||||
"on-scroll-up": "brightnessctl s +10%",
|
||||
"on-scroll-down": "brightnessctl s 10%",
|
||||
"on-scroll-down": "brightnessctl s 10%-",
|
||||
"signal": 12
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
/* ~/.config/waybar/style.css */
|
||||
@import "./catppuccin-waybar/themes/mocha.css";
|
||||
|
||||
/* ==========================================================================
|
||||
Global Reset & Bar
|
||||
========================================================================== */
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
min-height: 0;
|
||||
font-family: "JetBrainsMono Nerd Font", sans-serif;
|
||||
font-size: 12px;
|
||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Base Islands (Containers)
|
||||
========================================================================== */
|
||||
/* Groups and standalone modules receive the floating island styling */
|
||||
#spaces,
|
||||
#powertray,
|
||||
#hardware,
|
||||
#center,
|
||||
#custom-bluetooth-audio,
|
||||
#custom-volume,
|
||||
#custom-buds,
|
||||
#custom-mic {
|
||||
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;
|
||||
}
|
||||
|
||||
/* Group-specific sizing overrides */
|
||||
#hardware,
|
||||
#powertray,
|
||||
#spaces {
|
||||
border-radius: 24px;
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
/* Center Pill (Clock + MPRIS) Override */
|
||||
#center {
|
||||
background: linear-gradient(45deg, @mauve, @lavender);
|
||||
color: @surface0;
|
||||
font-weight: 900;
|
||||
padding: 4px 20px;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Grouped Modules (Inner Items)
|
||||
========================================================================== */
|
||||
/* Strip backgrounds and borders from items that live inside groups */
|
||||
#workspaces,
|
||||
#window,
|
||||
#custom-cpu,
|
||||
#custom-mem,
|
||||
#custom-sys,
|
||||
#custom-gpu,
|
||||
#custom-disk-root,
|
||||
#custom-mpris,
|
||||
#custom-network,
|
||||
#custom-backlight,
|
||||
#clock,
|
||||
#tray,
|
||||
#custom-gamemode,
|
||||
#custom-dnd,
|
||||
#custom-power_status {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
/* Subtle vertical separator line between inner items */
|
||||
#custom-cpu,
|
||||
#custom-mem,
|
||||
#custom-sys,
|
||||
#custom-gpu,
|
||||
#custom-disk-root,
|
||||
#custom-mpris,
|
||||
#custom-network,
|
||||
#tray,
|
||||
#custom-gamemode,
|
||||
#custom-dnd {
|
||||
border-right: 1px solid alpha(@surface1, 0.5);
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Specific Module Overrides & Alerts
|
||||
========================================================================== */
|
||||
|
||||
/* --- Workspaces --- */
|
||||
#workspaces {
|
||||
padding: 0px 8px; /* Override the inner item padding */
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0;
|
||||
margin: 4px;
|
||||
min-width: 12px;
|
||||
min-height: 12px;
|
||||
background-color: @subtext0;
|
||||
color: transparent;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
#workspaces button.active,
|
||||
#workspaces button.active:hover {
|
||||
min-width: 30px;
|
||||
background-color: @mauve;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background-color: @lavender;
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: @red;
|
||||
}
|
||||
|
||||
/* --- Hardware Semantic Alerts --- */
|
||||
.normal { color: @mauve; }
|
||||
.high { color: @peach; }
|
||||
.max { color: @red; }
|
||||
|
||||
#custom-network { color: @mauve; }
|
||||
#custom-gamemode.active { color: @mauve; }
|
||||
|
||||
/* --- Media / Controls --- */
|
||||
#custom-volume.unmuted,
|
||||
#custom-mic.unmuted {
|
||||
color: @mauve;
|
||||
}
|
||||
#custom-volume.muted,
|
||||
#custom-mic.muted {
|
||||
color: @overlay1;
|
||||
}
|
||||
|
||||
/* --- Bluetooth Audio --- */
|
||||
#custom-bluetooth-audio.disabled,
|
||||
#custom-bluetooth-audio.disconnected {
|
||||
color: @overlay1;
|
||||
}
|
||||
|
||||
#custom-bluetooth-audio.connected {
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
/* ANC States */
|
||||
#custom-bluetooth-audio.anc-active,
|
||||
#custom-bluetooth-audio.connected.anc-active,
|
||||
#custom-bluetooth-audio.connected\ anc-active {
|
||||
color: @mauve;
|
||||
}
|
||||
|
||||
#custom-bluetooth-audio.anc-aware,
|
||||
#custom-bluetooth-audio.connected.anc-aware,
|
||||
#custom-bluetooth-audio.connected\ anc-aware {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#custom-bluetooth-audio.anc-off,
|
||||
#custom-bluetooth-audio.connected.anc-off,
|
||||
#custom-bluetooth-audio.connected\ anc-off {
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
/* --- Power Status --- */
|
||||
#custom-power_status.charging { color: @green; }
|
||||
#custom-power_status.warning { color: @peach; }
|
||||
#custom-power_status.critical {
|
||||
color: @red;
|
||||
animation: blink 1s infinite alternate;
|
||||
}
|
||||
|
||||
|
||||
/* Interactive Hover States for Standalone Modules */
|
||||
#custom-volume:hover,
|
||||
#custom-buds:hover,
|
||||
#custom-mic:hover,
|
||||
#custom-bluetooth-audio:hover,
|
||||
#custom-power_status:hover {
|
||||
background-color: @surface1;
|
||||
color: @mauve;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Tooltips & Animations
|
||||
========================================================================== */
|
||||
tooltip {
|
||||
background-color: alpha(@base, 0.9);
|
||||
border: 1px solid @surface1;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @text;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: @base;
|
||||
background-color: @red;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user