Skip to content

Commit

Permalink
[hypr] Initial hyprland files. Already quite customized
Browse files Browse the repository at this point in the history
  • Loading branch information
kneitinger committed Mar 23, 2024
1 parent 616391c commit 59609a9
Show file tree
Hide file tree
Showing 7 changed files with 786 additions and 0 deletions.
278 changes: 278 additions & 0 deletions .config/hypr/hyprland.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
#

exec-once = hyprpm reload -n

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,0x0,1
monitor=DP-1,preferred,-2560x-360,1

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
exec-once = waybar & hyprpaper & mako & gammastep-indicator
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = alacritty & firefox & keepassxc & syncthing & solaar
exec = kanshi

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Set programs that you use
$terminal = alacritty
$fileManager = pcmanfm
$menu_desktop = wofi --show drun
$menu = wofi --show run

# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket
env = GDK_BACKEND,wayland,x11
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland


# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =

follow_mouse = 1

touchpad {
natural_scroll = yes
scroll_factor = 0.75
clickfinger_behavior = yes
}

sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more

gaps_in = 3
gaps_out = 6
border_size = 3
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)

#layout = dwindle
layout = hy3

# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false

}

decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more

rounding = 12

blur {
enabled = true
size = 5
passes = 3
}

drop_shadow = off
shadow_range = 6
shadow_render_power = 1
shadow_offset = 3 5
col.shadow = rgba(1a1a1a66)
}

animations {
enabled = yes

# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

bezier = myBezier, 0.05, 0.9, 0.1, 1.05

animation = windows, 0, 7, myBezier
animation = windowsOut, 0, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}

dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
no_gaps_when_only = yes
}

group {
col.border_active = rgba(33ccffee) rgba(00ff99ee) 45deg
groupbar {
enabled = false
}
}


master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
}

gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = on
}

misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
}



layerrule = blur, waybar

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Escape, killactive,
#bind = $mainMod, M, exit,
#bind = $mainMod, P, exec, $fileManager
bind = $mainMod, C, togglefloating,
bind = $mainMod, D, exec, $menu_desktop
bind = $mainMod SHIFT, D, exec, $menu
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, E, togglesplit, # dwindle
#bind = $mainMod, W, togglegroup,
bind = $mainMod, F, fullscreen

# Toggle waybar visibility
bind = $mainMod, B, exec, killall -SIGUSR1 waybar
# Reload waybar config
bind = $mainMod SHIFT , B, exec, killall -SIGUSR2 waybar

# Move focus with mainMod + (arrow keys | vim keys)
#bind = $mainMod, left, movefocus, l
#bind = $mainMod, right, movefocus, r
#bind = $mainMod, up, movefocus, u
#bind = $mainMod, down, movefocus, d
#bind = $mainMod, H, movefocus, l
#bind = $mainMod, J, movefocus, d
#bind = $mainMod, K, movefocus, u
#bind = $mainMod, L, movefocus, r
bind = $mainMod, left, hy3:movefocus, l
bind = $mainMod, right, hy3:movefocus, r
bind = $mainMod, up, hy3:movefocus, u
bind = $mainMod, down, hy3:movefocus, d
bind = $mainMod, H, hy3:movefocus, l
bind = $mainMod, J, hy3:movefocus, d
bind = $mainMod, K, hy3:movefocus, u
bind = $mainMod, L, hy3:movefocus, r

bind = $mainMod CONTROL, H, changegroupactive, b
bind = $mainMod CONTROL, L, changegroupactive, f

bind = $mainMod SHIFT, H, hy3:movewindow, l
bind = $mainMod SHIFT, J, hy3:movewindow, d
bind = $mainMod SHIFT, K, hy3:movewindow, u
bind = $mainMod SHIFT, L, hy3:movewindow, r

bind = $mainMod CONTROL, 9, movecurrentworkspacetomonitor, l
bind = $mainMod CONTROL, 0, movecurrentworkspacetomonitor, r

# 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, movetoworkspacesilent, 1
#bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
#bind = $mainMod SHIFTn, 3, movetoworkspacesilent, 3
#bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
#bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
#bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
#bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
#bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
#bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
#bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
bind = $mainMod SHIFT, 1, hy3:movetoworkspace, 1
bind = $mainMod SHIFT, 2, hy3:movetoworkspace, 2
bind = $mainMod SHIFTn, 3, hy3:movetoworkspace, 3
bind = $mainMod SHIFT, 4, hy3:movetoworkspace, 4
bind = $mainMod SHIFT, 5, hy3:movetoworkspace, 5
bind = $mainMod SHIFT, 6, hy3:movetoworkspace, 6
bind = $mainMod SHIFT, 7, hy3:movetoworkspace, 7
bind = $mainMod SHIFT, 8, hy3:movetoworkspace, 8
bind = $mainMod SHIFT, 9, hy3:movetoworkspace, 9
bind = $mainMod SHIFT, 0, hy3:movetoworkspace, 10

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

bind = $mainMod, N, togglespecialworkspace, keepassxc
windowrulev2 = workspace special:keepassxc silent, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = size 1200 950, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = center, class:^(org.keepassxc.KeePassXC)$
animation=specialWorkspace,1,7,default,fade

# 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


# Screen brightness
bind = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/backlight --inc
bind = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/backlight --dec

bind = SUPER SHIFT, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy

# https://github.com/outfoxxed/hy3?tab=readme-ov-file#config-fields
plugin {
hy3 {
no_gaps_when_only = true
tabs {
padding = 1
height = 10
render_text = false
text_center = true
text_font = Jost* Medium
text_height = 9
rounding = 5
}
autotile {
enable = true
ephemeral_groups = true
}
}
}

bind = $mainMod, G, hy3:makegroup, force_ephemeral
bind = $mainMod, V, hy3:makegroup, force_ephemeral
bind = $mainMod, E, hy3:changegroup, opposite
bind = $mainMod, W, hy3:changegroup, toggletab
bind = $mainMod, A, hy3:changefocus, raise
16 changes: 16 additions & 0 deletions .config/hypr/hyprpaper.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
preload = ~/.bg.png
#if more than one preload is desired then continue to preload other backgrounds
#preload = /path/to/next_image.png
# .. more preloads

#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
wallpaper = ,~/.bg.png
#if more than one monitor in use, can load a 2nd image
#wallpaper = monitor2,/path/to/next_image.png
# .. more monitors

#enable splash text rendering over the wallpaper
splash = false

#fully disable ipc
ipc = off
51 changes: 51 additions & 0 deletions .config/hypr/scripts/backlight
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env bash

iDIR="$HOME/.config/mako/icons"

# Get brightness
get_backlight() {
LIGHT=$(printf "%.0f\n" "$(brightnessctl i | grep 'Current' | sed 's/.*(\(.*\)%)/\1/')")
echo "${LIGHT}"
}

# Get icons
get_icon() {
current="$(get_backlight)"
if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then
icon="$iDIR/brightness-20.png"
elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then
icon="$iDIR/brightness-40.png"
elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then
icon="$iDIR/brightness-60.png"
elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then
icon="$iDIR/brightness-80.png"
elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then
icon="$iDIR/brightness-100.png"
fi
}

# Notify
notify_user() {
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Brightness : $(get_backlight)"
}

# Increase brightness
inc_backlight() {
brightnessctl s +5% && get_icon && notify_user
}

# Decrease brightness
dec_backlight() {
brightnessctl s 5%- && get_icon && notify_user
}

# Execute accordingly
if [[ "$1" == "--get" ]]; then
get_backlight
elif [[ "$1" == "--inc" ]]; then
inc_backlight
elif [[ "$1" == "--dec" ]]; then
dec_backlight
else
get_backlight
fi
Loading

0 comments on commit 59609a9

Please sign in to comment.