Compare commits
6 Commits
1b3113f379
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 78b63dca58 | |||
| 3e402bbfe3 | |||
| 2ae4e39809 | |||
| 761b4e2bac | |||
| 66079e3a59 | |||
| 02d51bdb88 |
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
[ "$#" -eq 3 ] || { echo "Needs exactly three arguments."; exit 1; }
|
|
||||||
|
|
||||||
motion="$1"
|
|
||||||
direction="$2"
|
|
||||||
size="$3"
|
|
||||||
|
|
||||||
if [ "$motion" = 'expand' ]; then
|
|
||||||
# These expand the window's given side
|
|
||||||
case "$direction" in
|
|
||||||
north) bspc node -z top 0 -"$size" ;;
|
|
||||||
east) bspc node -z right "$size" 0 ;;
|
|
||||||
south) bspc node -z bottom 0 "$size" ;;
|
|
||||||
west) bspc node -z left -"$size" 0 ;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
# These contract the window's given side
|
|
||||||
case "$direction" in
|
|
||||||
north) bspc node -z top 0 "$size" ;;
|
|
||||||
east) bspc node -z right -"$size" 0 ;;
|
|
||||||
south) bspc node -z bottom 0 -"$size" ;;
|
|
||||||
west) bspc node -z left "$size" 0 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
killall picom
|
|
||||||
killall uim-xim
|
|
||||||
killall uim-toolbar-gtk-systray
|
|
||||||
killall eww
|
|
||||||
exec ~/.screenlayout/dual.sh &
|
|
||||||
pgrep -x sxhkd > /dev/null || sxhkd -m -1 &
|
|
||||||
setxkbmap -layout "us,ru" -option "grp:caps_toggle" &
|
|
||||||
|
|
||||||
bspc monitor eDP-1 -d Browsing I II III IV Coding Zettlr Messengers Admin
|
|
||||||
bspc monitor HDMI-1 -d V VI VII
|
|
||||||
bspc config border_width 3
|
|
||||||
bspc config window_gap 28
|
|
||||||
if [[ -e /tmp/grayscale ]] then
|
|
||||||
picom --window-shader-fg=/home/greg/.config/picom/picom.conf.glsl &
|
|
||||||
nitrogen --set-auto "/home/greg/Pictures/Wallpapers/desert_grayscale.jpg"
|
|
||||||
bspc config focused_border_color \#747474
|
|
||||||
bspc config presel_feedback_color \#747474
|
|
||||||
bspc config marked_border_color \#747474
|
|
||||||
else
|
|
||||||
picom &
|
|
||||||
nitrogen --restore &
|
|
||||||
bspc config focused_border_color \#027C9B
|
|
||||||
bspc config presel_feedback_color \#027C9B
|
|
||||||
bspc config marked_border_color \#027C9B
|
|
||||||
bspc config automatic_scheme alternate
|
|
||||||
fi
|
|
||||||
|
|
||||||
uim-xim &
|
|
||||||
uim-toolbar-gtk-systray &
|
|
||||||
xmousepasteblock &
|
|
||||||
xsel -fin </dev/null &
|
|
||||||
killall xbindkeys
|
|
||||||
xbindkeys &
|
|
||||||
bspc config split_ratio 0.5
|
|
||||||
bspc config borderless_monocle true
|
|
||||||
bspc config gapless_monocle true
|
|
||||||
|
|
||||||
#bspc config focus_follows_pointer true
|
|
||||||
|
|
||||||
# Discord is an ass
|
|
||||||
bspc config ignore_ewmh_focus true
|
|
||||||
|
|
||||||
exec ~/.config/polybar/hack/launch.sh &
|
|
||||||
exec ~/.config/bspwm/polyhide.sh &
|
|
||||||
|
|
||||||
bspc rule -a zenity state=floating
|
|
||||||
bspc rule -a Gimp desktop='^8' state=floating follow=on
|
|
||||||
bspc rule -a Kupfer.py focus=on
|
|
||||||
bspc rule -a Screenkey manage=off
|
|
||||||
bspc rule -a nitrogen state=floating sticky=on
|
|
||||||
|
|
||||||
bspc rule -a TelegramDesktop desktop='^8' follow=off
|
|
||||||
bspc rule -a Element desktop='^8' follow=off
|
|
||||||
bspc rule -a WebCord desktop='^8' follow=off
|
|
||||||
bspc rule -a superProductivity desktop='^7' follow=off
|
|
||||||
bspc rule -a steam desktop='^9' follow=off
|
|
||||||
|
|
||||||
bspc rule -a matplotlib state=floating
|
|
||||||
bspc rule -a "kitty" rectangle=800x500+560+290
|
|
||||||
bspc rule -a "Extract" state=floating
|
|
||||||
|
|
||||||
bspc config pointer_modifier mod4
|
|
||||||
|
|
||||||
# exec ~/.config/bspwm/marked.sh &
|
|
||||||
|
|
||||||
if [ ! -e /tmp/startup_completed ]; then
|
|
||||||
|
|
||||||
pactl set-sink-volume 0 0%
|
|
||||||
telegram-desktop &
|
|
||||||
# element-desktop &
|
|
||||||
# webcord &
|
|
||||||
nextcloud &
|
|
||||||
superproductivity &
|
|
||||||
sleep 0.25
|
|
||||||
touch /tmp/startup_completed
|
|
||||||
fi
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
pgrep -x sxhkd > /dev/null || sxhkd &
|
|
||||||
$HOME/.config/polybar/launch.sh --hack
|
|
||||||
setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle,grp:caps_toggle" &
|
|
||||||
bspc monitor -d Browsing II III IV V VI Coding Zettlr Messengers Admin Gaming
|
|
||||||
|
|
||||||
bspc config border_width 2
|
|
||||||
bspc config window_gap 12
|
|
||||||
|
|
||||||
bspc config split_ratio 0.52
|
|
||||||
bspc config borderless_monocle true
|
|
||||||
bspc config gapless_monocle true
|
|
||||||
|
|
||||||
# Discord is an ass
|
|
||||||
bspc config ignore_ewmh_focus true
|
|
||||||
|
|
||||||
bspc rule -a Gimp desktop='^8' state=floating follow=on
|
|
||||||
bspc rule -a Firefox desktop='^2'
|
|
||||||
bspc rule -a mplayer2 state=floating
|
|
||||||
bspc rule -a Kupfer.py focus=on
|
|
||||||
bspc rule -a Screenkey manage=off
|
|
||||||
|
|
||||||
bspc rule -a TelegramDesktop desktop='^9' follow=off
|
|
||||||
bspc rule -a Element desktop='^9' follow=off
|
|
||||||
bspc rule -a WebCord desktop='^9' follow=off
|
|
||||||
|
|
||||||
bspc rule -a steam desktop='^11' state=floating
|
|
||||||
~/.config/bspwm/games.sh
|
|
||||||
bspc config pointer_modifier mod4
|
|
||||||
|
|
||||||
if [ ! -e /tmp/startup_completed ]; then
|
|
||||||
bspc rule ...
|
|
||||||
telegram-desktop &
|
|
||||||
element-desktop &
|
|
||||||
webcord &
|
|
||||||
nextcloud &
|
|
||||||
sleep 0.25
|
|
||||||
bspc rule ...
|
|
||||||
touch /tmp/startup_completed
|
|
||||||
fi
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Get the current layout
|
|
||||||
layout=$(setxkbmap -query | grep layout | awk '{print $2}')
|
|
||||||
|
|
||||||
# Check if the layout is Russian
|
|
||||||
if [ "$layout" = "ru" ]; then
|
|
||||||
# Turn on the Caps Lock indicator (you may need to adjust this command based on your system)
|
|
||||||
xset led named "Caps Lock"
|
|
||||||
else
|
|
||||||
# Turn off the Caps Lock indicator
|
|
||||||
xset -led named "Caps Lock"
|
|
||||||
fi
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
upd() {
|
|
||||||
checkupdates | wc -l > /tmp/checkupdates
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ ! -f /tmp/checkupdates ]]; then
|
|
||||||
upd
|
|
||||||
fi
|
|
||||||
|
|
||||||
count=$(cat /tmp/checkupdates)
|
|
||||||
status="$count updates"
|
|
||||||
if [[ $count -eq 0 ]]; then
|
|
||||||
status="Up to date"
|
|
||||||
elif [[ $count == "1" ]]; then
|
|
||||||
status="$count update"
|
|
||||||
fi
|
|
||||||
echo "$status"
|
|
||||||
|
|
||||||
upd & disown
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
steamlib=/games/SteamLibrary # path to your steamlibrary
|
|
||||||
mygames=$(ls $steamlib/steamapps/appmanifest_*.acf | sed 's/[^0-9]*//g') # this sed command removes everything but the digits
|
|
||||||
|
|
||||||
for game in $mygames; do
|
|
||||||
bspc rule -a steam_app_$game desktop=^11 state=fullscreen floating=on
|
|
||||||
done
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ -e "/tmp/grayscale" ]]; then
|
|
||||||
rm /tmp/grayscale
|
|
||||||
# nitrogen --save --set-auto "/home/greg/Pictures/Wallpapers/blue_rainy_leaves.jpg"
|
|
||||||
else
|
|
||||||
touch /tmp/grayscale
|
|
||||||
# nitrogen --save --set-auto "/home/greg/Pictures/Wallpapers/berlin-tower-grayscale1.jpg"
|
|
||||||
fi
|
|
||||||
bspc wm -r
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
betterlockscreen --lock
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ $( bspc config window_gap ) == 28 ]; then
|
|
||||||
bspc config window_gap 4
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $( bspc config window_gap ) == 4 ]; then
|
|
||||||
bspc config window_gap 28
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
while read -r line; do
|
|
||||||
case "$line" in
|
|
||||||
*'marked on')
|
|
||||||
# Get all marked windows and set their border width
|
|
||||||
for win in $(bspc query -N -n .marked); do
|
|
||||||
bspc config -n "$win" border_width 10
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
*'marked off')
|
|
||||||
# Set border width for all windows to 2
|
|
||||||
for win in $(bspc query -N -n .marked); do
|
|
||||||
bspc config -n "$win" border_width 2
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done < <(bspc subscribe report node_flag)
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for node_i in $(bspc query -N -n '.!focused.window' -d focused); do
|
|
||||||
bspc node $node_i -g hidden;
|
|
||||||
done
|
|
||||||
|
|
||||||
bspc desktop -l next
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
bspc wm -h off
|
|
||||||
kitty --single-instance btop &
|
|
||||||
sleep 0.1
|
|
||||||
kitty --single-instance cava &
|
|
||||||
sleep 0.1
|
|
||||||
|
|
||||||
bspwm_resize contract north 250
|
|
||||||
sleep 0.5
|
|
||||||
bspwm_resize expand west 100
|
|
||||||
|
|
||||||
bspc node older -f
|
|
||||||
bspc wm -h on
|
|
||||||
|
|
||||||
ncmpcpp
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ $( bspc config top_padding ) == 36 ]; then
|
|
||||||
polybar-msg cmd hide
|
|
||||||
sleep .0
|
|
||||||
bspc config top_padding 0
|
|
||||||
bspc config bottom_padding 0
|
|
||||||
bspc config left_padding 0
|
|
||||||
bspc config right_padding 0
|
|
||||||
else
|
|
||||||
bspc config top_padding 36
|
|
||||||
bspc config bottom_padding 9
|
|
||||||
bspc config left_padding 11
|
|
||||||
bspc config right_padding 11
|
|
||||||
sleep .0
|
|
||||||
polybar-msg cmd show
|
|
||||||
fi
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# Check if xset q has "timeout" equal to 0 and if so, return 1
|
|
||||||
if xset q | grep "timeout: 0" >/dev/null; then
|
|
||||||
xset s 580 10
|
|
||||||
echo "Suspend lock disabled"
|
|
||||||
else
|
|
||||||
xset s off
|
|
||||||
echo "Suspend lock enabled"
|
|
||||||
fi
|
|
||||||
|
|
||||||
22
bspwm/ptt.sh
22
bspwm/ptt.sh
@@ -1,22 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Replace 'F12' with your configured push-to-talk key
|
|
||||||
PUSH_TO_TALK_KEY="F7"
|
|
||||||
|
|
||||||
# Get the window ID of the Discord application
|
|
||||||
DISCORD_WINDOW=$(xdotool search --onlyvisible --class "discord")
|
|
||||||
|
|
||||||
# Loop to keep the script running
|
|
||||||
while true; do
|
|
||||||
# Check if the Discord window is active
|
|
||||||
if xdotool getactivewindow getwindowname | grep -q "Discord"; then
|
|
||||||
# Check if the push-to-talk key is pressed
|
|
||||||
if xinput --query-state "AT Translated Set 2 keyboard" | grep -q "key$$68$$=down"; then
|
|
||||||
# Simulate key press
|
|
||||||
xdotool keydown $PUSH_TO_TALK_KEY
|
|
||||||
sleep 0.1 # Hold the key down for a short duration
|
|
||||||
xdotool keyup $PUSH_TO_TALK_KEY
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
sleep 0.1 # Check every 100ms
|
|
||||||
done
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# Get current window size
|
|
||||||
current_size=$(bspc query -T -n focused | jq -r '.rectangle.width, .rectangle.height')
|
|
||||||
|
|
||||||
#current_width=$(echo $current_size | head -n 1)
|
|
||||||
#current_height=$(echo $current_size | tail -n 1)
|
|
||||||
current_width=$(echo "$current_size" | sed -n '1p')
|
|
||||||
current_height=$(echo "$current_size" | sed -n '2p')
|
|
||||||
|
|
||||||
# Define target size
|
|
||||||
target_width=$1
|
|
||||||
target_height=$2
|
|
||||||
|
|
||||||
echo "Current size: $current_width x $current_height"
|
|
||||||
|
|
||||||
# Calculate dx and dy
|
|
||||||
dx=$((target_width - current_width))
|
|
||||||
dy=$((target_height - current_height))
|
|
||||||
|
|
||||||
# Resize the window horizontally
|
|
||||||
if [ $dx -gt 0 ]; then
|
|
||||||
handle="right"
|
|
||||||
else
|
|
||||||
handle="left"
|
|
||||||
fi
|
|
||||||
bspc node --resize $handle ${dx#-} 0 # Use absolute value for dx
|
|
||||||
|
|
||||||
# Resize the window vertically
|
|
||||||
if [ $dy -gt 0 ]; then
|
|
||||||
handle="bottom"
|
|
||||||
else
|
|
||||||
handle="top"
|
|
||||||
fi
|
|
||||||
bspc node --resize $handle 0 ${dy#-} # Use absolute value for dy
|
|
||||||
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ $( bspc config left_padding ) == 11 ]; then
|
|
||||||
bspc config left_padding 100
|
|
||||||
bspc config right_padding 100
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $( bspc config left_padding ) == 100 ]; then
|
|
||||||
bspc config left_padding 200
|
|
||||||
bspc config right_padding 200
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $( bspc config left_padding ) == 200 ]; then
|
|
||||||
bspc config left_padding 300
|
|
||||||
bspc config right_padding 300
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $( bspc config left_padding ) == 300 ]; then
|
|
||||||
bspc config left_padding 11
|
|
||||||
bspc config right_padding 11
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# should also work with compositor=compton, untested
|
|
||||||
compositor=picom
|
|
||||||
|
|
||||||
function usage {
|
|
||||||
|
|
||||||
bin=$(basename $0)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Toggle monitors between color and grayscale mode."
|
|
||||||
echo
|
|
||||||
echo "$bin [$compositor|nvidia|ddc|auto]"
|
|
||||||
echo "$bin $compositor [$compositor args]"
|
|
||||||
echo "$bin nvidia [nv mon]"
|
|
||||||
echo "$bin ddc [ddc mon]"
|
|
||||||
echo
|
|
||||||
echo "$compositor: use a GLX shader to set grayscale"
|
|
||||||
echo "nvidia: use NVIDIA proprietary driver Digital Vibrance setting to set grayscale"
|
|
||||||
echo "ddc: use DDC/CI monitor protocol to set the monitor saturation to 0 (grayscale) if supported by monitor"
|
|
||||||
echo "auto: use $compositor if running, otherwise nvidia if available, otherwise ddc if available"
|
|
||||||
echo
|
|
||||||
echo "$compositor args: in $compositor mode, optional $compositor parameters"
|
|
||||||
echo
|
|
||||||
echo "nv mon: in nvidia mode, an optional monitor name as enumerated by xrandr."
|
|
||||||
echo " if unspecified, apply to all monitors managed by the NVIDIA driver"
|
|
||||||
echo "ddc mon: in ddc mode, optional ddcutil options to identify the monitor. See 'man ddcutil'"
|
|
||||||
echo " if unspecified, apply to the first monitor detected by ddcutil"
|
|
||||||
echo "if invoked with no argument, auto is used."
|
|
||||||
echo
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggle_nvidia {
|
|
||||||
|
|
||||||
dpy=$1
|
|
||||||
|
|
||||||
value=$(nvidia-settings -t -q DigitalVibrance)
|
|
||||||
|
|
||||||
# set a value in ]-1024..0[ range to desaturate colors instead of full grayscale
|
|
||||||
# -1024 => full grayscale
|
|
||||||
desaturate_value=-1024
|
|
||||||
|
|
||||||
if (( value == $desaturate_value )); then
|
|
||||||
value=0
|
|
||||||
toggle_mode="color"
|
|
||||||
else
|
|
||||||
value=$desaturate_value
|
|
||||||
toggle_mode="grayscale"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$dpy" ]; then
|
|
||||||
param="[DPY:$dpy]/DigitalVibrance"
|
|
||||||
else
|
|
||||||
param="DigitalVibrance"
|
|
||||||
fi
|
|
||||||
|
|
||||||
nvidia-settings -a ${param}=${value} > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggle_compositor {
|
|
||||||
|
|
||||||
|
|
||||||
if $compositor --help | grep legacy-backends > /dev/null; then
|
|
||||||
use_experimental_backends=1;
|
|
||||||
grep_string="window-shader-fg"
|
|
||||||
else
|
|
||||||
use_experimental_backends=0;
|
|
||||||
grep_string="glx-fshader-win"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if pgrep -a -x $compositor | grep $grep_string > /dev/null; then
|
|
||||||
pkill -x $compositor
|
|
||||||
sleep 1
|
|
||||||
$compositor $* -b
|
|
||||||
toggle_mode="color"
|
|
||||||
else
|
|
||||||
pkill -x $compositor
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
if (( $use_experimental_backends == 1 )); then
|
|
||||||
|
|
||||||
tmpfile=$(mktemp)
|
|
||||||
trap 'rm -f "${tmpfile}"' EXIT
|
|
||||||
|
|
||||||
cat > ${tmpfile} <<EOF
|
|
||||||
#version 330
|
|
||||||
in vec2 texcoord;
|
|
||||||
|
|
||||||
uniform sampler2D tex;
|
|
||||||
uniform float opacity;
|
|
||||||
|
|
||||||
vec4 default_post_processing(vec4 c);
|
|
||||||
|
|
||||||
vec4 window_shader() {
|
|
||||||
vec4 c = default_post_processing(texelFetch(tex, ivec2(texcoord), 0));
|
|
||||||
float y = dot(c.rgb, vec3(0.2126, 0.7152, 0.0722));
|
|
||||||
c = opacity*vec4(y, y, y, c.a);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
$compositor $* -b --backend glx --window-shader-fg ${tmpfile} 2> /dev/null
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
shader='uniform sampler2D tex; uniform float opacity; void main() { vec4 c = texture2D(tex, gl_TexCoord[0].xy); float y = dot(c.rgb, vec3(0.2126, 0.7152, 0.0722)); gl_FragColor = opacity*vec4(y, y, y, c.a); }'
|
|
||||||
$compositor $* -b --backend glx --glx-fshader-win "${shader}" 2> /dev/null
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
toggle_mode="grayscale"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggle_ddc {
|
|
||||||
|
|
||||||
out=($(ddcutil $* getvcp 8a -t))
|
|
||||||
|
|
||||||
if (( $? != 0 )); then
|
|
||||||
echo "ddc: this monitor does not support saturation control"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# out array:
|
|
||||||
#
|
|
||||||
# VCP 8A C 100 200
|
|
||||||
# | |
|
|
||||||
# cur max
|
|
||||||
|
|
||||||
if (( ${#out[@]} != 5 )); then
|
|
||||||
echo "ddc: unexpected output getting current saturation state"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cur_saturation=${out[3]}
|
|
||||||
max_saturation=${out[4]}
|
|
||||||
|
|
||||||
# set a value in ]0..max/2[ range to desaturate colors instead of full grayscale
|
|
||||||
# 0 => full grayscale
|
|
||||||
desaturate_value=0
|
|
||||||
|
|
||||||
if (( cur_saturation == desaturate_value )); then
|
|
||||||
new_saturation=$(( max_saturation / 2 )) # nominal saturation
|
|
||||||
toggle_mode="color"
|
|
||||||
else
|
|
||||||
new_saturation=$desaturate_value
|
|
||||||
toggle_mode="grayscale"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ddcutil $* setvcp 8a $new_saturation
|
|
||||||
}
|
|
||||||
|
|
||||||
mode=$1
|
|
||||||
|
|
||||||
case $mode in
|
|
||||||
|
|
||||||
--help|-h)
|
|
||||||
usage
|
|
||||||
;;
|
|
||||||
|
|
||||||
$compositor)
|
|
||||||
if ! pgrep -x $compositor > /dev/null; then
|
|
||||||
echo "$compositor is not running"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
nvidia)
|
|
||||||
if ! which nvidia-settings &> /dev/null; then
|
|
||||||
echo "nvidia-settings is not installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
ddc)
|
|
||||||
if ! which ddcutil &> /dev/null; then
|
|
||||||
echo "ddcutil is not installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
[ -z "$mode" ] && mode=auto
|
|
||||||
|
|
||||||
if [ "$mode" = "auto" ]; then
|
|
||||||
|
|
||||||
if pgrep -x $compositor > /dev/null; then
|
|
||||||
mode=$compositor
|
|
||||||
elif which nvidia-settings &> /dev/null; then
|
|
||||||
mode=nvidia
|
|
||||||
elif which ddcutil &> /dev/null; then
|
|
||||||
mode=ddc
|
|
||||||
else
|
|
||||||
echo "neither $compositor is running, nor nvidia-settings installed, nor ddcutil installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
usage
|
|
||||||
fi
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
# pass eventual remaining arguments to toggle_* function
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$mode" = "nvidia" ]; then
|
|
||||||
toggle_nvidia $*
|
|
||||||
elif [ "$mode" = "$compositor" ]; then
|
|
||||||
toggle_compositor $*
|
|
||||||
else
|
|
||||||
toggle_ddc $*
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $? == 0 )); then
|
|
||||||
echo "$mode: set to $toggle_mode"
|
|
||||||
else
|
|
||||||
echo "$mode: toggle failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
pid=$(pgrep -x picom)
|
|
||||||
if [ -z "$pid" ]; then
|
|
||||||
picom -b
|
|
||||||
else
|
|
||||||
kill $pid
|
|
||||||
fi
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
i#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$(xinput list-props 13 | grep "Device Enabled" | awk '{print $NF}')" -eq 0 ]; then
|
|
||||||
xinput enable 13
|
|
||||||
else
|
|
||||||
xinput disable 13
|
|
||||||
fi
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"text": "~/.config/bspwm/checkupdates.sh",
|
"text": "~/.config/fastfetch/scripts/updates.sh",
|
||||||
"keyIcon": "",
|
"keyIcon": "",
|
||||||
"key": ""
|
"key": ""
|
||||||
},
|
},
|
||||||
|
|||||||
2
fastfetch/scripts/fetch_update_count.sh
Executable file
2
fastfetch/scripts/fetch_update_count.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
exec checkupdates | wc -l > /tmp/checkupdates & disown
|
||||||
24
fastfetch/scripts/updates.sh
Executable file
24
fastfetch/scripts/updates.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Always read from cache and return immediately
|
||||||
|
count=$(cat /tmp/checkupdates 2>/dev/null)
|
||||||
|
# nohup checkupdates > /tmp/checkupdates & disown
|
||||||
|
# $(checkupdates | wc -l > /tmp/checkupdates) & disown
|
||||||
|
|
||||||
|
if [[ $? -ne 0 ]] || [[ -z "$count" ]]; then
|
||||||
|
status="Unknown"
|
||||||
|
else
|
||||||
|
if [[ $count == "Unknown" ]]; then
|
||||||
|
status="Unknown"
|
||||||
|
elif [[ $count -eq 0 ]]; then
|
||||||
|
status="Up to date"
|
||||||
|
elif [[ $count -eq 1 ]]; then
|
||||||
|
status="$count update"
|
||||||
|
else
|
||||||
|
status="$count updates"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$status"
|
||||||
|
|
||||||
|
exec "$HOME/.config/fastfetch/scripts/fetch_update_count.sh" & disown
|
||||||
@@ -18,6 +18,8 @@ $fastTerminal = kitty --single-instance
|
|||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$menu = $HOME/.config/rofi/launchers/type-1/launcher.sh & swaync-client -cp
|
$menu = $HOME/.config/rofi/launchers/type-1/launcher.sh & swaync-client -cp
|
||||||
$recorder = $HOME/.config/rofi/scripts/dmenu_recorder.sh
|
$recorder = $HOME/.config/rofi/scripts/dmenu_recorder.sh
|
||||||
|
$powermenu = $HOME/.config/rofi/scripts/dmenu_powermenu.sh
|
||||||
|
$powermodemenu = $HOME/.config/rofi/scripts/dmenu_powermodemenu.sh
|
||||||
$browser = env GTK_THEME=Adwaita:light zen-browser
|
$browser = env GTK_THEME=Adwaita:light zen-browser
|
||||||
$privateBrowser = env GTK_THEME=Adwaita:light zen-browser --private-window
|
$privateBrowser = env GTK_THEME=Adwaita:light zen-browser --private-window
|
||||||
$notificationCenter = pkill rofi & swaync-client -t -sw || notify-send --hint int:transient:1 "Error SwayNC is down"
|
$notificationCenter = pkill rofi & swaync-client -t -sw || notify-send --hint int:transient:1 "Error SwayNC is down"
|
||||||
@@ -37,17 +39,17 @@ exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
|||||||
exec-once = swww-daemon
|
exec-once = swww-daemon
|
||||||
exec-once = ~/.config/hypr/scripts/autofreeze_swww.sh
|
exec-once = ~/.config/hypr/scripts/autofreeze_swww.sh
|
||||||
exec-once = waybar & hypridle & hyprsunset &
|
exec-once = waybar & hypridle & hyprsunset &
|
||||||
|
exec-once = eww daemon
|
||||||
exec-once = mullvad-vpn
|
exec-once = mullvad-vpn
|
||||||
exec-once = swaync
|
exec-once = swaync
|
||||||
exec-once = ~/.config/hypr/scripts/random_wallpaper.sh
|
exec-once = ~/.config/hypr/scripts/random_wallpaper.sh
|
||||||
exec-once = ~/.config/hypr/scripts/autofreezer.sh
|
exec-once = ~/.config/hypr/scripts/autofreezer.sh
|
||||||
exec-once = ~/.config/bspwm/checkupdates.sh
|
exec-once = ~/.config/fastfetch/scripts/fetch_update_count.sh
|
||||||
exec-once = copyq --start-server
|
exec-once = copyq --start-server
|
||||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||||
exec-once = thunar --daemon
|
exec-once = thunar --daemon
|
||||||
exec-once = touch /tmp/toggle_ssocks
|
exec-once = touch /tmp/toggle_ssocks
|
||||||
exec-once = ~/.config/bspwm/proxy.sh &
|
exec-once = ~/.config/hypr/scripts/toggle_proxy.sh
|
||||||
exec-once = ~/.config/bspwm/checkupdates.sh
|
|
||||||
exec-once = nextcloud --background &
|
exec-once = nextcloud --background &
|
||||||
exec-once = [workspace 8 silent] Telegram
|
exec-once = [workspace 8 silent] Telegram
|
||||||
# exec-once = [workspace 7 silent] superproductivity
|
# exec-once = [workspace 7 silent] superproductivity
|
||||||
@@ -521,7 +523,7 @@ bind = $mainMod, B, exec, ~/.config/hypr/scripts/reserved_space.sh
|
|||||||
bind = $mainMod CTRL, C, exec, ~/.config/hypr/scripts/cpufreq.sh
|
bind = $mainMod CTRL, C, exec, ~/.config/hypr/scripts/cpufreq.sh
|
||||||
|
|
||||||
# Cycle power mode
|
# Cycle power mode
|
||||||
bind = $mainMod CTRL, V, exec, ~/.config/hypr/scripts/power_profile.sh
|
bind = $mainMod CTRL, V, exec, pkill rofi || $powermodemenu &
|
||||||
|
|
||||||
# Pin window
|
# Pin window
|
||||||
bind = $mainMod CTRL, Y, pin, active
|
bind = $mainMod CTRL, Y, pin, active
|
||||||
@@ -569,8 +571,7 @@ bindr = $mainMod CTRL, bracketleft, pass, class:^(com.obsproject.Studio)$
|
|||||||
bindr = $mainMod CTRL, bracketright, pass, class:^(com.obsproject.Studio)$
|
bindr = $mainMod CTRL, bracketright, pass, class:^(com.obsproject.Studio)$
|
||||||
bindr = $mainMod CTRL, apostrophe, pass, class:^(com.obsproject.Studio)$
|
bindr = $mainMod CTRL, apostrophe, pass, class:^(com.obsproject.Studio)$
|
||||||
|
|
||||||
bind = , XF86PowerOff, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 35% & ristretto -f ~/Templates/Images/theorist.jpg & play ~/Templates/Sounds/scream.mp3
|
bind = , XF86PowerOff, exec, $powermenu
|
||||||
|
|
||||||
bind = $mainMod SHIFT, p, exec, .config/hypr/scripts/random_wallpaper.sh random
|
bind = $mainMod SHIFT, p, exec, .config/hypr/scripts/random_wallpaper.sh random
|
||||||
|
|
||||||
# Disable binds temporarily
|
# Disable binds temporarily
|
||||||
|
|||||||
409
picom/picom.conf
409
picom/picom.conf
@@ -1,409 +0,0 @@
|
|||||||
#################################
|
|
||||||
# Shadows #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Enabled client-side shadows on windows. Note desktop windows
|
|
||||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
|
||||||
# unless explicitly requested using the wintypes option.
|
|
||||||
#
|
|
||||||
# Can be set per-window using rules.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
shadow = false;
|
|
||||||
|
|
||||||
# The blur radius for shadows, in pixels.
|
|
||||||
#
|
|
||||||
# Default: 12
|
|
||||||
shadow-radius = 7;
|
|
||||||
|
|
||||||
# The opacity of shadows.
|
|
||||||
#
|
|
||||||
# Range: 0.0 - 1.0
|
|
||||||
# Default: 0.75
|
|
||||||
# shadow-opacity = .75
|
|
||||||
|
|
||||||
# The left offset for shadows, in pixels.
|
|
||||||
#
|
|
||||||
# Default: -15
|
|
||||||
shadow-offset-x = -7;
|
|
||||||
|
|
||||||
# The top offset for shadows, in pixels.
|
|
||||||
#
|
|
||||||
# Default: -15
|
|
||||||
shadow-offset-y = -7;
|
|
||||||
|
|
||||||
# Hex string color value of shadow. Formatted like "#RRGGBB", e.g. "#C0FFEE".
|
|
||||||
#
|
|
||||||
# Default: #000000
|
|
||||||
# shadow-color = "#000000"
|
|
||||||
|
|
||||||
# Crop shadow of a window fully on a particular monitor to that monitor. This is
|
|
||||||
# currently implemented using the X RandR extension.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# crop-shadow-to-monitor = false
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Fading #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Fade windows in/out when opening/closing and when opacity changes,
|
|
||||||
# unless no-fading-openclose is used. Can be set per-window using rules.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
fading = true;
|
|
||||||
|
|
||||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
|
||||||
fade-in-step = 0.07;
|
|
||||||
|
|
||||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
|
||||||
fade-out-step = 0.07;
|
|
||||||
|
|
||||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
|
||||||
# fade-delta = 10
|
|
||||||
|
|
||||||
# Do not fade on window open/close.
|
|
||||||
# no-fading-openclose = false
|
|
||||||
|
|
||||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
|
||||||
# no-fading-destroyed-argb = false
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Transparency / Opacity #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Opacity of window titlebars and borders.
|
|
||||||
#
|
|
||||||
# Range: 0.1 - 1.0
|
|
||||||
# Default: 1.0 (disabled)
|
|
||||||
#frame-opacity = 0.5;
|
|
||||||
|
|
||||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# inactive-dim-fixed = true
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Corners #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
|
||||||
# round the corners of windows. Does not interact well with
|
|
||||||
# `transparent-clipping`.
|
|
||||||
#
|
|
||||||
# Default: 0 (disabled)
|
|
||||||
corner-radius = 15
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Blur #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
blur:
|
|
||||||
{
|
|
||||||
method = "dual_kawase";
|
|
||||||
strength = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# General Settings #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Enable remote control via D-Bus. See the man page for more details.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# dbus = true
|
|
||||||
|
|
||||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
|
||||||
# daemon = false
|
|
||||||
|
|
||||||
# Specify the backend to use: `xrender`, `glx`, or `egl`.
|
|
||||||
#
|
|
||||||
# Default: "xrender"
|
|
||||||
backend = "glx"
|
|
||||||
|
|
||||||
#deprecated
|
|
||||||
#glx-no-stencil = true;
|
|
||||||
#deprecated
|
|
||||||
#glx-no-rebind-pixmap = true;
|
|
||||||
glx-copy-from-front = true;
|
|
||||||
unredir-if-possible = false; # true for game performance, breaks overlays
|
|
||||||
|
|
||||||
|
|
||||||
# Use higher precision during rendering, and apply dither when presenting the
|
|
||||||
# rendered screen. Reduces banding artifacts, but may cause performance
|
|
||||||
# degradation. Only works with OpenGL.
|
|
||||||
dithered-present = false;
|
|
||||||
|
|
||||||
# Enable/disable VSync.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
vsync = true;
|
|
||||||
|
|
||||||
# Try to detect windows with rounded corners and don't consider them
|
|
||||||
# shaped windows. The accuracy is not very high, unfortunately.
|
|
||||||
#
|
|
||||||
# Has nothing to do with `corner-radius`.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
detect-rounded-corners = false;
|
|
||||||
|
|
||||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
|
||||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
detect-client-opacity = true;
|
|
||||||
|
|
||||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
|
||||||
# rather than listening to 'FocusIn'/'FocusOut' event. May be more accurate,
|
|
||||||
# provided that the WM supports it.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# use-ewmh-active-win = false
|
|
||||||
|
|
||||||
# Unredirect all windows if a full-screen opaque window is detected,
|
|
||||||
# to maximize performance for full-screen windows. Known to cause flickering
|
|
||||||
# when redirecting/unredirecting windows.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# unredir-if-possible = false
|
|
||||||
|
|
||||||
# Delay before unredirecting the window, in milliseconds.
|
|
||||||
#
|
|
||||||
# Default: 0.
|
|
||||||
# unredir-if-possible-delay = 0
|
|
||||||
|
|
||||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
|
||||||
# in the same group focused at the same time.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
detect-transient = true;
|
|
||||||
|
|
||||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
|
||||||
# group focused at the same time. This usually means windows from the same application
|
|
||||||
# will be considered focused or unfocused at the same time.
|
|
||||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# detect-client-leader = false
|
|
||||||
|
|
||||||
# Use of damage information for rendering. This cause the only the part of the
|
|
||||||
# screen that has actually changed to be redrawn, instead of the whole screen
|
|
||||||
# every time. Should improve performance.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
use-damage = true;
|
|
||||||
|
|
||||||
# Use X Sync fence to wait for the completion of rendering of other windows,
|
|
||||||
# before using their content to render the current screen.
|
|
||||||
#
|
|
||||||
# Required for explicit sync drivers, such as nvidia.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# xrender-sync-fence = false
|
|
||||||
|
|
||||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
|
||||||
# contents. Read the man page for a detailed explanation of the interface.
|
|
||||||
#
|
|
||||||
# Can be set per-window using rules.
|
|
||||||
#
|
|
||||||
# window-shader-fg = "default"
|
|
||||||
|
|
||||||
# Force all windows to be painted with blending. Useful if you
|
|
||||||
# have a `window-shader-fg` that could turn opaque pixels transparent.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# force-win-blend = false
|
|
||||||
|
|
||||||
# Do not use EWMH to detect fullscreen windows.
|
|
||||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# no-ewmh-fullscreen = false
|
|
||||||
|
|
||||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
|
||||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
|
||||||
# so this could comes with a performance hit.
|
|
||||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled.
|
|
||||||
#
|
|
||||||
# Default: 1.0 (disabled)
|
|
||||||
# max-brightness = 1.0
|
|
||||||
|
|
||||||
# Make transparent windows clip other windows like non-transparent windows do,
|
|
||||||
# instead of blending on top of them. e.g. placing a transparent window on top
|
|
||||||
# of another window will cut a "hole" in that window, and show the desktop background
|
|
||||||
# underneath.
|
|
||||||
#
|
|
||||||
# Default: false
|
|
||||||
# transparent-clipping = false
|
|
||||||
|
|
||||||
# Set the log level. Possible values are:
|
|
||||||
# "trace", "debug", "info", "warn", "error"
|
|
||||||
# in increasing level of importance. Case insensitive.
|
|
||||||
# If using the "TRACE" log level, it's better to log into a file
|
|
||||||
# using *--log-file*, since it can generate a huge stream of logs.
|
|
||||||
#
|
|
||||||
# Default: "warn"
|
|
||||||
# log-level = "warn";
|
|
||||||
|
|
||||||
# Set the log file.
|
|
||||||
# If *--log-file* is never specified, logs will be written to stderr.
|
|
||||||
# Otherwise, logs will to written to the given file, though some of the early
|
|
||||||
# logs might still be written to the stderr.
|
|
||||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
|
||||||
#
|
|
||||||
# log-file = "/path/to/your/log/file"
|
|
||||||
|
|
||||||
# Write process ID to a file.
|
|
||||||
# write-pid-path = "/path/to/your/log/file"
|
|
||||||
|
|
||||||
# Rule-based per-window options.
|
|
||||||
#
|
|
||||||
# See WINDOW RULES section in the man page for how these work.
|
|
||||||
rules: ({
|
|
||||||
match = "!focused";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
match = "window_type = 'tooltip'";
|
|
||||||
fade = false;
|
|
||||||
shadow = true;
|
|
||||||
opacity = 0.75;
|
|
||||||
full-shadow = false;
|
|
||||||
}, {
|
|
||||||
match = "window_type = 'docko' || "
|
|
||||||
"window_type = 'desktop' || "
|
|
||||||
"_GTK_FRAME_EXTENTS@";
|
|
||||||
blur-background = false;
|
|
||||||
}, {
|
|
||||||
match = "window_type != 'dock'";
|
|
||||||
# shader = "my_shader.frag";
|
|
||||||
}, {
|
|
||||||
match = "window_type = 'dock' || "
|
|
||||||
"window_type = 'desktop' || "
|
|
||||||
"name = 'rofi - ' || "
|
|
||||||
"name = 'rofi - ' || "
|
|
||||||
"fullscreen";
|
|
||||||
corner-radius = 0;
|
|
||||||
}, {
|
|
||||||
match = "name = 'Notification' || "
|
|
||||||
"class_g = 'Conky' || "
|
|
||||||
"class_g ?= 'Notify-osd' || "
|
|
||||||
"class_g = 'Cairo-clock' || "
|
|
||||||
"_GTK_FRAME_EXTENTS@";
|
|
||||||
shadow = false;
|
|
||||||
}, {
|
|
||||||
match = "window_type = 'dock'";
|
|
||||||
blur-background = true;
|
|
||||||
shadow = false;
|
|
||||||
}, {
|
|
||||||
match = "window_type = 'dock'";
|
|
||||||
blur-background = true;
|
|
||||||
}, {
|
|
||||||
match = "name = 'Eww - activate-linux'";
|
|
||||||
blur-background = false;
|
|
||||||
}, {
|
|
||||||
match = "focused";
|
|
||||||
shadow = true;
|
|
||||||
}, {
|
|
||||||
match = "window_type = 'ATOM'";
|
|
||||||
frame = false;
|
|
||||||
blur = false;
|
|
||||||
}, {
|
|
||||||
match = "!focusedd";
|
|
||||||
}, {
|
|
||||||
match = "class_i = 'thunar'";
|
|
||||||
|
|
||||||
}, {
|
|
||||||
match = "name = 'rofi - アプリ'";
|
|
||||||
animations = (
|
|
||||||
#{
|
|
||||||
# triggers = [ "open" ],
|
|
||||||
# offset-x = {
|
|
||||||
# curve = "cubic-bezier(0.17, 1.15, 0.68, 1.1)";
|
|
||||||
# end = 0;
|
|
||||||
# duration = "duration";
|
|
||||||
# start = "- offsetx";
|
|
||||||
# };
|
|
||||||
# offset-y = {
|
|
||||||
# curve = "cubic-bezier(0.17, 1.15, 0.68, 1.1)";
|
|
||||||
# end = 0;
|
|
||||||
# duration = "duration";
|
|
||||||
# start = "- offsety";
|
|
||||||
# };
|
|
||||||
# shadow-offset-x = "offset-x";
|
|
||||||
# shadow-offset-y = "offset-y * 1.1";
|
|
||||||
# # Same as `transition-offset`
|
|
||||||
# offsetx = "window-x - 456";
|
|
||||||
# offsety = "window-y - 0";
|
|
||||||
# # Duration of animation in seconds
|
|
||||||
# duration = 0.35;
|
|
||||||
#},
|
|
||||||
{
|
|
||||||
triggers = [ "open" ],
|
|
||||||
preset = "slide-in";
|
|
||||||
direction = "left";
|
|
||||||
duration = 0.35;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
triggers = [ "close" ],
|
|
||||||
preset = "slide-out";
|
|
||||||
direction = "right";
|
|
||||||
duration = 0.35;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# `@include` directive can be used to include additional configuration files.
|
|
||||||
# Relative paths are search either in the parent of this configuration file
|
|
||||||
# (when the configuration is loaded through a symlink, the symlink will be
|
|
||||||
# resolved first). Or in `$XDG_CONFIG_HOME/picom/include`.
|
|
||||||
#
|
|
||||||
# @include "extra.conf"
|
|
||||||
|
|
||||||
#
|
|
||||||
# animations
|
|
||||||
#
|
|
||||||
animations = (
|
|
||||||
{
|
|
||||||
triggers = [ "open" ];
|
|
||||||
preset = "appear";
|
|
||||||
duration = 0.225;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
triggers = [ "close" ];
|
|
||||||
preset = "disappear";
|
|
||||||
duration = 0.225;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
triggers = [ "show" ];
|
|
||||||
preset = "appear";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
triggers = [ "hide" ];
|
|
||||||
preset = "disappear";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
triggers = [ "geometry" ];
|
|
||||||
offset-x = {
|
|
||||||
curve = "cubic-bezier(0.17, 1.15, 0.68, 1.1)";
|
|
||||||
end = 0;
|
|
||||||
duration = "duration";
|
|
||||||
start = "- offsetx";
|
|
||||||
};
|
|
||||||
offset-y = {
|
|
||||||
curve = "cubic-bezier(0.17, 1.15, 0.68, 1.1)";
|
|
||||||
end = 0;
|
|
||||||
duration = "duration";
|
|
||||||
start = "- offsety";
|
|
||||||
};
|
|
||||||
shadow-offset-x = "offset-x";
|
|
||||||
shadow-offset-y = "offset-y * 1.1";
|
|
||||||
# Same as `transition-offset`
|
|
||||||
offsetx = "window-x - window-x-before";
|
|
||||||
offsety = "window-y - window-y-before";
|
|
||||||
# Duration of animation in seconds
|
|
||||||
duration = 0.35;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#version 330
|
|
||||||
|
|
||||||
in vec2 texcoord;
|
|
||||||
uniform sampler2D tex;
|
|
||||||
uniform float opacity;
|
|
||||||
|
|
||||||
vec4 default_post_processing(vec4 c);
|
|
||||||
|
|
||||||
vec4 window_shader() {
|
|
||||||
vec2 texsize = textureSize(tex, 0);
|
|
||||||
vec4 color = texture2D(tex, texcoord / texsize, 0);
|
|
||||||
|
|
||||||
color = vec4(vec3(0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b) * opacity, color.a * opacity);
|
|
||||||
// color = vec4(0.0, color.g * opacity, 0.0, color.a * opacity);
|
|
||||||
// color = vec4(color.r * opacity, 0.0, 0.0, color.a * opacity);
|
|
||||||
|
|
||||||
return default_post_processing(color);
|
|
||||||
}
|
|
||||||
@@ -1,350 +0,0 @@
|
|||||||
#################################
|
|
||||||
#
|
|
||||||
# Backend
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Backend to use: "xrender" or "glx".
|
|
||||||
# GLX backend is typically much faster but depends on a sane driver.
|
|
||||||
|
|
||||||
# backend = "xrender";
|
|
||||||
# backend = "xr_glx_hybrid";
|
|
||||||
backend = "glx";
|
|
||||||
vsync = true;
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# GLX backend
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
glx-no-stencil = true;
|
|
||||||
|
|
||||||
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
|
|
||||||
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
|
|
||||||
# but a 20% increase when only 1/4 is.
|
|
||||||
# My tests on nouveau show terrible slowdown.
|
|
||||||
# Useful with --glx-swap-method, as well.
|
|
||||||
glx-copy-from-front = false;
|
|
||||||
|
|
||||||
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
|
|
||||||
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
|
|
||||||
# May break VSync and is not available on some drivers.
|
|
||||||
# Overrides --glx-copy-from-front.
|
|
||||||
# glx-use-copysubbuffermesa = true;
|
|
||||||
|
|
||||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
|
||||||
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
|
|
||||||
# Recommended if it works.
|
|
||||||
|
|
||||||
glx-no-rebind-pixmap = true;
|
|
||||||
|
|
||||||
|
|
||||||
use-damage = false;
|
|
||||||
|
|
||||||
# Disabled to avoid artifacts painting under blur transparent windows.
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Shadows
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Enabled client-side shadows on windows.
|
|
||||||
shadow = true;
|
|
||||||
|
|
||||||
|
|
||||||
# The blur radius for shadows. (default 12)
|
|
||||||
shadow-radius = 15;
|
|
||||||
# The left offset for shadows. (default -15)
|
|
||||||
shadow-offset-x = -15;
|
|
||||||
# The top offset for shadows. (default -15)
|
|
||||||
shadow-offset-y = -15;
|
|
||||||
# The translucency for shadows. (default .75)
|
|
||||||
shadow-opacity = 1;
|
|
||||||
|
|
||||||
# Set if you want different colour shadows
|
|
||||||
shadow-red = 0.1;
|
|
||||||
shadow-green = 0.1;
|
|
||||||
shadow-blue = 0.1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# shadow-exclude-reg = "x10+0+0";
|
|
||||||
crop-shadow-to-monitor = false;
|
|
||||||
|
|
||||||
# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
|
|
||||||
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
|
|
||||||
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes
|
|
||||||
# shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
|
|
||||||
|
|
||||||
# shadow-exclude = "n:e:Notification";
|
|
||||||
|
|
||||||
shadow-exclude = [
|
|
||||||
"_GTK_FRAME_EXTENTS@:c",
|
|
||||||
# Removed to avoid no-shadow in modal dialog windows.
|
|
||||||
# "! name~=''",
|
|
||||||
"name = 'Notification'",
|
|
||||||
"name = 'Plank'",
|
|
||||||
"name = 'Docky'",
|
|
||||||
"name = 'Kupfer'",
|
|
||||||
"name = 'Pensela'",
|
|
||||||
"name = 'Drawing Board'",
|
|
||||||
#
|
|
||||||
# Workaround for VirtualBox empty window at launching
|
|
||||||
"name = 'VirtualBox'",
|
|
||||||
"name = 'VirtualBoxVM'",
|
|
||||||
#
|
|
||||||
# Avoid shadow in Negatron popups
|
|
||||||
"name = 'Negatron v0.100.1' && argb",
|
|
||||||
#
|
|
||||||
# Avoid shadow for the XFCE alt tab TaskSwitcher
|
|
||||||
"name ?= 'xfwm4' && argb",
|
|
||||||
#
|
|
||||||
# "name *= 'compton'",
|
|
||||||
"class_g = 'Conky'",
|
|
||||||
"class_g = 'Kupfer'",
|
|
||||||
"class_g = 'Synapse'",
|
|
||||||
"class_g ?= 'Notify-osd'",
|
|
||||||
"class_g ?= 'Cairo-dock'",
|
|
||||||
"class_g = 'Cairo-clock'",
|
|
||||||
"class_g ?= 'Xfce4-notifyd'",
|
|
||||||
#
|
|
||||||
# Exclude special Firefox/Firefox-esr/Thunderbird dropdowns.
|
|
||||||
# Ref: https://github.com/chjj/compton/issues/247
|
|
||||||
"class_g = 'Thunderbird' && argb",
|
|
||||||
"class_g = 'Telegram' && argb",
|
|
||||||
"name ?= 'Thunderbird' && (window_type = 'utility' || window_type = 'popup_menu')",
|
|
||||||
#
|
|
||||||
# Exclude some special popup menu shadows, but Modal Windows.
|
|
||||||
# These are more finetuning thant previous ones:
|
|
||||||
"class_g ?= 'Thunderbird' && class_i = 'Popup' && argb",
|
|
||||||
"class_g = 'firefox' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'Firefox' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'firefox-esr' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'Firefox-esr' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'Tor Browser' && (window_type = 'utility') && argb",
|
|
||||||
"class_g = 'Navegador Tor' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'Thunderbird' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g = 'Mozilla Thunderbird' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
|
|
||||||
"class_g ?= 'Xfce4-power-manager'",
|
|
||||||
#
|
|
||||||
# Exclude Vokoscreen and VokoscreenNG area selector
|
|
||||||
#
|
|
||||||
"class_g ?= 'vokoscreen' && argb",
|
|
||||||
"name = 'Área'",
|
|
||||||
"name *= 'Cuenta regresiva'",
|
|
||||||
"_NET_WM_WINDOW_TYPE:a *= '_KDE_NET_WM_WINDOW_TYPE_OVERRIDE'"
|
|
||||||
# "override_redirect = true"
|
|
||||||
];
|
|
||||||
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
|
|
||||||
# Deprecated, use --shadow-exclude 'bounding_shaped' or --shadow-exclude 'bounding_shaped && !rounded_corners' instead.
|
|
||||||
shadow-ignore-shaped = false;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Opacity
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
inactive-opacity = 1;
|
|
||||||
active-opacity = 1;
|
|
||||||
frame-opacity = 1;
|
|
||||||
inactive-opacity-override = true;
|
|
||||||
|
|
||||||
|
|
||||||
# Desaturate and darken the inactive windows
|
|
||||||
# Dim inactive windows. (0.0 - 1.0)
|
|
||||||
|
|
||||||
inactive-dim = 0.5;
|
|
||||||
inactive-dim-fixed = true;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Do not let dimness adjust based on window opacity.
|
|
||||||
inactive-dim-fixed = false;
|
|
||||||
|
|
||||||
|
|
||||||
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
|
|
||||||
|
|
||||||
#blur-background = true;
|
|
||||||
|
|
||||||
|
|
||||||
# Blur background of opaque windows with transparent frames as well.
|
|
||||||
#blur-background-frame = true;
|
|
||||||
# Do not let blur radius adjust based on window opacity.
|
|
||||||
#blur-background-fixed = true;
|
|
||||||
|
|
||||||
#blur-kern = "3x3box";
|
|
||||||
blur-kern = "5x5box";
|
|
||||||
#blur-kern = "5x5gaussian";
|
|
||||||
#blur-kern = "9x9gaussian";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
blur-background-exclude = [
|
|
||||||
"class_g = 'Peek'",
|
|
||||||
"class_g = 'Pensela'",
|
|
||||||
"name = 'Drawing Board'",
|
|
||||||
"window_type = 'dock'",
|
|
||||||
"window_type = 'dropdown_menu'",
|
|
||||||
"window_type = 'combo'",
|
|
||||||
"window_type = 'popup_menu'",
|
|
||||||
"window_type = 'utility'",
|
|
||||||
"window_type = 'desktop'",
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
];
|
|
||||||
opacity-exclude = [
|
|
||||||
"name = 'Stratagus'"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Fading
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
#fading = true;
|
|
||||||
# fade-delta = 30;
|
|
||||||
#fade-in-step = 0.03;
|
|
||||||
#fade-out-step = 0.03;
|
|
||||||
fade-in-step = 0.07;
|
|
||||||
fade-out-step = 0.07;
|
|
||||||
# no-fading-openclose = true;
|
|
||||||
# no-fading-destroyed-argb = true;
|
|
||||||
fade-exclude = [ ];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# OTHER CONFIG
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
log-level = "warn";
|
|
||||||
# log-file = "/path/to/your/log/file";
|
|
||||||
|
|
||||||
|
|
||||||
mark-wmwin-focused = true;
|
|
||||||
mark-ovredir-focused = true;
|
|
||||||
# use-ewmh-active-win = true;
|
|
||||||
detect-rounded-corners = true;
|
|
||||||
detect-client-opacity = true;
|
|
||||||
# refresh-rate = 0;
|
|
||||||
|
|
||||||
corner-radius = 8;
|
|
||||||
rounded-corners-exclude = [ "window_type = 'dock'" ];
|
|
||||||
|
|
||||||
vsync = true;
|
|
||||||
|
|
||||||
|
|
||||||
# sw-opti = true;
|
|
||||||
# unredir-if-possible = true;
|
|
||||||
# unredir-if-possible-delay = 5000;
|
|
||||||
# unredir-if-possible-exclude = [ ];
|
|
||||||
|
|
||||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
|
||||||
|
|
||||||
detect-transient = true;
|
|
||||||
detect-client-leader = true;
|
|
||||||
invert-color-include = [ ];
|
|
||||||
|
|
||||||
resize-damage = 2;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Window type settings
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
wintypes:
|
|
||||||
{
|
|
||||||
dock = { shadow = true; }
|
|
||||||
dnd = { shadow = false; }
|
|
||||||
popup_menu = { opacity = 1; }
|
|
||||||
dropdown_menu = { opacity = 1; }
|
|
||||||
|
|
||||||
# This avoid problems with transparent windows while use-damage = true;.
|
|
||||||
#normal = { full-shadow = true;};
|
|
||||||
|
|
||||||
# tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Mine
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
unredir-if-possible = true;
|
|
||||||
use-damage = true;
|
|
||||||
# no-ewmh-fullscreen = true;
|
|
||||||
xinerama-shadow-crop = true;
|
|
||||||
rules: (
|
|
||||||
{ match = "fullscreen"; shadow = false; }
|
|
||||||
)
|
|
||||||
|
|
||||||
################################
|
|
||||||
#
|
|
||||||
# Animations
|
|
||||||
#
|
|
||||||
################################
|
|
||||||
|
|
||||||
#animations = ({
|
|
||||||
# triggers = [ "close", "hide" ];
|
|
||||||
# preset = "slide-out";
|
|
||||||
# direction = "down";
|
|
||||||
#})
|
|
||||||
|
|
||||||
#################################
|
|
||||||
#
|
|
||||||
# Deprecated
|
|
||||||
#
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
# Avoid drawing shadows on dock/panel windows.
|
|
||||||
# This option is deprecated, you should use the wintypes option in your config file instead.
|
|
||||||
# no-dock-shadow = false;
|
|
||||||
|
|
||||||
|
|
||||||
# Don't draw shadows on DND windows.
|
|
||||||
# This option is deprecated, you should use the wintypes option in your config file instead.
|
|
||||||
# no-dnd-shadow = false;
|
|
||||||
|
|
||||||
# Option `menu-opacity` is deprecated, and will be removed.Please use the wintype option `opacity` of `popup_menu` and `dropdown_menu` instead.
|
|
||||||
# menu-opacity = 1;
|
|
||||||
|
|
||||||
# GLX backend: GLX buffer swap method we assume.
|
|
||||||
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
|
|
||||||
# undefined is the slowest and the safest, and the default value.
|
|
||||||
# copy is fastest, but may fail on some drivers,
|
|
||||||
# 2-6 are gradually slower but safer (6 is still faster than 0).
|
|
||||||
# Usually, double buffer means 2, triple buffer means 3.
|
|
||||||
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
|
|
||||||
# Useless with --glx-use-copysubbuffermesa.
|
|
||||||
# Partially breaks --resize-damage.
|
|
||||||
# Defaults to undefined.
|
|
||||||
# glx-swap-method has been deprecated since v6, your setting "undefined" should be replaced by `use-damage = true`
|
|
||||||
# glx-swap-method = "undefined";
|
|
||||||
|
|
||||||
|
|
||||||
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
|
|
||||||
# "clear-shadow" is removed as an option, and is always enabled now. Consider removing it from your config file
|
|
||||||
# clear-shadow = true;
|
|
||||||
|
|
||||||
# "alpha-step" has been removed, compton now tries to make use of all alpha values
|
|
||||||
# alpha-step = 0.06;
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 282 KiB |
@@ -16,5 +16,4 @@ ln -s $image /tmp/rofi-img.png
|
|||||||
rofi \
|
rofi \
|
||||||
-modes drun,run,calc \
|
-modes drun,run,calc \
|
||||||
-show drun \
|
-show drun \
|
||||||
-theme /tmp/rofi-theme.rasi \
|
-theme /tmp/rofi-theme.rasi
|
||||||
-drun-use-desktop-cache
|
|
||||||
|
|||||||
@@ -158,8 +158,7 @@ element {
|
|||||||
spacing: 15px;
|
spacing: 15px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: @background-button;
|
background-color: transparent;
|
||||||
border-color: @button-shape-top;
|
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|||||||
24
rofi/scripts/dmenu_powermenu.sh
Executable file
24
rofi/scripts/dmenu_powermenu.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mode=$(echo -e "\n⏻\n" | rofi \
|
||||||
|
-modes drun,run,calc \
|
||||||
|
-dmenu -p "Power menu" \
|
||||||
|
-theme "$HOME/.config/rofi/styles/style-powermenu.rasi" \
|
||||||
|
-markup-rows \
|
||||||
|
-drun-use-desktop-cache \
|
||||||
|
)
|
||||||
|
|
||||||
|
case "$mode" in
|
||||||
|
"")
|
||||||
|
systemctl suspend
|
||||||
|
;;
|
||||||
|
"⏻")
|
||||||
|
systemctl poweroff
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
systemctl reboot
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
24
rofi/scripts/dmenu_powermodemenu.sh
Executable file
24
rofi/scripts/dmenu_powermodemenu.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mode=$(echo -e "\n\n" | rofi \
|
||||||
|
-modes drun,run,calc \
|
||||||
|
-dmenu -p "Power menu" \
|
||||||
|
-theme "$HOME/.config/rofi/styles/style-powermodemenu.rasi" \
|
||||||
|
-markup-rows \
|
||||||
|
-drun-use-desktop-cache \
|
||||||
|
)
|
||||||
|
|
||||||
|
case "$mode" in
|
||||||
|
"")
|
||||||
|
powerprofilesctl set power-saver
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
powerprofilesctl set balanced
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
powerprofilesctl set performance
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -1,9 +1,96 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
mic_device="alsa_input.pci-0000_00_1f.3.analog-stereo"
|
||||||
|
system_device="alsa_output.pci-0000_00_1f.3.analog-stereo.monitor"
|
||||||
|
save_path="$HOME/Videos/rofi-recorder"
|
||||||
|
datetime=$(date +"%d.%m.%Y %H:%M:%S")
|
||||||
|
lockfile="/tmp/.rofi-recorder"
|
||||||
|
|
||||||
|
if [[ -z $lockfile ]]; then
|
||||||
|
notify-send --hint int:transient:1 -t 1000 "Recorder" "Lockfile is present!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
check_total_time() {
|
||||||
|
target_prefix=$1
|
||||||
|
mkdir -p $save_path
|
||||||
|
|
||||||
|
( cd $save_path &&
|
||||||
|
for f in $target_prefix*.mkv; do
|
||||||
|
ffmpeg -i "$f" 2>&1 | grep "Duration" | awk '{print $2}' | tr -d ,;
|
||||||
|
done | awk -F: '{ total += $1 * 3600 + $2 * 60 + $3 } END { print int(total/3600)":"int((total%3600)/60)":"int(total%60) }'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_videos() {
|
||||||
|
target_prefix=$1
|
||||||
|
result_prefix=$2
|
||||||
|
touch $lockfile
|
||||||
|
mkdir -p $save_path
|
||||||
|
|
||||||
|
local files=("$save_path"/$target_prefix*.mkv)
|
||||||
|
if [[ ${#files[@]} -eq 0 ]] || [[ ! -f "${files[0]}" ]]; then
|
||||||
|
notify-send "Error" "No MKV files found in $save_path"
|
||||||
|
rm $lockfile
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create output filename with timestamp
|
||||||
|
local output_file="$save_path/$result_prefix-$datetime.mkv"
|
||||||
|
local file_list="$save_path/$target_prefix_list.txt"
|
||||||
|
|
||||||
|
# Create file list in creation order (oldest first)
|
||||||
|
find "$save_path" -maxdepth 1 -name "*$target_prefix*.mkv" -not -name "$result_prefix*.mkv" -type f -printf "%T@ %p\n" | \
|
||||||
|
sort -n | \
|
||||||
|
cut -d' ' -f2- > "$file_list"
|
||||||
|
|
||||||
|
# Convert file paths to ffmpeg concat format
|
||||||
|
sed -i 's/^/file /' "$file_list"
|
||||||
|
# Escape single quotes and wrap paths in single quotes for ffmpeg
|
||||||
|
sed -i "s|file \(.*\)|file '\1'|" "$file_list"
|
||||||
|
|
||||||
|
# Show ongoing notification
|
||||||
|
notify-send -u low -i video-x-generic "Merging Videos" "Merging $(wc -l < "$file_list") video files..." &
|
||||||
|
local notify_pid=$!
|
||||||
|
|
||||||
|
# Merge videos using ffmpeg concat demuxer
|
||||||
|
if ffmpeg -f concat -safe 0 -i "$file_list" -c copy "$output_file" -y 2>/dev/null; then
|
||||||
|
# Kill the ongoing notification
|
||||||
|
kill $notify_pid 2>/dev/null
|
||||||
|
|
||||||
|
# Clean up temporary file
|
||||||
|
rm -f "$file_list"
|
||||||
|
|
||||||
|
# Remove lockfile
|
||||||
|
rm $lockfile
|
||||||
|
|
||||||
|
action=$(notify-send -A "Nice" -A "Delete clips" "Merge Complete" \
|
||||||
|
"Videos merged successfully into $(basename "$output_file")")
|
||||||
|
|
||||||
|
if [[ "$action" == "1" ]]; then
|
||||||
|
# Delete all original MKV files except the merged one
|
||||||
|
find "$save_path" -maxdepth 1 -name "$target_prefix*.mkv" -not -name "$result_prefix*.mkv" -type f -exec gio trash {} +
|
||||||
|
notify-send --hint int:transient:1 -t 1000 "Recorder" "Stopping"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
# Kill the ongoing notification
|
||||||
|
kill $notify_pid 2>/dev/null
|
||||||
|
|
||||||
|
# Clean up on failure
|
||||||
|
rm -f "$file_list"
|
||||||
|
rm -f "$output_file"
|
||||||
|
|
||||||
|
notify-send -u critical "Merge Failed" "Failed to merge video files"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Check if wf-recorder is already running
|
# Check if wf-recorder is already running
|
||||||
if pgrep -x "wf-recorder" > /dev/null; then
|
if pgrep -x "wf-recorder" > /dev/null; then
|
||||||
current_file=$(ps -o args= -C wf-recorder | head -n1 | grep -oE '[^ ]+\.mp4' | tail -n1)
|
current_file=$(ps -o args= -C wf-recorder | head -n1 | grep -oE '[^ ]+\.mp4' | tail -n1)
|
||||||
|
|
||||||
|
notify-send --hint int:transient:1 -t 1000 "Recorder" "Stopping"
|
||||||
pkill -2 wf-recorder
|
pkill -2 wf-recorder
|
||||||
sleep 1
|
sleep 1
|
||||||
# Force kill if still running
|
# Force kill if still running
|
||||||
@@ -11,11 +98,13 @@ if pgrep -x "wf-recorder" > /dev/null; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
datetime=$(date +"%d.%m.%Y %H:%M:%S")
|
clips_total_duration=$(check_total_time clip)
|
||||||
|
merges_total_duration=$(check_total_time merged)
|
||||||
|
|
||||||
mode=$(echo -e "動画のみ\nマイク\nシステムの音\n全面的" | rofi \
|
# The modes are video only, +mic, +system audio, full.
|
||||||
|
mode=$(echo -e "Video only\nMicrophone\nMerge clips" | rofi \
|
||||||
-modes drun,run,calc \
|
-modes drun,run,calc \
|
||||||
-dmenu -p "ビデオ録画モードを選択 " \
|
-dmenu -p "Clips duration: $clips_total_duration / Merges duration: $merges_total_duration" \
|
||||||
-theme "$HOME/.config/rofi/styles/style-recorder.rasi" \
|
-theme "$HOME/.config/rofi/styles/style-recorder.rasi" \
|
||||||
-markup-rows \
|
-markup-rows \
|
||||||
-drun-use-desktop-cache \
|
-drun-use-desktop-cache \
|
||||||
@@ -26,5 +115,38 @@ if [[ -z "$mode" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wf-recorder -c libx264rgb -r 30 -a --audio-backend=pipewire -f "$HOME/Videos/$datetime.mkv"
|
case "$mode" in
|
||||||
notify-send --hint int:transient:1 -t 1000 "Recorder" "Video saved as $datetime.mkv"
|
"Video only")
|
||||||
|
# Video only - no audio
|
||||||
|
wf-recorder -c libx264rgb -r 30 -f "$save_path/clip_$datetime.mkv" &
|
||||||
|
;;
|
||||||
|
"Microphone")
|
||||||
|
# With mic only
|
||||||
|
wf-recorder -c libx264rgb -r 30 -a "$mic_device" --audio-backend=pulse -f "$save_path/clip_$datetime.mkv" &
|
||||||
|
;;
|
||||||
|
"Merge clips")
|
||||||
|
merge_videos clip merged
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
notify-send --hint int:transient:1 -t 1000 "Recorder" "Invalid mode selected"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
recorder_pid=$!
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
if ps -p $recorder_pid > /dev/null; then
|
||||||
|
else
|
||||||
|
notify-send --hint int:transient:1 -t 3000 "Recorder" "Failed to start recording"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wait for the recording process to finish
|
||||||
|
wait $recorder_pid
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
notify-send --hint int:transient:1 -t 3000 "Recorder" "Video saved $save_path/clip_$datetime.mkv"
|
||||||
|
else
|
||||||
|
notify-send --hint int:transient:1 -t 3000 "Recorder" "Recording failed or was interrupted"
|
||||||
|
fi
|
||||||
|
|||||||
100
rofi/styles/style-powermenu.rasi
Normal file
100
rofi/styles/style-powermenu.rasi
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
* {
|
||||||
|
background: #1c1c1cc0;
|
||||||
|
background-alt: #303030ff;
|
||||||
|
button-shape-top: #505050ff;
|
||||||
|
button-shape-bottom: #303030ff;
|
||||||
|
background-button: #2e2d31ff;
|
||||||
|
background-input: #1c1c1cc0;
|
||||||
|
border: #48535Ccf;
|
||||||
|
foreground: #FFe8EE;
|
||||||
|
selected: #9E2238dd;
|
||||||
|
selected-shine: #CE5268dd;
|
||||||
|
active: #9E2238;
|
||||||
|
urgent: #D14781;
|
||||||
|
background-color: @background;
|
||||||
|
border-color: White;
|
||||||
|
text-color: @foreground;
|
||||||
|
font: "JetBrains Mono Nerd Font 32";
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
anchor: center;
|
||||||
|
location: center;
|
||||||
|
width: 1000px;
|
||||||
|
height: 250px;
|
||||||
|
padding: 6px;
|
||||||
|
children: [ mainbox ];
|
||||||
|
border: 1px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border-color: @border;
|
||||||
|
background-color: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
orientation: vertical;
|
||||||
|
spacing: 10px;
|
||||||
|
children: [ listview ];
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
enabled: true;
|
||||||
|
columns: 1;
|
||||||
|
lines: 3;
|
||||||
|
cycle: true;
|
||||||
|
dynamic: true;
|
||||||
|
scrollbar: false;
|
||||||
|
layout: horizontal;
|
||||||
|
reverse: false;
|
||||||
|
fixed-height: true;
|
||||||
|
fixed-columns: true;
|
||||||
|
height: 100px;
|
||||||
|
spacing: 10px;
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: "default";
|
||||||
|
font: "JetBrains Mono Nerd Font 10";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Elements -----*****/
|
||||||
|
element {
|
||||||
|
enabled: true;
|
||||||
|
spacing: 15px;
|
||||||
|
width: calc(100% / 3 - 12);
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: 10px;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: @background-button;
|
||||||
|
border-color: @button-shape-top;
|
||||||
|
border: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @active;
|
||||||
|
text-color: @foreground;
|
||||||
|
border-color: @selected-shine;
|
||||||
|
border: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
padding: 80;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
background-color: @selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text, element-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
101
rofi/styles/style-powermodemenu.rasi
Normal file
101
rofi/styles/style-powermodemenu.rasi
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
* {
|
||||||
|
background: #1c1c1cc0;
|
||||||
|
background-alt: #303030ff;
|
||||||
|
button-shape-top: #505050ff;
|
||||||
|
button-shape-bottom: #303030ff;
|
||||||
|
background-button: #2e2d31ff;
|
||||||
|
background-input: #1c1c1cc0;
|
||||||
|
border: #48535Ccf;
|
||||||
|
foreground: #FFe8EE;
|
||||||
|
selected: #9E2238dd;
|
||||||
|
selected-shine: #CE5268dd;
|
||||||
|
active: #9E2238;
|
||||||
|
urgent: #D14781;
|
||||||
|
background-color: @background;
|
||||||
|
border-color: White;
|
||||||
|
text-color: @foreground;
|
||||||
|
font: "JetBrains Mono Nerd Font 32";
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
anchor: center;
|
||||||
|
location: center;
|
||||||
|
width: 1000px;
|
||||||
|
height: 250px;
|
||||||
|
padding: 6px;
|
||||||
|
children: [ mainbox ];
|
||||||
|
border: 1px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border-color: @border;
|
||||||
|
background-color: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
orientation: vertical;
|
||||||
|
spacing: 10px;
|
||||||
|
children: [ listview ];
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
enabled: true;
|
||||||
|
columns: 1;
|
||||||
|
lines: 3;
|
||||||
|
cycle: true;
|
||||||
|
dynamic: true;
|
||||||
|
scrollbar: false;
|
||||||
|
layout: horizontal;
|
||||||
|
reverse: false;
|
||||||
|
fixed-height: true;
|
||||||
|
fixed-columns: true;
|
||||||
|
height: 100px;
|
||||||
|
spacing: 10px;
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: "default";
|
||||||
|
font: "JetBrains Mono Nerd Font 10";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****----- Elements -----*****/
|
||||||
|
element {
|
||||||
|
enabled: true;
|
||||||
|
spacing: 15px;
|
||||||
|
width: calc(100% / 3 - 12);
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: 10px;
|
||||||
|
text-color: @foreground;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: @background-button;
|
||||||
|
border-color: @button-shape-top;
|
||||||
|
border: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @active;
|
||||||
|
text-color: @foreground;
|
||||||
|
border-color: @selected-shine;
|
||||||
|
border: 1px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
padding: 80;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
background-color: @selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text, element-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
@@ -48,13 +48,14 @@ imagebox {
|
|||||||
border-radius: 100px;
|
border-radius: 100px;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
background-color: @active;
|
background-color: @active;
|
||||||
|
border-color: @selected-shine;
|
||||||
|
border: 1px 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
contentbox {
|
contentbox {
|
||||||
orientation: horizontal;
|
orientation: horizontal;
|
||||||
expand: true;
|
expand: true;
|
||||||
children: [prompt, entry];
|
children: [prompt];
|
||||||
}
|
}
|
||||||
|
|
||||||
mode-switcher{
|
mode-switcher{
|
||||||
@@ -67,7 +68,7 @@ mode-switcher{
|
|||||||
listview {
|
listview {
|
||||||
enabled: true;
|
enabled: true;
|
||||||
columns: 1;
|
columns: 1;
|
||||||
lines: 4;
|
lines: 3;
|
||||||
cycle: true;
|
cycle: true;
|
||||||
dynamic: true;
|
dynamic: true;
|
||||||
scrollbar: false;
|
scrollbar: false;
|
||||||
@@ -87,7 +88,7 @@ listview {
|
|||||||
element {
|
element {
|
||||||
enabled: true;
|
enabled: true;
|
||||||
spacing: 15px;
|
spacing: 15px;
|
||||||
width: 22.5%;
|
width: 31%;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
text-color: @foreground;
|
text-color: @foreground;
|
||||||
|
|||||||
@@ -1,227 +1,205 @@
|
|||||||
{
|
{
|
||||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||||
"ignore-gtk-theme": true,
|
"ignore-gtk-theme": true,
|
||||||
"positionX": "right",
|
"positionX": "right",
|
||||||
"positionY": "top",
|
"positionY": "top",
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"control-center-layer": "top",
|
"control-center-layer": "top",
|
||||||
"layer-shell": true,
|
"layer-shell": true,
|
||||||
"layer-shell-cover-screen": false,
|
"layer-shell-cover-screen": false,
|
||||||
"cssPriority": "highest",
|
"cssPriority": "highest",
|
||||||
"control-center-margin-top": 10,
|
"control-center-margin-top": 10,
|
||||||
"control-center-margin-bottom": 5,
|
"control-center-margin-bottom": 5,
|
||||||
"control-center-margin-right": -10,
|
"control-center-margin-right": -10,
|
||||||
"control-center-margin-left": 0,
|
"control-center-margin-left": 0,
|
||||||
"notification-2fa-action": false,
|
"notification-2fa-action": false,
|
||||||
"notification-inline-replies": false,
|
"notification-inline-replies": false,
|
||||||
"notification-body-image-height": 100,
|
"notification-body-image-height": 100,
|
||||||
"notification-body-image-width": 200,
|
"notification-body-image-width": 200,
|
||||||
"timeout": 10,
|
"timeout": 10,
|
||||||
"timeout-low": 5,
|
"timeout-low": 5,
|
||||||
"timeout-critical": 0,
|
"timeout-critical": 0,
|
||||||
"fit-to-screen": true,
|
"fit-to-screen": true,
|
||||||
"relative-timestamps": true,
|
"relative-timestamps": true,
|
||||||
"control-center-width": 470,
|
"control-center-width": 470,
|
||||||
"control-center-height": 800,
|
"control-center-height": 800,
|
||||||
"notification-window-width": 400,
|
"notification-window-width": 400,
|
||||||
"keyboard-shortcuts": true,
|
"keyboard-shortcuts": true,
|
||||||
"notification-grouping": false,
|
"notification-grouping": false,
|
||||||
"image-visibility": "when-available",
|
"image-visibility": "when-available",
|
||||||
"transition-time": 100,
|
"transition-time": 100,
|
||||||
"hide-on-clear": false,
|
"hide-on-clear": false,
|
||||||
"hide-on-action": true,
|
"hide-on-action": true,
|
||||||
"text-empty": "No nothing",
|
"text-empty": "No nothing",
|
||||||
"script-fail-notify": true,
|
"script-fail-notify": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"example-script": {
|
"example-script": {
|
||||||
"exec": "echo 'Do something...'",
|
"exec": "echo 'Do something...'",
|
||||||
"urgency": "Normal"
|
"urgency": "Normal"
|
||||||
},
|
|
||||||
"example-action-script": {
|
|
||||||
"exec": "echo 'Do something actionable!'",
|
|
||||||
"urgency": "Normal",
|
|
||||||
"run-on": "action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-visibility": {
|
|
||||||
"example-name": {
|
|
||||||
"state": "muted",
|
|
||||||
"urgency": "Low",
|
|
||||||
"app-name": "Spotify"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"widgets": [
|
|
||||||
"menubar",
|
|
||||||
"buttons-grid",
|
|
||||||
"volume",
|
|
||||||
"slider#brightness",
|
|
||||||
"slider#cpu",
|
|
||||||
"inhibitors",
|
|
||||||
"title",
|
|
||||||
"notifications",
|
|
||||||
"dnd"
|
|
||||||
],
|
|
||||||
"widget-config": {
|
|
||||||
"inhibitors": {
|
|
||||||
"text": "Inhibitors",
|
|
||||||
"button-text": "Purge",
|
|
||||||
"clear-all-button": true
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"text": "Notifications",
|
|
||||||
"clear-all-button": true,
|
|
||||||
"button-text": "Purge"
|
|
||||||
},
|
|
||||||
"volume": {
|
|
||||||
"label": " ",
|
|
||||||
"show-per-app": true,
|
|
||||||
"show-per-app-icon": true,
|
|
||||||
"show-per-app-label": true
|
|
||||||
},
|
|
||||||
"slider#brightness": {
|
|
||||||
"label": " ",
|
|
||||||
"cmd_setter": "brightnessctl s $value",
|
|
||||||
"cmd_getter": "brightnessctl g",
|
|
||||||
"min": 5000,
|
|
||||||
"min_limit": 5000,
|
|
||||||
"max": 120000,
|
|
||||||
"max_limit": 120000
|
|
||||||
},
|
|
||||||
"slider#cpu": {
|
|
||||||
"label": " ",
|
|
||||||
"cmd_setter": "exec ~/.config/hypr/scripts/cpufreq.sh $value",
|
|
||||||
"cmd_getter": "exec ~/.config/hypr/scripts/cpufreq.sh g",
|
|
||||||
"min": 1,
|
|
||||||
"min_limit": 1,
|
|
||||||
"max": 6,
|
|
||||||
"max_limit": 6
|
|
||||||
},
|
|
||||||
"dnd": {
|
|
||||||
"text": "Don't bother"
|
|
||||||
},
|
|
||||||
"label": {
|
|
||||||
"max-lines": 1,
|
|
||||||
"text": "Kolinux 1.0"
|
|
||||||
},
|
|
||||||
"mpris": {
|
|
||||||
"blacklist": [],
|
|
||||||
"autohide": false,
|
|
||||||
"show-album-art": "always",
|
|
||||||
"loop-carousel": false
|
|
||||||
},
|
|
||||||
"buttons-grid": {
|
|
||||||
"buttons-per-row": 4,
|
|
||||||
"actions": [
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"active": true,
|
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
|
||||||
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
|
||||||
},
|
},
|
||||||
{
|
"example-action-script": {
|
||||||
"label": "",
|
"exec": "echo 'Do something actionable!'",
|
||||||
"type": "toggle",
|
"urgency": "Normal",
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && bluetoothctl power on || bluetoothctl power off'",
|
"run-on": "action"
|
||||||
"update-command": "sh -c \'bluetoothctl show | awk \\\"/Powered/ {print \\$2}\\\" | grep -q yes && echo true || echo false\'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && mullvad connect || mullvad disconnect'",
|
|
||||||
"update-command": "sh -c '[[ $(mullvad status | grep -e Connected ) == \"Connected\" ]] && echo true || echo false'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 & disown'",
|
|
||||||
"update-command": "sh -c 'pgrep sslocal > /dev/null && echo true || echo false'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'pactl set-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo toggle'",
|
|
||||||
"update-command": "sh -c '[[ $(pactl get-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo) == \\\"Mute: no\\\" ]] && echo true || echo false'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "[[ $SWAYNC_TOGGLE_STATE == true ]] && ( systemd-inhibit --why='User request via swaync' --what=sleep:handle-lid-switch:idle sh -c 'echo \"$$\" > \"$XDG_RUNTIME_DIR/swaync-idle.pid\"; while true; do sleep 3600; done' ) || kill $(<\"$XDG_RUNTIME_DIR/swaync-idle.pid\")",
|
|
||||||
"update-command": "kill -0 $(<\"$XDG_RUNTIME_DIR/swaync-idle.pid\") && echo true || echo false"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_mirror_display.sh'",
|
|
||||||
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_mirror_display.sh g'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && (echo 1 > $HOME/.config/hypr/conditions/autofreeze_swww) || (echo 0 > $HOME/.config/hypr/conditions/autofreeze_swww)'",
|
|
||||||
"update-command": "sh -c '[ \$(cat $HOME/.config/hypr/conditions/autofreeze_swww) -eq 1 ] && echo true || echo false'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_privacy.sh'",
|
|
||||||
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_privacy.sh g'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'exec ~/.config/hypr/scripts/grayscale-toggle.sh'",
|
|
||||||
"update-command": "sh -c 'exec ~/.config/hypr/scripts/grayscale-toggle.sh g'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "",
|
|
||||||
"type": "toggle",
|
|
||||||
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_distractions.sh'",
|
|
||||||
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_distractions.sh g'"
|
|
||||||
}
|
}
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"menubar": {
|
"notification-visibility": {
|
||||||
"menu#power-buttons": {
|
"example-name": {
|
||||||
"label": "",
|
"state": "muted",
|
||||||
"position": "left",
|
"urgency": "Low",
|
||||||
"actions": [
|
"app-name": "Spotify"
|
||||||
{
|
}
|
||||||
"label": " Reboot",
|
},
|
||||||
"command": "systemctl reboot"
|
"widgets": [
|
||||||
},
|
"menubar",
|
||||||
{
|
"buttons-grid",
|
||||||
"label": " Lock",
|
"volume",
|
||||||
"command": "swaylock.sh"
|
"slider#brightness",
|
||||||
},
|
"slider#cpu",
|
||||||
{
|
"inhibitors",
|
||||||
"label": " Logout",
|
"title",
|
||||||
"command": "loginctl terminate-session ${XDG_SESSION_ID-}"
|
"notifications",
|
||||||
},
|
"dnd"
|
||||||
{
|
],
|
||||||
"label": " Shut down",
|
"widget-config": {
|
||||||
"command": "systemctl poweroff"
|
"inhibitors": {
|
||||||
}
|
"text": "Inhibitors",
|
||||||
]
|
"button-text": "Purge",
|
||||||
},
|
"clear-all-button": true
|
||||||
"menu#powermode-buttons": {
|
},
|
||||||
"label": "",
|
"title": {
|
||||||
"position": "right",
|
"text": "Notifications",
|
||||||
"actions": [
|
"clear-all-button": true,
|
||||||
{
|
"button-text": "Purge"
|
||||||
"label": "Razgonnnn",
|
},
|
||||||
"command": "sh -c 'notify-send --hint int:transient:1 Power-Profile Performance && powerprofilesctl set performance'"
|
"volume": {
|
||||||
},
|
"label": " ",
|
||||||
{
|
"show-per-app": true,
|
||||||
"label": "Balanced",
|
"show-per-app-icon": true,
|
||||||
"command": "sh -c 'notify-send --hint int:transient:1 Power-Profile Balanced && powerprofilesctl set balanced'"
|
"show-per-app-label": true
|
||||||
},
|
},
|
||||||
{
|
"slider#brightness": {
|
||||||
"label": "Survival",
|
"label": " ",
|
||||||
"command": "sh -c 'notify-send --hint int:transient:1 Power-Profile Power-saver && powerprofilesctl set power-saver'"
|
"cmd_setter": "brightnessctl s $value",
|
||||||
}
|
"cmd_getter": "brightnessctl g",
|
||||||
]
|
"min": 5000,
|
||||||
}
|
"min_limit": 5000,
|
||||||
|
"max": 120000,
|
||||||
|
"max_limit": 120000
|
||||||
|
},
|
||||||
|
"slider#cpu": {
|
||||||
|
"label": " ",
|
||||||
|
"cmd_setter": "exec ~/.config/hypr/scripts/cpufreq.sh $value",
|
||||||
|
"cmd_getter": "exec ~/.config/hypr/scripts/cpufreq.sh g",
|
||||||
|
"min": 1,
|
||||||
|
"min_limit": 1,
|
||||||
|
"max": 6,
|
||||||
|
"max_limit": 6
|
||||||
|
},
|
||||||
|
"dnd": {
|
||||||
|
"text": "Don't bother"
|
||||||
|
},
|
||||||
|
"label": {
|
||||||
|
"max-lines": 1,
|
||||||
|
"text": "Kolinux 1.0"
|
||||||
|
},
|
||||||
|
"mpris": {
|
||||||
|
"blacklist": [],
|
||||||
|
"autohide": false,
|
||||||
|
"show-album-art": "always",
|
||||||
|
"loop-carousel": false
|
||||||
|
},
|
||||||
|
"buttons-grid": {
|
||||||
|
"buttons-per-row": 4,
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"active": true,
|
||||||
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
||||||
|
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && bluetoothctl power on || bluetoothctl power off'",
|
||||||
|
"update-command": "sh -c \'bluetoothctl show | awk \\\"/Powered/ {print \\$2}\\\" | grep -q yes && echo true || echo false\'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && mullvad connect || mullvad disconnect'",
|
||||||
|
"update-command": "sh -c '[[ $(mullvad status | grep -e Connected ) == \"Connected\" ]] && echo true || echo false'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'nohup ~/.config/hypr/scripts/toggle_proxy.sh > /dev/null 2>&1 & disown'",
|
||||||
|
"update-command": "sh -c 'pgrep sslocal > /dev/null && echo true || echo false'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'pactl set-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo toggle'",
|
||||||
|
"update-command": "sh -c '[[ $(pactl get-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo) == \\\"Mute: no\\\" ]] && echo true || echo false'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "[[ $SWAYNC_TOGGLE_STATE == true ]] && ( systemd-inhibit --why='User request via swaync' --what=sleep:handle-lid-switch:idle sh -c 'echo \"$$\" > \"$XDG_RUNTIME_DIR/swaync-idle.pid\"; while true; do sleep 3600; done' ) || kill $(<\"$XDG_RUNTIME_DIR/swaync-idle.pid\")",
|
||||||
|
"update-command": "kill -0 $(<\"$XDG_RUNTIME_DIR/swaync-idle.pid\") && echo true || echo false"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_mirror_display.sh'",
|
||||||
|
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_mirror_display.sh g'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && (echo 1 > $HOME/.config/hypr/conditions/autofreeze_swww) || (echo 0 > $HOME/.config/hypr/conditions/autofreeze_swww)'",
|
||||||
|
"update-command": "sh -c '[ \$(cat $HOME/.config/hypr/conditions/autofreeze_swww) -eq 1 ] && echo true || echo false'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_privacy.sh'",
|
||||||
|
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_privacy.sh g'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'exec ~/.config/hypr/scripts/grayscale-toggle.sh'",
|
||||||
|
"update-command": "sh -c 'exec ~/.config/hypr/scripts/grayscale-toggle.sh g'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"type": "toggle",
|
||||||
|
"command": "sh -c 'exec ~/.config/hypr/scripts/toggle_distractions.sh'",
|
||||||
|
"update-command": "sh -c 'exec ~/.config/hypr/scripts/toggle_distractions.sh g'"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"menubar": {
|
||||||
|
"buttons#powermenu": {
|
||||||
|
"position": "left",
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"label": "⏻",
|
||||||
|
"command": "sh -c 'swaync-client -cp & ~/.config/rofi/scripts/dmenu_powermenu.sh'"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"buttons#powermodemenu": {
|
||||||
|
"position": "right",
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"label": "",
|
||||||
|
"command": "sh -c 'swaync-client -cp & ~/.config/rofi/scripts/dmenu_powermodemenu.sh'"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
--notification-icon-size: 64px;
|
--notification-icon-size: 64px;
|
||||||
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
|
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
|
||||||
--notification-group-icon-size: 32px;
|
--notification-group-icon-size: 32px;
|
||||||
|
--button: #303030;
|
||||||
|
--button-top: #505050;
|
||||||
|
--button-on-top: #CE5268dd;
|
||||||
--button-off: #2e2d31;
|
--button-off: #2e2d31;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,7 +29,7 @@
|
|||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: var(--button-off);
|
background-color: var(--button-off);
|
||||||
border: 1px solid #303030;
|
border-top: 1px solid var(--button-top);
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
@@ -475,6 +478,7 @@ button:hover {
|
|||||||
.widget-buttons-grid flowboxchild > button.toggle:checked {
|
.widget-buttons-grid flowboxchild > button.toggle:checked {
|
||||||
/* style given to the active toggle button */
|
/* style given to the active toggle button */
|
||||||
background-color: var(--noti-bg-selection);
|
background-color: var(--noti-bg-selection);
|
||||||
|
border-top: 1px solid var(--button-on-top);
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-buttons-grid flowboxchild > button.toggle:hover {
|
.widget-buttons-grid flowboxchild > button.toggle:hover {
|
||||||
@@ -520,6 +524,7 @@ button:hover {
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
background-color: var(--noti-bg-selection);
|
background-color: var(--noti-bg-selection);
|
||||||
|
border-top: 1px solid var(--button-on-top);
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-menubar > .menu-button-bar > .widget-menubar-container button:hover {
|
.widget-menubar > .menu-button-bar > .widget-menubar-container button:hover {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
alias cringeprox="nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 &"
|
alias cringeprox="nohup ~/.config/hypr/scripts/toggle_proxy.sh > /dev/null 2>&1 &"
|
||||||
alias recringe="nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 && nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 &"
|
alias recringe="nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 && nohup ~/.config/bspwm/proxy.sh > /dev/null 2>&1 &"
|
||||||
alias dak="(source /home/greg/.venv312/bin/activate && python -m duck_chat)"
|
alias dak="(source /home/greg/.venv312/bin/activate && python -m duck_chat)"
|
||||||
alias dlpmuzanon="yt-dlp -x -f bestaudio --ignore-errors --continue --no-overwrites"
|
alias dlpmuzanon="yt-dlp -x -f bestaudio --ignore-errors --continue --no-overwrites"
|
||||||
@@ -64,11 +64,4 @@ alias vim="nvim"
|
|||||||
alias pentagon="~/Dev/Appimages/edexui.AppImage"
|
alias pentagon="~/Dev/Appimages/edexui.AppImage"
|
||||||
alias lockswww='echo 1 > $HOME/.config/hypr/conditions/lock_wallpaper'
|
alias lockswww='echo 1 > $HOME/.config/hypr/conditions/lock_wallpaper'
|
||||||
alias unlockswww='echo 0 > $HOME/.config/hypr/conditions/lock_wallpaper'
|
alias unlockswww='echo 0 > $HOME/.config/hypr/conditions/lock_wallpaper'
|
||||||
alias brainless_commit='
|
alias golint="crlfmt -w -ignore '\.(pb(\.gw)?)|(\.[eo]g)\.go|/testdata/|^sql/parser/sql\.go$|_generated(_test)?\.go$' ."
|
||||||
echo "" > /tmp/brainless_commit;
|
|
||||||
echo "$(cat $HOME/Dev/Prompts/commit.txt) $(git status -v)" > /tmp/brainless_commit;
|
|
||||||
commit_message=$(cat /tmp/brainless_commit | tgpt -q -w);
|
|
||||||
echo "$commit_message" > /tmp/brainless_commit;
|
|
||||||
nvim /tmp/brainless_commit;
|
|
||||||
git commit -m "$(cat /tmp/brainless_commit)"
|
|
||||||
'
|
|
||||||
|
|||||||
Reference in New Issue
Block a user