aboutsummaryrefslogtreecommitdiff
path: root/hyprland/dot-config/hypr
diff options
context:
space:
mode:
Diffstat (limited to 'hyprland/dot-config/hypr')
-rw-r--r--hyprland/dot-config/hypr/hypridle.conf27
-rw-r--r--hyprland/dot-config/hypr/hyprland.conf202
-rw-r--r--hyprland/dot-config/hypr/hyprlock.conf76
3 files changed, 305 insertions, 0 deletions
diff --git a/hyprland/dot-config/hypr/hypridle.conf b/hyprland/dot-config/hypr/hypridle.conf
new file mode 100644
index 0000000..a3fb5f1
--- /dev/null
+++ b/hyprland/dot-config/hypr/hypridle.conf
@@ -0,0 +1,27 @@
+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.
+}
+
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+listener {
+ timeout = 300 # 5min.
+ on-timeout = loginctl lock-session # lock screen when timeout has passed.
+}
+
+listener {
+ timeout = 330 # 5.5min.
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed.
+ on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
+}
+
+listener {
+ timeout = 1800 # 30min.
+ on-timeout = systemctl suspend # suspend pc.
+}
diff --git a/hyprland/dot-config/hypr/hyprland.conf b/hyprland/dot-config/hypr/hyprland.conf
new file mode 100644
index 0000000..731e4b6
--- /dev/null
+++ b/hyprland/dot-config/hypr/hyprland.conf
@@ -0,0 +1,202 @@
+monitor=,preferred,auto,auto
+
+$terminal = app2unit -- alacritty
+$menu = fuzzel --launch-prefix="app2unit --"
+$browser = app2unit -- qutebrowser
+$exit = loginctl terminate-user ""
+$lock = app2unit -- hyprlock --no-fade-in
+
+$activeBorderColor = rgb(005577) # rgba(71CEADee)
+$inactiveBorderColor = rgb(444444)
+
+general {
+ gaps_in = 5
+ gaps_out = 15
+ border_size = 2
+
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ # col.active_border = $activeBorderColor
+ col.inactive_border = $inactiveBorderColor
+
+ resize_on_border = false
+ allow_tearing = false
+ layout = master
+}
+
+decoration {
+ rounding = 10
+ rounding_power = 2
+
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = false
+ }
+ blur {
+ enabled = false
+ }
+}
+
+animations {
+ enabled = yes
+
+ # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
+ # NAME, X0, Y0, X1, Y1
+ bezier = easeOutQuint, 0.23, 1, 0.32, 1
+ bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
+ bezier = linear, 0, 0, 1, 1
+ bezier = almostLinear, 0.5, 0.5, 0.75, 1
+ bezier = quick, 0.15, 0, 0.1, 1
+
+ # Default animations, see https://wiki.hypr.land/Configuring/Animations/
+ # NAME, ONOFF, SPEED, CURVE, [STYLE]
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+ animation = zoomFactor, 1, 7, quick
+}
+
+# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
+# "Smart gaps" / "No gaps when only"
+# uncomment all if you wish to use that.
+# workspace = w[tv1], gapsout:0, gapsin:0
+# workspace = f[1], gapsout:0, gapsin:0
+# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
+# windowrule = bordersize 0, floating:0, onworkspace:f[1]
+
+# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
+master {
+ new_status = inherit
+ mfact = 0.50
+}
+
+misc {
+ force_default_wallpaper = 0
+ disable_hyprland_logo = true
+}
+
+input {
+ kb_layout = us,ir
+ kb_variant = ,pes_keypad
+ kb_options = grp:shifts_toggle
+
+ repeat_rate = 50
+ repeat_delay = 300
+
+ follow_mouse = 1
+
+ sensitivity = 0
+
+ touchpad {
+ natural_scroll = false
+ }
+}
+
+# See https://wiki.hypr.land/Configuring/Gestures
+# gesture = 3, horizontal, workspace
+
+$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
+
+# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
+bind = SUPER, return, exec, $terminal
+bind = SUPER SHIFT, C, killactive,
+bind = SUPER SHIFT, E, exec, $exit
+
+bind = SUPER SHIFT, space, togglefloating,
+bind = SUPER, V, togglesplit, # dwindle
+bind = SUPER, F, fullscreen, toggle
+bind = SUPER SHIFT, return, layoutmsg, swapwithmaster master ignoremaster
+bind = SUPER, space, exec, $(hyprctl activewindow -j | jq -e '.floating') && hyprctl dispatch cyclenext tiled || hyprctl dispatch cyclenext floating
+
+bind = SUPER, comma, focusmonitor, +1
+bind = SUPER SHIFT, comma, movewindow, mon:+1 silent
+
+bind = SUPER, P, exec, $menu
+bind = SUPER, B, exec, $browser
+bind = SUPER, X, exec, $lock
+# bind = SUPER, E, exec, rofi -show emoji
+# bind = SUPER, M, exec, app2unit -- emacsclient -c
+
+# Move focus with mainMod + arrow keys
+bind = SUPER, H, movefocus, l
+bind = SUPER, J, movefocus, d
+bind = SUPER, K, movefocus, u
+bind = SUPER, L, movefocus, r
+
+# Move window
+bind = SUPER SHIFT, H, movewindow, l
+bind = SUPER SHIFT, J, movewindow, d
+bind = SUPER SHIFT, K, movewindow, u
+bind = SUPER SHIFT, L, movewindow, r
+bind = SUPER, C, centerwindow
+
+# Switch workspaces with mainMod + [0-9]
+bind = SUPER, 1, workspace, 1
+bind = SUPER, 2, workspace, 2
+bind = SUPER, 3, workspace, 3
+bind = SUPER, 4, workspace, 4
+bind = SUPER, 5, workspace, 5
+bind = SUPER, 6, workspace, 6
+bind = SUPER, 7, workspace, 7
+bind = SUPER, 8, workspace, 8
+bind = SUPER, 9, workspace, 9
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
+bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
+bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
+bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
+bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
+bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
+bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
+bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
+bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
+
+# Example special workspace (scratchpad)
+bind = SUPER, S, togglespecialworkspace, magic
+bind = SUPER SHIFT, S, movetoworkspace, special:magic
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = SUPER, mouse:272, movewindow
+bindm = SUPER, mouse:273, resizewindow
+
+
+# Laptop multimedia keys for volume and LCD brightness
+bindel = ,XF86AudioRaiseVolume, exec, $osdclient --output-volume raise --max-volume 100
+bindel = ,XF86AudioLowerVolume, exec, $osdclient --output-volume lower
+bindel = ,XF86AudioMute, exec, $osdclient --output-volume mute-toggle && update-led-mute sink
+bindel = ,XF86AudioMicMute, exec, $osdclient --input-volume mute-toggle && update-led-mute source
+bindel = ,XF86MonBrightnessUp, exec, $osdclient --brightness raise
+bindel = ,XF86MonBrightnessDown, exec, $osdclient --brightness lower
+
+# Screenshot
+bindd = , PRINT, Screenshot with editing, exec, screenshot-hypr
+bindd = SHIFT, PRINT, Screenshot to clipboard, exec, screenshot-hypr smart
+bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
+
+
+# Ignore maximize requests from apps. You'll probably like this.
+windowrule = suppressevent maximize, class:.*
+
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/hyprland/dot-config/hypr/hyprlock.conf b/hyprland/dot-config/hypr/hyprlock.conf
new file mode 100644
index 0000000..9df3e67
--- /dev/null
+++ b/hyprland/dot-config/hypr/hyprlock.conf
@@ -0,0 +1,76 @@
+$font = Hack
+
+general {
+ hide_cursor = true
+}
+
+auth {
+ fingerprint:enabled = true
+}
+
+animations {
+ enabled = false
+}
+
+background {
+ color = rgba(0, 0, 0, 1.0)
+}
+
+input-field {
+ size = 500, 90
+ outline_thickness = 3
+ inner_color = rgba(0, 0, 0, 0.0)
+
+ outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
+ check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
+ fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
+
+ font_color = rgb(143, 143, 143)
+ fade_on_empty = false
+ rounding = 15
+
+ font_family = $font
+ placeholder_text = <span>Enter Password 󰈷 </span>
+ fail_text = $PAMFAIL
+
+ dots_spacing = 0.3
+
+ position = 0, -20
+ halign = center
+ valign = center
+}
+
+# TIME
+label {
+ monitor =
+ text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
+ font_size = 90
+ font_family = $font
+
+ position = -30, 0
+ halign = right
+ valign = top
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
+ font_size = 25
+ font_family = $font
+
+ position = -30, -150
+ halign = right
+ valign = top
+}
+
+label {
+ monitor =
+ text = $LAYOUT[en,ir]
+ font_size = 24
+ onclick = hyprctl switchxkblayout all next
+
+ position = 300, -20
+ halign = center
+ valign = center
+}