diff --git a/.config/hypr/battery.sh b/.config/hypr/battery.sh new file mode 100755 index 0000000..a8ed79f --- /dev/null +++ b/.config/hypr/battery.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Get the current battery percentage +battery_percentage=$(cat /sys/class/power_supply/BAT0/capacity) + +# Get the battery status (Charging or Discharging) +battery_status=$(cat /sys/class/power_supply/BAT0/status) + +# Define the battery icons for each 10% segment +battery_icons=("󰂃" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰁹") + +# Define the charging icon +charging_icon="󰂄" + +# Calculate the index for the icon array +icon_index=$((battery_percentage / 10)) + +# Get the corresponding icon +battery_icon=${battery_icons[icon_index]} + +# Check if the battery is charging +if [ "$battery_status" = "Charging" ]; then + battery_icon="$charging_icon" +fi + +# Output the battery percentage and icon +echo "$battery_percentage% $battery_icon" diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf index b1466e7..a974206 100644 --- a/.config/hypr/hypridle.conf +++ b/.config/hypr/hypridle.conf @@ -10,41 +10,27 @@ $LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland general { - lock_cmd = $LOCKSCREEN - unlock_cmd = #notify-send "unlock!" # same as above, but unlock - before_sleep_cmd = $LOCKSCREEN # command ran before sleep - after_sleep_cmd = # notify-send "Awake!" # command ran after sleep - ignore_dbus_inhibit = 0 + lock_cmd = pidof hyprlock || hyprlock + on_unlock_cmd = bash -c 'notify-send "Welcome back!"' + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on' } -# Dims the display listener { - timeout = 120 -on-timeout = { brightnessctl -s && brightnessctl s 1% ;} - on-resume = brightnessctl -r + timeout = 210 # 5min + on-timeout = loginctl lock-session # lock screen when timeout has passed } -# Lock it first before dpms off so that screen won't show for a moment after wake up. listener { - timeout = 240 - on-timeout = $LOCKSCREEN + timeout = 220 # 3.6 minutes + on-timeout = bash -c 'brightnessctl -s set 10; brightnessctl -d tpacpi::kbd_backlight set 0; hyprctl dispatch dpms off' + on-resume = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on' } -# DPMS off + listener { - timeout = 2300 - on-timeout = hyprctl dispatch dpms off #do not turn off display while media is playing - on-resume = hyprctl dispatch dpms on + timeout = 230 # 5.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. } -# Suspend -# listener { -# timeout = 500 -# on-timeout = systemctl suspend -# } - -# hyprlang noerror true -# Source anything from this path if you want to add your own listener -# source command actually do not exist yet -source = ~/.config/hypridle/* -# hyprlang noerror false diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 2cd71e7..2c28184 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -38,8 +38,9 @@ exec-once = wl-paste --type text --watch cliphist store # clipboard store text d exec-once = wl-paste --type image --watch cliphist store # clipboard store image data exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon exec-once = $scrPath/batterynotify.sh # battery notification -exec-once = xremap ~/.config/xremap/config.yml -exec-once = swayidle -w timeout 180 'swaylock --timestr %H:%M -i ~/.config/swaylock/dmz.svg & brightnessctl -s & brightnessctl set 15' resume 'brightnessctl -r' +exec-once = xremap --watch ~/.config/xremap/config.yml +exec-once = hypridle + # █▀▀ █▄░█ █░█ diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf index d6d170e..62f6665 100644 --- a/.config/hypr/hyprlock.conf +++ b/.config/hypr/hyprlock.conf @@ -2,83 +2,115 @@ #! █▀█ ░█░ █▀▀ █▀▄ █▄▄ █▄█ █▄▄ █░█ #*  Hyprlock Configuration File  -# Please do not edit this file manually. -# Follow the instructions below on how to make changes. + +$fontColor = rgba(255,255,255,0.5) +$fontFamily = SourceCodeVF ExtraBold +$timeFontFamily = Cantarell ExtraBold + +general { + no_fade_in = true + grade = 1 + ignore_empty_input = true + text_trim = true + fade_in_time = 0.8 + disable_loading_bar = 0 +} + +background { + monitor = + path = ~/sync/Drive/pics/foss-world-crop.png + blur_passes = 2 + blur_size = 4 + contrast = 0.7 + brightness = 0.3 + vibrancy = 0.15 + vibrancy_darkness = 0.5 +} + +image { + monitor = + path = ~/sync/Drive/pics/matrixom-crop.png + position = 0, 80 + reload_time = -1 + reload_cmd = +} + +input-field { + monitor = + size = 20%, 5% + position = 0, -60 + outline_thickness = 3 + dots_size = 0.08 + dots_spacing = 0.2 + dots_center = true + outer_color = rgba(0,0,0,0.1) + inner_color = $fontColor + fade_on_empty = true +} + +label { + monitor = + text = cmd[update:5000] echo "$(uptime -p)" + color = $fontColor + font_family = $fontFamily + font_size = 15 + position = 0, 350 +} + +label { + monitor = + text = cmd[update:300000] echo "$(cat ~/.config/fish/greet.txt)" + color = $fontColor + font_family = $fontFamily + font_size = 14 + position = 0, 310 +} + +label { + monitor = + text = cmd[update:1000] echo "$(date +"%H:%M")" + color = $fontColor + font_family = $timeFontFamily + font_size = 120 + position = 0, -180 + animation = pulse 2s infinite + opacity = 0.5 + shadow_passes = 1 + shadow_size = 1 + shadow_color = rgba(0, 0, 0, 0.5) +} + +label { + monitor = + text = cmd[update:1000] echo "$(LC_TIME=en_US.UF-8 date +'%A, %B %d')" + color = $fontColor + font_family = $fontFamily + font_size = 25 + position = 0, -300 +} + +label { + monitor = + text = cmd[update:1000] echo -e "$(~/.config/hypr/battery.sh)" + color = $fontColor + font_family = $fontFamily + font_size = 14 + position = -50, 30 + halign = right + valign = bottom +} + +label { + monitor = + color = $fontColor + text = cmd[] echo "" + font-size=24 + onclick = systemctl poweroff + position = 50, 30 + halign = left + valign = bottom +} -#* Hyprlock active layout path: -# Set the layout path to be used by Hyprlock. -# Check the available layouts in the './hyprlock/' directory. -# Example: /=/path/to/anurati -$LAYOUT_PATH=~/.config/hypr/hyprlock/theme.conf - -#*  Persistent layout declaration  -# If a persistent layout path is declared in $XDG_CONFIG_HOME/hypr/hyde.conf, -# the above layout setting will be ignored. -# this should be the full path to the layout file. - -#*  All boilerplate configurations are handled by HyDE  -source = ~/.local/share/hyde/hyprlock.conf - -#*  Making a custom layout  -# To create a custom layout, make a file in the './hyprlock/' directory. -# Example: './hyprlock/your_custom.conf' -# To use the custom layout, set the following variable: -# $LAYOUT_PATH=your_custom -# The custom layout will be sourced automatically. -# Alternatively, you can statically source the layout in '~/.config/hypr/hyde.conf'. -# This will take precedence over the variable in '~/.config/hypr/hyprlock.conf'. -#*  Command Variables  -# Hyprlock ships with there default variables that can be used to customize the lock screen. -# - https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#label -# HyDE also provides custom variables that extend the functionality of Hyprlock. - -# $BACKGROUND_PATH -# - The path to the wallpaper image. - -# $HYPRLOCK_BACKGROUND -# - The path to the static hyprlock wallpaper image. -# - Can be set to set a static wallpaper for Hyprlock. - -# $MPRIS_IMAGE -# - The path to the MPRIS image. -# - If MPRIS is not available, it will show the ~/.face.icon image -# - if available, otherwise, it will show the HyDE logo. - -# $PROFILE_IMAGE -# - The path to the profile image. -# - If the image is not available, it will show the ~/.face.icon image -# - if available, otherwise, it will show the HyDE logo. - -# $GREET_TEXT -# - A greeting text to be displayed on the lock screen. -# - The text will be updated every hour. - -# $resolve.font -# - Resolves the font name and download link. -# - HyDE will run 'font.sh resolve' to install the font for you. -# - Note that you needed to have a network connection to download the font. -# - You also need to restart Hyprlock to apply the font. - -# cmd [update:1000] $MPRIS_TEXT -# - Text from media players in "Title  Author" format. - - -# cmd [update:1000] $SPLASH_CMD -# - Outputs the song title when MPRIS is available, -# - otherwise, it will output the splash command. - -# cmd [update:1] $CAVA_CMD -# - The command to be executed to get the CAVA output. -# - ⚠️ (Use with caution as it eats up the CPU.) - -# cmd [update:5000] $BATTERY_ICON -# - The battery icon to be displayed on the lock screen. -# - Only works if the battery is available. - -# cmd [update:1000] $KEYBOARD_LAYOUT -# - The current keyboard layout -# - SUPER + K to change the keyboard layout (or any binding you set) - diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf index faf1fdf..2428cf0 100644 --- a/.config/hypr/keybindings.conf +++ b/.config/hypr/keybindings.conf @@ -26,8 +26,7 @@ bind = $mainMod, Delete, exit, # kill hyprland session bind = $mainMod, W, togglefloating, # toggle the window between focus and float bind = $mainMod, G, togglegroup, # toggle the window between focus and group bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen -# bind = $mainMod, L, exec, swaylock --timestr %H:%M -i ~/.config/swaylock/dmz.svg # launch lock screen -bind = $mainMod, L, exec, swaylock -i ~/.config/swaylock/dmz.svg # launch lock screen +bind = $mainMod, L, exec, hyprlock --immediate #& sleep 0.3 && hyprctl dispatch dpms off bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar # bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window # bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu @@ -43,6 +42,7 @@ bind = $mainMod, F, exec, $yt # launch yt alternative bind = $mainMod, B, exec, $browser # launch web browser bind = $mainMod, G, exec, gajim # launch messanger bind = $mainMod, K, exec, keepassxc # launch password manager +bind = $mainMod, Escape, exec, dunstctl close bindd = $mainMod, N, Neovim, exec, $term -e nvim bindd = $mainMod, R, $d pyradio, exec, kitty --session ~/.config/kitty/music.conf bindd = $mainMod, I, $d c2, exec, kitty --session ~/.config/kitty/c2.conf diff --git a/.config/hypr/userprefs.conf b/.config/hypr/userprefs.conf index 714bf96..94787b3 100644 --- a/.config/hypr/userprefs.conf +++ b/.config/hypr/userprefs.conf @@ -30,8 +30,6 @@ bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue lig # █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ # █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ -# exec-once = swayidle -w timeout 600 'swaylock' timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # lock after 10 mins, sleep after 15 mins // install swayidle -# exec-once = swayidle -w timeout 1200 'swaylock; hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' timeout 1800 'systemctl suspend' # lock and sleep after 20 mins, suspend after 30 mins // install swayidle # exec-once = libinput-gestures // install libinput-gestures # exec-once = swayosd-server # enable swayosd service # exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)