diff --git a/Wallpapers/9-34-4x_BSRGAN.png b/Wallpapers/9-34-4x_BSRGAN.png new file mode 100644 index 0000000..0c18f12 --- /dev/null +++ b/Wallpapers/9-34-4x_BSRGAN.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88fa6acff4d6b972f74079dbb9dcb7beb6221366977af41f00b05884cca31aaf +size 6671757 diff --git a/bat/config b/bat/config new file mode 100755 index 0000000..e63427a --- /dev/null +++ b/bat/config @@ -0,0 +1,2 @@ +--color=always +--theme='Catppuccin Mocha' diff --git a/bat/preview b/bat/preview index 06df061..7c83a77 100755 --- a/bat/preview +++ b/bat/preview @@ -3,6 +3,6 @@ if [ -d $1 ]; then exa --color=always --icons -l $1 else - bat --color=always $1 --theme="Catppuccin Mocha" --plain + bat $1 --plain fi diff --git a/eww/bars/hypr/bar/eww.css b/eww/bars/hypr/bar/eww.css index b3f48d7..03cdb80 100644 --- a/eww/bars/hypr/bar/eww.css +++ b/eww/bars/hypr/bar/eww.css @@ -30,6 +30,15 @@ border-radius: 999px; } +.volume { + padding: 5px 10px; + background-color: rgb(116, 199, 236); + font-family: "Iosevka Term"; + font-weight: bold; + color: #111; + border-radius: 999px; +} + .battery { padding: 5px 10px; background-color: rgb(166, 227, 161); diff --git a/eww/bars/hypr/bar/eww.yuck b/eww/bars/hypr/bar/eww.yuck index 3212b2e..55a644b 100644 --- a/eww/bars/hypr/bar/eww.yuck +++ b/eww/bars/hypr/bar/eww.yuck @@ -3,7 +3,7 @@ :geometry (geometry :x "0px" :y "0px" :width "100%" - :height "40px" + :height "48px" :anchor "bottom center") :stacking "fg" :focusable false @@ -19,6 +19,7 @@ (cpu) (brightness) (battery) + (volume) (systray :valign "center" :spacing 5 @@ -59,6 +60,23 @@ ) ) +(defwidget volume [] + (eventbox + :onscroll "./scripts/set-volume.sh {} 1" + (box + :class "volume" + :valign "center" + (label + :class "icon" + :text " " + ) + (label + :text {volume} + ) + ) + ) + ) + (defwidget brightness [] (box :class "brightness" diff --git a/eww/bars/hypr/border/eww.css b/eww/bars/hypr/border/eww.css index a36921c..6973509 100644 --- a/eww/bars/hypr/border/eww.css +++ b/eww/bars/hypr/border/eww.css @@ -1,11 +1,11 @@ .border { border: solid rgba(0, 0, 0, 0); - border-width: 10px 10px 50px 10px; + border-width: 8px 8px 48px 8px; } .shadow { border-radius: 8px; box-shadow: - 0px 0px 0px 60px rgba(30, 30, 46, 0.7), + 0px 0px 0px 60px rgba(48, 52, 70, 0.7), /* <--- Border Color */ 1px 1px 5px 5px rgba(0, 0, 0, 0.3); } diff --git a/eww/bars/niri/bar.yuck b/eww/bars/niri/bar.yuck index 9eb3c55..6afca26 100644 --- a/eww/bars/niri/bar.yuck +++ b/eww/bars/niri/bar.yuck @@ -8,7 +8,7 @@ :stacking "fg" :exclusive true :focusable false - (bar :output "DP-3") + (bar :output "eDP-1") ) (defwindow niri-2 @@ -43,6 +43,7 @@ :icon-size 20 :space-evenly false ) + (battery) (box :orientation "v" :class "time" @@ -53,6 +54,21 @@ ) ) +(defwidget battery [] + (box + :class "battery" + :valign "center" + :orientation "v" + (label + :class "icon" + :text {battery_icon} + ) + (label + :text {EWW_BATTERY["BAT0"].capacity} + ) + ) + ) + (defwidget workspaces [output] (box :class "workspaces" diff --git a/eww/bars/niri/eww.css b/eww/bars/niri/eww.css index bf38960..735448d 100644 --- a/eww/bars/niri/eww.css +++ b/eww/bars/niri/eww.css @@ -29,6 +29,17 @@ padding: 8px 0px; } +.battery { + padding: 5px 0px; + margin-top: 8px; + background-color: rgb(166, 227, 161); + font-family: "Iosevka Term"; + font-weight: bold; + font-size: 15px; + color: #111; + border-radius: 999px; +} + /* System tray styling */ .background.popup { diff --git a/eww/data/system.yuck b/eww/data/system.yuck index b2385ad..5923bf6 100644 --- a/eww/data/system.yuck +++ b/eww/data/system.yuck @@ -14,7 +14,7 @@ :interval "10s" "scripts/battery.sh percent") -(defpoll volume - :interval "1s" - "pactl get-sink-volume @DEFAULT_SINK@ | grep -E -o '[1234567890]{1,3}%' | tr -d '%' | head -1" ) +(deflisten volume + "scripts/pipewire-volume.sh" ) + diff --git a/eww/eww.yuck b/eww/eww.yuck index 8472c57..eb9d32d 100755 --- a/eww/eww.yuck +++ b/eww/eww.yuck @@ -1,6 +1,6 @@ ; (include 'bars/i3/eww.yuck') ; (include 'cards/eww.yuck') -(include 'bars/hypr/eww.yuck') +; (include 'bars/hypr/eww.yuck') (include 'bars/niri/eww.yuck') (include 'data/music.yuck') (include 'data/system.yuck') diff --git a/eww/scripts/pipewire-volume.sh b/eww/scripts/pipewire-volume.sh new file mode 100755 index 0000000..9b8c25c --- /dev/null +++ b/eww/scripts/pipewire-volume.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# +# This script listens to changes to the default audio sink device, and returns the volume +# every time it changes +# +# https://stackoverflow.com/questions/77290990/swallow-input-from-a-monitoring-callback-while-processing-in-a-while-loop + + +DEVICE_ID=$(wpctl inspect @DEFAULT_AUDIO_SINK@ | awk -F"\"" "/device.id/{print \$2}") + +pw-mon -oa | awk "/id: $DEVICE_ID/{print; fflush()}" | while read; do + wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk "{print \$2 * 100}" +done diff --git a/eww/scripts/set-volume.sh b/eww/scripts/set-volume.sh index bdd876c..0f471c3 100755 --- a/eww/scripts/set-volume.sh +++ b/eww/scripts/set-volume.sh @@ -1,4 +1,4 @@ #!/bin/sh -[ $1 == "up" ] && pactl set-sink-volume @DEFAULT_SINK@ +$2% -[ $1 == "down" ] && pactl set-sink-volume @DEFAULT_SINK@ -$2% +[ $1 == "up" ] && wpctl set-volume @DEFAULT_AUDIO_SINK@ $2%+ +[ $1 == "down" ] && wpctl set-volume @DEFAULT_AUDIO_SINK@ $2%- diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 8086ba7..3a0cca2 100755 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -5,7 +5,7 @@ # $terminal = alacritty -$wallpaper = ~/Pictures/Wallpapers/video/cozy-room.1920x1080.mp4 +$wallpaper = ~/Pictures/Wallpapers/video/winter-2.3840x2160.mp4 # See https://wiki.hyprland.org/Configuring/Monitors/ source = ~/.config/hypr/monitors.conf @@ -26,10 +26,11 @@ exec-once = mpvpaper -o "loop=inf" eDP-1 $wallpaper # Wallpepr exec-once = eww open-many monitor-border hyprbar # bar exec-once = mako & # notification service exec-once = nm-applet --indicator & # network manager system tray +exec-once = tailscale systray & # tailscale system tray # Autostart applications exec-once = [workspace special] thunderbird -exec-once = vesktop --ozone-platform-hint=auto & +exec-once = vesktop --ozone-platform-hint=auto -m & # Some default env vars. env = XCURSOR_SIZE,24 @@ -50,12 +51,12 @@ input { general { # See https://wiki.hyprland.org/Configuring/Variables/ for more - gaps_in = 3 - gaps_out = 16 + gaps_in = 6 + gaps_out = 20,20,12,20 - border_size = 1 - col.active_border = rgba(585b7033) - col.inactive_border = rgba(1e1e2e33) + border_size = 0 + col.active_border = rgba(585b70ff) + col.inactive_border = rgba(1e1e2eff) resize_on_border = true extend_border_grab_area = 15 @@ -78,11 +79,13 @@ decoration { noise = 0 new_optimizations = true xray = false - ignore_opacity = true } shadow { - enabled = false + enabled = true + range = 12 + render_power = 5 + color = rgba(1e1e2eaa) } } @@ -124,53 +127,45 @@ misc { vfr = 1 } -# Eww layerrules -layerrule = ignorezero, gtk-layer-shell -layerrule = blur, gtk-layer-shell -layerrule = xray on, gtk-layer-shell +layerrule { + name = eww-border + no_anim = on + ignore_alpha = 0 + xray = on + blur = on + match:namespace = gtk-layer-shell +} -# Example windowrule v1 -# windowrule = float, ^(kitty)$ # Window Opacities -windowrule = opacity 0.7,class:Rofi-launcher -windowrule = opacity 0.8,class:Spotify -windowrule = opacity 0.8,class:discord -windowrule = opacity 0.8,class:vesktop -windowrule = opacity 0.8,class:mailspring -windowrule = opacity 0.8,class:todoist -windowrule = opacity 0.8,class:obsidian -windowrule = opacity 0.8,class:org.gnome.Nautilus -windowrule = opacity 0.8,class:Code -windowrule = opacity 0.8,class:neovide -windowrule = opacity 0.8,class:com.chatterino.chatterino -windowrule = opacity 0.8,class:thunderbird - -layerrule = blur,rofi # Rofi -# layerrule = dimaround,0x55ca657ecc40 # Rofi +windowrule = opacity 0.8,match:class org.mozilla.Thunderbird +layerrule = blur on,match:namespace rofi # Default Float -windowrule = float,class:blueman -windowrule = float,class:Calculator +windowrule = float 1,match:title Olympus +# windowrule = float,class:blueman +# windowrule = float,class:Calculator # Warning for xwayland windows -windowrule = bordersize 5, xwayland:1 -windowrule = bordercolor rgb(ff0000), xwayland:1 - -windowrule = workspace silent,class:vesktop +# windowrule = bordersize 5, xwayland:1 +# windowrule = bordercolor rgb(ff0000), xwayland:1 +# +# windowrule = workspace silent,class:vesktop -bindl =,switch:Lid Switch,exec,swaylock +# TODO: Reenable lid switch lock when swaylock is updated +# bindl =,switch:Lid Switch,exec,swaylock $mainMod = SUPER bind = $mainMod, RETURN, exec, $terminal -bind = ,Print, exec, grimblast copy area -bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, E, exec, rofi -show p -modi 'p:~/.config/rofi/rofi-power-menu-hypr --choices shutdown/reboot/suspend/logout', -# bind = $mainMod, PERIOD, exec, rofi -show emoji, -bind = $mainMod SHIFT, SPACE, togglefloating, -bind = $mainMod SHIFT, D, exec, ~/.config/eww/cards.sh toggle # cards toggle +bind = ,Print, exec, flameshot gui +bind = $mainMod, PERIOD, exec, rofi -show emoji, bind = $mainMod, D, exec, rofi -show drun +bind = $mainMod, A, exec, wayscriber --active # annotation tool + +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod, E, togglesplit, # dwindle bind = $mainMod, P, pseudo # dwindle bind = $mainMod, F, fullscreen # dwindle @@ -190,7 +185,6 @@ bind = $mainMod SHIFT, J, movewindow, d # Toggle between floating and tiled and psuedo windows bind = $mainMod, space, exec, $(hyprctl activewindow -j | jq '.floating') && hyprctl dispatch cyclenext tiled || hyprctl dispatch cyclenext floating - # Resize mode bind = $mainMod, r, submap, resize submap = resize @@ -244,10 +238,9 @@ bind = $mainMod SHIFT, T, movetoworkspace, special:special bindm = $mainMod, mouse:272, movewindow # Media Keys -bind=,XF86AudioLowerVolume,exec,pamixer -ud 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob -bind=,XF86AudioRaiseVolume,exec,pamixer -ui 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob -# mute sound -bind=,XF86AudioMute,exec,amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob +bind=,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_SINK@ 5%- +bind=,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_SINK@ 5%+ +bind=,XF86AudioMute,exec,wpctl set-mute @DEFAULT_SINK@ toggle bind=,XF86AudioPlay,exec, playerctl play-pause bind=,XF86AudioNext,exec, playerctl next diff --git a/rofi/catppuccin-mocha.rasi b/rofi/catppuccin-mocha.rasi index 38c0b80..55392aa 100755 --- a/rofi/catppuccin-mocha.rasi +++ b/rofi/catppuccin-mocha.rasi @@ -1,12 +1,14 @@ * { - bg-col: #1e1e2e; + bg-col: #1e1e2e88; bg-col-light: #1e1e2e; - border-col: #1e1e2e; - selected-col: #1e1e2e; + border-col: #585b7033; + // border-col: #1e1e2e; + selected-col: #1e1e2e55; blue: #89b4fa; fg-col: #cdd6f4; fg-col2: #f38ba8; grey: #6c7086; + none: #0000; width: 600; font: "JetBrainsMono Nerd Font 14"; @@ -19,18 +21,19 @@ element-text, element-icon , mode-switcher { window { height: 360px; - border: 3px; + border: 2px; + border-radius: 8px; border-color: @border-col; background-color: @bg-col; } mainbox { - background-color: @bg-col; + background-color: @none; } inputbar { children: [prompt,entry]; - background-color: @bg-col; + background-color: @none; border-radius: 5px; padding: 2px; } @@ -38,7 +41,7 @@ inputbar { prompt { background-color: @blue; padding: 6px; - text-color: @bg-col; + text-color: @bg-col-light; border-radius: 3px; margin: 20px 0px 0px 20px; } @@ -52,7 +55,7 @@ entry { padding: 6px; margin: 20px 0px 0px 10px; text-color: @fg-col; - background-color: @bg-col; + background-color: @none; } listview { @@ -61,12 +64,12 @@ listview { margin: 10px 0px 0px 20px; columns: 2; lines: 5; - background-color: @bg-col; + background-color: @none; } element { padding: 5px; - background-color: @bg-col; + background-color: @none; text-color: @fg-col ; } @@ -75,7 +78,7 @@ element-icon { } element selected { - background-color: @selected-col ; + background-color: @none ; text-color: @fg-col2 ; } @@ -85,19 +88,19 @@ mode-switcher { button { padding: 10px; - background-color: @bg-col-light; + background-color: @none; text-color: @grey; vertical-align: 0.5; horizontal-align: 0.5; } button selected { - background-color: @bg-col; + background-color: @selected-col; text-color: @blue; } message { - background-color: @bg-col-light; + background-color: @none; margin: 2px; padding: 2px; border-radius: 5px; @@ -107,5 +110,5 @@ textbox { padding: 6px; margin: 20px 0px 0px 20px; text-color: @blue; - background-color: @bg-col-light; + background-color: @none; } diff --git a/rofi/config.rasi b/rofi/config.rasi index ba89430..1103c0e 100755 --- a/rofi/config.rasi +++ b/rofi/config.rasi @@ -1,5 +1,5 @@ configuration{ - modi: "run,drun,window,emoji"; + modi: "run,drun,window"; icon-theme: "Tela-circle-dracula-dark"; show-icons: true; terminal: "alacritty";