diff --git a/.dotter/almighty.toml b/.dotter/almighty.toml deleted file mode 100644 index 5d48e73..0000000 --- a/.dotter/almighty.toml +++ /dev/null @@ -1,8 +0,0 @@ -packages = ["cli", "dev", "mise", "hyprland"] - -[files] - -[variables] -nvim-core = true -nvim-base = true -nvim-ide = true diff --git a/.dotter/global.toml b/.dotter/global.toml index 449e52c..16cade7 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -76,7 +76,6 @@ cargo.packages = [] "config/mako" = "~/.config/mako" "config/swappy" = "~/.config/swappy" "config/waybar" = "~/.config/waybar/" -"config/ironbar" = { target = "~/.config/ironbar/", type = "symbolic" } [hyprland] depends = ["wm"] diff --git a/.dotter/pre_deploy.sh b/.dotter/pre_deploy.sh old mode 100755 new mode 100644 index 42bf8d6..92715f8 --- a/.dotter/pre_deploy.sh +++ b/.dotter/pre_deploy.sh @@ -2,7 +2,7 @@ # shellcheck disable=all # This is a handlerbars template, so ignore issues -set -xeuo pipefail +set -euo pipefail checksum_file=".dotter/cache/pre_deploy.checksum" diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index ae8f72d..5ffe76d 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -1,3 +1,5 @@ + +# ╭────────────────────────────────────────────────────────────────────╮ # _ _ _ _ # | | | |_ _ _ __ _ __| | __ _ _ __ __| | # | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` | @@ -13,7 +15,7 @@ # ╰──────────────────────────────────────────────────────────╯ # Execute your favorite apps at launch -exec-once = pipewire & ironbar & hyprpaper & mako +exec-once = waybar & hyprpaper & mako # ╭──────────────────────────────────────────────────────────╮ # │ Config │ @@ -104,8 +106,7 @@ master { $mainMod = SUPER -# $menu = bemenu-run -iwn --binding vim --vim-esc-exits --scrollbar autohide --fixed-height --counter always -l 20 -P '>' -p 'Open:' -B 2 -R 5 --cw '5x' --fn 'JetBrainsMono 13' --bdr '##$tealAlpha' --ab '##$baseAlpha' --af '##$textAlpha' --fb '##$baseAlpha' --ff '##$textAlpha' --cf '##$mauveAlpha' --hb '##$surface0Alpha' --hf '##$tealAlpha' --nb '##$baseAlpha' --nf '##$textAlpha' --tb '##$mauveAlpha' --tf '##$baseAlpha' --scb '##$surface0Alpha' --scf '##$mauveAlpha' -$menu = rofi -show drun +$menu = bemenu-run -iwn --binding vim --vim-esc-exits --scrollbar autohide --fixed-height --counter always -l 20 -P '>' -p 'Open:' -B 2 -R 5 --cw '5x' --fn 'JetBrainsMono 13' --bdr '##$tealAlpha' --ab '##$baseAlpha' --af '##$textAlpha' --fb '##$baseAlpha' --ff '##$textAlpha' --cf '##$mauveAlpha' --hb '##$surface0Alpha' --hf '##$tealAlpha' --nb '##$baseAlpha' --nf '##$textAlpha' --tb '##$mauveAlpha' --tf '##$baseAlpha' --scb '##$surface0Alpha' --scf '##$mauveAlpha' # ── Spawn ───────────────────────────────────────────────────────────── bind = $mainMod SHIFT, E, exit, @@ -120,15 +121,15 @@ bind = $mainMod SHIFT, Print, exec, grim -g "$(slurp -d)" - | wl-copy # screenshot area and edit it bind = $mainMod CTRL, Print, exec, grim -g "$(slurp -d)" - | swappy -f - -bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ -bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- -bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -bind = , XF86AudioPlay, exec, playerctl play-pause -bind = , XF86AudioNext, exec, playerctl next -bind = , XF86AudioPrev, exec, playerctl previous -bind = , XF86MonBrightnessUp, exec, brightnessctl set +5% -bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%- +bind = $mainMod, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = $mainMod, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- +bind = $mainMod, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bind = $mainMod, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bind = $mainMod, XF86AudioPlay, exec, playerctl play-pause +bind = $mainMod, XF86AudioNext, exec, playerctl next +bind = $mainMod, XF86AudioPrev, exec, playerctl previous +bind = $mainMod, XF86MonBrightnessUp, exec, brightnessctl set +5% +bind = $mainMod, XF86MonBrightnessDown, exec, brightnessctl set 5%- # ── Window Options ──────────────────────────────────────────────────── bind = $mainMod SHIFT, space, togglefloating, diff --git a/config/waybar/config b/config/waybar/config index 700eac6..ab5596c 100644 --- a/config/waybar/config +++ b/config/waybar/config @@ -1,128 +1,147 @@ { - "layer":"top", - "position":"top", - "reload_style_on_change":true, - - "height":20, - "margin-bottom":5, - "margin-left": 5, - "margin-right":5, - - "modules-left":["hyprland/workspaces"], - "modules-center":["clock"], - "modules-right":[ - "custom/notification", - "idle_inhibitor", - "network", - "bluetooth", - "backlight", - "wireplumber", - "clock#time", - "battery", - "custom/power" - ], - - "hyprland/workspaces": { - "all-outputs": true, - "format": "{icon}", - "format-icons": { - "1": "✨", - "2": "🌈", - "3": "💕", - "4": "🎄", - "5": "🌊", - "6": "🌷", - "7": "🪷", - "8": "😽", - "9": "🌙", - "10": "🦋", - }, - "on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null", - "on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null", - "sort-by-number": true, - "active-only": false, - }, - "backlight":{ - "format": "󱩖 {percent}% ", - "device": "intel_backlight", - "on-scroll-down": "brightnessctl s 5%-", - "on-scroll-up": "brightnessctl s +5%" - }, - - "idle_inhibitor": { + // "layer": "top", // Waybar at top layer + // "height": 30, // Waybar height (to be removed for auto height) + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces", + ], + "modules-center": [ + "tray" + ], + "modules-right": [ + "idle_inhibitor", + "pulseaudio", + "network", + "battery", + "clock" + ], + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "warp-on-scroll": true, "format": "{icon}", "format-icons": { - "activated": "", - "deactivated": "" - }, - "tooltip": "true" + "1": "", + "2": "", + "3": "", + "9": "", + "10": "󰌳", + "default": "" + } }, - - "wireplumber": { - "on-click": "pavucontrol", - "on-click-right": "amixer sset Master toggle 1>/dev/null", - "format": "{icon} {volume}%", - "format-muted": " Muted", - "format-icons": { - "headphone": " ", - "hands-free": " ", - "headset": " ", - "phone": " ", - "portable": " ", - "car": " ", - "default": [" ", " ", " "] - }, - }, - - "network": { - "format-wifi": " {essid} ", - "format-ethernet": " {ifname}", - "format-linked": " {ifname} (No IP)", - "format": " Connected", - "format-disconnected": " Disconnected", - "interval": 60, - "on-click":"~/.config/rofi/rofi-wifi-menu.sh" + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } }, - "clock": { - "format": " {:%A %e %B}" - }, - "clock#time": { - "format": " {:%H:%M}" - }, - "battery": { + "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", + "format": "{:%I:%M}", + "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, + // "good": 95, "warning": 30, "critical": 15 }, - "format": "{icon} {capacity}%", - "format-charging": " {capacity}%", - "format-plugged": " {capacity}%", - "format-icons": [ - "", - "", - "", - "", - "" - ] + "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": ["", "", "", "", ""] }, - "bluetooth":{ - "format-on": " Turned On", - "format-off": " Turned Off", - "format-disabled": " Disabled", - "format-connected": " Connected", - "format": " Disabled", - "on-click":"blueman-manager &" + "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}" }, - - "custom/power":{ - "format":"", - "on-click":"~/.config/rofi/powermenu/type-4/powermenu.sh" - }, - "custom/notification":{ - "format": "󱅫", - "on-click": "swaync-client -t -sw" + "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" } - } diff --git a/config/waybar/style-bkp.css b/config/waybar/style-bkp.css deleted file mode 100644 index c6f1913..0000000 --- a/config/waybar/style-bkp.css +++ /dev/null @@ -1,179 +0,0 @@ -@import "./themes/catppuccin-macchiato.css"; - -@keyframes blink_red { - to { - background-color: @red; - color: @base; - } -} - -* { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: JetBrainsMono Roboto, Helvetica, Arial, sans-serif; - font-size: 1rem; -} - -box.modules-left, -box.modules-center, -box.modules-right { - border-radius: 1rem; - background-color: @base; -} - -.warning, -.critical, -.urgent { - animation-name: blink_red; - animation-duration: 800ms; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#mode, -#clock, -#memory, -#temperature, -#cpu, -#custom-weather, -#mpd, -#idle_inhibitor, -#backlight, -#pulseaudio, -#network, -#battery, -#custom-powermenu, -#custom-cava-internal, -#custom-launcher, -#tray, -#disk, -#custom-pacman, -#custom-scratchpad-indicator { - padding: 0 0.6rem; - background-color: @red; -} - -/* Bar */ -window#waybar { - background-color: transparent; -} - -window > box { - background-color: transparent; - margin: 5px 11px; - margin-bottom: 0; -} - -window#waybar button:not(:first-child), -window#waybar button:not(:last-child) { - border-radius: 0; -} - -window#waybar button:first-child { - border-radius: 1rem 0 0 1rem; -} - -window#waybar button:last-child { - border-radius: 0 1rem 1rem 0; -} - -/* Workspaces */ -#workspaces button { - padding: 0.2rem 0.75rem; - color: @text; -} - -#workspaces button label { - background-color: transparent; - font-size: 1.2rem; -} - -#workspaces button:not(:first-child) label { - /* Fix fontawesome miss alignment, depends of the padding above and font size */ - margin-right: 0.45rem; -} - -#workspaces button.focused { - color: @teal; - background-color: alpha(@teal, 0.15); -} - -#workspaces button:hover { - /* border: .2px solid transparent; */ - background: alpha(@blue, 0.15); - color: @blue; - border-color: transparent; - box-shadow: inherit; - text-shadow: inherit; -} - -/* Tooltip */ -tooltip { - background-color: @base; -} - -tooltip label { - color: @rosewater; -} - -/* battery */ -#battery { - color: @mauve; - padding-right: 1.15rem; -} -#battery.full { - color: @green; -} -#battery.charging { - color: @teal; -} -#battery.discharging { - color: @peach; -} -#battery.critical:not(.charging) { - color: @pink; -} -#custom-powermenu { - color: @red; -} - -#memory { - color: @peach; -} -#cpu { - color: @blue; -} -#clock { - color: @rosewater; -} -#idle_inhibitor { - color: @green; - padding-right: 0.9rem; -} -#temperature { - color: @sapphire; -} -#backlight { - color: @green; -} -#pulseaudio { - color: @mauve; /* not active */ -} -#network { - color: @pink; /* not active */ -} -#network.disconnected { - color: @foreground; /* not active */ -} -#disk { - color: @maroon; -} -#custom-pacman { - color: @sky; -} -#custom-scratchpad-indicator { - color: @yellow; -} -#custom-weather { - color: @red; -} diff --git a/config/waybar/style.css b/config/waybar/style.css index 7b6d2ac..c6f1913 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -1,69 +1,179 @@ @import "./themes/catppuccin-macchiato.css"; -*{ - font-size: 13px; +@keyframes blink_red { + to { + background-color: @red; + color: @base; + } +} + +* { + /* `otf-font-awesome` is required to be installed for icons */ font-family: JetBrainsMono Roboto, Helvetica, Arial, sans-serif; - color: @text; -} -#waybar { - background: transparent; - border-radius: 5px; -} -#workspaces{ - border-radius:5px; - box-shadow:0px 0px black; + font-size: 1rem; } box.modules-left, box.modules-center, box.modules-right { - border-radius: 6px; + border-radius: 1rem; background-color: @base; } -#workspaces, -#network, -#backlight, -#wireplumber, +.warning, +.critical, +.urgent { + animation-name: blink_red; + animation-duration: 800ms; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#mode, #clock, -#battery, +#memory, +#temperature, +#cpu, +#custom-weather, +#mpd, #idle_inhibitor, -#bluetooth, -#custom-power, -#custom-notification{ +#backlight, +#pulseaudio, +#network, +#battery, +#custom-powermenu, +#custom-cava-internal, +#custom-launcher, +#tray, +#disk, +#custom-pacman, +#custom-scratchpad-indicator { padding: 0 0.6rem; + background-color: @red; } -#network, -#wireplumber, -#backlight, -#bluetooth{ - margin:0px; -} -#backlight, -#bluetooth{ - border-radius:0px; -} -#wireplumber{ - border-radius: 0px 5px 5px 0px; +/* Bar */ +window#waybar { + background-color: transparent; } -#idle_inhibitor, -#clock, -#workspaces, -#custom-lizzy, -#custom-power, -#battery, -#custom-notification{ - border-radius: 5px; +window > box { + background-color: transparent; + margin: 5px 11px; + margin-bottom: 0; } -#idle_inhibitor.activated{ - color:#e57474; +window#waybar button:not(:first-child), +window#waybar button:not(:last-child) { + border-radius: 0; } -#custom-power{ -color:#c47fd5; -margin-right:10px; -padding-right:14px; +window#waybar button:first-child { + border-radius: 1rem 0 0 1rem; +} + +window#waybar button:last-child { + border-radius: 0 1rem 1rem 0; +} + +/* Workspaces */ +#workspaces button { + padding: 0.2rem 0.75rem; + color: @text; +} + +#workspaces button label { + background-color: transparent; + font-size: 1.2rem; +} + +#workspaces button:not(:first-child) label { + /* Fix fontawesome miss alignment, depends of the padding above and font size */ + margin-right: 0.45rem; +} + +#workspaces button.focused { + color: @teal; + background-color: alpha(@teal, 0.15); +} + +#workspaces button:hover { + /* border: .2px solid transparent; */ + background: alpha(@blue, 0.15); + color: @blue; + border-color: transparent; + box-shadow: inherit; + text-shadow: inherit; +} + +/* Tooltip */ +tooltip { + background-color: @base; +} + +tooltip label { + color: @rosewater; +} + +/* battery */ +#battery { + color: @mauve; + padding-right: 1.15rem; +} +#battery.full { + color: @green; +} +#battery.charging { + color: @teal; +} +#battery.discharging { + color: @peach; +} +#battery.critical:not(.charging) { + color: @pink; +} +#custom-powermenu { + color: @red; +} + +#memory { + color: @peach; +} +#cpu { + color: @blue; +} +#clock { + color: @rosewater; +} +#idle_inhibitor { + color: @green; + padding-right: 0.9rem; +} +#temperature { + color: @sapphire; +} +#backlight { + color: @green; +} +#pulseaudio { + color: @mauve; /* not active */ +} +#network { + color: @pink; /* not active */ +} +#network.disconnected { + color: @foreground; /* not active */ +} +#disk { + color: @maroon; +} +#custom-pacman { + color: @sky; +} +#custom-scratchpad-indicator { + color: @yellow; +} +#custom-weather { + color: @red; }