diff --git a/hypr/hyprland.lua b/hypr/hyprland.lua index c2f6948..6119b58 100644 --- a/hypr/hyprland.lua +++ b/hypr/hyprland.lua @@ -40,6 +40,7 @@ local appsmenu = "wofi --show drun" hl.on("hyprland.start", function() hl.exec_cmd("hyprpaper") + hl.exec_cmd("pgrep -x waybar >/dev/null || waybar") hl.exec_cmd("hyprctl setcursor Adwaita 24") end) diff --git a/mako/config b/mako/config new file mode 100644 index 0000000..1376e57 --- /dev/null +++ b/mako/config @@ -0,0 +1,2 @@ +default-timeout=3000 +ignore-timeout=1 diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..bfc57d0 --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,84 @@ +{ + "layer": "top", + "position": "top", + "height": 30, + "margin-top": 6, + "margin-left": 8, + "margin-right": 8, + "spacing": 8, + "modules-left": ["hyprland/workspaces"], + "modules-right": [ + "wlr/taskbar", + "idle_inhibitor", + "pulseaudio", + "network", + "cpu", + "memory", + "temperature", + "hyprland/language", + "clock", + "tray", + "custom/power" + ], + "hyprland/workspaces": { + "format": "{name}", + "all-outputs": false, + "active-only": false, + "on-click": "activate", + "sort-by-number": true, + "ignore-workspaces": ["^special:.*", "^secondary$"] + }, + "wlr/taskbar": { + "format": "{icon}", + "icon-size": 20, + "icon-theme": "Adwaita", + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": {"activated": "", "deactivated": ""}, + "tooltip-format-activated": "Keep screen awake", + "tooltip-format-deactivated": "Allow screen to sleep" + }, + "pulseaudio": { + "format": "{volume}% {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": {"headphone": "", "default": ["", "", ""]}, + "scroll-step": 5, + "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", + "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + }, + "network": { + "format-ethernet": "{ifname} via {gwaddr} ", + "format-wifi": "{essid} {signalStrength}% ", + "format-linked": "{ifname} ", + "format-disconnected": "Offline ⚠", + "tooltip-format": "{ifname}\n{ipaddr}/{cidr}\nGateway: {gwaddr}", + "max-length": 34 + }, + "cpu": {"format": "{usage}% ", "interval": 3}, + "memory": {"format": "{percentage}% ", "interval": 3}, + "temperature": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon", + "input-filename": "temp1_input", + "format": "{temperatureC}°C ", + "critical-threshold": 85, + "interval": 5 + }, + "hyprland/language": {"format": " {}", "format-en": "US", "format-ru": "RU"}, + "clock": { + "format": "{:%a %d %b | %H:%M}", + "format-alt": "{:%Y-%m-%d | %H:%M:%S}", + "tooltip-format": "{:%B %Y}\n{calendar}" + }, + "tray": {"icon-size": 18, "spacing": 8}, + "custom/power": { + "format": "", + "tooltip-format": "Power menu", + "on-click": "sh ~/.config/waybar/power-menu.sh" + } +} diff --git a/waybar/power-menu.sh b/waybar/power-menu.sh new file mode 100644 index 0000000..08ccbb6 --- /dev/null +++ b/waybar/power-menu.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +choice=$(printf '%s\n' 'Lock' 'Suspend' 'Reboot' 'Power off' | + wofi --dmenu --prompt 'Power' --width 300 --height 220 --hide-scroll) + +case "$choice" in + Lock) pgrep -x hyprlock >/dev/null || hyprlock ;; + Suspend) systemctl suspend ;; + Reboot) systemctl reboot ;; + 'Power off') systemctl poweroff ;; +esac diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..839b2ca --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,94 @@ +* { + font-family: "ProFontWindows Nerd Font Mono", "DejaVu Sans Mono", "Font Awesome 6 Free", "Font Awesome 7 Free", monospace; + font-size: 12px; + font-weight: bold; + min-height: 0; +} + +window#waybar { + background: transparent; + color: #cdd6f4; +} + +tooltip { + background: #1e1e2e; + color: #cdd6f4; + border: 1px solid #89b4fa; + border-radius: 8px; +} + +#workspaces, +#taskbar, +#idle_inhibitor, +#pulseaudio, +#network, +#cpu, +#memory, +#temperature, +#language, +#clock, +#tray, +#custom-power { + background: rgba(30, 30, 46, 0.92); + border-radius: 8px; + padding: 3px 9px; +} + +#workspaces { + padding: 0 3px; +} + +#workspaces button { + background: transparent; + color: #6c7086; + border: none; + border-radius: 6px; + padding: 0 7px; + box-shadow: none; + text-shadow: none; +} + +#workspaces button.active { + color: #89b4fa; + background: #313244; +} + +#workspaces button.urgent { + color: #f38ba8; +} + +#workspaces button:hover, +#taskbar button:hover { + background: #45475a; +} + +#taskbar { + padding: 0 3px; +} + +#taskbar button { + padding: 0 5px; + border: none; + border-radius: 6px; + background: transparent; + box-shadow: none; +} + +#taskbar button.active { + background: #313244; +} + +#idle_inhibitor { color: #94e2d5; } +#idle_inhibitor.activated { color: #f9e2af; } +#pulseaudio, #network { color: #89b4fa; } +#pulseaudio.muted, #network.disconnected { color: #6c7086; } +#cpu, #memory, #temperature { color: #cba6f7; } +#temperature.critical { color: #f38ba8; } +#language { color: #f5c2e7; } +#clock { color: #f38ba8; } +#custom-power { color: #89b4fa; padding: 3px 12px; } + +#custom-power:hover { + background: #45475a; + color: #f38ba8; +} diff --git a/wofi/config b/wofi/config new file mode 100644 index 0000000..7cb3e6b --- /dev/null +++ b/wofi/config @@ -0,0 +1,14 @@ +show=drun +width=460 +height=390 +location=center +prompt=⌕ Apps +allow_images=true +image_size=28 +allow_markup=false +insensitive=true +matching=fuzzy +hide_scroll=true +no_actions=true +term=kitty +gtk_dark=true diff --git a/wofi/style.css b/wofi/style.css new file mode 100644 index 0000000..b6061eb --- /dev/null +++ b/wofi/style.css @@ -0,0 +1,60 @@ +* { + font-family: "ProFontWindows Nerd Font Mono", "DejaVu Sans Mono", monospace; + font-size: 13px; +} + +window { + background-color: #24243e; + color: #cdd6f4; + border: 2px solid #89b4fa; + border-radius: 15px; +} + +#outer-box { + padding: 14px; +} + +#input { + margin-bottom: 14px; + padding: 10px 8px; + background-color: #1e1e2e; + color: #cdd6f4; + border: none; + border-radius: 8px; + box-shadow: none; +} + +#input:focus { + box-shadow: none; +} + +#scroll, #inner-box { + background-color: transparent; + border: none; +} + +#entry { + padding: 4px 8px; + min-height: 30px; + border-radius: 5px; +} + +#entry:selected { + background-color: #89b4fa; + color: #1e1e2e; + outline: none; +} + +#text { + margin-left: 10px; + color: #cdd6f4; +} + +#text:selected { + color: #1e1e2e; + font-weight: bold; +} + +#img { + background-color: transparent; +}