From 4e4b79c6789a304f5bf553ce1f79e0cdc227712c Mon Sep 17 00:00:00 2001 From: goodhumored Date: Fri, 2 Aug 2024 01:33:05 +0300 Subject: [PATCH] hyprland conf added --- .config/hypr/conf/animations.conf | 16 +++ .config/hypr/conf/autostart.conf | 9 ++ .config/hypr/conf/input.conf | 37 ++++++ .config/hypr/conf/keybindings.conf | 97 ++++++++++++++++ .config/hypr/hypridle.conf | 31 +++++ .config/hypr/hyprland.conf | 176 +++++++++++++++++++++++++++++ .config/hypr/hyprlock.conf | 84 ++++++++++++++ .config/hypr/hyprpaper.conf | 2 + 8 files changed, 452 insertions(+) create mode 100644 .config/hypr/conf/animations.conf create mode 100644 .config/hypr/conf/autostart.conf create mode 100644 .config/hypr/conf/input.conf create mode 100644 .config/hypr/conf/keybindings.conf create mode 100644 .config/hypr/hypridle.conf create mode 100644 .config/hypr/hyprland.conf create mode 100644 .config/hypr/hyprlock.conf create mode 100644 .config/hypr/hyprpaper.conf diff --git a/.config/hypr/conf/animations.conf b/.config/hypr/conf/animations.conf new file mode 100644 index 0000000..5366fb8 --- /dev/null +++ b/.config/hypr/conf/animations.conf @@ -0,0 +1,16 @@ +# 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 + bezier = easeOutQuint, 0.22, 1, 0.36, 1 + bezier = easeInOutQuint, 0.83, 0, 0.17, 1 + + animation = windows, 1, 2, easeInOutQuint + animation = border, 1, 4, easeInOutQuint + animation = fade, 1, 3, easeInOutQuint + animation = workspaces, 1, 2, easeInOutQuint +} + diff --git a/.config/hypr/conf/autostart.conf b/.config/hypr/conf/autostart.conf new file mode 100644 index 0000000..a5814e8 --- /dev/null +++ b/.config/hypr/conf/autostart.conf @@ -0,0 +1,9 @@ +# ╭──────────────────────────────────────────────────────────╮ +# │ Autostarts │ +# │ by goodhumored 2024 │ +# ╰──────────────────────────────────────────────────────────╯ +exec-once = copyq --start-server +exec-once = waybar & hyprpaper +exec-once = dunst +exec-once = hypridle + diff --git a/.config/hypr/conf/input.conf b/.config/hypr/conf/input.conf new file mode 100644 index 0000000..2c95b1e --- /dev/null +++ b/.config/hypr/conf/input.conf @@ -0,0 +1,37 @@ +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us, ru + kb_variant = + kb_model = + kb_options = grp:win_space_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } + repeat_delay = 200 + repeat_rate = 50 +} + +# 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 +} + +device { + name=my-epic-keyboard-v1 + kb_layout=us,pl,de +} + + diff --git a/.config/hypr/conf/keybindings.conf b/.config/hypr/conf/keybindings.conf new file mode 100644 index 0000000..075a444 --- /dev/null +++ b/.config/hypr/conf/keybindings.conf @@ -0,0 +1,97 @@ +# ╭──────────────────────────────────────────────────────────╮ +# │ Keybindings │ +# │ by gh │ +# ╰──────────────────────────────────────────────────────────╯ + +# ╭──────────────────────────────────────────────────────────╮ +# │ general │ +# ╰──────────────────────────────────────────────────────────╯ +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +bind = $mainMod, T, exec, $terminal # terminal +bind = $mainMod, Q, killactive, # kill window +bind = $mainMod, E, exec, $fileManager # file manager +bind = $mainMod, V, togglefloating, # toggle float +bind = $mainMod, A, exec, $toggle_menu_cmd # wofi +bind = $mainMod, P, pseudo, # pseudo +bind = $mainMod, DELETE, exit, # pseudo +bind = $mainMod, J, togglesplit, # toggle split +bind = $mainMod, L, exec, hyprlock # lock screen + +# ────────────────────────── window move focus ──────────────────────── +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# ────────────────────────── switch workspaces ──────────────────────── +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 +bind = $mainMod CTRL, H, workspace, -1 +bind = $mainMod CTRL, L, workspace, +1 + +# ─────────────────────── move window to workspace ─────────────────────── +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 +bind = $mainMod CTRL SHIFT, H, movetoworkspace, -1 +bind = $mainMod CTRL SHIFT, L, movetoworkspace, +1 + +# ───────────────────────── workspace/scratchpad ───────────────────────── +bind = , F12, togglespecialworkspace, magic +bind = SHIFT, F12, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# ──────────────────────────────── copyq ────────────────────────────── +bind = CTRL_ALT, V, exec, copyq toggle + +# ───────────────────────────── screenshots ─────────────────────────── +bind = $mainMod SHIFT, S, exec, grimblast copy area --freeze --notify --cursor +bind = , Print, exec, grimblast copy active --freeze --notify --cursor +bind = SHIFT, Print, exec, grimblast copy screen --freeze --notify --cursor + +# ╭──────────────────────────────────────────────────────────╮ +# │ mediakeys │ +# ╰──────────────────────────────────────────────────────────╯ + +# l -> do stuff even when locked +# e -> repeats when key is held +bindle=, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% +bindle=, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% +bindle=, XF86MonBrightnessUp, exec, brightnessctl set +10% +bindle=, XF86MonBrightnessDown, exec, brightnessctl set 10%- +bindl=, XF86AudioMute, exec, amixer set Master toggle +bindl=, XF86AudioPlay, exec, playerctl play-pause +bindl=, XF86AudioPause, exec, playerctl play-pause +bindl=, XF86AudioStop, exec, playerctl play-pause +bindl=, XF86AudioNext, exec, playerctl next +bindl=, XF86AudioPrev, exec, playerctl previous +bindl= CTRL ALT SHIFT, H, exec, playerctl previous +bindl= CTRL ALT SHIFT, L, exec, playerctl next +bindl= CTRL ALT SHIFT, SPACE, exec, playerctl play-pause + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + + + diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf new file mode 100644 index 0000000..68894ec --- /dev/null +++ b/.config/hypr/hypridle.conf @@ -0,0 +1,31 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. +} + +# Screenlock +listener { + # HYPRLOCK TIMEOUT + timeout = 600 + # HYPRLOCK ONTIMEOUT + on-timeout = loginctl lock-session +} + +# dpms +listener { + # DPMS TIMEOUT + timeout = 660 + # DPMS ONTIMEOUT + on-timeout = hyprctl dispatch dpms off + # DPMS ONRESUME + on-resume = hyprctl dispatch dpms on +} + +# Suspend +listener { + # SUSPEND TIMEOUT + timeout = 1800 + #SUSPEND ONTIMEOUT + on-timeout = systemctl suspend +} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..8bae452 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,176 @@ +# 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 + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = alacritty +$fileManager = dolphin +$toggle_menu_cmd = pgrep wofi >/dev/null 2>&1 && killall wofi || wofi --show drun + +# ╭──────────────────────────────────────────────────────────╮ +# │ AUTOSTART │ +# ╰──────────────────────────────────────────────────────────╯ + +source = ./conf/autostart.conf + +############################# +### 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 = 2 + gaps_out = 4 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(aaaaaa77) + col.inactive_border = rgba(000000aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = true + + # 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 = 2 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 0.9 + fullscreen_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 + } +} + + +# XDG Desktop Portal +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland + +# QT +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_QPA_PLATFORMTHEME,qt6ct +env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 + +# GDK +env = GDK_SCALE,1 + +# Toolkit Backend +env = GDK_BACKEND,wayland,x11,* +env = CLUTTER_BACKEND,wayland + +# Mozilla +env = MOZ_ENABLE_WAYLAND,1 + +# Set the cursor size for xcursor +env = XCURSOR_SIZE,24 + +# Disable appimage launcher by default +env = APPIMAGELAUNCHER_DISABLE,1 + +# OZONE +env = OZONE_PLATFORM,wayland + +# ╭──────────────────────────────────────────────────────────╮ +# │ Animations │ +# ╰──────────────────────────────────────────────────────────╯ + +source = conf/animations.conf + +# 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 = true # If true disables the random hyprland logo / anime girl background. :( +} + + +# ╭──────────────────────────────────────────────────────────╮ +# │ Input │ +# ╰──────────────────────────────────────────────────────────╯ + +source = ./conf/input.conf + +# ╭──────────────────────────────────────────────────────────╮ +# │ Keybindings │ +# ╰──────────────────────────────────────────────────────────╯ + +source = ./conf/keybindings.conf + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# 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)$ +windowrule = size 300 400,(copyq) + +windowrule = float, (copyq|pavucontrol|blueman-manager|wofi|rofi) +windowrule = center, (wofi) +windowrule = move onscreen cursor,(copyq|pavucontrol|blueman-manager) +# Example windowrule v2 +windowrulev2 = float,class:^(cursor-float)$ +windowrulev2 = move onscreen cursor,class:^(cursor-float)$ + +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..e626e80 --- /dev/null +++ b/.config/hypr/hyprlock.conf @@ -0,0 +1,84 @@ +# _ _ _ +# | |__ _ _ _ __ _ __| | ___ ___| | __ +# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ / +# | | | | |_| | |_) | | | | (_) | (__| < +# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\ +# |___/|_| +# + +background { + monitor = + path = $HOME/wallpapers/isaac_cathedral.jpg +} + +label { + monitor = + #clock + text = cmd[update:1000] echo "$TIME" + color = rgba(255, 255, 255, 1.0) + font_size = 128 + font_family = Fira Bold + shadow_passes = 5 + shadow_size = 10 + position = 0, 120 + halign = center + valign = center +} + +input-field { + monitor = + size = 320, 40 + outline_thickness = 3 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 1 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + dots_rounding = -1 # -1 default circle, -2 follow input-field rounding + outer_color = rgba(50, 50, 50, 0.5) + inner_color = rgba(50, 50, 50, 0.5) + font_color = rgb(255, 255, 255) + fade_on_empty = true + fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. + placeholder_text = Password, please # Text rendered in the input box when it's empty. + hide_input = false + rounding = -1 # -1 means complete rounding (circle/oval) + check_color = rgb(204, 136, 34) + fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color + fail_text = Неправильно, попробуй ещё раз! (попыток осталось: $ATTEMPTS) # can be set to empty + fail_transition = 300 # transition time in ms between normal outer_color and fail_color + capslock_color = rgb(150, 34, 34) + numlock_color = -1 + bothlock_color = rgb(150, 34, 34) + invert_numlock = false # change color if numlock is off + swap_font_color = false # see below + position = 0, -80 + halign = center + valign = center +} + +label { + monitor = + text = $USER + color = rgba(200, 200, 200, 1.0) + font_size = 20 + font_family = Fira Semibold + position = 20, 20 + halign = left + valign = bottom + shadow_passes = 5 + shadow_size = 10 +} + +# image { +# monitor = +# path = $HOME/wallpapers/isaac_cathedral.jpg +# size = 280 # lesser side if not 1:1 ratio +# rounding = -1 # negative values mean circle +# border_size = 4 +# border_color = rgb(221, 221, 221) +# rotate = 0 # degrees, counter-clockwise +# reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2 +# # reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F +# position = 0, 200 +# halign = center +# valign = center +# } diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..f5e4f0e --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = ~/wallpapers/isaac_cathedral.jpg +wallpaper = ,~/wallpapers/isaac_cathedral.jpg