From 993bd794f0885a317c8a95ae87a7c48489ceaa1c Mon Sep 17 00:00:00 2001 From: Fabio Lenherr / DashieTM Date: Fri, 25 Aug 2023 18:11:05 +0200 Subject: [PATCH] feat: Test ironbar --- eww_desktop/scripts/audio_control.sh | 85 ++++++++ eww_desktop/scripts/change-audio | 37 ---- eww_desktop/scripts/change-volume | 20 -- eww_desktop/scripts/firefox_control.sh | 5 - eww_desktop/scripts/ncspot_control.sh | 7 - eww_desktop/scripts/oxidash.sh | 9 + eww_desktop/scripts/workspace | 20 +- eww_laptop/scripts/change-volume | 6 +- hypr_desktop/hyprland.conf | 27 ++- ironbar/config.toml | 32 +++ ironbar/style.css | 131 ++++++++++++ ncspot/config.toml | 6 + nvim/lazy-lock.json | 48 ++--- nvim/lua/config/keymaps.lua | 4 +- nvim/lua/plugins/dap.lua | 74 +++++++ waybar/config | 150 +++++++++++++ waybar/style.css | 280 +++++++++++++++++++++++++ 17 files changed, 825 insertions(+), 116 deletions(-) create mode 100755 eww_desktop/scripts/audio_control.sh delete mode 100755 eww_desktop/scripts/change-audio delete mode 100755 eww_desktop/scripts/change-volume delete mode 100755 eww_desktop/scripts/firefox_control.sh delete mode 100755 eww_desktop/scripts/ncspot_control.sh create mode 100755 eww_desktop/scripts/oxidash.sh create mode 100644 ironbar/config.toml create mode 100644 ironbar/style.css create mode 100644 waybar/config create mode 100644 waybar/style.css diff --git a/eww_desktop/scripts/audio_control.sh b/eww_desktop/scripts/audio_control.sh new file mode 100755 index 0000000..0a4b8a4 --- /dev/null +++ b/eww_desktop/scripts/audio_control.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +ncspot() { + echo "$1" + echo "$2" + NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n') + CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n') + pactl set-sink-input-volume "$CHANGE" "$1" + VOLUME=$(pactl list sink-inputs | rg "$NUM" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%') + dunstify -a "ncspot" -r 990 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Spotify Volume: ${VOLUME}%" +} + +firefox() { + STRING=$(pactl list clients short | rg "firefox" | awk -F 'PipeWire' ' { print $1 "," } ' | tr -d ' \t\n') + # NUMS=',' read -r -a array <<< "$STRING" + readarray -td, NUMS <<<"$STRING" + declare -p NUMS + for index in "${!NUMS[@]}"; do #"${!array[@]}" + NUM=$(echo "${NUMS[index]}" | tr -d ' \t\n') + CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n') + pactl set-sink-input-volume "$CHANGE" "$1" + done + VOLUME=$(pactl list sink-inputs | rg "${NUMS[0]}" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%') + dunstify -a "Firefox" -r 991 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Firefox Volume: ${VOLUME}%" +} + +internal() { + SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }') + if [ "$SPEAKER" != "" ]; then + pactl set-default-sink "$SPEAKER" + pactl set-sink-mute "$SPEAKER" false + DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ') + notify-send "changed audio to "$DEVICE" " + else + notify-send "failed, not available!" + fi +} + +set_volume_sink() { + pactl set-sink-volume @DEFAULT_SINK@ "$1" + CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %') + # dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Output Volume: ${CURRENT}%" + dunstify -a "System Volume" -r 993 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Output Volume: ${CURRENT}%" +} + +set_volume_source() { + pactl set-source-volume @DEFAULT_SOURCE@ "$1" + CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %') + # dunstify -a "changeMicVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Input Volume: ${CURRENT}%" + dunstify -a "System Volume" -r 993 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Input Volume: ${CURRENT}%" +} + +bluetooth() { + SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }') + if [ "$SPEAKER" != "" ]; then + pactl set-default-sink "$SPEAKER" + pactl set-sink-mute "$SPEAKER" false + DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ') + notify-send "changed audio to "$DEVICE" " + else + notify-send "failed, not available!" + fi +} + +mute() { + pactl set-sink-mute @DEFAULT_SINK@ toggle + MUTE=$(pactl get-sink-mute @DEFAULT_SINK@) + dunstify -a "Audio" -r 994 -u low -i audio-volume-high "Audio: $MUTE" +} + +if [ "$1" == "internal" ]; then + internal +elif [ "$1" == "bluetooth" ]; then + bluetooth +elif [ "$1" == "firefox" ]; then + firefox "$2" +elif [ "$1" == "ncspot" ]; then + ncspot "$2" +elif [ "$1" == "mute" ]; then + mute +elif [ "$1" == "sink" ]; then + set_volume_sink "$2" +elif [ "$1" == "source" ]; then + set_volume_source "$2" +fi diff --git a/eww_desktop/scripts/change-audio b/eww_desktop/scripts/change-audio deleted file mode 100755 index a003eb0..0000000 --- a/eww_desktop/scripts/change-audio +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/bash - -internal() { - SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }') - if [ "$SPEAKER" != "" ]; then - pactl set-default-sink "$SPEAKER" - pactl set-sink-mute "$SPEAKER" false - DEVICE=$( echo "$SPEAKER" | awk -F '.' ' { print $4 } ') - notify-send "changed audio to "$DEVICE" " - else - notify-send "failed, not available!" - fi -} - -bluetooth() { - SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }') - if [ "$SPEAKER" != "" ]; then - pactl set-default-sink "$SPEAKER" - pactl set-sink-mute "$SPEAKER" false - DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ') - notify-send "changed audio to "$DEVICE" " - else - notify-send "failed, not available!" - fi -} - - -if [ "$1" == "internal" ]; then - internal -elif [ "$1" == "bluetooth" ]; then - bluetooth -else - SPEAKER=$(pactl info | grep "Default Sink" | awk -F ': ' ' { print $2 } ') - pactl set-sink-mute "$SPEAKER" false -fi - - diff --git a/eww_desktop/scripts/change-volume b/eww_desktop/scripts/change-volume deleted file mode 100755 index 094ed43..0000000 --- a/eww_desktop/scripts/change-volume +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/bash - -set_volume_sink() { -pactl set-sink-volume @DEFAULT_SINK@ "$1" -CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %') -dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Output Volume: ${CURRENT}%" -} - -set_volume_source() { -pactl set-source-volume @DEFAULT_SOURCE@ "$1" -CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %') -dunstify -a "changeMicVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Input Volume: ${CURRENT}%" -} - - -if [ "$1" == "sink" ]; then - set_volume_sink "$2" -elif [ "$1" == "source" ]; then - set_volume_source "$2" -fi diff --git a/eww_desktop/scripts/firefox_control.sh b/eww_desktop/scripts/firefox_control.sh deleted file mode 100755 index 32d818e..0000000 --- a/eww_desktop/scripts/firefox_control.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/bash - -NUM=$(pactl list clients short | grep "firefox" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n') -CLIENT=$(pactl list sink-inputs short | grep "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n') -pactl set-sink-input-volume "$CLIENT" "$1" diff --git a/eww_desktop/scripts/ncspot_control.sh b/eww_desktop/scripts/ncspot_control.sh deleted file mode 100755 index d2025fd..0000000 --- a/eww_desktop/scripts/ncspot_control.sh +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/bash - -NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n') -CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n') -pactl set-sink-input-volume "$CHANGE" "$1" -VOLUME=$(pactl list sink-inputs | rg "$NUM" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%') -dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$VOLUME" "Spotify Volume: ${VOLUME}%" diff --git a/eww_desktop/scripts/oxidash.sh b/eww_desktop/scripts/oxidash.sh new file mode 100755 index 0000000..79af23e --- /dev/null +++ b/eww_desktop/scripts/oxidash.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +ID=$(pgrep oxidash-gtk) + +if [ "$ID" != "" ]; then + killall oxidash-gtk +else + oxidash-gtk +fi diff --git a/eww_desktop/scripts/workspace b/eww_desktop/scripts/workspace index a42ec58..3ea7097 100755 --- a/eww_desktop/scripts/workspace +++ b/eww_desktop/scripts/workspace @@ -25,16 +25,16 @@ o9=$(hyprctl workspaces | grep "$ws9" ) o0=$(hyprctl workspaces | grep "$ws0" ) # check if Focused -f1=$(hyprctl monitors | grep "workspace: 1 " -A 4 | grep "focused: yes" ) -f2=$(hyprctl monitors | grep "workspace: 2 " -A 4 | grep "focused: yes" ) -f3=$(hyprctl monitors | grep "workspace: 3 " -A 4 | grep "focused: yes" ) -f4=$(hyprctl monitors | grep "workspace: 4 " -A 4 | grep "focused: yes" ) -f5=$(hyprctl monitors | grep "workspace: 5 " -A 4 | grep "focused: yes" ) -f6=$(hyprctl monitors | grep "workspace: 6 " -A 4 | grep "focused: yes" ) -f7=$(hyprctl monitors | grep "workspace: 7 " -A 4 | grep "focused: yes" ) -f8=$(hyprctl monitors | grep "workspace: 8 " -A 4 | grep "focused: yes" ) -f9=$(hyprctl monitors | grep "workspace: 9 " -A 4 | grep "focused: yes" ) -f0=$(hyprctl monitors | grep "workspace: 10" -A 4 | grep "focused: yes" ) +f1=$(hyprctl monitors | grep "workspace: 1 " -A 5 | grep "focused: yes" ) +f2=$(hyprctl monitors | grep "workspace: 2 " -A 5 | grep "focused: yes" ) +f3=$(hyprctl monitors | grep "workspace: 3 " -A 5 | grep "focused: yes" ) +f4=$(hyprctl monitors | grep "workspace: 4 " -A 5 | grep "focused: yes" ) +f5=$(hyprctl monitors | grep "workspace: 5 " -A 5 | grep "focused: yes" ) +f6=$(hyprctl monitors | grep "workspace: 6 " -A 5 | grep "focused: yes" ) +f7=$(hyprctl monitors | grep "workspace: 7 " -A 5 | grep "focused: yes" ) +f8=$(hyprctl monitors | grep "workspace: 8 " -A 5 | grep "focused: yes" ) +f9=$(hyprctl monitors | grep "workspace: 9 " -A 5 | grep "focused: yes" ) +f0=$(hyprctl monitors | grep "workspace: 10" -A 5 | grep "focused: yes" ) if [ "$o1" != "" ]; then ic_1="①" diff --git a/eww_laptop/scripts/change-volume b/eww_laptop/scripts/change-volume index 094ed43..6fd1ed0 100755 --- a/eww_laptop/scripts/change-volume +++ b/eww_laptop/scripts/change-volume @@ -3,13 +3,15 @@ set_volume_sink() { pactl set-sink-volume @DEFAULT_SINK@ "$1" CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %') -dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Output Volume: ${CURRENT}%" +# dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Output Volume: ${CURRENT}%" +dunstify -a "System Volume" -r 3 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Output Volume: ${CURRENT}%" } set_volume_source() { pactl set-source-volume @DEFAULT_SOURCE@ "$1" CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %') -dunstify -a "changeMicVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Input Volume: ${CURRENT}%" +# dunstify -a "changeMicVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Input Volume: ${CURRENT}%" +dunstify -a "System Volume" -r 3 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Input Volume: ${CURRENT}%" } diff --git a/hypr_desktop/hyprland.conf b/hypr_desktop/hyprland.conf index 9329739..bf95cd2 100644 --- a/hypr_desktop/hyprland.conf +++ b/hypr_desktop/hyprland.conf @@ -17,6 +17,7 @@ workspace=DP-3,1 workspace=DP-1,2 workspace=DP-2,3 + input { kb_file= kb_layout=diaeresis @@ -51,12 +52,15 @@ general { decoration { rounding=4 + blur { + # enabled=false + } } animations { enabled=1 - animation=windowsMove,1,5,default - animation=windows,1,7,default + # animation=windowsMove,1,4,default + animation=windows,1,7,default,popin 70% animation=border,1,10,default animation=fade,1,10,default animation=workspaces,1,6,default @@ -66,6 +70,7 @@ dwindle { preserve_split=true pseudotile=0 # enable pseudotiling on dwindle permanent_direction_override=false + # smart_resizing=true } gestures { @@ -77,11 +82,10 @@ misc { vfr=true vrr = 1 animate_manual_resizes=1 - animate_mouse_windowdragging=0 enable_swallow=true swallow_regex=^(.*)(kitty)(.*)$ layers_hog_keyboard_focus=false - animate_mouse_windowdragging=true + # animate_mouse_windowdragging=true # swallow_exception_regex = ^(?:(?:^|\s)([a-zA-Z0-9]+\b)+(?:$|[^\w\s]))$ } @@ -102,7 +106,7 @@ windowrule=center,^(.*)(gnome)(.*)$ windowrule=forceinput,^(.*)(ota)(.*)$ windowrule=size 1200 800,^(org.gnome.NautilusPreviewer)$ windowrule=center,^(.*)(swappy)(.*)$ -windowrule=opacity 80,^(.*)(dunst)(.*)$ +# windowrule=opacity 80,^(.*)(dunst)(.*)$ windowrule=float,title:^(.*)(Spirit)(.*)$ #windowrule=tile,xyz #windowrule=float,abc @@ -116,10 +120,10 @@ bind=SUPERSHIFT,S,exec,grim -g "$(slurp)" - | swappy -f - bind=SUPER,F,exec,firefox bind=SUPER,T,exec,kitty -1 bind=SUPER,Q,killactive, -bind=SUPERSHIFT,M,exit, +bind=SUPERSHIFTALT,M,exit, bind=SUPER,E,exec,nautilus --new-window bind=SUPER,N,exec,neovide --novsync -bind=SUPER,M,exec,oxidash-gtk +bind=SUPER,M,exec,oxidash --css /home/dashie/gits/oxidash-gtk/style.css bind=SUPER,V,togglefloating, bind=SUPER,B,fullscreen, bind=SUPER,R,exec,anyrun @@ -199,6 +203,9 @@ bindm=SUPER,mouse:273,resizewindow #binds for debug testing +debug { + # overlay=true + } # bind=SUPERALT,H,pass,^(wlroots)$ # bind=SUPERALT,J,pass,^(wlroots)$ # @@ -213,8 +220,9 @@ bindm=SUPER,mouse:273,resizewindow #exec=~/Documents/scripts/hyprstart.sh #exec=hyprstart.sh exec-once=hyprpaper -exec-once=eww daemon -exec-once=eww open bar +# exec-once=eww daemon +# exec-once=eww open bar +exec-once=ironbar exec-once=element-desktop exec-once=firefox exec-once=streamdeck -n @@ -222,4 +230,5 @@ exec-once=copyq --start-server exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once= easyeffects --gapplication-service exec-once=nextcloud --background +exec-once=oxinoti --css /home/dashie/gits/oxinoti/style.css # plugin=/home/dashie/gits/hy3/build/libhy3.so diff --git a/ironbar/config.toml b/ironbar/config.toml new file mode 100644 index 0000000..817ed41 --- /dev/null +++ b/ironbar/config.toml @@ -0,0 +1,32 @@ +[monitors.DP-1] +end = [ + { type = "sys_info", format = [ + " {memory_percent}", + ], interval.memory = 30, class = "memory-usage" }, + { type = "custom", bar = [ + { type = "button", class = "popup-button", label = "", on_click = "popup:toggle" }, + ], class = "popup-button-box", popup = [ + { type = "box", orientation = "vertical", class = "audio-box", widgets = [ + { type = "box", orientation = "horizontal", widgets = [ + { type = "button", class = "audio-button", label = "", on_click = "!/home/dashie/.config/eww/scripts/audio_control.sh bluetooth" }, + { type = "button", class = "audio-button", label = "󰋋", on_click = "!/home/dashie/.config/eww/scripts/audio_control.sh internal" }, + ], class = "audio-button-box" }, + { type = "label", label = "Output" }, + { type = "slider", class = "audio-slider", step = 1.0, length = 200, value = "pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %'", on_change = "!pactl set-sink-volume @DEFAULT_SINK@ $0%" }, + { type = "label", label = "Input" }, + { type = "slider", class = "audio-slider", step = 1.0, length = 200, value = "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'", on_change = "!pactl set-source-volume @DEFAULT_SOURCE@ $0%" }, + ] }, + ] }, + { type = "custom", bar = [ + { type = "button", class = "popup-button", label = "", on_click = "!oxidash --css /home/dashie/gits/oxidash/style.css" }, + ], class = "popup-button-box" }, + { type = "clock", format = "%I:%M", format_popup = "%I:%M:%S", locale = "en_US" }, + { type = "tray" }, +] +position = "top" +height = 10 +anchor_to_edges = true +start = [{ type = "workspaces", all_monitors = true }] +center = [ + { type = "focused", show_icon = true, show_title = true, icon_size = 20, truncate = "end" }, +] diff --git a/ironbar/style.css b/ironbar/style.css new file mode 100644 index 0000000..44b4635 --- /dev/null +++ b/ironbar/style.css @@ -0,0 +1,131 @@ +@import url("/home/dashie/.config/gtk-3.0/gtk.css"); + +* { + color: #71bbe6; + padding: 0px; + margin: 0px; +} + +.background { + background-color: rgba(0, 0, 0, 0); +} + +.workspaces { + margin: 2px 0px 0px 5px; + border-radius: 10px; + /* background-color: #2b2c3b; */ + background-color: #1a1b26; + padding: 2px 5px 2px 5px; +} + +.workspaces .item { + margin: 0px 3px 0px 3px; + font-size: 13px; + border-radius: 100%; + padding: 0px 2px 0px 3px; + background-color: rgba(0, 0, 0, 0); +} + +.workspaces .item:hover { + background-color: #3e4152; +} + +.workspaces .item.focused { + background-color: #3e4152; +} + +.audio-box { + padding: 2em; + background-color: #1a1b26; + border-radius: 5px; +} + +.audio-slider { + padding: 5px; + margin: 5px; +} + +.audio-button { + padding: 5px 10px 5px 10px; + margin: 0px 1em 20px 1em; + border-radius: 100%; + font-size: 17px; +} + +.audio-button-box { + padding: 0px 2.5em 0px 2.5em; +} + +.focused { + /* margin: 2px 0px 0px 0px; */ + padding: 0px 5px 0px 5px; + background-color: #1a1b26; + font-size: 17px; + border-radius: 10px; +} + +#bar #end { + margin: 0px 5px 0px 0px; + padding: 0px 5px 0px 5px; + background-color: #1a1b26; + border-radius: 10px; +} + +.popup-button { + padding: 0px 5px 0px 3px; + margin: 0em 3px; + border-radius: 100%; + font-size: 13px; + background-color: #1a1b26; +} + +.popup-button-box { + padding: 2px 0px 2px 0px; +} + +.clock { + padding: 0px 5px 0px 5px; + font-size: 17px; + background-color: #1a1b26; +} + +.clock:hover { + background-color: #3e4152; +} + +.custom button { + background-color: #1a1b26; +} + +.custom button:hover { + background-color: #3e4152; +} + +.memory-usage { + font-size: 15px; + margin: 0px 5px 0px 0px; +} + +.memory-usage:hover { + background-color: #3e4152; +} + +.popup-clock { + background-color: #1a1b26; + border-radius: 5px; + padding: 2px 8px 10px 8px; +} + +.popup-clock .calendar-clock { + font-size: 2.5em; + padding-bottom: 0.1em; +} + +.popup-clock .calendar { + border-radius: 5px; + font-size: 1.05em; +} + +.popup-clock .calendar:selected { + background-color: #3e4152; +} diff --git a/ncspot/config.toml b/ncspot/config.toml index 535ee7e..bd51932 100644 --- a/ncspot/config.toml +++ b/ncspot/config.toml @@ -2,6 +2,8 @@ notify = true shuffle = true cover_max_scale = 2 audio_cache_size = 50000 +initial_screen = "library" +library_tabs = ["playlists"] [theme] background = "#1a1b26" primary = "#c0caf5" @@ -26,3 +28,7 @@ search_match = "#bb9af7" "k" = "move down 1" "l" = "move up 1" ";" = "move right 1" + +[notification_format] +title = "%artists" +body = "%title" diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 509b2d8..5b3e368 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,60 +1,60 @@ { "LazyVim": { "branch": "main", "commit": "aa1cccf230a01bd85d5173f7d87f782fd83caa88" }, - "LuaSnip": { "branch": "master", "commit": "99a94cc35ec99bf06263d0346128e908a204575c" }, - "alpha-nvim": { "branch": "main", "commit": "e4fc5e29b731bdf55d204c5c6a11dc3be70f3b65" }, + "LuaSnip": { "branch": "master", "commit": "c4d6298347f7707e9757351b2ee03d0c00da5c20" }, + "alpha-nvim": { "branch": "main", "commit": "7a6b9487dba044a43fde534bf5036f0fda5b6b23" }, "bufferline.nvim": { "branch": "main", "commit": "417b303328118b6d836ae330142e88771c48a8a3" }, - "catppuccin": { "branch": "main", "commit": "490078b1593c6609e6a50ad5001e7902ea601824" }, + "catppuccin": { "branch": "main", "commit": "b573866ef64122119668f375ebb794bcb3b518e2" }, "cmp-async-path": { "branch": "main", "commit": "d8229a93d7b71f22c66ca35ac9e6c6cd850ec61d" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, "crates.nvim": { "branch": "main", "commit": "d5caf28aba49e81ac4099426231f3cf3c151013a" }, - "dressing.nvim": { "branch": "master", "commit": "169877dbcae54b23b464b219e053e92854bbb37f" }, + "dressing.nvim": { "branch": "master", "commit": "ee571505f3566f84fd252e76c4ce6df6eaf2fb94" }, "editorconfig.nvim": { "branch": "master", "commit": "5b9e303e1d6f7abfe616ce4cc8d3fffc554790bf" }, "flash.nvim": { "branch": "main", "commit": "967117690bd677cb7b6a87f0bc0077d2c0be3a27" }, - "friendly-snippets": { "branch": "main", "commit": "bc38057e513458cb2486b6cd82d365fa294ee398" }, - "git-blame.nvim": { "branch": "master", "commit": "93d983806a0c76692bebd6f804c8eaa2a3844452" }, - "gitsigns.nvim": { "branch": "main", "commit": "bae45ef449d8811061cc940459e70e883a3aa83a" }, + "friendly-snippets": { "branch": "main", "commit": "377d45475b49e37460a902d6d569d2093d4037d0" }, + "git-blame.nvim": { "branch": "master", "commit": "41e22dc843c6821a410db57be0b7025154f9d8ec" }, + "gitsigns.nvim": { "branch": "main", "commit": "749267aaa863c30d721c9913699c5d94e0c07dd3" }, "harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" }, - "indent-blankline.nvim": { "branch": "master", "commit": "4541d690816cb99a7fc248f1486aa87f3abce91c" }, + "indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" }, "instant.nvim": { "branch": "master", "commit": "294b6d08143b3db8f9db7f606829270149e1a786" }, "lazy.nvim": { "branch": "main", "commit": "3ad55ae678876516156cca2f361c51f7952a924b" }, "lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" }, "lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" }, "markdown-preview.nvim": { "branch": "master", "commit": "02cc3874738bc0f86e4b91f09b8a0ac88aef8e96" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "e86a4c84ff35240639643ffed56ee1c4d55f538e" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "2997f467881ac4faa6f8c5e7065e3a672297c8ad" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "6148b51db945b55b3b725da39eaea6441e59dff8" }, - "mason.nvim": { "branch": "main", "commit": "74eac861b013786bf231b204b4ba9a7d380f4bd9" }, - "mini.ai": { "branch": "main", "commit": "5218ea75e635df78a807bc9d5a7162594fb76d02" }, + "mason.nvim": { "branch": "main", "commit": "a51c2d063c5377ee9e58c5f9cda7c7436787be72" }, + "mini.ai": { "branch": "main", "commit": "7ae226f331885e6f30e9a8229e113debc59308ae" }, "mini.bufremove": { "branch": "main", "commit": "7821606e35c1ac931b56d8e3155f45ffe76ee7e5" }, "mini.comment": { "branch": "main", "commit": "877acea5b2a32ff55f808fc0ebe9aa898648318c" }, "mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" }, "mini.pairs": { "branch": "main", "commit": "dfa9f6e2576bb8853be277d96b735af59d9be7c2" }, "mini.surround": { "branch": "main", "commit": "9d1956b576d7051da3a483b251dfc778121c60db" }, "neoconf.nvim": { "branch": "main", "commit": "08f146d53e075055500dca35e93281faff95716b" }, - "neodev.nvim": { "branch": "main", "commit": "9a5c0f0de5c15fba52d4fb83d425d3f4fa7abfa1" }, + "neodev.nvim": { "branch": "main", "commit": "c05273b0833021fee8069ea4258fc5ea327596ac" }, "neoscroll.nvim": { "branch": "master", "commit": "4bc0212e9f2a7bc7fe7a6bceb15b33e39f0f41fb" }, "nui.nvim": { "branch": "main", "commit": "9e3916e784660f55f47daa6f26053ad044db5d6a" }, "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, "nvim-cmp": { "branch": "main", "commit": "51f1e11a89ec701221877532ee1a23557d291dd5" }, - "nvim-dap": { "branch": "master", "commit": "1c63f37f95cd4fb54512898168138d9a75d1516a" }, + "nvim-dap": { "branch": "master", "commit": "897c433ff2fbcf6f71a57bf18460d810e173d1e0" }, "nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "57f1dbd0458dd84a286b27768c142e1567f3ce3b" }, "nvim-highlight-colors": { "branch": "main", "commit": "231547093a788b925b8fc36351ad422701c3a8c8" }, "nvim-jdtls": { "branch": "master", "commit": "095dc490f362adc85be66dc14bd9665ddd94413b" }, - "nvim-lspconfig": { "branch": "master", "commit": "a981d4447b92c54a4d464eb1a76b799bc3f9a771" }, + "nvim-lspconfig": { "branch": "master", "commit": "93c6826b16217eaef568ca5c224ea5d0c12bbb82" }, "nvim-navic": { "branch": "master", "commit": "9c89730da6a05acfeb6a197e212dfadf5aa60ca0" }, - "nvim-spectre": { "branch": "master", "commit": "5b39919a2947b1266b3aa34d0b0b14c35523bc69" }, - "nvim-tree.lua": { "branch": "master", "commit": "904f95cd9db31d1800998fa428e78e418a50181d" }, - "nvim-treesitter": { "branch": "master", "commit": "63260da18bf273c76b8e2ea0db84eb901cab49ce" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "9e519b6146512c8e2e702faf8ac48420f4f5deec" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "e9062e2dfb9854e6a927370f2d720de354c88524" }, - "nvim-web-devicons": { "branch": "master", "commit": "ab899311f8ae00a47eae8e0879506cead8eb1561" }, + "nvim-spectre": { "branch": "master", "commit": "eb17a856a6f17e03d8d610cbc00cd9f2f39e3fd7" }, + "nvim-tree.lua": { "branch": "master", "commit": "920868dba13466586897a8f40220eca6b2caac41" }, + "nvim-treesitter": { "branch": "master", "commit": "2ee71c1a2fa74c10692be10ae420ff0c3a02eb3c" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "56272167a6dead91c47c02dbdbfe1ae5643c59f5" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "9bff161dfece6ecf3459e6e46ca42e49f9ed939f" }, + "nvim-web-devicons": { "branch": "master", "commit": "cfc8824cc1db316a276b36517f093baccb8e799a" }, "persistence.nvim": { "branch": "main", "commit": "4b8051c01f696d8849a5cb8afa9767be8db16e40" }, "plenary.nvim": { "branch": "master", "commit": "267282a9ce242bbb0c5dc31445b6d353bed978bb" }, "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "65565c62963579897d28390dbd1ba8fb15ba545f" }, - "telescope-file-browser.nvim": { "branch": "master", "commit": "6fe423eea6604c2fcbb906ff5f7e27f748a6ed87" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "ad7b637c72549713b9aaed7c4f9c79c62bcbdff0" }, "telescope-project.nvim": { "branch": "master", "commit": "7c64b181dd4e72deddcf6f319e3bf1e95b2a2f30" }, "telescope-zoxide": { "branch": "main", "commit": "68966349aa1b8e9ade403e18479ecf79447389a7" }, "telescope.nvim": { "branch": "master", "commit": "2d92125620417fbea82ec30303823e3cd69e90e8" }, @@ -62,10 +62,10 @@ "toggleterm.nvim": { "branch": "main", "commit": "12cba0a1967b4f3f31903484dec72a6100dcf515" }, "tokyonight.nvim": { "branch": "main", "commit": "1ee11019f8a81dac989ae1db1a013e3d582e2033" }, "trouble.nvim": { "branch": "main", "commit": "40aad004f53ae1d1ba91bcc5c29d59f07c5f01d3" }, - "typst.vim": { "branch": "main", "commit": "6a99324a138c2da69589a8ab2e49375774e43d77" }, - "vim-illuminate": { "branch": "master", "commit": "5ed17582a8e97bf0a0c617c3cf762e98f87b9859" }, + "typst.vim": { "branch": "main", "commit": "97f21818cb8d3d5ed6bb4b672ddb5af975aab71a" }, + "vim-illuminate": { "branch": "master", "commit": "76f28e858f1caae87bfa45fb4fd09e4b053fc45b" }, "vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" }, "vim-visual-multi": { "branch": "master", "commit": "724bd53adfbaf32e129b001658b45d4c5c29ca1a" }, - "vimtex": { "branch": "master", "commit": "877de3ba5de5f766e5bfa1c3fb0d2ecfcd18f868" }, + "vimtex": { "branch": "master", "commit": "534fd725f2475a9083b032e402c7e73b8a3fc6bb" }, "which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" } } \ No newline at end of file diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index 288bf24..3342b9b 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -28,8 +28,8 @@ map("n", "db", ':lua require("dap").toggle_breakpoint()', { desc = " map("n", "do", ':lua require("dap").step_over()', { desc = "Step over" }) map("n", "di", ':lua require("dap").step_into()', { desc = "Step into" }) map("n", "dc", ':lua require("dap").continue()', { desc = "Continue" }) -map("n", "dt", ':lua require("dapui").toggle() :lua require("dap").continue() ', { desc = "Open DAP" }) -map("n", "dq", ':lua require("dap").close() :lua require("dapui").toggle()', { desc = "Close DAP" }) +map("n", "dt", ':lua require("dap").continue() :lua require("dapui").toggle()', { desc = "Open DAP" }) +map("n", "dq", ':lua require("dapui").toggle() :lua require("dap").close()', { desc = "Close DAP" }) -- file tree map("n", "", function() diff --git a/nvim/lua/plugins/dap.lua b/nvim/lua/plugins/dap.lua index 547df7b..10cf38d 100644 --- a/nvim/lua/plugins/dap.lua +++ b/nvim/lua/plugins/dap.lua @@ -1,4 +1,78 @@ return { + { + "rcarriga/nvim-dap-ui", + keys = { + { + "du", + function() + require("dapui").toggle() + end, + silent = true, + }, + }, + opts = { + icons = { expanded = "∩â¥", collapsed = "∩âÜ", circular = "∩äÉ" }, + mappings = { + expand = { "", "<2-LeftMouse>" }, + open = "o", + remove = "d", + edit = "e", + repl = "r", + toggle = "t", + }, + layouts = { + { + elements = { + { id = "repl", size = 0.30 }, + { id = "console", size = 0.70 }, + }, + size = 0.19, + position = "bottom", + }, + { + elements = { + { id = "scopes", size = 0.30 }, + { id = "breakpoints", size = 0.20 }, + { id = "stacks", size = 0.10 }, + { id = "watches", size = 0.30 }, + }, + size = 0.20, + position = "right", + }, + }, + controls = { + enabled = true, + element = "repl", + icons = { + pause = "", + play = "ε½ô", + step_into = "ε½ö", + step_over = "ε½û ", + step_out = "ε½ò", + step_back = "ε«Å ", + run_last = "ε¼╖ ", + terminate = "ε½ù ", + }, + }, + floating = { + max_height = 0.9, + max_width = 0.5, + border = vim.g.border_chars, + mappings = { + close = { "q", "" }, + }, + }, + }, + config = function(_, opts) + local icons = require("core.icons").dap + for name, sign in pairs(icons) do + ---@diagnostic disable-next-line: cast-local-type + sign = type(sign) == "table" and sign or { sign } + vim.fn.sign_define("Dap" .. name, { text = sign[1] }) + end + require("dapui").setup(opts) + end, + }, { "mfussenegger/nvim-dap", lazy = true, diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..bb75512 --- /dev/null +++ b/waybar/config @@ -0,0 +1,150 @@ +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["wlr/workspaces"], + "modules-center": ["hyprland/window"], + "modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "clock", "tray"], + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + //"format": "{icon}", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + } + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..9c9b888 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,280 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; +} + +window#waybar { + background-color: rgba(0, 0 , 0, 0); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#workspaces button.focused { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 10px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0 4px; + background-color: rgba(23,124,1,100); +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #64727D; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #2ecc71; + color: #000000; +} + +#memory { + background-color: #9b59b6; +} + +#disk { + background-color: #964B00; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + background-color: #2980b9; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + background-color: #f1c40f; + color: #000000; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#wireplumber { + background-color: #fff0f5; + color: #000000; +} + +#wireplumber.muted { + background-color: #f53c3c; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f0932b; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#tray { + background-color: #2980b9; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad.empty { + background-color: transparent; +}