commit 733e20bcaf108cd2020af1d406522d9a8656639a Author: GHOSCHT <31184695+GHOSCHT@users.noreply.github.com> Date: Mon Oct 9 14:22:12 2023 +0200 Add hyprland diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..b658412 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,203 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=DP-1,1920x1080@75,auto,auto +monitor=DP-3,2560x1440@144,auto,auto +monitor=,preferred,auto,auto + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = hyprshade on ~/.config/hypr/shaders/nightlight.frag +exec-once = waybar +exec-once = hyprpaper +exec-once = razer-cli --dpi 400 +exec-once = fcitx5 -d +exec-once = /usr/lib/polkit-kde-authentication-agent-1 +exec-once = openrgb --server --profile default +exec-once = nextcloud --background +exec-once = electron-mail --ozone-platform-hint=auto +exec-once = dunst +exec-once = easyeffects --gapplication-service +exec-once = $HOME/.local/share/hyprload/hyprload.sh +exec-once = flatpak run io.github.spacingbat3.webcord --start-minimized +exec-once = wl-paste --type text --watch cliphist store #Stores only text data +exec-once = wl-paste -p --watch wl-copy -pc +exec-once = signal-desktop --start-in-tray + +# Source a file (multi-file configs) +source = ~/.config/hypr/mocha.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSORS,1 + +plugin { + hyprload { + debug = false + quiet = true + } + split-monitor-workspaces { + count = 9 + } +} + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 5 + border_size = 2 + col.active_border = $teal + col.inactive_border = $tealAlpha + + layout = dwindle +} + +misc { + disable_hyprland_logo = true + vrr = true + vfr = true +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + # screen_shader = ~/.config/hypr/shaders/nightlight.frag + + rounding = 10 + + blur { + enabled = true + size = 3 + passes = 1 + } + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +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, 1, 7, myBezier + animation = windowsOut, 1, 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 +} + +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 = off +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +windowrule = float, ^(CopyQ)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# 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, alacritty +bind = $mainMod, SPACE, exec, ~/.config/rofi/launchers/type-2/launcher.sh +bind = $mainMod, x, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh +bind = SUPER_SHIFT, C, killactive, +bind = SUPER_SHIFT, Q, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, wofi --show drun +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, O, split-changemonitorsilent,next +# 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, split-workspace, 1 +bind = $mainMod, 2, split-workspace, 2 +bind = $mainMod, 3, split-workspace, 3 +bind = $mainMod, 4, split-workspace, 4 +bind = $mainMod, 5, split-workspace, 5 +bind = $mainMod, 6, split-workspace, 6 +bind = $mainMod, 7, split-workspace, 7 +bind = $mainMod, 8, split-workspace, 8 +bind = $mainMod, 9, split-workspace, 9 +bind = $mainMod, 0, split-workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, split-movetoworkspace, 1 +bind = $mainMod SHIFT, 2, split-movetoworkspace, 2 +bind = $mainMod SHIFT, 3, split-movetoworkspace, 3 +bind = $mainMod SHIFT, 4, split-movetoworkspace, 4 +bind = $mainMod SHIFT, 5, split-movetoworkspace, 5 +bind = $mainMod SHIFT, 6, split-movetoworkspace, 6 +bind = $mainMod SHIFT, 7, split-movetoworkspace, 7 +bind = $mainMod SHIFT, 8, split-movetoworkspace, 8 +bind = $mainMod SHIFT, 9, split-movetoworkspace, 9 +bind = $mainMod SHIFT, 0, split-movetoworkspace, 10 + +# 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 + +# Hyprload +bind=SUPERSHIFT,R,hyprload,reload +bind=SUPERSHIFT,U,hyprload,update + +bind = SUPERSHIFT, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy +bind = $mainMod, L, exec, librewolf +bind = $mainMod SHIFT, L, exec, librewolf --private-window +bind = , Print, exec, hyprshade off && grim -g "$(slurp -d)" - | convert - -shave 1x1 PNG:- | wl-copy && hyprshade on ~/.config/hypr/shaders/nightlight.frag diff --git a/.config/hypr/hyprload.toml b/.config/hypr/hyprload.toml new file mode 100644 index 0000000..65e668c --- /dev/null +++ b/.config/hypr/hyprload.toml @@ -0,0 +1,3 @@ +plugins = [ + "Duckonaut/split-monitor-workspaces", +] diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..a9aa99c --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = ~/.config/awesome/wallpapers/city.jpg +wallpaper = DP-1,~/.config/awesome/wallpapers/city.jpg +wallpaper = DP-3,~/.config/awesome/wallpapers/city.jpg diff --git a/.config/hypr/mocha.conf b/.config/hypr/mocha.conf new file mode 100644 index 0000000..1463565 --- /dev/null +++ b/.config/hypr/mocha.conf @@ -0,0 +1,61 @@ +$rosewaterAlpha = f5e0dc +$flamingoAlpha = f2cdcd +$pinkAlpha = f5c2e7 +$mauveAlpha = cba6f7 +$redAlpha = f38ba8 +$maroonAlpha = eba0ac +$peachAlpha = fab387 +$yellowAlpha = f9e2af +$greenAlpha = a6e3a1 +$tealAlpha = 94e2d5 +$skyAlpha = 89dceb +$sapphireAlpha = 74c7ec +$blueAlpha = 89b4fa +$lavenderAlpha = b4befe + +$textAlpha = cdd6f4 +$subtext1Alpha = bac2de +$subtext0Alpha = a6adc8 + +$overlay2Alpha = 9399b2 +$overlay1Alpha = 7f849c +$overlay0Alpha = 6c7086 + +$surface2Alpha = 585b70 +$surface1Alpha = 45475a +$surface0Alpha = 313244 + +$baseAlpha = 1e1e2e +$mantleAlpha = 181825 +$crustAlpha = 11111b + +$rosewater = 0xfff5e0dc +$flamingo = 0xfff2cdcd +$pink = 0xfff5c2e7 +$mauve = 0xffcba6f7 +$red = 0xfff38ba8 +$maroon = 0xffeba0ac +$peach = 0xfffab387 +$yellow = 0xfff9e2af +$green = 0xffa6e3a1 +$teal = 0xff94e2d5 +$sky = 0xff89dceb +$sapphire = 0xff74c7ec +$blue = 0xff89b4fa +$lavender = 0xffb4befe + +$text = 0xffcdd6f4 +$subtext1 = 0xffbac2de +$subtext0 = 0xffa6adc8 + +$overlay2 = 0xff9399b2 +$overlay1 = 0xff7f849c +$overlay0 = 0xff6c7086 + +$surface2 = 0xff585b70 +$surface1 = 0xff45475a +$surface0 = 0xff313244 + +$base = 0xff1e1e2e +$mantle = 0xff181825 +$crust = 0xff11111b diff --git a/.config/hypr/shaders/nightlight.frag b/.config/hypr/shaders/nightlight.frag new file mode 100644 index 0000000..41c7c93 --- /dev/null +++ b/.config/hypr/shaders/nightlight.frag @@ -0,0 +1,47 @@ +precision mediump float; +varying vec2 v_texcoord; +uniform sampler2D tex; + +const float temperature = 3500.0; +const float temperatureStrength = 1.0; + +#define WithQuickAndDirtyLuminancePreservation +const float LuminancePreservationFactor = 1.0; + +// function from https://www.shadertoy.com/view/4sc3D7 +// valid from 1000 to 40000 K (and additionally 0 for pure full white) +vec3 colorTemperatureToRGB(const in float temperature){ + // values from: http://blenderartists.org/forum/showthread.php?270332-OSL-Goodness&p=2268693&viewfull=1#post2268693 + mat3 m = (temperature <= 6500.0) ? mat3(vec3(0.0, -2902.1955373783176, -8257.7997278925690), + vec3(0.0, 1669.5803561666639, 2575.2827530017594), + vec3(1.0, 1.3302673723350029, 1.8993753891711275)) : + mat3(vec3(1745.0425298314172, 1216.6168361476490, -8257.7997278925690), + vec3(-2666.3474220535695, -2173.1012343082230, 2575.2827530017594), + vec3(0.55995389139931482, 0.70381203140554553, 1.8993753891711275)); + return mix( + clamp(vec3(m[0] / (vec3(clamp(temperature, 1000.0, 40000.0)) + m[1]) + m[2]), vec3(0.0), vec3(1.0)), + vec3(1.0), + smoothstep(1000.0, 0.0, temperature) + ); +} + +void main() { + vec4 pixColor = texture2D(tex, v_texcoord); + + // RGB + vec3 color = vec3(pixColor[0], pixColor[1], pixColor[2]); + +#ifdef WithQuickAndDirtyLuminancePreservation + color *= mix(1.0, + dot(color, vec3(0.2126, 0.7152, 0.0722)) / max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-5), + LuminancePreservationFactor); +#endif + + color = mix(color, color * colorTemperatureToRGB(temperature), temperatureStrength); + + vec4 outCol = vec4(color, pixColor[3]); + + gl_FragColor = outCol; +} + +