Newer
Older
dotfiles / .config / hypr / hyprland.conf

# #######################################################################################
# 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.
# #######################################################################################

# autogenerated = 1 # remove this line to remove the warning

# 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=eDP-1, 1920x1080@60, 0x0, 1

# this is for vnc server
monitor=HEADLESS-2, 1920x1080@60, 0x1080, 1
# exec-once=kanshi

###################
### MY PROGRAMS ###
###################

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

# Set programs that you use
$terminal = kitty
$fileManager = thunar
$menu = fuzzel


#################
### 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
exec-once = dex --autostart --environment hyprland
exec-once = waybar
exec-once = eww daemon
exec-once = hyprsunset -t 3000
exec-once = hyprpaper
exec-once = hypridle
exec-once = bluetoothctl power off
# exec-once = nwg-dock-hyprland -d
exec-once = /usr/bin/dunst
exec-once = xhost si:localuser:sandbu1
exec-once = xhost si:localuser:sandbu2
# creating vm dir for mounting to vm this is one way go for vm which means its read only for vm
exec-once = mkdir /tmp/vm
exec-once = ~/.config/hypr/Scripts/hypaper.sh
exec-once = hyprswitch init --custom-css ~/.config/hyprswitch/custom.css --show-title --size-factor 5.5 --workspaces-per-row 5

#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = XCURSOR_THEME, oreo_teal_cursors

#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general {
    gaps_in = 10
    gaps_out = 10

    border_size = 0

    # 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
    no_focus_fallback = true
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 10

    # Change transparency of focused and unfocused windows
    active_opacity = 0.95
    # active_opacity = 1
    inactive_opacity = 0.65
    fullscreen_opacity = 1
    shadow {
        enabled = true
        range = 15
        render_power = 2
        ignore_window = true
        color =	rgba(FFFFFF88)
    }
    # drop_shadow = true
    # shadow_range = 5
    # shadow_render_power = 3
    # col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = false
        size = 3
        passes = 1

        vibrancy = 0.1696
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations

animations { # animation=NAME,ONOFF,SPEED,CURVE,STYLE
    enabled = yes

    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.0
    bezier = quick,0.15,0,0.1,1

    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
}

# 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. :(
    disable_splash_rendering = true
    enable_anr_dialog = false
    mouse_move_enables_dpms	= true
    key_press_enables_dpms = true
}
opengl {
    nvidia_anti_flicker = false
}
render {
    explicit_sync = 0
    explicit_sync_kms = 0
    direct_scanout = 1
}

#############
### INPUT ###
#############

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

    follow_mouse = 1

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

    touchpad {
        natural_scroll = false
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = false
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more


###################
### KEYBINDINGS ###
###################

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, SHIFT+E, exit,
bind = $mainMod, T, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, F, exec, falkon
bind = $mainMod, SHIFT C, exec, sudo -i -u sandbu1 PULSE_SERVER=tcp:127.0.0.1:4713 dbus-launch chromium
bind = $mainMod, S, exec, sudo -i -u sandbu2 PULSE_SERVER=tcp:127.0.0.1:4713 steam -silent
bind = $mainMod, H, exec, sudo -i -u sandbu2 PULSE_SERVER=tcp:127.0.0.1:4713 dbus-launch flatpak run com.heroicgameslauncher.hgl
bind = $mainMod, Z, exec, sudo -i -u sandbu1 XCURSOR_THEME=oreo_teal_cursors PULSE_SERVER=tcp:127.0.0.1:4713 dbus-launch zen-browser
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F1, exec, loginctl lock-session
bind = $mainMod, X, exec, lite-xl
bind = $mainMod, W, movetoworkspace, 10
bind = $mainMod SHIFT, ESCAPE, exec, ~/.config/eww/dashboard/launch_dashboard
bind = $mainMod SHIFT, T, exec, mousepad ~/TODO
bind = $mainMod SHIFT, W, exec, killall waybar && waybar
bind = $mainMod SHIFT, E, exec, ~/.config/hypr/Scripts/hypaper.sh
bind = ALT, TAB, exec, hyprswitch gui --mod-key alt --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch
bind = ALT, GRAVE, exec, hyprswitch gui --mod-key alt --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch -r
bind = $mainMod, F1, exec, hyprlock
bind = , F3, exec, hyprpicker
bind = , Print, exec, grim -g "$(slurp)" | wl-copy
bind = , F10, exec, grim -g "$(slurp)" | wl-copy
bind = , F11, exec, grim

# 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, V, 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

# Laptop multimedia keys for volume and LCD brightness
# ROG ZEPHYRUS G14GA401I
bind = , XF86Launch2, exec,
bind = , XF86Launch3, exec,
# ROG Control Center
bind = , XF86Launch1, exec, rog-control-center
# ROG Profile Controls Toggle
bind = , XF86Launch4, exec, asusctl profile -n
# Multimedia Controls
bind = , XF86AudioPrev, exec, ~/.config/hypr/Scripts/media-control prev_track
bind = , XF86AudioPlay, exec, ~/.config/hypr/Scripts/media-control play_pause
bind = , XF86AudioNext, exec, ~/.config/hypr/Scripts/media-control next_track
# Keyboard Brightness Controls
bind = , XF86KbdBrightnessDown, exec, brightnessctl --device='asus::kbd_backlight' s 1-
bind = , XF86KbdBrightnessUP, exec, brightnessctl --device='asus::kbd_backlight' s 1+
# Touchpad Toggle
bind = , XF86TouchpadToggle, exec, hyprctl keyword -r "device[elan1200:00-04f3:303e-touchpad]:enabled" false & dunstify -a "Mousepad" Mousepad disabled
bind = CTRL, XF86TouchpadToggle, exec, hyprctl keyword -r "device[elan1200:00-04f3:303e-touchpad]:enabled" true & dunstify -a "Mousepad" Mousepad enabled
bindel = ,XF86AudioRaiseVolume, exec, ~/.config/hypr/Scripts/media-control volume_up
bindel = ,XF86AudioLowerVolume, exec, ~/.config/hypr/Scripts/media-control volume_down
bindel = ,XF86AudioMute, exec, ~/.config/hypr/Scripts/media-control volume_mute
bindel = ,XF86AudioMicMute, exec, ~/.config/hypr/Scripts/media-control mic_mute
bindel = ,XF86MonBrightnessUp, exec, ~/.config/hypr/Scripts/media-control brightness_up
bindel = ,XF86MonBrightnessDown, exec, ~/.config/hypr/Scripts/media-control brightness_down

##############################
### 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)$

# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrulev2 = tile,class:^(lite-xl)$
windowrulev2 = tile,class:^(aseprite)$
windowrulev2 = tile,class:^(Aseprite)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.