aboutsummaryrefslogtreecommitdiff
path: root/.config/hypr
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-03-09 09:04:07 +0200
committersrdusr <trevorgray@srdusr.com>2023-03-09 09:04:07 +0200
commit28e504b49ac6680939a8f53f1945805f50e95cac (patch)
tree07c345adf5eafe6e9f0707c9426d2d41f6907400 /.config/hypr
parent225831f9a631b5e803885ca4391cc12ed40d2cbb (diff)
downloaddotfiles-28e504b49ac6680939a8f53f1945805f50e95cac.tar.gz
dotfiles-28e504b49ac6680939a8f53f1945805f50e95cac.zip
Add hyprland
Diffstat (limited to '.config/hypr')
-rw-r--r--.config/hypr/autostart54
-rw-r--r--.config/hypr/hyprland.conf303
2 files changed, 357 insertions, 0 deletions
diff --git a/.config/hypr/autostart b/.config/hypr/autostart
new file mode 100644
index 0000000..c7a5932
--- /dev/null
+++ b/.config/hypr/autostart
@@ -0,0 +1,54 @@
+#!/usr/bin/bash
+
+# Policy Authentication Agent
+/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
+
+eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
+export $(gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
+
+# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
+# https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
+systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
+dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP --all &
+
+export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gcr/ssh
+
+# variables
+scripts=~/.scripts
+
+# gsettings
+gsettings set org.gnome.desktop.interface gtk-theme 'Tokyonight-Dark-BL-LB'
+gsettings set org.gnome.desktop.interface font-name 'CaskaydiaCove Nerd Font 9'
+gsettings set org.gnome.desktop.interface icon-theme 'Tokyonight-Moon'
+gsettings set org.gnome.desktop.interface cursor-theme 'Sweet-cursors'
+
+# For nemo
+gsettings set org.cinnamon.desktop.default-applications.terminal exec kitty
+
+# notification daemon
+swaync &
+
+# waybar
+$scripts/launch_waybar &
+# $scripts/dynamic &
+
+# wallpaper
+$scripts/wall ~/.config/hypr/wallpapers/1.jpg &
+
+# effects
+# $scripts/tools/rgb &
+
+# Applets
+blueman-applet &
+nm-applet --indicator &
+
+# music daemon
+mpd &
+
+# other
+hyprctl setcursor Sweet-cursors 24
+wl-paste --watch cliphist store &
+notify-send -a aurora "hello $(whoami)" &
+
+sleep 2
+mpd-mpris &
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..0749272
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,303 @@
+monitor=, 1920x1080@60, auto, 1
+
+exec-once=$HOME/.config/hypr/autostart
+
+$term = kitty
+$browser = firefox
+$gmail = firefox --new-instance -P app "https://mail.google.com/" --class appProfile
+$editor = code
+$explorer = nemo
+$music = g4music
+$notepad = code --profile notepad --unity-launch ~/Templates
+$launcher = wofi --show drun -n
+$launcher_alt = wofi --show run -n
+#$discord = discord
+
+
+general {
+ gaps_in = 5
+ gaps_out = 10
+ border_size = 2
+ col.active_border = rgba(cba6f7ff) rgba(89b4faff) rgba(94e2d5ff) 10deg
+ col.inactive_border = 0xff313244
+ # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
+ apply_sens_to_raw = 0
+}
+
+
+input {
+ # kb_file =
+ kb_layout = us
+ # kb_variant =
+ # kb_model =
+ # kb_options = ctrl:swapcaps
+ # kb_rules =
+ sensitivity = 0.75 # for mouse cursor
+
+ follow_mouse = 1
+
+ scroll_method = 2fg
+
+ touchpad {
+ natural_scroll = false
+ disable_while_typing = true
+ tap-to-click = true
+ }
+}
+
+
+decoration {
+ rounding = 16
+ multisample_edges = true
+
+ active_opacity = 0.95
+ inactive_opacity = 0.9
+ fullscreen_opacity = 0.95
+
+ dim_inactive = false
+ dim_strength = 0.05
+
+ blur = true
+ blur_size = 5
+ blur_passes = 4
+ blur_new_optimizations = true
+ blur_xray = true
+ blur_ignore_opacity = true
+
+ drop_shadow = true
+ shadow_ignore_window = true
+ shadow_range = 20
+ shadow_render_power = 3
+ col.shadow = 0x55161925
+ col.shadow_inactive = 0x22161925
+ # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
+ # if you want heavy blur, you need to up the blur_passes.
+ # the more passes, the more you can up the blur_size without noticing artifacts.
+
+ # Blurring layerSurfaces
+ # blurls = gtk-layer-shell
+ # blurls = waybar
+ # blurls = lockscreen
+ blurls = rofi
+ blurls = wofi
+}
+
+
+animations {
+ enabled = true
+ # bezier = overshot, 0.05, 0.9, 0.1, 1.1
+ bezier = overshot, 0.13, 0.99, 0.29, 1.1
+ animation = windows, 1, 4, overshot, slide
+ animation = border, 1, 10, default
+ animation = fade, 1, 10, default
+ animation = workspaces, 1, 6, overshot, slidevert
+}
+
+
+dwindle {
+ pseudotile = true # enable pseudotiling on dwindle
+ force_split = 0
+ col.group_border = 0xff89dceb
+ col.group_border_active = 0xfff9e2af
+ preserve_split = true
+}
+
+
+master {
+
+}
+
+
+gestures {
+ workspace_swipe = true
+ workspace_swipe_invert = false
+ workspace_swipe_fingers = 3
+}
+
+
+misc {
+ disable_hyprland_logo = true
+
+ focus_on_activate = true
+
+ enable_swallow = true
+ swallow_regex = ^(kitty)$
+}
+
+
+binds {
+ allow_workspace_cycles = true
+}
+
+
+custom {
+ rules {
+ # for windows named/classed as abc and xyz
+ # windowrule = move 69 420, abc
+ # windowrule = pseudo, abc
+ # windowrule = monitor 0, xyz
+ # windowrule = tile, xy
+
+ windowrule = float, title:^(fly_is_kitty)$
+ windowrule = size 800 500, title:^(fly_is_kitty)$
+ windowrule = move center, title:^(fly_is_kitty)$
+ windowrule = animation slide, title:^(fly_is_kitty)$
+
+ windowrule = float, title:^(all_is_kitty)$
+
+ windowrule = float, title:^(clock_is_kitty)$
+ windowrule = size 325 180, title:^(clock_is_kitty)$
+
+ windowrule = float, title:^(donut_is_kitty)$
+ windowrule = size 660 486, title:^(donut_is_kitty)$
+
+ windowrule = animation popin, title:^(donut_is_kitty)$
+
+ windowrule = float,^(rlr)$
+ windowrule = float,^(pavucontrol)$
+ windowrule = float,^(blueman-manager)$
+ windowrule = float,^(nm-connection-editor)$
+ windowrule = float,^(mediainfo-gui)$
+ windowrule = tile,^(neovide)$
+ windowrulev2 = float, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$
+ windowrulev2 = float, class:^(nemo)$, title:^(.*Properties)$
+ windowrulev2 = float, class:^(Nemo-preview-start)$
+
+ windowrule = float,^(com.github.neithern.g4music)$
+ windowrule = size 670 635,^(com.github.neithern.g4music)$
+ windowrule = move center,^(com.github.neithern.g4music)$
+
+ windowrulev2 = animation slide, class:^(wofi)$
+ windowrulev2 = move 100%-433 53, class:^(wofi)$, title:^(clippick)$
+
+ windowrulev2 = animation popin, class:^(wlogout)$, title:^(wlogout)$
+ windowrulev2 = float, class:^(wlogout)$, title:^(wlogout)$
+ }
+
+ binds {
+ # Mouse binds
+ bindm = SUPER, mouse:272, movewindow
+ bindm = SUPER, mouse:273, resizewindow
+
+ bind = SUPER, mouse_down, workspace, e-1
+ bind = SUPER, mouse_up, workspace, e+1
+
+ # Kitty binds
+ bind = ALT, RETURN, exec, kitty --start-as=fullscreen --title all_is_kitty
+ bind = SUPER, RETURN, exec, kitty --title fly_is_kitty --single-instance
+ bind = SUPER, t, exec, $term
+
+ # Screenshot binds
+ bind = , Print, exec,~/.scripts/screenshot_full
+ bind = ALT, Print, exec,~/.scripts/screenshot
+
+ # Application binds
+ bind = SUPER, Q, killactive,
+ bind = SUPER, F, exec, $explorer
+ bind = SUPER, B, exec, $browser
+ bind = SUPER, E, exec, $gmail
+ bind = SUPER, G, exec, $notepad
+
+ # Wofi and notification binds
+ bind = SUPER, V, exec, pkill wofi || cliphist list | wofi --dmenu -p clippick -l top_right -x -15 -y 10 -n | cliphist decode | wl-copy
+ bind = SUPER, N, exec, swaync-client -t -sw
+ bindr = SUPER, SUPER_L, exec, pkill wofi || $launcher
+ bind = SUPER, space, exec, pkill wofi || $launcher_alt
+
+ # Other dispatchers
+ bind = ALT, Tab, cyclenext
+ bind = SUPER, M, fullscreen,
+ bind = SUPER, C, exec, hyprctl dispatch centerwindow none
+ bind = SUPER_SHIFT, M, fakefullscreen,
+ bind = SUPER, P, pseudo,
+ bind = SUPER, S, togglefloating,
+ bind = SUPER_SHIFT, G, togglegroup,
+ bind = SUPER, tab, changegroupactive,
+
+ # Reload waybar
+ bind = SUPER_SHIFT, R, exec,~/.scripts/launch_waybar
+
+ # Logout screen, lock, exit
+ bind = SUPER, escape, exec,~/.config/wlogout/launch.sh
+ bind = SUPER, L, exec,~/.scripts/lock
+ bind = SUPER_SHIFT, escape, exit
+
+
+ # Move window with SUPER + Shift + arrow keys
+ # [↑]
+ # [←] [↓] [→]
+ bind = SUPER_SHIFT, left, movewindow, l
+ bind = SUPER_SHIFT, right, movewindow, r
+ bind = SUPER_SHIFT, up, movewindow, u
+ bind = SUPER_SHIFT, down, movewindow, d
+
+ # Move window focus with SUPER + arrow keys
+ # [↑]
+ # [←] [↓] [→]
+ bind = SUPER, left, movefocus, l
+ bind = SUPER, right, movefocus, r
+ bind = SUPER, up, movefocus, u
+ bind = SUPER, down, movefocus, d
+
+ # Move To a workspaces
+ 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 windows between workspaces
+ bind = SUPER_SHIFT, 1, movetoworkspace, 1
+ bind = SUPER_SHIFT, 2, movetoworkspace, 2
+ bind = SUPER_SHIFT, 3, movetoworkspace, 3
+ bind = SUPER_SHIFT, 4, movetoworkspace, 4
+ bind = SUPER_SHIFT, 5, movetoworkspace, 5
+ bind = SUPER_SHIFT, 6, movetoworkspace, 6
+ bind = SUPER_SHIFT, 7, movetoworkspace, 7
+ bind = SUPER_SHIFT, 8, movetoworkspace, 8
+ bind = SUPER_SHIFT, 9, movetoworkspace, 9
+
+ # Ricing :p
+ bind = CTRL, 1, exec, kitty --title fly_is_kitty sh -c 'cava'
+ bind = CTRL, 2, exec, kitty --title donut_is_kitty sh -c '~/.local/bin/donut'
+ bind = CTRL, 3, exec, kitty --title clock_is_kitty sh -c 'tty-clock -C5 -c'
+
+ # Use this to get thw XF86 bind (FN + Fx combination) for your keyboard
+ # xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
+
+ # Volume Control
+ binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%
+ binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%
+ bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
+ bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
+
+ # Media Control
+ bind = , XF86AudioMedia, exec, playerctl play-pause
+ bind = , XF86AudioPlay, exec, playerctl play-pause
+ bind = , XF86AudioStop, exec, playerctl stop
+ bind = , XF86AudioPrev, exec, playerctl previous
+ bind = , XF86AudioNext, exec, playerctl next
+
+ # Brightness Control
+ binde = , XF86MonBrightnessUp, exec, light -A 1
+ binde = , XF86MonBrightnessDown, exec, light -U 1
+
+ # Screensaver key
+ bind = , XF86ScreenSaver, exec,~/.scripts/lock
+
+ # Others
+ bind = , XF86Mail, exec,$gmail
+ bind = , XF86HomePage, exec, $explorer ~/
+ bind = , XF86Calculator, exec, qalculate-gtk
+ bind = , XF86Search, exec, wofi
+
+ # trigger when the switch is turning on
+ # bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor ", 1920x1080@60, auto, 1"
+ # trigger when the switch is turning off
+ bindl = , switch:off:Lid Switch, exec, playerctl --all-players stop; ~/.scripts/lock; systemctl suspend
+ }
+}