From 8012b75b1ec413e2abe4f573b9bb482a799483a1 Mon Sep 17 00:00:00 2001 From: Daruk Date: Sat, 28 Mar 2026 18:26:24 +0200 Subject: [PATCH] Updated hyprland, waybar, added fontconfig --- .../.config/fontconfig/conf.d/99-alex.conf | 26 ++ hyprland/.config/hypr/hyprland.conf | 8 + nvim/.config/nvim/init.vim | 2 +- waybar/.config/waybar/config | 236 ------------------ waybar/.config/waybar/config.jsonc | 150 +++++++++++ waybar/.config/waybar/frappe.css | 37 +++ waybar/.config/waybar/latte.css | 37 +++ waybar/.config/waybar/mocha.css | 37 +++ waybar/.config/waybar/power_menu.xml | 2 +- waybar/.config/waybar/style.css | 187 +++++++------- 10 files changed, 391 insertions(+), 331 deletions(-) create mode 100644 fontconfig/.config/fontconfig/conf.d/99-alex.conf delete mode 100644 waybar/.config/waybar/config create mode 100755 waybar/.config/waybar/config.jsonc create mode 100644 waybar/.config/waybar/frappe.css create mode 100644 waybar/.config/waybar/latte.css create mode 100644 waybar/.config/waybar/mocha.css mode change 100644 => 100755 waybar/.config/waybar/style.css diff --git a/fontconfig/.config/fontconfig/conf.d/99-alex.conf b/fontconfig/.config/fontconfig/conf.d/99-alex.conf new file mode 100644 index 0000000..34dce2c --- /dev/null +++ b/fontconfig/.config/fontconfig/conf.d/99-alex.conf @@ -0,0 +1,26 @@ + + + + + + MesloLGS NF Mono + + MesloLGS Nerd Font Mono + + + + + MesloLGS NF Propo + + MesloLGS Nerd Font Propo + + + + + MesloLGS NF + + MesloLGS Nerd Font + + + + diff --git a/hyprland/.config/hypr/hyprland.conf b/hyprland/.config/hypr/hyprland.conf index 8e0de67..9119512 100644 --- a/hyprland/.config/hypr/hyprland.conf +++ b/hyprland/.config/hypr/hyprland.conf @@ -215,6 +215,7 @@ input { kb_model = kb_options = grp:alt_shift_toggle kb_rules = + numlock_by_default = true follow_mouse = 1 @@ -255,6 +256,7 @@ bind = $mainMod, J, layoutmsg, togglesplit # dwindle bind = $mainMod SHIFT, S, exec, hyprshot -m region bind = $mainMod, B, exec, brave +bind = $mainMod SHIFT, B, exec, pkill waybar && waybar 2>&1 # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l @@ -351,3 +353,9 @@ windowrule { move = 20 monitor_h-120 float = yes } + +windowrule { + name = pavu + match:class = org.pulseaudio.pavucontrol + float = yes +} diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index ae86847..d4c9199 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -1 +1 @@ -set relativenumber +set number diff --git a/waybar/.config/waybar/config b/waybar/.config/waybar/config deleted file mode 100644 index 11b1846..0000000 --- a/waybar/.config/waybar/config +++ /dev/null @@ -1,236 +0,0 @@ -// -*- mode: jsonc -*- -{ - // "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": ["hyprland/workspaces"], - "modules-center": ["hyprland/window", "mpris"], - "modules-right": [ - "mpd", - // "idle_inhibitor", - "pulseaudio", - "network", - // "power-profiles-daemon", - "cpu", - "memory", - // "temperature", - // "backlight", - // "keyboard-state", - "hyprland/language", - // "battery", - // "battery#bat2", - "clock", - "tray", - "custom/power" - ], - // Modules configuration - "hyprland/workspaces": { - "disable-scroll": true, - "all-outputs": true, - "warp-on-scroll": false, - "format": "{name}: {icon}", - "format-icons": { - // "1": "", - // "2": "", - // "3": "", - // "4": "", - // "5": "", - "urgent": "", - "active": "", - "default": "" - } - }, - "hyprland/window": { - "format": "{}", - "max-length": 60, // Limits the title to 60 characters - "separate-outputs": true - }, - "keyboard-state": { - "numlock": true, - "capslock": true, - "format": "{name} {icon}", - "format-icons": { - "locked": "", - "unlocked": "" - } - }, - "sway/mode": { - "format": "{}" - }, - "sway/scratchpad": { - "format": "{icon} {count}", - "show-empty": false, - "format-icons": ["", ""], - "tooltip": true, - "tooltip-format": "{app}: {title}" - }, - "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": 5, - "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": "" - } - }, - "hyprland/language": { - "format": "{}", - "format-en": "EN", - "format-ro": "RO", - "keyboard-name": "keychron--keychron-link--keyboard", // Replace with name from hyprctl devices - "on-click": "hyprctl switchxkblayout keychron--keychron-link--keyboard next" - }, - "tray": { - // "icon-size": 21, - "spacing": 10, - // "icons": { - // "blueman": "bluetooth", - // "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png" - // } - }, - "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-full": "{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" - }, - "power-profiles-daemon": { - "format": "{icon}", - "tooltip-format": "Power profile: {profile}\nDriver: {driver}", - "tooltip": true, - "format-icons": { - "default": "", - "performance": "", - "balanced": "", - "power-saver": "" - } - }, - "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} {text}", - "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 - }, - "mpris": { - "format": "{player_icon} {dynamic}", - "format-paused": "{status_icon} {dynamic}", - "player-icons": { - "default": "▶", - "spotify": "" - }, - "status-icons": { - "paused": "⏸" - }, - "ignored-players": [] - }, - "custom/power": { - "format" : "⏻ ", - "tooltip": false, - "menu": "on-click", - "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder - "menu-actions": { - "shutdown": "shutdown", - "reboot": "reboot", - "suspend": "systemctl suspend"//, - //"hibernate": "systemctl hibernate" - } - } -} diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc new file mode 100755 index 0000000..f6ef8a2 --- /dev/null +++ b/waybar/.config/waybar/config.jsonc @@ -0,0 +1,150 @@ +// -*- mode: jsonc -*- +{ + "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + // "height": 25, + // "width": 1280, // Waybar width + // Choose the order of the modules + "modules-left": [ + "custom/apps", + "hyprland/workspaces", + "hyprland/window" + ], + "modules-center": [ + "custom/music" + ], + "modules-right": [ + "pulseaudio", + "network", + "hyprland/language", + "clock", + "tray", + "custom/power" + ], + "hyprland/workspaces": { + "disable-scroll": true, + "sort-by-name": true, + "format": "{name}", + "format-icons": { + "active": "", + "default": "" + } + }, + "custom/apps": { + "format": "", + "tooltip": false, + "tooltip-format": "Apps", + "on-click": "hyprlauncher" + }, + "tray": { + "icon-size": 21, + "spacing": 10 + }, + "custom/music": { + "format": " {}", + "escape": true, + "interval": 5, + "tooltip": true, + "exec": "playerctl metadata --format='{{ title }}' | sed -r 's/\\s{2,}/ /g'", + // "exec": "playerctl metadata --format='{{artist}} - {{title}} ({{album}})' | sed -r 's/\\s{2,}/ /g'", + "on-click": "playerctl play-pause", + "max-length": 50 + }, + "hyprland/window": { + "format": "{}", + "icon": true, + "icon-size": 18, + "max-length": 60, // Limits the title to 60 characters + "separate-outputs": true + }, + "hyprland/language": { + "format": "{}", + "format-en": "EN", + "format-ro": "RO", + "on-click": "hyprctl switchxkblayout all next" + }, + "clock": { + "timezone": "Europe/Bucharest", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%d/%m/%Y}", + "format": "{:%H:%M}" + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-icons": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-charging": "", + "format-plugged": "", + "format-alt": "{icon}", + "format-icons": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}%", + "format-muted": "", + "format-icons": { + "default": [ + "", + "", + " " + ] + }, + "on-click": "pavucontrol" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%)", + "format-ethernet": "{ipaddr}", + "tooltip-format": "{ifname} via {gwaddr}", + "format-linked": "{ifname} (No IP)", + "format-disconnected": "Disconnected", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "custom/lock": { + "tooltip": false, + "on-click": "sh -c '(sleep 0.5s; swaylock --grace 0)' & disown", + "format": "" + }, + "custom/power": { + "format": "⏻", + "tooltip": false, + "menu": "on-click", + "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder + "menu-actions": { + "shutdown": "shutdown -h now", + "reboot": "reboot", + "suspend": "systemctl suspend" //, + //"hibernate": "systemctl hibernate" + } + } +} \ No newline at end of file diff --git a/waybar/.config/waybar/frappe.css b/waybar/.config/waybar/frappe.css new file mode 100644 index 0000000..18520fb --- /dev/null +++ b/waybar/.config/waybar/frappe.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Frappe palette +* Maintainer: rubyowo +* +*/ + +@define-color base #303446; +@define-color mantle #292c3c; +@define-color crust #232634; + +@define-color text #c6d0f5; +@define-color subtext0 #a5adce; +@define-color subtext1 #b5bfe2; + +@define-color surface0 #414559; +@define-color surface1 #51576d; +@define-color surface2 #626880; + +@define-color overlay0 #737994; +@define-color overlay1 #838ba7; +@define-color overlay2 #949cbb; + +@define-color blue #8caaee; +@define-color lavender #babbf1; +@define-color sapphire #85c1dc; +@define-color sky #99d1db; +@define-color teal #81c8be; +@define-color green #a6d189; +@define-color yellow #e5c890; +@define-color peach #ef9f76; +@define-color maroon #ea999c; +@define-color red #e78284; +@define-color mauve #ca9ee6; +@define-color pink #f4b8e4; +@define-color flamingo #eebebe; +@define-color rosewater #f2d5cf; diff --git a/waybar/.config/waybar/latte.css b/waybar/.config/waybar/latte.css new file mode 100644 index 0000000..085cc3e --- /dev/null +++ b/waybar/.config/waybar/latte.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Latte palette +* Maintainer: rubyowo +* +*/ + +@define-color base #eff1f5; +@define-color mantle #e6e9ef; +@define-color crust #dce0e8; + +@define-color text #4c4f69; +@define-color subtext0 #6c6f85; +@define-color subtext1 #5c5f77; + +@define-color surface0 #ccd0da; +@define-color surface1 #bcc0cc; +@define-color surface2 #acb0be; + +@define-color overlay0 #9ca0b0; +@define-color overlay1 #8c8fa1; +@define-color overlay2 #7c7f93; + +@define-color blue #1e66f5; +@define-color lavender #7287fd; +@define-color sapphire #209fb5; +@define-color sky #04a5e5; +@define-color teal #179299; +@define-color green #40a02b; +@define-color yellow #df8e1d; +@define-color peach #fe640b; +@define-color maroon #e64553; +@define-color red #d20f39; +@define-color mauve #8839ef; +@define-color pink #ea76cb; +@define-color flamingo #dd7878; +@define-color rosewater #dc8a78; diff --git a/waybar/.config/waybar/mocha.css b/waybar/.config/waybar/mocha.css new file mode 100644 index 0000000..98e218a --- /dev/null +++ b/waybar/.config/waybar/mocha.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Mocha palette +* Maintainer: rubyowo +* +*/ + +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; + +@define-color text #cdd6f4; +@define-color subtext0 #a6adc8; +@define-color subtext1 #bac2de; + +@define-color surface0 #313244; +@define-color surface1 #45475a; +@define-color surface2 #585b70; + +@define-color overlay0 #6c7086; +@define-color overlay1 #7f849c; +@define-color overlay2 #9399b2; + +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color sapphire #74c7ec; +@define-color sky #89dceb; +@define-color teal #94e2d5; +@define-color green #a6e3a1; +@define-color yellow #f9e2af; +@define-color peach #fab387; +@define-color maroon #eba0ac; +@define-color red #f38ba8; +@define-color mauve #cba6f7; +@define-color pink #f5c2e7; +@define-color flamingo #f2cdcd; +@define-color rosewater #f5e0dc; diff --git a/waybar/.config/waybar/power_menu.xml b/waybar/.config/waybar/power_menu.xml index 7c7454c..31c0896 100644 --- a/waybar/.config/waybar/power_menu.xml +++ b/waybar/.config/waybar/power_menu.xml @@ -20,4 +20,4 @@ - + \ No newline at end of file diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css old mode 100644 new mode 100755 index fe2cd71..5579f8b --- a/waybar/.config/waybar/style.css +++ b/waybar/.config/waybar/style.css @@ -1,127 +1,128 @@ @import "macchiato.css"; * { - font-family: "MesloLGS Nerd Font Mono Bold"; - font-size: 16px; - min-height: 0; - font-weight: bold; + font-family: MesloLGS NF Propo; + font-size: 14px; + min-height: 0; } -window#waybar { - background: transparent; - background-color: @crust; - color: @overlay0; - transition-property: background-color; - transition-duration: 0.1s; - border-bottom: 1px solid @overlay1; +#waybar { + background: transparent; + color: @text; + margin: 5px 5px; } -#window { - margin: 8px; - padding-left: 8; - padding-right: 8; -} - -button { - box-shadow: inset 0 -3px transparent; - border: none; - border-radius: 0; -} - -button:hover { - background: inherit; - color: @mauve; - border-top: 2px solid @mauve; +#workspaces { + border-radius: 1rem; + margin: 5px; + background-color: @surface0; + margin-left: 1rem; } #workspaces button { - padding: 0 4px; -} - -#workspaces button.focused { - background-color: rgba(0, 0, 0, 0.3); - color: @rosewater; - border-top: 2px solid @rosewater; + color: @lavender; + border-radius: 1rem; + padding: 0 1rem; } #workspaces button.active { - background-color: rgba(0, 0, 0, 0.3); - color: @mauve; - border-top: 2px solid @mauve; + background-color: @red; + color: @surface0; } -#workspaces button.urgent { - background-color: #eb4d4b; +#workspaces button:hover { + /* background-color: @sapphire; + color: @surface0; */ } -#pulseaudio, +#tray, +#backlight, #clock, #battery, -#cpu, -#memory, -#disk, -#temperature, -#backlight, -#wireplumber, -#tray, +#pulseaudio, +#custom-lock, #network, -#mode, -#scratchpad { - margin-top: 2px; - margin-bottom: 2px; - margin-left: 4px; - margin-right: 4px; - padding-left: 4px; - padding-right: 4px; +#language, +#custom-power { + background-color: @surface0; + padding: 0 1rem; + margin: 5px 0; } #clock { - color: @maroon; - border-bottom: 2px solid @maroon; -} - -#clock.date { - color: @mauve; - border-bottom: 2px solid @mauve; -} - -#pulseaudio { - color: @blue; - border-bottom: 2px solid @blue; -} - -#network { - color: @yellow; - border-bottom: 2px solid @yellow; -} - -#idle_inhibitor { - margin-right: 12px; - color: #7cb342; -} - -#idle_inhibitor.activated { - color: @red; + color: @blue; + border-radius: 0px 1rem 1rem 0px; + margin-right: 1rem; } #battery { - color: @green; - border-bottom: 2px solid @green; + color: @green; } -/* If workspaces is the leftmost module, omit left margin */ -.modules-left>widget:first-child>#workspaces { - margin-left: 0; +#battery.charging { + color: @green; } -/* If workspaces is the rightmost module, omit right margin */ -.modules-right>widget:last-child>#workspaces { - margin-right: 0; +#battery.warning:not(.charging) { + color: @red; } -#custom-vpn { +#backlight { + color: @yellow; +} + +#backlight, #battery { + border-radius: 0; +} + +#pulseaudio { + color: @maroon; + border-radius: 1rem 0px 0px 1rem; + margin-left: 1rem; +} + + + +#custom-lock { + border-radius: 1rem 0px 0px 1rem; color: @lavender; - border-radius: 15px; - padding-left: 6px; - padding-right: 6px; } + +#custom-apps { + padding: 0 1rem; + margin: 5px 0 5px 0; + background-color: @surface0; + margin-left: 1rem; + border-radius: 1rem 1rem 1rem 1rem; + color: @green; +} + +#custom-power { + margin-right: 1rem; + border-radius: 1rem 1rem 1rem 1rem; + color: @red; +} + +#tray { + margin-right: 1rem; + border-radius: 1rem; +} + +#window { + color: @green; + background-color: @surface0; + padding: 0 1rem; + margin: 5px 0; + border-radius: 1rem; + margin-left: 1rem; +} + +#custom-music { + font-size: 1rem; + color: @red; + background-color: @surface0; + padding: 0 1rem; + margin: 5px 0; + border-radius: 1rem; + margin-left: 1rem; +} \ No newline at end of file