feat: made config simpler
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
# fnm
|
||||||
|
set FNM_PATH "/home/raj/.local/share/fnm"
|
||||||
|
if [ -d "$FNM_PATH" ]
|
||||||
|
set PATH "$FNM_PATH" $PATH
|
||||||
|
fnm env | source
|
||||||
|
end
|
|
@ -0,0 +1,4 @@
|
||||||
|
if status is-interactive
|
||||||
|
# Commands to run in interactive sessions can go here
|
||||||
|
zoxide init fish | source
|
||||||
|
end
|
|
@ -0,0 +1,31 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:brblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:blue
|
||||||
|
SETUVAR fish_color_comment:red
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:green
|
||||||
|
SETUVAR fish_color_error:brred
|
||||||
|
SETUVAR fish_color_escape:brcyan
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:brcyan
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:yellow
|
||||||
|
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||||
|
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Default env vars.
|
||||||
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = XDG_SESSION_DESKTOP,Hyprland
|
||||||
|
|
||||||
|
env = GDK_BACKEND,wayland
|
||||||
|
env = QT_QPA_PLATFORM,wayland
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt6ct #env = QT_STYLE_OVERRIDE,kvantum
|
||||||
|
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||||
|
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||||
|
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||||
|
|
||||||
|
env = SDL_VIDEODRIVER,wayland
|
||||||
|
env = _JAVA_AWT_WM_NONREPARENTING,1
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
|
||||||
|
env = MOZ_DISABLE_RDD_SANDBOX,1
|
||||||
|
env = MOZ_ENABLE_WAYLAND,1
|
||||||
|
|
||||||
|
env = OZONE_PLATFORM,wayland
|
||||||
|
|
||||||
|
env = wallpaper_path,$HOME/.wallpapers #set wallpaper path
|
||||||
|
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
|
||||||
|
cursor {
|
||||||
|
no_hardware_cursors = true
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
# █▀▀ █▄░█ █░█ █░█ ▄▀█ █▀█
|
||||||
|
# ██▄ █░▀█ ▀▄▀ ▀▄▀ █▀█ █▀▄
|
||||||
|
|
||||||
|
source = ~/.config/hypr/startup.conf
|
||||||
|
source = ~/.config/hypr/env.conf
|
||||||
|
source = ~/.config/hypr/windowrule.conf
|
||||||
|
source = ~/.config/hypr/keybinds.conf
|
||||||
|
|
||||||
|
|
||||||
|
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
|
||||||
|
# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
|
||||||
|
|
||||||
|
# monitor = DP-1,1366x768@60,0x0,1
|
||||||
|
monitor = ,highrr,auto,auto
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# █ █▄░█ █▀█ █░█ ▀█▀
|
||||||
|
# █ █░▀█ █▀▀ █▄█ ░█░
|
||||||
|
|
||||||
|
input {
|
||||||
|
follow_mouse = 1
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
force_no_accel = 1
|
||||||
|
# repeat_rate = 25
|
||||||
|
# repeat_delay = 600
|
||||||
|
# accel_profile = flat # flat, adaptive
|
||||||
|
# natural_scroll = true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# █▀▀ █▀▀ █▄░█ █▀▀ █▀█ ▄▀█ █░░
|
||||||
|
# █▄█ ██▄ █░▀█ ██▄ █▀▄ █▀█ █▄▄
|
||||||
|
|
||||||
|
general {
|
||||||
|
gaps_in = 3
|
||||||
|
gaps_out = 6
|
||||||
|
border_size = 2
|
||||||
|
col.active_border = rgba(e5b9c6ff) rgba(c293a3ff) 45deg
|
||||||
|
col.inactive_border = 0xff382D2E
|
||||||
|
no_border_on_floating = false # enable border on float window
|
||||||
|
layout = dwindle
|
||||||
|
resize_on_border = true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# █▀▄▀█ █ █▀ █▀▀
|
||||||
|
# █░▀░█ █ ▄█ █▄▄
|
||||||
|
|
||||||
|
misc {
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
disable_splash_rendering = true
|
||||||
|
mouse_move_enables_dpms = true
|
||||||
|
animate_manual_resizes = true
|
||||||
|
mouse_move_focuses_monitor = true
|
||||||
|
enable_swallow = true
|
||||||
|
swallow_regex = ^(alacritty)$
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# █▀▄ █▀▀ █▀▀ █▀█ █▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||||
|
# █▄▀ ██▄ █▄▄ █▄█ █▀▄ █▀█ ░█░ █ █▄█ █░▀█
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
|
||||||
|
# █▀█ █▀█ █░█ █▄░█ █▀▄ █▀▀ █▀█ █▀█ █▄░█ █▀▀ █▀█
|
||||||
|
# █▀▄ █▄█ █▄█ █░▀█ █▄▀ █▄▄ █▄█ █▀▄ █░▀█ ██▄ █▀▄
|
||||||
|
rounding = 4
|
||||||
|
# multisample_edges = true
|
||||||
|
|
||||||
|
# █▀█ █▀█ ▄▀█ █▀▀ █ ▀█▀ █▄█
|
||||||
|
# █▄█ █▀▀ █▀█ █▄▄ █ ░█░ ░█░
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 1.0
|
||||||
|
|
||||||
|
# █▄▄ █░░ █░█ █▀█
|
||||||
|
# █▄█ █▄▄ █▄█ █▀▄
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 6
|
||||||
|
passes = 3
|
||||||
|
new_optimizations = true
|
||||||
|
xray = true
|
||||||
|
ignore_opacity = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# █▀ █░█ ▄▀█ █▀▄ █▀█ █░█░█
|
||||||
|
# ▄█ █▀█ █▀█ █▄▀ █▄█ ▀▄▀▄▀
|
||||||
|
drop_shadow = false
|
||||||
|
shadow_ignore_window = true
|
||||||
|
shadow_offset = 1 2
|
||||||
|
shadow_range = 10
|
||||||
|
shadow_render_power = 5
|
||||||
|
col.shadow = 0x66404040
|
||||||
|
|
||||||
|
#blurls = gtk-layer-shell
|
||||||
|
blurls = waybar
|
||||||
|
blurls = lockscreen
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||||
|
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||||
|
animations {
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
# █▄▄ █▀▀ ▀█ █ █▀▀ █▀█ █▀▀ █░█ █▀█ █░█ █▀▀
|
||||||
|
# █▄█ ██▄ █▄ █ ██▄ █▀▄ █▄▄ █▄█ █▀▄ ▀▄▀ ██▄
|
||||||
|
bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||||
|
bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||||
|
bezier = winOut, 0.3, -0.3, 0, 1
|
||||||
|
bezier = liner, 1, 1, 1, 1
|
||||||
|
|
||||||
|
|
||||||
|
#▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||||
|
#█▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||||
|
animation = windows, 1, 2, wind, slide
|
||||||
|
animation = windowsIn, 1, 2, winIn, slide
|
||||||
|
animation = windowsOut, 1, 2, winOut, slide
|
||||||
|
animation = windowsMove, 1, 2, wind, slide
|
||||||
|
animation = border, 1, 1, liner
|
||||||
|
animation = borderangle, 1, 30, liner, loop
|
||||||
|
animation = fade, 1, 3, default
|
||||||
|
animation = workspaces, 1, 2, wind
|
||||||
|
}
|
||||||
|
|
||||||
|
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
|
||||||
|
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
no_gaps_when_only = false
|
||||||
|
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true # you probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
# new_is_master = true
|
||||||
|
}
|
|
@ -0,0 +1,122 @@
|
||||||
|
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄
|
||||||
|
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀
|
||||||
|
|
||||||
|
$scriptsDir = $HOME/.config/hypr/scripts
|
||||||
|
$bg-dir = $HOME/.wallpapers
|
||||||
|
$notifycmd = notify-send -h string:x-canonical-private-synchronous:hypr-cfg -u low
|
||||||
|
|
||||||
|
# IDK
|
||||||
|
$term = alacritty
|
||||||
|
$volume = $scriptsDir/volume
|
||||||
|
$screenshot = $scriptsDir/screensht
|
||||||
|
$colorpicker = $scriptsDir/colorpicker
|
||||||
|
$wallcmd = $scriptsDir/randwall.sh
|
||||||
|
$files = thunar
|
||||||
|
$browser = brave
|
||||||
|
|
||||||
|
# █▀ █▀▀ █▀█ █▀▀ █▀▀ █▄░█ █▀ █░█ █▀█ ▀█▀
|
||||||
|
# ▄█ █▄▄ █▀▄ ██▄ ██▄ █░▀█ ▄█ █▀█ █▄█ ░█░
|
||||||
|
|
||||||
|
bind = SUPER, v, exec, wf-recorder -f $(xdg-user-dir VIDEOS)/$(date +'%H:%M:%S_%d-%m-%Y.mp4')
|
||||||
|
bind = SUPER SHIFT, v, exec, killall -s SIGINT wf-recorder
|
||||||
|
bind = , Print, exec, $screenshot full
|
||||||
|
bind = SUPERSHIFT, S, exec, $screenshot area
|
||||||
|
|
||||||
|
# █▀▄▀█ █ █▀ █▀▀
|
||||||
|
# █░▀░█ █ ▄█ █▄▄
|
||||||
|
bind = SUPER SHIFT, X, exec, $colorpicker
|
||||||
|
bind = CTRL ALT, R, exec, $wallcmd
|
||||||
|
bind = CTRL ALT, L, exec, swaylock
|
||||||
|
bind = SUPER, T, exec, $term
|
||||||
|
bind = SUPER, E, exec, $files
|
||||||
|
bind = SUPER, Space, exec, killall rofi || rofi -show drun -theme ~/.config/rofi/config.rasi
|
||||||
|
bind = SUPER, period, exec, killall rofi || rofi -show emoji -emoji-format "{emoji}" -modi emoji -theme ~/.config/rofi/global/emoji
|
||||||
|
bind = SUPER SHIFT, B, exec, killall -SIGUSR2 waybar # Reload waybar
|
||||||
|
bind = SUPER, B, exec, killall -SIGUSR1 waybar # Hide waybar
|
||||||
|
|
||||||
|
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀▄▀█ ▄▀█ █▄░█ ▄▀█ █▀▀ █▀▄▀█ █▀▀ █▄░█ ▀█▀
|
||||||
|
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █░▀░█ █▀█ █░▀█ █▀█ █▄█ █░▀░█ ██▄ █░▀█ ░█░
|
||||||
|
bind = SUPER, Q, killactive,
|
||||||
|
bind = SUPER SHIFT, Q, exit,
|
||||||
|
bind = SUPER, F, fullscreen,
|
||||||
|
bind = SUPER, W, togglefloating,
|
||||||
|
bind = SUPER, P, pseudo, # dwindle
|
||||||
|
bind = SUPER, S, togglesplit, # dwindle
|
||||||
|
|
||||||
|
# Change Workspace Mode
|
||||||
|
bind = SUPER SHIFT, Space, workspaceopt, allfloat
|
||||||
|
bind = SUPER SHIFT, Space, exec, $notifycmd 'Toggled All Float Mode'
|
||||||
|
bind = SUPER SHIFT, P, workspaceopt, allpseudo
|
||||||
|
bind = SUPER SHIFT, P, exec, $notifycmd 'Toggled All Pseudo Mode'
|
||||||
|
|
||||||
|
bind = SUPER, Tab, cyclenext,
|
||||||
|
bind = SUPER, Tab, bringactivetotop,
|
||||||
|
|
||||||
|
# █▀▀ █▀█ █▀▀ █░█ █▀
|
||||||
|
# █▀░ █▄█ █▄▄ █▄█ ▄█
|
||||||
|
bind = SUPER, h, movefocus, l
|
||||||
|
bind = SUPER, l, movefocus, r
|
||||||
|
bind = SUPER, k, movefocus, u
|
||||||
|
bind = SUPER, j, movefocus, d
|
||||||
|
|
||||||
|
# █▀▄▀█ █▀█ █░█ █▀▀
|
||||||
|
# █░▀░█ █▄█ ▀▄▀ ██▄
|
||||||
|
bind = SUPER SHIFT, left, movewindow, l
|
||||||
|
bind = SUPER SHIFT, right, movewindow, r
|
||||||
|
bind = SUPER SHIFT, up, movewindow, u
|
||||||
|
bind = SUPER SHIFT, down, movewindow, d
|
||||||
|
|
||||||
|
# █▀█ █▀▀ █▀ █ ▀█ █▀▀
|
||||||
|
# █▀▄ ██▄ ▄█ █ █▄ ██▄
|
||||||
|
bind = SUPER CTRL, left, resizeactive, -20 0
|
||||||
|
bind = SUPER CTRL, right, resizeactive, 20 0
|
||||||
|
bind = SUPER CTRL, up, resizeactive, 0 -20
|
||||||
|
bind = SUPER CTRL, down, resizeactive, 0 20
|
||||||
|
|
||||||
|
# ▀█▀ ▄▀█ █▄▄ █▄▄ █▀▀ █▀▄
|
||||||
|
# ░█░ █▀█ █▄█ █▄█ ██▄ █▄▀
|
||||||
|
bind = SUPER, g, togglegroup
|
||||||
|
bind = SUPER, tab, changegroupactive
|
||||||
|
bind = SUPER, G, exec, $notifycmd 'Toggled Group Mode'
|
||||||
|
|
||||||
|
# █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░
|
||||||
|
# ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄
|
||||||
|
bind = SUPER, a, togglespecialworkspace
|
||||||
|
bind = SUPERSHIFT, a, movetoworkspace, special
|
||||||
|
bind = SUPER, a, exec, $notifycmd 'Toggled Special Workspace'
|
||||||
|
bind = SUPER, c, exec, hyprctl dispatch centerwindow
|
||||||
|
|
||||||
|
# █▀ █░█░█ █ ▀█▀ █▀▀ █░█
|
||||||
|
# ▄█ ▀▄▀▄▀ █ ░█░ █▄▄ █▀█
|
||||||
|
bind = SUPER, 1, workspace, 1
|
||||||
|
bind = SUPER, 2, workspace, 2
|
||||||
|
bind = SUPER, 3, workspace, 3
|
||||||
|
bind = SUPER, 4, workspace, 4
|
||||||
|
bind = SUPER, 5, workspace, 5
|
||||||
|
bind = SUPER, 6, workspace, 6
|
||||||
|
bind = SUPER, 7, workspace, 7
|
||||||
|
bind = SUPER, 8, workspace, 8
|
||||||
|
bind = SUPER, 9, workspace, 9
|
||||||
|
bind = SUPER, 0, workspace, 10
|
||||||
|
bind = SUPER ALT, up, workspace, e+1
|
||||||
|
bind = SUPER ALT, down, workspace, e-1
|
||||||
|
|
||||||
|
# █▀▄▀█ █▀█ █░█ █▀▀
|
||||||
|
# █░▀░█ █▄█ ▀▄▀ ██▄
|
||||||
|
bind = SUPER SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = SUPER SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = SUPER SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = SUPER SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = SUPER SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = SUPER SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = SUPER SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = SUPER SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = SUPER SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = SUPER SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# █▀▄▀█ █▀█ █░█ █▀ █▀▀ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀
|
||||||
|
# █░▀░█ █▄█ █▄█ ▄█ ██▄ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█
|
||||||
|
bindm = SUPER, mouse:272, movewindow
|
||||||
|
bindm = SUPER, mouse:273, resizewindow
|
||||||
|
bind = SUPER, mouse_down, workspace, e+1
|
||||||
|
bind = SUPER, mouse_up, workspace, e-1
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
roconf="~/.config/rofi/clipboard.rasi"
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
c) cliphist list | rofi -dmenu -theme-str 'entry { placeholder: "Copy...";}' -config $roconf | cliphist decode | wl-copy
|
||||||
|
;;
|
||||||
|
d) cliphist list | rofi -dmenu -theme-str 'entry { placeholder: "Delete...";}' -config $roconf | cliphist delete
|
||||||
|
;;
|
||||||
|
w) if [ `echo -e "Yes\nNo" | rofi -dmenu -theme-str 'entry { placeholder: "Clear Clipboard History?";}' -config $roconf` == "Yes" ] ; then
|
||||||
|
cliphist wipe
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
t) echo ""
|
||||||
|
echo " clipboard history"
|
||||||
|
;;
|
||||||
|
*) echo "cliphist.sh [action]"
|
||||||
|
echo "c : cliphist list and copy selected"
|
||||||
|
echo "d : cliphist list and delete selected"
|
||||||
|
echo "w : cliphist wipe database"
|
||||||
|
echo "t : display tooltip"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
TMPPCK=$(hyprpicker -a -n)
|
||||||
|
TMPPST=$(wl-paste)
|
||||||
|
CMD=$(echo "$TMPPST")
|
||||||
|
TMP=/tmp/xcolor_$CMD.png
|
||||||
|
|
||||||
|
hyprpick() {
|
||||||
|
$TMPPCK
|
||||||
|
}
|
||||||
|
|
||||||
|
check_dependencies() {
|
||||||
|
! command -v hyprpicker &>/dev/null &&
|
||||||
|
notify-send -u critical -a "Color Picker" xcolor-pick "gpick needs to be installed" && exit 1
|
||||||
|
|
||||||
|
! command -v magick &>/dev/null &&
|
||||||
|
notify-send -u critical -a "Color Picker" xcolor-pick "imagemagick needs to be installed" && exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
convert -size 120x120 xc:"$CMD" "$TMP"
|
||||||
|
printf %s "$CMD" | wl-paste
|
||||||
|
|
||||||
|
notify-send -a "Color Picker" -i "$TMP" xcolor-pick "$CMD"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_dependencies
|
||||||
|
hyprpick
|
||||||
|
main
|
|
@ -0,0 +1,5 @@
|
||||||
|
if [[ $(hyprctl activewindow -j | jq -r ".class") == "Steam" ]]; then
|
||||||
|
xdotool windowunmap $(xdotool getactivewindow)
|
||||||
|
else
|
||||||
|
hyprctl dispatch killactive ""
|
||||||
|
fi
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | sed -n '2p' | awk '{print $2}')
|
||||||
|
if [ $HYPRGAMEMODE = 1 ] ; then
|
||||||
|
hyprctl --batch "\
|
||||||
|
keyword animations:enabled 0;\
|
||||||
|
keyword decoration:drop_shadow 0;\
|
||||||
|
keyword decoration:blur 0;\
|
||||||
|
keyword general:gaps_in 0;\
|
||||||
|
keyword general:gaps_out 0;\
|
||||||
|
keyword general:border_size 1;\
|
||||||
|
keyword decoration:rounding 0"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
hyprctl reload
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
## main script ##
|
||||||
|
CFGDIR="$HOME/.config"
|
||||||
|
X_MODE=$1
|
||||||
|
|
||||||
|
## check mode ##
|
||||||
|
if [ "$X_MODE" == "dark" ] || [ "$X_MODE" == "light" ] ; then
|
||||||
|
S_MODE="$X_MODE"
|
||||||
|
|
||||||
|
elif [ "$X_MODE" == "switch" ] ; then
|
||||||
|
X_MODE=`readlink $CFGDIR/swww/wall.set | awk -F "." '{print $NF}'`
|
||||||
|
|
||||||
|
if [ "$X_MODE" == "dark" ] ; then
|
||||||
|
S_MODE="light"
|
||||||
|
flatpak --user override --env=GTK_THEME=Catppuccin-Latte
|
||||||
|
|
||||||
|
elif [ "$X_MODE" == "light" ] ; then
|
||||||
|
S_MODE="dark"
|
||||||
|
flatpak --user override --env=GTK_THEME=Catppuccin-Mocha
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "ERROR: unable to fetch wallpaper mode."
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "ERROR: unknown mode, use 'dark', 'light' or 'switch'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
### hyprland ###
|
||||||
|
ln -fs $CFGDIR/hypr/${S_MODE}.conf $CFGDIR/hypr/theme.conf
|
||||||
|
hyprctl reload
|
||||||
|
|
||||||
|
### swwwallpaper ###
|
||||||
|
x=`echo $S_MODE | cut -c 1`
|
||||||
|
$CFGDIR/swww/swwwallpaper.sh -$x
|
||||||
|
|
||||||
|
### qt5ct ###
|
||||||
|
ln -fs $CFGDIR/qt5ct/colors/${S_MODE}.conf $CFGDIR/qt5ct/colors/theme.conf
|
||||||
|
|
||||||
|
### rofi ###
|
||||||
|
ln -fs $CFGDIR/rofi/${S_MODE}.rasi $CFGDIR/rofi/theme.rasi
|
||||||
|
|
||||||
|
### kitty ###
|
||||||
|
ln -fs $CFGDIR/kitty/${S_MODE}.conf $CFGDIR/kitty/theme.conf
|
||||||
|
killall -SIGUSR1 kitty
|
||||||
|
|
||||||
|
### waybar ###
|
||||||
|
ln -fs $CFGDIR/waybar/${S_MODE}.css $CFGDIR/waybar/style.css
|
||||||
|
sleep 1
|
||||||
|
killall -SIGUSR2 waybar
|
|
@ -0,0 +1,2 @@
|
||||||
|
#/bin/bash
|
||||||
|
swww img `find -L $wallpaper_path -type f | shuf -n 1` --transition-type any --transition-fps 60
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
sleep 1
|
||||||
|
killall xdg-desktop-portal-hyprland
|
||||||
|
killall xdg-desktop-portal-gnome
|
||||||
|
killall xdg-desktop-portal-kde
|
||||||
|
killall xdg-desktop-portal-lxqt
|
||||||
|
killall xdg-desktop-portal-wlr
|
||||||
|
killall xdg-desktop-portal
|
||||||
|
sleep 1
|
||||||
|
/usr/lib/xdg-desktop-portal-hyprland &
|
||||||
|
sleep 2
|
||||||
|
/usr/lib/xdg-desktop-portal &
|
|
@ -0,0 +1,152 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# Directory
|
||||||
|
_SCREENSHOT_DIR_=$HOME/Pictures/Screenshots
|
||||||
|
_ORIGINAL_DIR_=$_SCREENSHOT_DIR_/Original
|
||||||
|
_LOG_FILE_="$_SCREENSHOT_DIR_/.screensht.log"
|
||||||
|
# Color
|
||||||
|
_FG_COLOR_='#cdd6f4'
|
||||||
|
_BG_COLOR_='#f5c2e7'
|
||||||
|
_BG_SIZE_=10
|
||||||
|
# Border Size Applied when value greater than or equal 3
|
||||||
|
_BORDER_SIZE_=0
|
||||||
|
_SHADOW_SIZE_='100x40+0+16' # [ weight ] x [ radius ] + [ horizontal ] x [ vertical ]
|
||||||
|
_ROUNDED_CORNER_=8
|
||||||
|
# Author Config
|
||||||
|
_AUTHOR_POST_=( 'South' '+0+15' )
|
||||||
|
_AUTHOR_NAME_=" $USER"
|
||||||
|
_AUTHOR_COLOR_='#1e1e2e'
|
||||||
|
# Get Lists Font With "convert -list font | grep -iE 'font:.*' | nl"
|
||||||
|
_FONT_SIZE_=12
|
||||||
|
_FONT_='JetBrainsMonoNL-NFM-Bold'
|
||||||
|
|
||||||
|
function check() {
|
||||||
|
if [[ $? -eq 1 && ${PIPESTATUS[0]} -eq 1 ]]; then
|
||||||
|
_end_job_=$(date +%s)
|
||||||
|
summary $_start_job_ $_end_job_ 'failed' && dunstify -u critical -t 3000 -a "Screenshot Tool" "Screensht" >> $_LOG_FILE_ 2>&1
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check save directory
|
||||||
|
# Create it if it doesn't exist
|
||||||
|
function check_dir() {
|
||||||
|
if [[ ! -d "$_SCREENSHOT_DIR_" || ! -d "$_ORIGINAL_DIR_" ]]; then
|
||||||
|
mkdir -p "$_SCREENSHOT_DIR_"
|
||||||
|
mkdir -p "$_ORIGINAL_DIR_"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_latest_img() {
|
||||||
|
_LATEST_IMAGE_=$(/bin/ls -th $_SCREENSHOT_DIR_ | grep -vE '.screensht.png$' | grep -E '.png$' | head -n 1)
|
||||||
|
|
||||||
|
if [[ $( echo "$_LATEST_IMAGE_" | wc -w ) -eq 0 ]]; then
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
_LATEST_IMAGE_="$_SCREENSHOT_DIR_/$_LATEST_IMAGE_"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function convert() {
|
||||||
|
_target_file_=$( echo "$_LATEST_IMAGE_" | sed 's/.png/.screensht.png/g' )
|
||||||
|
|
||||||
|
if [[ $_BORDER_SIZE_ -ge 3 ]]; then
|
||||||
|
magick convert "$_LATEST_IMAGE_" \
|
||||||
|
-format 'roundrectangle 1,1 %[fx:w+4],%[fx:h+4] '"$_ROUNDED_CORNER_"','"$_ROUNDED_CORNER_"''\
|
||||||
|
info: > $_SCREENSHOT_DIR_/_rounded_.mvg
|
||||||
|
check
|
||||||
|
|
||||||
|
magick convert "$_LATEST_IMAGE_" -border $_BORDER_SIZE_ -alpha transparent \
|
||||||
|
-background none -fill white -stroke none -strokewidth 0 \
|
||||||
|
-draw "@"$_SCREENSHOT_DIR_"/_rounded_.mvg" $_SCREENSHOT_DIR_/_rounded_mask_.png >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
magick convert "$_LATEST_IMAGE_" -border $_BORDER_SIZE_ -alpha transparent \
|
||||||
|
-background none -fill none -stroke $_FG_COLOR_ -strokewidth $_BORDER_SIZE_ \
|
||||||
|
-draw "@"$_SCREENSHOT_DIR_"/_rounded_.mvg" $_SCREENSHOT_DIR_/_rounded_overlay_.png >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
magick convert "$_LATEST_IMAGE_" -alpha set -bordercolor none -border $_BORDER_SIZE_ \
|
||||||
|
$_SCREENSHOT_DIR_/_rounded_mask_.png -compose DstIn -composite \
|
||||||
|
$_SCREENSHOT_DIR_/_rounded_overlay_.png -compose Over -composite \
|
||||||
|
"$_target_file_" >> $_LOG_FILE_ 2>&1 && \
|
||||||
|
rm -f $_SCREENSHOT_DIR_/_rounded_*
|
||||||
|
check
|
||||||
|
else
|
||||||
|
magick convert "$_LATEST_IMAGE_" \( +clone -alpha extract -draw 'fill black polygon 0,0 0,'"$_ROUNDED_CORNER_"' '"$_ROUNDED_CORNER_"',0 fill white circle '"$_ROUNDED_CORNER_"','"$_ROUNDED_CORNER_"' '"$_ROUNDED_CORNER_"',0' \
|
||||||
|
\( +clone -flip \) -compose Multiply -composite \
|
||||||
|
\( +clone -flop \) -compose Multiply -composite \
|
||||||
|
\) -alpha off -compose CopyOpacity -composite -compose over "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
fi
|
||||||
|
|
||||||
|
magick convert "$_target_file_" \( +clone -background black -shadow $_SHADOW_SIZE_ \) +swap -background none -layers merge +repage "$_target_file_" >> $_LOG_FILE_ 2>&1 \
|
||||||
|
&& magick convert "$_target_file_" -bordercolor $_BG_COLOR_ -border $_BG_SIZE_ "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
echo -en " $_AUTHOR_NAME_ " | magick convert "$_target_file_" -gravity ${_AUTHOR_POST_[0]} -pointsize $_FONT_SIZE_ -fill $_AUTHOR_COLOR_ -undercolor none -font $_FONT_ -annotate ${_AUTHOR_POST_[1]} @- "$_target_file_" \
|
||||||
|
>> $_LOG_FILE_ 2>&1 && magick convert "$_target_file_" -gravity South -chop 0x$(( $_BG_SIZE_ / 2 )) "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
magick convert "$_target_file_" -gravity North -background $_BG_COLOR_ -splice 0x$(( $_BG_SIZE_ / 2 )) "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
magick convert "$_target_file_" -profile /usr/share/color/icc/colord/sRGB.icc "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
check
|
||||||
|
}
|
||||||
|
|
||||||
|
function summary() {
|
||||||
|
_runtime_job_=$(($2-$1))
|
||||||
|
hours=$((_runtime_job_ / 3600)); minutes=$(( (_runtime_job_ % 3600) / 60 )); seconds=$(( (_runtime_job_ % 3600) % 60 ))
|
||||||
|
|
||||||
|
if [[ $3 != "failed" ]]; then
|
||||||
|
wl-copy < "$_target_file_" >> $_LOG_FILE_ 2>&1
|
||||||
|
|
||||||
|
message="${_notif_message_} Runtime: $hours hours, $minutes minutes, $seconds seconds"
|
||||||
|
dunstify -i "$_target_file_" -t 10000 "Screenshot Tool" "$message" -a "Screenshot Tool"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
check_dir
|
||||||
|
|
||||||
|
rm -f $_LOG_FILE_
|
||||||
|
_start_job_=$(date +%s)
|
||||||
|
|
||||||
|
_screenshot_command_="$1"
|
||||||
|
_notif_message_="$2"
|
||||||
|
|
||||||
|
$_screenshot_command_ $_SCREENSHOT_DIR_\/$_start_job_.png> /dev/null 2>&1
|
||||||
|
check
|
||||||
|
|
||||||
|
get_latest_img
|
||||||
|
convert
|
||||||
|
|
||||||
|
mv $_LATEST_IMAGE_ $_ORIGINAL_DIR_
|
||||||
|
|
||||||
|
_end_job_=$(date +%s)
|
||||||
|
summary $_start_job_ $_end_job_
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check the args passed
|
||||||
|
if [ -z "$1" ] || ([ "$1" != 'full' ] && [ "$1" != 'area' ]);
|
||||||
|
then
|
||||||
|
echo "
|
||||||
|
Requires an argument:
|
||||||
|
area - Area screenshot
|
||||||
|
full - Fullscreen screenshot
|
||||||
|
Example:
|
||||||
|
./screensht area
|
||||||
|
./screensht full
|
||||||
|
"
|
||||||
|
elif [ "$1" = 'full' ];
|
||||||
|
then
|
||||||
|
msg="Full screenshot saved and copied to clipboard!"
|
||||||
|
main 'grimblast copysave output' "${msg}"
|
||||||
|
elif [ "$1" = 'area' ];
|
||||||
|
then
|
||||||
|
msg='Area screenshot saved and copied to clipboard!'
|
||||||
|
main 'grimblast copysave area' "${msg}"
|
||||||
|
fi
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Check release
|
||||||
|
if [ ! -f /etc/arch-release ] ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for updates
|
||||||
|
aur=$(paru -Qua | wc -l)
|
||||||
|
ofc=$(pacman -Qu | wc -l)
|
||||||
|
|
||||||
|
# Calculate total available updates
|
||||||
|
upd=$(( ofc + aur ))
|
||||||
|
echo "$upd"
|
||||||
|
|
||||||
|
# Show tooltip
|
||||||
|
if [ $upd -eq 0 ] ; then
|
||||||
|
echo " Packages are up to date"
|
||||||
|
else
|
||||||
|
echo " Official $ofc AUR $aur"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Trigger upgrade
|
||||||
|
if [ "$1" == "up" ] ; then
|
||||||
|
kitty --title systemupdate sh -c 'yay -Syu'
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
## set variables ##
|
||||||
|
BaseDir=`dirname $(realpath $0)`
|
||||||
|
ConfDir="$HOME/.config"
|
||||||
|
ThemeCtl="$ConfDir/swww/wall.ctl"
|
||||||
|
ThumbDir="$ConfDir/swww/Themes-Ctl"
|
||||||
|
RofiConf="$ConfDir/rofi/themeselect.rasi"
|
||||||
|
|
||||||
|
|
||||||
|
## show and apply theme ##
|
||||||
|
if [ -z "$1" ] ; then
|
||||||
|
|
||||||
|
ThemeSel=$(cat $ThemeCtl | while read line
|
||||||
|
do
|
||||||
|
thm=`echo $line | cut -d '|' -f 2`
|
||||||
|
wal=`echo $line | cut -d '|' -f 3`
|
||||||
|
echo -en "$thm\x00icon\x1f$ThumbDir/${thm}.png\n"
|
||||||
|
done | rofi -dmenu -config $RofiConf)
|
||||||
|
|
||||||
|
if [ ! -z $ThemeSel ] ; then
|
||||||
|
${BaseDir}/themeswitch.sh -s $ThemeSel
|
||||||
|
fi
|
||||||
|
|
||||||
|
## regenerate thumbnails ##
|
||||||
|
elif [ "$1" == "T" ] ; then
|
||||||
|
|
||||||
|
echo "refreshing thumbnails..."
|
||||||
|
cat $ThemeCtl | while read line
|
||||||
|
do
|
||||||
|
thm=`echo $line | cut -d '|' -f 2`
|
||||||
|
wal=`echo $line | cut -d '|' -f 3`
|
||||||
|
wal=`eval echo $wal`
|
||||||
|
|
||||||
|
echo "croping image from wallpaper $ThumbDir/${thm}_tmp.png..."
|
||||||
|
convert $wal -gravity Center -crop 1080x1080+0+0 $ThumbDir/${thm}_tmp.png
|
||||||
|
echo "applying rounded corner mask and generating $ThumbDir/${thm}.png..."
|
||||||
|
#convert -size 1080x1080 xc:none -draw "roundrectangle 0,0,1080,1080,80,80" $ThumbDir/roundedmask.png
|
||||||
|
convert $ThumbDir/${thm}_tmp.png -matte $ThumbDir/roundedmask.png -compose DstIn -composite $ThumbDir/${thm}.png
|
||||||
|
rm $ThumbDir/${thm}_tmp.png
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
## set variables ##
|
||||||
|
BaseDir=`dirname $(realpath $0)`
|
||||||
|
ConfDir="$HOME/.config"
|
||||||
|
ThemeCtl="$ConfDir/swww/wall.ctl"
|
||||||
|
|
||||||
|
## evaluate options ##
|
||||||
|
while getopts "npst" option ; do
|
||||||
|
case $option in
|
||||||
|
|
||||||
|
n ) # set next theme
|
||||||
|
ThemeSet=`head -1 $ThemeCtl | cut -d '|' -f 2` #default value
|
||||||
|
flg=0
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
if [ $flg -eq 1 ] ; then
|
||||||
|
ThemeSet=`echo $line | cut -d '|' -f 2`
|
||||||
|
break
|
||||||
|
elif [ `echo $line | cut -d '|' -f 1` -eq 1 ] ; then
|
||||||
|
flg=1
|
||||||
|
fi
|
||||||
|
done < $ThemeCtl
|
||||||
|
;;
|
||||||
|
|
||||||
|
p ) # set previous theme
|
||||||
|
ThemeSet=`tail -1 $ThemeCtl | cut -d '|' -f 2` #default value
|
||||||
|
flg=0
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
if [ $flg -eq 1 ] ; then
|
||||||
|
ThemeSet=`echo $line | cut -d '|' -f 2`
|
||||||
|
break
|
||||||
|
elif [ `echo $line | cut -d '|' -f 1` -eq 1 ] ; then
|
||||||
|
flg=1
|
||||||
|
fi
|
||||||
|
done < <( tac $ThemeCtl )
|
||||||
|
export xtrans="outer"
|
||||||
|
;;
|
||||||
|
|
||||||
|
s ) # set selected theme
|
||||||
|
shift $((OPTIND -1))
|
||||||
|
ThemeSet=$1
|
||||||
|
;;
|
||||||
|
|
||||||
|
t ) # display tooltip
|
||||||
|
echo ""
|
||||||
|
echo " Next/Previous Theme"
|
||||||
|
exit 0 ;;
|
||||||
|
|
||||||
|
* ) # invalid option
|
||||||
|
echo "n : set next theme"
|
||||||
|
echo "p : set previous theme"
|
||||||
|
echo "s : set theme from parameter"
|
||||||
|
echo "t : display tooltip"
|
||||||
|
exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
## update theme control ##
|
||||||
|
if [ `cat $ThemeCtl | awk -F '|' -v thm=$ThemeSet '{if($2==thm) print$2}' | wc -w` -ne 1 ] ; then
|
||||||
|
echo "Unknown theme selected: $ThemeSet"
|
||||||
|
echo "Available themes are:"
|
||||||
|
cat $ThemeCtl | cut -d '|' -f 2
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Selected theme: $ThemeSet"
|
||||||
|
sed -i "s/^1/0/g" $ThemeCtl
|
||||||
|
awk -F '|' -v thm=$ThemeSet '{OFS=FS} {if($2==thm) $1=1; print$0}' $ThemeCtl > $BaseDir/tmp && mv $BaseDir/tmp $ThemeCtl
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
### swwwallpaper ###
|
||||||
|
getWall=`grep '^1|' $ThemeCtl | cut -d '|' -f 3`
|
||||||
|
getWall=`eval echo $getWall`
|
||||||
|
ln -fs $getWall $ConfDir/swww/wall.set
|
||||||
|
$ConfDir/swww/swwwallpaper.sh
|
||||||
|
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
echo "ERROR: Unable to set wallpaper"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
### kitty ###
|
||||||
|
ln -fs $ConfDir/kitty/themes/${ThemeSet}.conf $ConfDir/kitty/themes/theme.conf
|
||||||
|
killall -SIGUSR1 kitty
|
||||||
|
|
||||||
|
|
||||||
|
### qt5ct ###
|
||||||
|
sed -i "/^color_scheme_path=/c\color_scheme_path=$ConfDir/qt5ct/colors/${ThemeSet}.conf" $ConfDir/qt5ct/qt5ct.conf
|
||||||
|
IconSet=`awk -F "'" '$0 ~ /gsettings set org.gnome.desktop.interface icon-theme/{print $2}' $ConfDir/hypr/themes/${ThemeSet}.conf`
|
||||||
|
sed -i "/^icon_theme=/c\icon_theme=${IconSet}" $ConfDir/qt5ct/qt5ct.conf
|
||||||
|
|
||||||
|
|
||||||
|
### flatpak GTK ###
|
||||||
|
flatpak --user override --env=GTK_THEME="${ThemeSet}"
|
||||||
|
flatpak --user override --env=ICON_THEME="${IconSet}"
|
||||||
|
|
||||||
|
|
||||||
|
### rofi ###
|
||||||
|
ln -fs $ConfDir/rofi/themes/${ThemeSet}.rasi $ConfDir/rofi/themes/theme.rasi
|
||||||
|
|
||||||
|
|
||||||
|
### hyprland ###
|
||||||
|
ln -fs $ConfDir/hypr/themes/${ThemeSet}.conf $ConfDir/hypr/themes/theme.conf
|
||||||
|
hyprctl reload
|
||||||
|
|
||||||
|
|
||||||
|
### waybar ###
|
||||||
|
ln -fs $ConfDir/waybar/themes/${ThemeSet}.css $ConfDir/waybar/style.css
|
||||||
|
sleep 1
|
||||||
|
killall -SIGUSR2 waybar
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
tagVol="notifyvol"
|
||||||
|
|
||||||
|
function notify_vol
|
||||||
|
{
|
||||||
|
vol=`pamixer --get-volume | cat`
|
||||||
|
#bar=$(seq -s "─" $(($vol / 5)) | sed 's/[0-9]//g')
|
||||||
|
#dunstify "${vol}%" "$bar" -a "Volume" -r 91190
|
||||||
|
|
||||||
|
sink=`pamixer --get-default-sink | tail -1 | rev | cut -d '"' -f -2 | rev | sed 's/"//'`
|
||||||
|
mute=`pamixer --get-mute | cat`
|
||||||
|
|
||||||
|
angle="$(( (($vol+2)/5) * 5 ))"
|
||||||
|
ico="~/.config/dunst/iconvol/vol-${angle}.svg"
|
||||||
|
|
||||||
|
if [ "$mute" == true ] ; then
|
||||||
|
dunstify "Muted" -i $ico -a "$sink" -u low -r 91190 -t 800
|
||||||
|
|
||||||
|
elif [ $vol -ne 0 ] ; then
|
||||||
|
dunstify -i $ico -a "$sink" -u low -h string:x-dunst-stack-tag:$tagVol \
|
||||||
|
-h int:value:"$vol" "Volume: ${vol}%" -r 91190 -t 800
|
||||||
|
|
||||||
|
else
|
||||||
|
dunstify -i $ico "Volume: ${vol}%" -a "$sink" -u low -r 91190 -t 800
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
i) pamixer -i 5
|
||||||
|
notify_vol
|
||||||
|
;;
|
||||||
|
d) pamixer -d 5
|
||||||
|
notify_vol
|
||||||
|
;;
|
||||||
|
m) pamixer -t
|
||||||
|
notify_vol
|
||||||
|
;;
|
||||||
|
*) echo "volumecontrol.sh [action]"
|
||||||
|
echo "i -- increase volume [+5]"
|
||||||
|
echo "d -- decrease volume [-5]"
|
||||||
|
echo "m -- mute [x]"
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,14 @@
|
||||||
|
# █▀▀ ▀▄▀ █▀▀ █▀▀
|
||||||
|
# ██▄ █░█ ██▄ █▄▄
|
||||||
|
exec-once = ~/.config/hypr/scripts/resetxdgportal.sh # reset XDPH for screenshare
|
||||||
|
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
|
||||||
|
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
|
||||||
|
exec-once = /usr/lib/polkit-kde-authentication-agent-1 # authentication dialogue for GUI apps
|
||||||
|
exec-once = wlsunset -t 5200 -S 9:00 -s 19:30 # NightLight from 7.30pm to 9am
|
||||||
|
exec-once = systemctl --user restart pipewire # Restart pipewire to avoid bugs
|
||||||
|
exec-once=hyprctl setcursor MacOS-Pixel-vr4 20
|
||||||
|
exec-once = waybar # launch the system panel
|
||||||
|
exec-once = dunst # start notification demon
|
||||||
|
exec-once = wl-paste --type text --watch cliphist store # clipboard store text data
|
||||||
|
exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
|
||||||
|
exec-once = swww init || swww img `find $wallpaper_path -type f | shuf -n 1` # Set wallpaper
|
|
@ -0,0 +1,64 @@
|
||||||
|
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
|
||||||
|
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||||
|
|
||||||
|
# Opacity
|
||||||
|
windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(Steam)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(steam)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(steamwebhelper)$
|
||||||
|
# windowrulev2 = opacity 0.80 0.80,class:^(Spotify)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(Code)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(thunar)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(file-roller)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(discord)$ #Discord-Electron
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ #WebCord-Electron
|
||||||
|
windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$
|
||||||
|
windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||||
|
windowrulev2 = opacity 0.80 0.80,class:^(org.telegram.desktop)$
|
||||||
|
|
||||||
|
# Position
|
||||||
|
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
|
||||||
|
windowrulev2 = float,class:^(pavucontrol)$
|
||||||
|
windowrulev2 = float,title:^(Media viewer)$
|
||||||
|
windowrulev2 = float,title:^(Volume Control)$
|
||||||
|
windowrulev2 = float,title:^(Picture-in-Picture)$
|
||||||
|
windowrulev2 = float,class:^(Viewnior)$
|
||||||
|
windowrulev2 = float,title:^(DevTools)$
|
||||||
|
windowrulev2 = float,class:^(file_progress)$
|
||||||
|
windowrulev2 = float,class:^(confirm)$
|
||||||
|
windowrulev2 = float,class:^(dialog)$
|
||||||
|
windowrulev2 = float,class:^(download)$
|
||||||
|
windowrulev2 = float,class:^(notification)$
|
||||||
|
windowrulev2 = float,class:^(error)$
|
||||||
|
windowrulev2 = float,class:^(confirmreset)$
|
||||||
|
windowrulev2 = float,title:^(Open File)$
|
||||||
|
windowrulev2 = float,title:^(branchdialog)$
|
||||||
|
windowrulev2 = float,title:^(Confirm to replace files)
|
||||||
|
windowrulev2 = float,title:^(File Operation Progress)
|
||||||
|
|
||||||
|
windowrulev2 = move 75 44%,title:^(Volume Control)$
|
||||||
|
|
||||||
|
# Workspace
|
||||||
|
windowrulev2 = workspace 1, class:^(Brave-browser)$
|
||||||
|
windowrulev2 = workspace 2, class:^(discord)$
|
||||||
|
windowrulev2 = workspace 3, class:^(org.telegram.desktop)$
|
||||||
|
windowrulev2 = workspace 4, class:^(Code)$
|
||||||
|
windowrulev2 = workspace 4, class:^(code-url-handler)$
|
||||||
|
# windowrulev2 = workspace 5, class:^(Spotify)$
|
||||||
|
|
||||||
|
# Size
|
||||||
|
windowrulev2 = size 800 600,class:^(download)$
|
||||||
|
windowrulev2 = size 800 600,title:^(Open File)$
|
||||||
|
windowrulev2 = size 800 600,title:^(Save File)$
|
||||||
|
windowrulev2 = size 800 600,title:^(Volume Control)$
|
||||||
|
|
||||||
|
windowrulev2 = idleinhibit focus,class:^(mpv)$
|
||||||
|
windowrulev2 = idleinhibit fullscreen,class:^(Brave-browser)$
|
||||||
|
|
||||||
|
# xwaylandvideobridge
|
||||||
|
windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
|
||||||
|
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
|
||||||
|
windowrulev2 = nofocus,class:^(xwaylandvideobridge)$
|
||||||
|
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit f83674b6bde7868ad0467c1c7be2a39068fb278b
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"position": "top",
|
||||||
|
"margin-top": 4,
|
||||||
|
"margin-bottom": 0,
|
||||||
|
"margin-left": 6,
|
||||||
|
"margin-right": 6,
|
||||||
|
"height": 24,
|
||||||
|
"modules-left": ["hyprland/workspaces", "tray"],
|
||||||
|
"modules-center": ["hyprland/window"],
|
||||||
|
"modules-right": ["pulseaudio", "network", "cpu", "memory", "clock"],
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"max-length": 35,
|
||||||
|
"rewrite": {
|
||||||
|
"": "./raj",
|
||||||
|
},
|
||||||
|
"separate-outputs": true,
|
||||||
|
},
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"on-click": "activate",
|
||||||
|
"format-icons": {
|
||||||
|
"active": " ",
|
||||||
|
},
|
||||||
|
"sort-by-number": true,
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"*": 4,
|
||||||
|
// "HDMI-A-1": 3, // but only three on HDMI-A-1
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"format-alt": "{:%Y-%m-%d}",
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 10,
|
||||||
|
"show-passive-items": true,
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "CPU {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "{}% ",
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
"critical-threshold": 80,
|
||||||
|
"format": "{icon} {temperatureC}°C",
|
||||||
|
"format-icons": ["", "", ""],
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": " {signalStrength}%",
|
||||||
|
"format-ethernet": "{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": " ⚠ ",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""],
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol",
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
@define-color rosewater #f4dbd6;
|
||||||
|
@define-color flamingo #f0c6c6;
|
||||||
|
@define-color pink #f5bde6;
|
||||||
|
@define-color mauve #c6a0f6;
|
||||||
|
@define-color red #ed8796;
|
||||||
|
@define-color maroon #ee99a0;
|
||||||
|
@define-color peach #f5a97f;
|
||||||
|
@define-color yellow #eed49f;
|
||||||
|
@define-color green #a6da95;
|
||||||
|
@define-color teal #8bd5ca;
|
||||||
|
@define-color sky #91d7e3;
|
||||||
|
@define-color sapphire #7dc4e4;
|
||||||
|
@define-color blue #8aadf4;
|
||||||
|
@define-color lavender #b7bdf8;
|
||||||
|
@define-color text #cad3f5;
|
||||||
|
@define-color subtext1 #b8c0e0;
|
||||||
|
@define-color subtext0 #a5adcb;
|
||||||
|
@define-color overlay2 #939ab7;
|
||||||
|
@define-color overlay1 #8087a2;
|
||||||
|
@define-color overlay0 #6e738d;
|
||||||
|
@define-color surface2 #5b6078;
|
||||||
|
@define-color surface1 #494d64;
|
||||||
|
@define-color surface0 #363a4f;
|
||||||
|
@define-color base #24273a;
|
||||||
|
@define-color mantle #1e2030;
|
||||||
|
@define-color crust #181926;
|
|
@ -0,0 +1,26 @@
|
||||||
|
@define-color rosewater #f5e0dc;
|
||||||
|
@define-color flamingo #f2cdcd;
|
||||||
|
@define-color pink #f5c2e7;
|
||||||
|
@define-color mauve #cba6f7;
|
||||||
|
@define-color red #f38ba8;
|
||||||
|
@define-color maroon #eba0ac;
|
||||||
|
@define-color peach #fab387;
|
||||||
|
@define-color yellow #f9e2af;
|
||||||
|
@define-color green #a6e3a1;
|
||||||
|
@define-color teal #94e2d5;
|
||||||
|
@define-color sky #89dceb;
|
||||||
|
@define-color sapphire #74c7ec;
|
||||||
|
@define-color blue #89b4fa;
|
||||||
|
@define-color lavender #b4befe;
|
||||||
|
@define-color text #cdd6f4;
|
||||||
|
@define-color subtext1 #bac2de;
|
||||||
|
@define-color subtext0 #a6adc8;
|
||||||
|
@define-color overlay2 #9399b2;
|
||||||
|
@define-color overlay1 #7f849c;
|
||||||
|
@define-color overlay0 #6c7086;
|
||||||
|
@define-color surface2 #585b70;
|
||||||
|
@define-color surface1 #45475a;
|
||||||
|
@define-color surface0 #313244;
|
||||||
|
@define-color base #1e1e2e;
|
||||||
|
@define-color mantle #181825;
|
||||||
|
@define-color crust #11111b;
|
|
@ -0,0 +1,135 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from gi.repository import Playerctl, GLib
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
import signal
|
||||||
|
import gi
|
||||||
|
import json
|
||||||
|
gi.require_version('Playerctl', '2.0')
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def write_output(text, player, mode):
|
||||||
|
logger.info('Writing output')
|
||||||
|
|
||||||
|
if mode == 'paused':
|
||||||
|
output = {'text': text,
|
||||||
|
'class': 'paused',
|
||||||
|
'alt': player.props.player_name}
|
||||||
|
else:
|
||||||
|
output = {'text': text,
|
||||||
|
'class': 'playing',
|
||||||
|
'alt': player.props.player_name}
|
||||||
|
|
||||||
|
sys.stdout.write(json.dumps(output) + '\n')
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def on_play(player, status, manager):
|
||||||
|
logger.info('Received new playback status')
|
||||||
|
on_metadata(player, player.props.metadata, manager)
|
||||||
|
|
||||||
|
|
||||||
|
def on_metadata(player, metadata, manager):
|
||||||
|
logger.info('Received new metadata')
|
||||||
|
track_info = ''
|
||||||
|
|
||||||
|
if player.props.player_name == 'spotify' and \
|
||||||
|
'mpris:trackid' in metadata.keys() and \
|
||||||
|
':ad:' in player.props.metadata['mpris:trackid']:
|
||||||
|
track_info = 'AD PLAYING'
|
||||||
|
elif player.get_artist() != '' and player.get_title() != '':
|
||||||
|
track_info = '{title}'.format(title=player.get_title())
|
||||||
|
else:
|
||||||
|
track_info = player.get_title()
|
||||||
|
|
||||||
|
if player.props.status != 'Playing' and track_info:
|
||||||
|
write_output(track_info, player, 'paused')
|
||||||
|
else:
|
||||||
|
write_output(track_info, player, 'playing')
|
||||||
|
|
||||||
|
|
||||||
|
def on_player_appeared(manager, player, selected_player=None):
|
||||||
|
if player is not None and (selected_player is None or player.name == selected_player):
|
||||||
|
init_player(manager, player)
|
||||||
|
else:
|
||||||
|
logger.debug(
|
||||||
|
"New player appeared, but it's not the selected player, skipping")
|
||||||
|
|
||||||
|
|
||||||
|
def on_player_vanished(manager, player):
|
||||||
|
logger.info('Player has vanished')
|
||||||
|
sys.stdout.write('\n')
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def init_player(manager, name):
|
||||||
|
logger.debug('Initialize player: {player}'.format(player=name.name))
|
||||||
|
player = Playerctl.Player.new_from_name(name)
|
||||||
|
player.connect('playback-status', on_play, manager)
|
||||||
|
player.connect('metadata', on_metadata, manager)
|
||||||
|
manager.manage_player(player)
|
||||||
|
on_metadata(player, player.props.metadata, manager)
|
||||||
|
|
||||||
|
|
||||||
|
def signal_handler(sig, frame):
|
||||||
|
logger.debug('Received signal to stop, exiting')
|
||||||
|
sys.stdout.write('\n')
|
||||||
|
sys.stdout.flush()
|
||||||
|
# loop.quit()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_arguments():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
# Increase verbosity with every occurrence of -v
|
||||||
|
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||||
|
|
||||||
|
# Define for which player we're listening
|
||||||
|
parser.add_argument('--player')
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arguments = parse_arguments()
|
||||||
|
|
||||||
|
# Initialize logging
|
||||||
|
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
|
||||||
|
format='%(name)s %(levelname)s %(message)s')
|
||||||
|
|
||||||
|
# Logging is set by default to WARN and higher.
|
||||||
|
# With every occurrence of -v it's lowered by one
|
||||||
|
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||||
|
|
||||||
|
# Log the sent command line arguments
|
||||||
|
logger.debug('Arguments received {}'.format(vars(arguments)))
|
||||||
|
|
||||||
|
manager = Playerctl.PlayerManager()
|
||||||
|
loop = GLib.MainLoop()
|
||||||
|
|
||||||
|
manager.connect('name-appeared',
|
||||||
|
lambda *args: on_player_appeared(*args, arguments.player))
|
||||||
|
manager.connect('player-vanished', on_player_vanished)
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
signal.signal(signal.SIGTERM, signal_handler)
|
||||||
|
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||||||
|
|
||||||
|
for player in manager.props.player_names:
|
||||||
|
if arguments.player is not None and arguments.player != player.name:
|
||||||
|
logger.debug('{player} is not the filtered player, skipping it'
|
||||||
|
.format(player=player.name)
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
|
||||||
|
init_player(manager, player)
|
||||||
|
|
||||||
|
loop.run()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
playerctl_status=$(playerctl status 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ $playerctl_status == "Playing" ]]; then
|
||||||
|
title=$(playerctl metadata title 2>/dev/null)
|
||||||
|
echo '{"text":" ","class":"playing","title":"$title"}'
|
||||||
|
elif [[ $playerctl_status == "Paused" ]]; then
|
||||||
|
title=$(playerctl metadata title 2>/dev/null)
|
||||||
|
echo '{"text":" ","class":"paused","title":"$title"}'
|
||||||
|
else
|
||||||
|
echo '{"text":""}'
|
||||||
|
fi
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
active=$(pacmd list-sources | awk 'c&&!--c;/* index*/{c=1}' | awk '{gsub(/<|>/,"",$0); print $NF}')
|
||||||
|
|
||||||
|
filename=$(date +%F_%T.mkv)
|
||||||
|
|
||||||
|
echo active sink: $active
|
||||||
|
echo $filename
|
||||||
|
|
||||||
|
if [ -z $(pgrep wf-recorder) ];
|
||||||
|
then notify-send "Recording Started ($active)"
|
||||||
|
if [ "$1" == "-s" ]
|
||||||
|
then wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" -g "$(slurp -c "#FFFFFF")" >/dev/null 2>&1 &
|
||||||
|
sleep 2
|
||||||
|
while [ ! -z $(pgrep -x slurp) ]; do wait; done
|
||||||
|
pkill -RTMIN+8 waybar
|
||||||
|
else if [ "$1" == "-w" ]
|
||||||
|
then wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" -g "$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -c "#FFFFFF" )" >/dev/null 2>&1 &
|
||||||
|
sleep 2
|
||||||
|
while [ ! -z $(pgrep -x slurp) ]; do wait; done
|
||||||
|
pkill -RTMIN+8 waybar
|
||||||
|
else
|
||||||
|
wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" >/dev/null 2>&1 &
|
||||||
|
pkill -RTMIN+8 waybar
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
killall -s SIGINT wf-recorder
|
||||||
|
notify-send "Recording Complete"
|
||||||
|
while [ ! -z $(pgrep -x wf-recorder) ]; do wait; done
|
||||||
|
pkill -RTMIN+8 waybar
|
||||||
|
name="$(zenity --entry --text "enter a filename")"
|
||||||
|
perl-rename "s/\.(mkv|mp4)$/ $name $&/" $(ls -d $HOME/Videos/wf-recorder/* -t | head -n1)
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
@import "mocha.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: "JetBrainsMono Nerd Font", Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: transparent;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* you can set a style on hover for any module like this */
|
||||||
|
#pulseaudio:hover {
|
||||||
|
background-color: @surface2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: @lavender;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727d;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#network,
|
||||||
|
#pulseaudio {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: @maroon;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: @yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: @sky;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: @flamingo;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
color: @text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-right,
|
||||||
|
.modules-left,
|
||||||
|
.modules-center {
|
||||||
|
background-color: @base;
|
||||||
|
border-radius: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-right {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-left {
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-center {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
#battery.charging,
|
||||||
|
#battery.plugged {
|
||||||
|
color: @sapphire;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
color: #ffffff;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: steps(12);
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: @text;
|
||||||
|
}
|
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 18 KiB |
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"label" : "lock",
|
||||||
|
"action" : "~/.config/hypr/scripts/lock.sh",
|
||||||
|
"text" : "Lock",
|
||||||
|
"keybind" : "l"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "reboot",
|
||||||
|
"action" : "systemctl reboot",
|
||||||
|
"text" : "Reboot",
|
||||||
|
"keybind" : "r"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "shutdown",
|
||||||
|
"action" : "systemctl poweroff",
|
||||||
|
"text" : "Shutdown",
|
||||||
|
"keybind" : "s"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "logout",
|
||||||
|
"action" : "hyprctl dispatch exit 0",
|
||||||
|
"text" : "Logout",
|
||||||
|
"keybind" : "e"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "suspend",
|
||||||
|
"action" : "systemctl suspend",
|
||||||
|
"text" : "Suspend",
|
||||||
|
"keybind" : "u"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "hibernate",
|
||||||
|
"action" : "systemctl hibernate",
|
||||||
|
"text" : "Hibernate",
|
||||||
|
"keybind" : "h"
|
||||||
|
}
|
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 5.6 KiB |
|
@ -0,0 +1,66 @@
|
||||||
|
window {
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 14pt;
|
||||||
|
color: #cdd6f4; /* text */
|
||||||
|
background-color: rgba(30, 30, 46, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
border: none;
|
||||||
|
background-color: rgba(30, 30, 46, 0);
|
||||||
|
margin: 5px;
|
||||||
|
transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: rgba(49, 50, 68, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
background-color: #cba6f7;
|
||||||
|
color: #1e1e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lock {
|
||||||
|
background-image: image(url("./lock.png"));
|
||||||
|
}
|
||||||
|
#lock:focus {
|
||||||
|
background-image: image(url("./lock-hover.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout {
|
||||||
|
background-image: image(url("./logout.png"));
|
||||||
|
}
|
||||||
|
#logout:focus {
|
||||||
|
background-image: image(url("./logout-hover.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#suspend {
|
||||||
|
background-image: image(url("./sleep.png"));
|
||||||
|
}
|
||||||
|
#suspend:focus {
|
||||||
|
background-image: image(url("./sleep-hover.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown {
|
||||||
|
background-image: image(url("./power.png"));
|
||||||
|
}
|
||||||
|
#shutdown:focus {
|
||||||
|
background-image: image(url("./power-hover.png"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot {
|
||||||
|
background-image: image(url("./restart.png"));
|
||||||
|
}
|
||||||
|
#reboot:focus {
|
||||||
|
background-image: image(url("./restart-hover.png"));
|
||||||
|
}
|
||||||
|
#hibernate {
|
||||||
|
background-image: image(url("./hibernate.png"));
|
||||||
|
}
|
||||||
|
#hibernate:focus {
|
||||||
|
background-image: image(url("./hibernate-hover.png"));
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
*
|
.config/*
|
||||||
!.config/nvim
|
!.config/nvim
|
||||||
|
!.config/fish
|
||||||
!.config/hypr
|
!.config/hypr
|
||||||
!.config/waybar
|
!.config/waybar
|
||||||
!.config/wlogout
|
!.config/wlogout
|
||||||
|
|