From 97af93b2a8ebc89364852e3f63e9fd8cfedaeedf Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Mon, 9 Jun 2025 13:43:45 +0300 Subject: =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D1=91=D0=BB=20dotfiles?= =?UTF-8?q?=20=D0=BD=D0=B0=20stow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/hypr/custom/rules.conf | 104 ++++++++++++++++ config/hypr/hypridle.conf | 33 ++++++ config/hypr/hyprland.conf | 264 +++++++++++++++++++++++++++++++++++++++++ config/hypr/hyprlock.conf | 74 ++++++++++++ config/hypr/hyprlock/status.sh | 29 +++++ config/hypr/hyprpaper.conf | 3 + config/hypr/lock.png | Bin 0 -> 17008897 bytes config/hypr/wp.jpg | Bin 0 -> 9414283 bytes 8 files changed, 507 insertions(+) create mode 100644 config/hypr/custom/rules.conf create mode 100644 config/hypr/hypridle.conf create mode 100644 config/hypr/hyprland.conf create mode 100644 config/hypr/hyprlock.conf create mode 100755 config/hypr/hyprlock/status.sh create mode 100644 config/hypr/hyprpaper.conf create mode 100644 config/hypr/lock.png create mode 100644 config/hypr/wp.jpg (limited to 'config/hypr') diff --git a/config/hypr/custom/rules.conf b/config/hypr/custom/rules.conf new file mode 100644 index 0000000..68a4aac --- /dev/null +++ b/config/hypr/custom/rules.conf @@ -0,0 +1,104 @@ +# ######## Window rules ######## + +# Uncomment to apply global transparency to all windows: +windowrulev2 = opacity 0.95 override 0.95 override, class:.* + +# Disable blur for XWayland windows (or context menus with shadow would look weird) +windowrulev2 = noblur, xwayland:1 + +# Floating +windowrulev2 = float, class:^(blueberry\.py)$ +windowrulev2 = float, class:^(steam)$ +windowrulev2 = float, class:^(guifetch)$ # FlafyDev/guifetch +windowrulev2 = float, class:^(pavucontrol)$ +windowrulev2 = size 45%, class:^(pavucontrol)$ +windowrulev2 = center, class:^(pavucontrol)$ +windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = size 45%, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = center, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = float, class:^(nm-connection-editor)$ +windowrulev2 = size 45%, class:^(nm-connection-editor)$ +windowrulev2 = center, class:^(nm-connection-editor)$ + +# Tiling +windowrulev2 = tile, class:^dev\.warp\.Warp$ + +# Picture-in-Picture +windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ +windowrulev2 = keepaspectratio, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ +windowrulev2 = move 73% 72%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ +windowrulev2 = size 25%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ +windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ +windowrulev2 = pin, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ + +# Dialog windows – float+center these windows. +windowrulev2 = center, title:^(Open File)(.*)$ +windowrulev2 = center, title:^(Select a File)(.*)$ +windowrulev2 = center, title:^(Choose wallpaper)(.*)$ +windowrulev2 = center, title:^(Open Folder)(.*)$ +windowrulev2 = center, title:^(Save As)(.*)$ +windowrulev2 = center, title:^(Library)(.*)$ +windowrulev2 = center, title:^(File Upload)(.*)$ +windowrulev2 = float, title:^(Open File)(.*)$ +windowrulev2 = float, title:^(Select a File)(.*)$ +windowrulev2 = float, title:^(Choose wallpaper)(.*)$ +windowrulev2 = float, title:^(Open Folder)(.*)$ +windowrulev2 = float, title:^(Save As)(.*)$ +windowrulev2 = float, title:^(Library)(.*)$ +windowrulev2 = float, title:^(File Upload)(.*)$ + + +# --- Tearing --- +windowrulev2 = immediate, title:.*\.exe +windowrulev2 = immediate, class:^(steam_app) + +# No shadow for tiled windows (matches windows that are not floating). +windowrulev2 = noshadow, floating:0 + +# ######## Workspace rules ######## +workspace = special:special, gapsout:30 + +# ######## Layer rules ######## +layerrule = xray 1, .* +# layerrule = noanim, .* +layerrule = noanim, walker +layerrule = noanim, selection +layerrule = noanim, overview +layerrule = noanim, anyrun +layerrule = noanim, indicator.* +layerrule = noanim, osk +layerrule = noanim, hyprpicker + +layerrule = noanim, noanim +layerrule = blur, gtk-layer-shell +layerrule = ignorezero, gtk-layer-shell +layerrule = blur, launcher +layerrule = ignorealpha 0.5, launcher +layerrule = blur, notifications +layerrule = ignorealpha 0.69, notifications +layerrule = blur, logout_dialog # wlogout + +# ags +layerrule = animation slide left, sideleft.* +layerrule = animation slide right, sideright.* +layerrule = blur, session[0-9]* +layerrule = blur, bar[0-9]* +layerrule = ignorealpha 0.6, bar[0-9]* +layerrule = blur, barcorner.* +layerrule = ignorealpha 0.6, barcorner.* +layerrule = blur, dock[0-9]* +layerrule = ignorealpha 0.6, dock[0-9]* +layerrule = blur, indicator.* +layerrule = ignorealpha 0.6, indicator.* +layerrule = blur, overview[0-9]* +layerrule = ignorealpha 0.6, overview[0-9]* +layerrule = blur, cheatsheet[0-9]* +layerrule = ignorealpha 0.6, cheatsheet[0-9]* +layerrule = blur, sideright[0-9]* +layerrule = ignorealpha 0.6, sideright[0-9]* +layerrule = blur, sideleft[0-9]* +layerrule = ignorealpha 0.6, sideleft[0-9]* +layerrule = blur, indicator.* +layerrule = ignorealpha 0.6, indicator.* +layerrule = blur, osk[0-9]* +layerrule = ignorealpha 0.6, osk[0-9]* diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf new file mode 100644 index 0000000..8809a22 --- /dev/null +++ b/config/hypr/hypridle.conf @@ -0,0 +1,33 @@ +$suspend_cmd = pidof steam || systemctl suspend || loginctl suspend + +# General_settings +general { + before_sleep_cmd = hyprlock # command before sleep + ignore_dbus_inhibit = false # (used by e.g. firefox or steam) +} + +# Screen_brightness +listener { + timeout = 300 + on-timeout = brightnessctl s 20% + on-resume = brightnessctl s 100% +} + +# Screen_lock +listener { + timeout = 600 + on-timeout = hyprlock +} + +# Screen_off +listener { + timeout = 780 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} + +# Suspend +listener { + timeout = 1200 + on-timeout = $suspend_cmd +} diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100644 index 0000000..c5ae504 --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,264 @@ + +# ####################################################################################### +# AUTOGENERATED HYPR CONFIG. +# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + + +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,auto +monitor=DP-7,1920x1080,auto,auto + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = dolphin +$menu = wofi --show drun + + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +exec-once = $terminal +exec-once = nm-applet & +exec-once = waybar & hyprpaper & firefox + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 4 + gaps_out = 8 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = true + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us,ru + kb_variant = + kb_model = + kb_options = grp:caps_toggle,misc:typo,lv3:ralt_switch + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = true +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + + +#################### +### KEYBINDINGSS ### +#################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier +$shiftMod = SUPER_SHIFT +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Q, exec, $terminal +bind = $mainMod, C, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, L, exec, hyprlock +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + + +# Screenshot a window +bind = $mainMod, PRINT, exec, hyprshot -m window +# Screenshot a monitor +bind = , PRINT, exec, hyprshot -m output +# Screenshot a region +bind = $shiftMod, PRINT, exec, hyprshot -m region + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +source = ~/.config/hypr/custom/rules.conf + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. + diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..94920bf --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,74 @@ +background { + monitor = + path = $HOME/.config/hypr/lock.png # only *.png supported for now + color = rgba(25, 20, 20, 1.0) + blur_passes = 4 # 0 disables blurring + blur_size = 2 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +input-field { + monitor = + size = 400, 50 + outline_thickness = 1 + dots_size = 0.4 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgb(000000) + inner_color = rgb(200, 200, 200) + font_color = rgb(10, 10, 10) + fade_on_empty = true + placeholder_text = Пароль # Text rendered in the input box when it's empty. + hide_input = false + position = 0, -50 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$(date +"%H:%M")" + color = rgba(200, 200, 200, 1.0) + font_size = 60 + font_family = Noto Sans + position = 0, 150 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$(date +"%A, %d %B %Y")" + color = rgba(200, 200, 200, 1.0) + font_size = 18 + font_family = Noto Sans + position = 0, 100 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh + color = rgba(200, 200, 200, 1.0) + font_size = 18 + font_family = Noto Sans + position = 0, 50 + halign = center + valign = center +} + +label { + monitor = + text = $USER + color = rgba(200, 200, 200, 1.0) + font_size = 60 + font_family = Noto Sans + position = 0, 320 + halign = center + valign = center +} diff --git a/config/hypr/hyprlock/status.sh b/config/hypr/hyprlock/status.sh new file mode 100755 index 0000000..ea2607e --- /dev/null +++ b/config/hypr/hyprlock/status.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +############ Variables ############ +enable_battery=false +battery_charging=false + +####### Check availability ######## +for battery in /sys/class/power_supply/*BAT*; do + if [[ -f "$battery/uevent" ]]; then + enable_battery=true + if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then + battery_charging=true + fi + break + fi +done + +############# Output ############# +if [[ $enable_battery == true ]]; then + if [[ $battery_charging == true ]]; then + echo -n " заряжается" + fi + echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"% + if [[ $battery_charging == false ]]; then + echo -n " осталось" + fi +fi + +echo '' diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf new file mode 100644 index 0000000..4d21b18 --- /dev/null +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = ~/.config/hypr/wp.jpg +wallpaper = , ~/.config/hypr/wp.jpg +splash = true diff --git a/config/hypr/lock.png b/config/hypr/lock.png new file mode 100644 index 0000000..5a85e8e Binary files /dev/null and b/config/hypr/lock.png differ diff --git a/config/hypr/wp.jpg b/config/hypr/wp.jpg new file mode 100644 index 0000000..2047b40 Binary files /dev/null and b/config/hypr/wp.jpg differ -- cgit v1.2.3