diff --git a/config/.config/hypr/config/custom/plugins.lua b/config/.config/hypr/config/custom/plugins.lua new file mode 100644 index 0000000..bdeb8f4 --- /dev/null +++ b/config/.config/hypr/config/custom/plugins.lua @@ -0,0 +1,3 @@ +------ Plugins + +-- This file is meant to contain all user plugins declaration and configuration diff --git a/config/.config/hypr/config/custom/user.conf b/config/.config/hypr/config/custom/user.conf deleted file mode 100644 index 1b41f68..0000000 --- a/config/.config/hypr/config/custom/user.conf +++ /dev/null @@ -1,5 +0,0 @@ -################### -## USER SETTINGS ## -################### - -# This is meant to contain all user-defined settings (to not break all settings after updates) \ No newline at end of file diff --git a/config/.config/hypr/config/custom/user.lua b/config/.config/hypr/config/custom/user.lua new file mode 100644 index 0000000..ccf3873 --- /dev/null +++ b/config/.config/hypr/config/custom/user.lua @@ -0,0 +1,3 @@ +------ User settings + +-- This file is meant to contain all user-defined settings (to not break all settings after updates) diff --git a/config/.config/hypr/config/default/appearance.conf b/config/.config/hypr/config/default/appearance.conf deleted file mode 100644 index e6fa896..0000000 --- a/config/.config/hypr/config/default/appearance.conf +++ /dev/null @@ -1,274 +0,0 @@ -##################### -### LOOK AND FEEL ### -##################### - -# Refer to https://wiki.hyprland.org/Configuring/Variables/ -source = ~/.config/hypr/config/colors.conf - -# https://wiki.hyprland.org/Configuring/Variables/#general -general { - gaps_in = 1 - gaps_out = 1 - - border_size = 1 - - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - col.active_border = $active_color - col.inactive_border = $inactive_color - - # Resizing windows by clicking and dragging on borders and gaps - resize_on_border = true - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false - - layout = dwindle -} - -# https://wiki.hyprland.org/Configuring/Variables/#decoration -decoration { - rounding = 2 - - # Change transparency of focused and unfocused windows - active_opacity = 1.0 - inactive_opacity = 1.0 - - shadow { - enabled = true - range = 4 - render_power = 3 - color = rgba(1a1a1aee) - } - - # https://wiki.hyprland.org/Configuring/Variables/#blur - blur { - enabled = true - size = 6 - passes = 4 - - vibrancy = 0.1696 - } - -} - -# Layer rules - -layerrule { - name = side-panel - blur = on - ignore_alpha = 0.2 - animation = slide right - dim_around = on - match:namespace = ^(swaync-control-center)$ -} - -layerrule { - name = launcher - blur = off - animation = popin 90% - match:namespace = ^(rofi)$ -} - -layerrule { - name = status-bar - blur = on - animation = slide up - match:namespace = ^(waybar)$ -} - -layerrule { - name = screenshot-selection - blur = off - animation = fade - match:namespace = ^(selection)$ -} - -## Old -# layerrule = blur, swaync-control-center -# layerrule = blur, swaync-notification-window -# layerrule = ignorezero, swaync-control-center -# layerrule = ignorezero, swaync-notification-window -# layerrule = ignorealpha 0.5, swaync-control-center -# layerrule = ignorealpha 0.5, swaync-notification-window - - -# https://wiki.hyprland.org/Configuring/Variables/#animations -animations { - enabled = yes, please :) - - # See https://wiki.hyprland.org/Configuring/Animations/ for more - - # Bezier curves - 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 - - bezier = easeInOutExpo,0.87,0,0.13,1 - - # Animations - animation = global, 1, 10, default - animation = border, 1, 4, easeOutQuint - - animation = windows, 1, 3.5, easeOutQuint - animation = windowsIn, 1, 3.1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1.49, linear, popin 87% - - animation = fadeIn, 1, 1.73, easeOutQuint - animation = fadeOut, 1, 1.46, easeOutQuint - animation = fade, 1, 3.03, easeOutQuint - - animation = layers, 1, 3, easeOutQuint - # animation = layersIn, 1, 2.4, easeOutQuint, popin 85% - # animation = layersOut, 1, 2.4, easeOutQuint, popin 85% - animation = layersIn, 1, 2.4, easeOutQuint, fade - animation = layersOut, 1, 2.4, easeOutQuint, fade - animation = fadeLayersIn, 1, 2, easeOutQuint - animation = fadeLayersOut, 1, 2, easeOutQuint - - animation = workspaces, 1, 2.8 , easeOutQuint, slidefadevert - animation = workspacesIn, 1, 2.6, easeOutQuint, slide - animation = workspacesOut, 1, 2.6, easeOutQuint, slide - -} - -# Ref https://wiki.hyprland.org/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 -# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] -# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] -# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] -# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] - -# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more -dwindle { - 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 = 0 # 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 # Disable default wallpapers rendering -} - - -############################## -### WINDOWS AND WORKSPACES ### -############################## - -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules - -# Ignore maximize requests from apps. You'll probably like this. -windowrule { - name = suppress-maximize-events - suppress_event = maximize - match:class = .* -} - -# Fix some dragging issues with XWayland -windowrule { - name = fix-xwayland-drags - match:class = ^$ - match:title = ^$ - match:xwayland = true - match:float = true - match:fullscreen = false - match:pin = false - - no_focus = true -} - -# Albert -windowrule { - name = albert - border_size = 0 - no_blur = on - no_shadow = on - float = on - stay_focused = on - no_dim = on - match:class = ^(albert)$ -} - -# Prism Launcher -windowrule { - name = prismlauncher-all - pseudo = on - match:class = (org.prismlauncher.PrismLauncher) -} -windowrule { - name = prismlauncher-main - size = (monitor_w*0.65) (monitor_h*0.7) - match:class = (org.prismlauncher.PrismLauncher) - match:title = ^(Prism Launcher .*)$ -} - -# Nautilus -windowrule { - name = nautilus-main - pseudo = on - size = (monitor_w*0.65) (monitor_h*0.7) - match:class = (org.gnome.Nautilus) # initialTitle:^(Loading…)$ -} - -# GTK file picker -windowrule { - name = gtk-file-picker - float = on - size = (monitor_w*0.65) (monitor_h*0.7) - match:class = (xdg-desktop-portal-gtk) -} - -# Vivado -## Loading screen -windowrule { - name = vivado-loading-screen - float = on - center = on - match:class = (ui-PlanAhead) -} -windowrule { - name = vivado-loading-screen-2 - size = 397 295 - match:class = (ui-PlanAhead) title:^(win0)$ -} -## Main window -windowrule { - name = vivado-main - tile = on - match:class = (Vivado) -} - -# Kdenlive -windowrule { - name = kdenlive-all - pseudo = on - match:class = (org.kde.kdenlive) -} -windowrule { - name = kdenlive-welcome - size = (512) (544) - match:class = (org.kde.kdenlive) # initialTitle:^(Kdenlive)$ -} - - -# TODO Automatically fullscreen single apps -# - Seems impossible for now (try mixing with workspace rules) - -# Default size for floating windows -## TODO -#windowrulev2 = size 100 100,floating:1 - -# Increase gaps for single apps -## Usless since I changed the default gap but may be useful if you decide to reset it to 0 -#workspace=w[t1], gapsout:2 diff --git a/config/.config/hypr/config/default/appearance.lua b/config/.config/hypr/config/default/appearance.lua new file mode 100644 index 0000000..56014cd --- /dev/null +++ b/config/.config/hypr/config/default/appearance.lua @@ -0,0 +1,301 @@ +require("config/colors") + +------ General appearance + +hl.config({ + general = { + gaps_in = 1, + gaps_out = 1, + border_size = 1, + -- Resizing windows by clicking and dragging on borders and gaps + resize_on_border = false, + allow_tearing = false, + layout = "dwindle", + col = { + active_border = Active_color, + inactive_border = Inactive_color, + }, + }, +}) + +hl.config({ + decoration = { + rounding = 2, + -- Change transparency of focused and unfocused windows + active_opacity = 1.0, + inactive_opacity = 1.0, + shadow = { + enabled = true, + range = 4, + render_power = 3, + color = "rgba(1a1a1aee)", + }, + blur = { + enabled = true, + size = 6, + passes = 4, + vibrancy = 0.1696, + }, + }, +}) + +---- Cursor +hl.config({ + cursor = { + hide_on_key_press = true, + hide_on_touch = true, + hide_on_tablet = true, + } +}) + + +------ Layer rules + +-- Side panel (swaync) +hl.layer_rule({ + match = { + namespace = "^(swaync-control-center)$", + }, + blur = true, + ignore_alpha = 0.2, + animation = "slide right", + dim_around = true, +}) + +-- Omnibar (rofi) +hl.layer_rule({ + match = { + namespace = "^(rofi)$", + }, + blur = false, + animation = "popin 90%", +}) + +-- Status bar (waybar) +hl.layer_rule({ + match = { + namespace = "^(waybar)$", + }, + blur = false, + animation = "slide up", +}) + +-- Screenshot selction (slurp) +hl.layer_rule({ + match = { + namespace = "^(selection)$", + }, + blur = false, + animation = "fade", +}) + +-- Color picker (hyprpicker) +hl.layer_rule({ + match = { + namespace = "^(hyprpicker)$", + }, + blur = false, + animation = "fade", +}) + + +------ Animations + +hl.config({ + animations = { + enabled = true, + }, +}) + +---- Bezier curves +hl.curve( "easeOutQuint", { type = "bezier", points = { {0.23, 1}, { 0.32,1} } }) +hl.curve( "easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, { 0.36,1} } }) +hl.curve( "linear", { type = "bezier", points = { {0, 0}, { 0, 1 } } }) +hl.curve( "almostLinear", { type = "bezier", points = { {0.5, 0.5}, { 0.75, 1.0} } }) +hl.curve( "quick", { type = "bezier", points = { {0.15, 0}, { 0.1, 1} } }) +hl.curve( "easeInOutExpo", { type = "bezier", points = { {0.87, 0}, { 0.13, 1} } }) + +---- Components animations + +hl.animation({ leaf="global", enabled=true, speed=10, bezier="default" }) +hl.animation({ leaf="border", enabled=true, speed=4, bezier="easeOutQuint" }) + +hl.animation({ leaf="windows", enabled=true, speed=3.5, bezier="easeOutQuint" }) +hl.animation({ leaf="windowsIn", enabled=true, speed=3.1, bezier="easeOutQuint", style="popin 87%" }) +hl.animation({ leaf="windowsOut", enabled=true, speed=1.49, bezier="linear", style="popin 87%" }) + +hl.animation({ leaf="fadeIn", enabled=true, speed=1.73, bezier="easeOutQuint" }) +hl.animation({ leaf="fadeOut", enabled=true, speed=1.46, bezier="easeOutQuint" }) +hl.animation({ leaf="fade", enabled=true, speed=3.03, bezier="easeOutQuint" }) + +hl.animation({ leaf="layers", enabled=true, speed=3, bezier="easeOutQuint" }) +hl.animation({ leaf="layersIn", enabled=true, speed=2.4, bezier="easeOutQuint", style="fade" }) +hl.animation({ leaf="layersOut", enabled=true, speed=2.4, bezier="easeOutQuint", style="fade" }) +hl.animation({ leaf="fadeLayersIn", enabled=true, speed=2, bezier="easeOutQuint" }) +hl.animation({ leaf="fadeLayersOut", enabled=true, speed=2, bezier="easeOutQuint" }) + +hl.animation({ leaf="workspaces", enabled=true, speed=2.8, bezier="easeOutQuint", style="slidefadevert" }) +hl.animation({ leaf="workspacesIn", enabled=true, speed=2.6, bezier="easeOutQuint", style="slide" }) +hl.animation({ leaf="workspacesOut", enabled=true, speed=2.6, bezier="easeOutQuint", style="slide" }) + + +------ Layouts + +-- Dwindle +hl.config({ + dwindle = { + preserve_split = true, -- You probably want this + }, +}) +-- Master +hl.config({ + master = { + new_status = "master", + }, +}) +-- Wallpaper +hl.config({ + misc = { + force_default_wallpaper = 0, -- 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, -- Disable default wallpapers rendering + }, +}) + + +------ Window rules + +---- Desktop behavior + +-- Ignore maximize requests from apps. You'll probably like this. +hl.window_rule({ + name = "suppress-maximize-events", + match = { class = ".*" }, + + suppress_event = "maximize", +}) + +-- Fix some dragging issues with XWayland +hl.window_rule({ + -- Fix some dragging issues with XWayland + name = "fix-xwayland-drags", + match = { + class = "^$", + title = "^$", + xwayland = true, + float = true, + fullscreen = false, + pin = false, + }, + + no_focus = true, +}) + +---- Applications + +-- Prism Launcher +hl.window_rule({ + name = "prismlauncher-all", + match = { + class = "(org.prismlauncher.PrismLauncher)", + }, + pseudo = true, +}) +hl.window_rule({ + name = "prismlauncher-main", + match = { + class = "(org.prismlauncher.PrismLauncher)", + title = "^(Prism Launcher.*)$", + }, + size = { "(monitor_w*0.65)", "(monitor_h*0.7)" }, +}) + +-- Nautilus +hl.window_rule({ + name = "nautilus-main", + match = { + class = "(org.gnome.Nautilus)", + }, + pseudo = true, + size = { "(monitor_w*0.65)", "(monitor_h*0.7)" }, +}) + +-- GTK file picker +hl.window_rule({ + name = "gtk-file-picker", + match = { + class = "(xdg-desktop-portal-gtk)", + }, + float = true, + size = { "(monitor_w*0.65)", "(monitor_h*0.7)" }, +}) + +-- Vivado + +--# Loading screen +hl.window_rule({ + name = "vivado-loading-screen", + match = { + class = "(ui-PlanAhead)", + }, + float = true, + center = true, +}) +hl.window_rule({ + name = "vivado-loading-screen-2", + match = { + class = "(ui-PlanAhead) title:^(win0)$", + }, + size = { 397, 295 }, +}) +--# Main window +hl.window_rule({ + name = "vivado-main", + match = { + class = "(Vivado)", + }, + tile = true, +}) + +-- Kdenlive +hl.window_rule({ + name = "kdenlive-all", + match = { + class = "(org.kde.kdenlive)", + }, + pseudo = true, +}) +hl.window_rule({ + name = "kdenlive-welcome", + match = { + class = "(org.kde.kdenlive)", + }, + size = { "(512)", "(544)" }, +}) + +-- Gnome characters +hl.window_rule({ + name = "gnome-characters", + match = { + class = "(org.gnome.Characters)", + }, + float = true, + size = { "(849)", "(566)" }, +}) + +-- Albert +hl.window_rule({ + name = "albert", + match = { + class = "^(albert)$", + }, + border_size = 0, + no_blur = true, + no_shadow = true, + float = true, + stay_focused = true, + no_dim = true, +}) + + +-- TODO Automatically reduce outer gaps for single apps diff --git a/config/.config/hypr/config/default/colors.conf b/config/.config/hypr/config/default/colors.conf deleted file mode 120000 index 413c779..0000000 --- a/config/.config/hypr/config/default/colors.conf +++ /dev/null @@ -1 +0,0 @@ -../../../colors/hyprland.conf \ No newline at end of file diff --git a/config/.config/hypr/config/default/colors.lua b/config/.config/hypr/config/default/colors.lua new file mode 120000 index 0000000..4e4bb04 --- /dev/null +++ b/config/.config/hypr/config/default/colors.lua @@ -0,0 +1 @@ +../../../colors/hyprland.lua \ No newline at end of file diff --git a/config/.config/hypr/config/default/environment.conf b/config/.config/hypr/config/default/environment.conf deleted file mode 100644 index c3493bd..0000000 --- a/config/.config/hypr/config/default/environment.conf +++ /dev/null @@ -1,62 +0,0 @@ -################### -### MY PROGRAMS ### -################### - -# See https://wiki.hyprland.org/Configuring/Keywords/ - -# Set programs that you use -$terminal = foot -$fileManager = nautilus -$menu = rofi -show drun -$notificationManager = swaync-client -t - - -################# -### AUTOSTART ### -################# - -# Autostart necessary processes (like notifications daemons, status bars, etc.) -exec-once = ~/.config/hypr/scripts/autostart.sh -# Or execute your favorite apps at launch like this: -# exec-once = firefox - - -############################# -### ENVIRONMENT VARIABLES ### -############################# - -# See https://wiki.hyprland.org/Configuring/Environment-variables/ - -# HyprCursor -env = HYPRCURSOR_THEME,VolantesCursors -env = XCURSOR_THEME,VolantesCursors -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 -# XDG Desktop Portal -env = XDG_SESSION_DESKTOP,Hyprland -env = XDG_CURRENT_DESKTOP,Hyprland - -# Experimental - -# GTK -# env = GTK_USE_PORTAL,1 -# env = GDK_SCALE,2 # Xwayland scale -# Qt -# env = QT_WAYLAND_DISABLE_WINDOWDECORATION, -# Firefox -# env = MOZ_ENABLE_WAYLAND,1 -# env = MOZ_USE_XINPUT2,1 -# WLRoots -# env = WLR_NO_HARDWARE_CURSORS,1 -# env = WLR_RENDERER,vulkan -# SDL -# env = SDL_VIDEODRIVER,wayland - -# Nvidia - -# GBM backend -# env = GBM_BACKEND,nvidia-drm -# env = __GLX_VENDOR_LIBRARY_NAME,nvidia -# Hardware acceleration -# env = LIBVA_DRIVER_NAME,nvidia -# env = NVD_BACKEND,direct diff --git a/config/.config/hypr/config/default/environment.lua b/config/.config/hypr/config/default/environment.lua new file mode 100644 index 0000000..2f4fb45 --- /dev/null +++ b/config/.config/hypr/config/default/environment.lua @@ -0,0 +1,54 @@ +------ Programs + +Terminal = "foot" +FileManager = "nautilus" +AppLauncher = "rofi -show drun" +NotificationManager = "swaync-client -t" -- Side panel with notifications history +TextEditor = "vi" +local textEditorType = "tui" -- Change to "tui" or "gui" based on the type of editor you use + -- Example: vim->tui, vscode->gui + +-- Handle tui text editors +if textEditorType == "tui" then + TextEditor = Terminal .. " " .. TextEditor +end + +------ Autostart + +-- Autostart necessary processes (like notifications daemons, status bars, etc.) + +hl.on("hyprland.start", function() + hl.exec_cmd("~/.config/hypr/scripts/autostart.sh") +end) + + +------ Permissions + +-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly +-- for security reasons + +hl.config({ + ecosystem = { + enforce_permissions = false, -- Disabled for the moment + }, +}) + +hl.permission({ binary = "/usr/bin/grim", type = "screencopy", mode = "allow" }) +hl.permission({ binary = "/usr/bin/hyprlock", type = "screencopy", mode = "allow" }) +-- XDG Desktop Portal +hl.permission({ binary = "/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", type = "screencopy", mode = "allow" }) + +------------------------------ +---- ENVIRONMENT VARIABLES --- +------------------------------ + +-- HyprCursor +hl.env("HYPRCURSOR_THEME", "VolantesCursors") +hl.env("XCURSOR_THEME", "VolantesCursors") +hl.env("XCURSOR_SIZE", 24) +hl.env("HYPRCURSOR_SIZE", 24) + +-- XDG Desktop Portal +hl.env("XDG_SESSION_DESKTOP", "Hyprland") +hl.env("XDG_CURRENT_DESKTOP", "Hyprland") + diff --git a/config/.config/hypr/config/default/input.conf b/config/.config/hypr/config/default/input.conf deleted file mode 100644 index 29406ed..0000000 --- a/config/.config/hypr/config/default/input.conf +++ /dev/null @@ -1,169 +0,0 @@ -############# -### INPUT ### -############# - -# https://wiki.hyprland.org/Configuring/Variables/#input -input { - - numlock_by_default = true - - follow_mouse = 1 - - sensitivity = 0.1 # -1.0 - 1.0, 0 means no modification. - - touchpad { - natural_scroll = true - disable_while_typing = false - } -} - -# https://wiki.hyprland.org/Configuring/Variables/#gestures -gesture = 3, horizontal, workspace - -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more -device { - name = epic-mouse-v1 - sensitivity = -0.5 -} - - -################### -### 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 - -# Main desktop controls -bind = $mainMod, Q, killactive, -bind = $mainMod, R, exec, $menu # Omnibar -bind = $mainMod, D, exec, $menu # Legacy menu shortcut -bind = $mainMod, I, exec, hyprlock # Lockscreen -bind = $mainMod, B, exec, ~/.config/hypr/scripts/toggle-waybar.sh # Toggle sidebar -bind = $mainMod SHIFT, R, exec, ~/.config/hypr/scripts/reload.sh # Reload desktop -bind = $mainMod, F11, exec, ~/.config/hypr/scripts/game-mode.sh # Gamemode -bind = $mainMod, F10, exec, ~/.config/hypr/scripts/sharp-mode.sh # Sharp mode -bind = $mainMod SHIFT, M, exit, # Exit desktop session - -# Shortcuts -bind = $mainMod, RETURN, exec, $terminal -bind = $mainMod, X, exec, $terminal # Absolutely not because I dislocated my arm -bind = $mainMod, SPACE, exec, $menu -bind = $mainMod, E, exec, $fileManager -bind = $mainMod, A, exec, $notificationManager -bindel = , XF86Launch1, exec, $terminal hx ~/.config/hypr/config # Replace by default editor - -# Move focus with mainMod + hjkl (vim keybinds) -bind = $mainMod, H, movefocus, l -bind = $mainMod, L, movefocus, r -bind = $mainMod, K, movefocus, u -bind = $mainMod, J, movefocus, d - -# 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 - -# Move windows with mainMod + shift + arrow keys -bind = $mainMod SHIFT, left, movewindow, l -bind = $mainMod SHIFT, right, movewindow, r -bind = $mainMod SHIFT, up, movewindow, u -bind = $mainMod SHIFT, down, movewindow, d - -# Layout -bind = $mainMod, F, fullscreen, -bindd = $mainMod, V, $d toggle split, layoutmsg, togglesplit # Horizontal/vertical split -bind = $mainMod, T, togglefloating, -bind = $mainMod, Y, pseudo, # Toggle pseudo-tiling - -# 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, S, togglespecialworkspace, magic -bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -# Minimize function (uses scratchpad) -# For testing, may be removed in future releases -bind = $mainMod, N, togglespecialworkspace, magic -bind = $mainMod, N, movetoworkspace, +0 -bind = $mainMod, N, togglespecialworkspace, magic -bind = $mainMod, N, movetoworkspace, special:magic -bind = $mainMod, N, togglespecialworkspace, 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 - - -# Function keys - -## Volume -bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ -bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - -## Brightness -bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 5%+ -bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 5%- -bindel = SHIFT, XF86MonBrightnessUp, exec, brightnessctl s 1%+ -bindel = SHIFT, XF86MonBrightnessDown, exec, brightnessctl s 1%- - -## Player controls -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous - -## Screenshot -bind = , Print, exec, ~/.config/hypr/scripts/screenshot.sh -bind = SHIFT, Print, exec, ~/.config/hypr/scripts/screenshot.sh --fullscreen - -# Color picker -bind = $mainMod SHIFT, C, exec, hyprpicker -a - -## Touchpad toggle -### On galaxy books, pressing the disable touchpad key also triggers SUPER and -### CONTROL keys, this is why there are present here -bind = SUPER CONTROL, XF86TouchpadToggle, exec, ~/.config/hypr/scripts/toggle-touchpad.sh - -## Keyboard layout toggle -### Only works between AZERTY and QWERTY because of differences in the numbers row -### that prevent using the default way provided by hyprland -bind = $mainMod CONTROL, SPACE, exec, ~/.config/hypr/scripts/change-kb-layout.sh - -# Lock laptop on lid close -bindl=,switch:off:Lid Switch, exec, hyprlock --immediate - -## Overview plugin -#bind = $mainMod, TAB, overview:toggle, toggle diff --git a/config/.config/hypr/config/default/input.lua b/config/.config/hypr/config/default/input.lua new file mode 100644 index 0000000..8b6ee9e --- /dev/null +++ b/config/.config/hypr/config/default/input.lua @@ -0,0 +1,154 @@ +------ Functions + +function ToggleFloatingWindow() + local monitor = hl.get_active_monitor() + local width = math.floor(monitor.width * 0.8) + local height = math.floor(monitor.height * 0.8) + + hl.dispatch(hl.dsp.window.float({ action = "toggle" })) + hl.dispatch(hl.dsp.window.resize({ x = width, y = height, window = "active", })) +end + + +------ Input + +hl.config({ + input = { + numlock_by_default = true, + follow_mouse = 1, + sensitivity = 0.1, -- -1.0 - 1.0, 0 means no modification. + touchpad = { + natural_scroll = true, + disable_while_typing = false, + }, + }, +}) + +---- Gestures + +hl.gesture({ + fingers = 3, + direction = "horizontal", + action = "workspace", +}) + +hl.gesture({ + fingers = 3, + direction = "vertical", + action = ToggleFloatingWindow, +}) + + +------ Keybindigs + +MainMod = "SUPER" -- Sets META ("Windows") key as main modifier + +-- Main desktop controls +hl.bind(MainMod .. " + Q" , hl.dsp.window.close()) +hl.bind(MainMod .. " + R" , hl.dsp.exec_cmd(AppLauncher)) -- Omnibar +hl.bind(MainMod .. " + D" , hl.dsp.exec_cmd(AppLauncher)) -- Legacy menu shortcut +hl.bind(MainMod .. " + I" , hl.dsp.exec_cmd("hyprlock")) -- Lockscreen +hl.bind(MainMod .. " + B" , hl.dsp.exec_cmd("~/.config/hypr/scripts/toggle-waybar.sh")) -- Toggle sidebar +hl.bind(MainMod .. " + SHIFT + R", hl.dsp.exec_cmd("~/.config/hypr/scripts/reload.sh")) -- Reload desktop +hl.bind(MainMod .. " + F11" , hl.dsp.exec_cmd("~/.config/hypr/scripts/gamemode.sh")) -- Gamemode +hl.bind(MainMod .. " + F10" , hl.dsp.exec_cmd("~/.config/hypr/scripts/sharp_mode.sh")) -- Sharp mode +hl.bind(MainMod .. " + SHIFT + M", hl.dsp.exit()) -- Exit desktop session + +-- Shortcuts +hl.bind(MainMod .. " + RETURN", hl.dsp.exec_cmd(Terminal)) +hl.bind(MainMod .. " + X" , hl.dsp.exec_cmd(Terminal)) -- Absolutely not because I dislocated my arm +hl.bind(MainMod .. " + SPACE" , hl.dsp.exec_cmd(AppLauncher)) +hl.bind(MainMod .. " + E" , hl.dsp.exec_cmd(FileManager)) +hl.bind(MainMod .. " + A" , hl.dsp.exec_cmd(NotificationManager)) + +-- Move focus with mainMod + arrow keys +hl.bind(MainMod .. " + left" , hl.dsp.focus({ direction = "left" })) +hl.bind(MainMod .. " + right", hl.dsp.focus({ direction = "right" })) +hl.bind(MainMod .. " + up" , hl.dsp.focus({ direction = "up" })) +hl.bind(MainMod .. " + down" , hl.dsp.focus({ direction = "down" })) + +-- Move focus with mainMod + hjkl (vim keybinds) +hl.bind(MainMod .. " + H", hl.dsp.focus({ direction = "left" })) +hl.bind(MainMod .. " + L", hl.dsp.focus({ direction = "right" })) +hl.bind(MainMod .. " + K", hl.dsp.focus({ direction = "up" })) +hl.bind(MainMod .. " + J", hl.dsp.focus({ direction = "down" })) + +-- Move windows with mainMod + shift + arrow keys +hl.bind(MainMod .. " + SHIFT + left" , hl.dsp.window.move{ direction = "left" }) +hl.bind(MainMod .. " + SHIFT + right", hl.dsp.window.move{ direction = "right" }) +hl.bind(MainMod .. " + SHIFT + up" , hl.dsp.window.move{ direction = "up" }) +hl.bind(MainMod .. " + SHIFT + down" , hl.dsp.window.move{ direction = "down" }) + +-- Layout +hl.bind(MainMod .. " + " .. "F", hl.dsp.window.fullscreen()) +hl.bind(MainMod .. " + " .. "V", hl.dsp.layout("togglesplit")) -- Horizontal/vertical split +-- Toggle floating +hl.bind(MainMod .. " + T", ToggleFloatingWindow ) +hl.bind(MainMod .. " + " .. "Y", hl.dsp.window.pseudo()) -- Toggle pseudo-tiling + +-- Switch workspaces with mainMod + [0-9] +-- Move active window to a workspace with mainMod + SHIFT + [0-9] +for i = 0, 10 do + local key = i % 10 + hl.bind(MainMod .. " + " .. key, hl.dsp.focus({ workspace = i})) + hl.bind(MainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i })) +end + +-- Example special workspace (scratchpad) +hl.bind(MainMod .. " + S", hl.dsp.workspace.toggle_special("magic")) +hl.bind(MainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" })) + +-- TODO Bring back +-- Minimize function (uses scratchpad) + +-- Scroll through existing workspaces with mainMod + scroll +hl.bind(MainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" })) +hl.bind(MainMod .. " + mouse_up" , hl.dsp.focus({ workspace = "e-1" })) + +-- Move/resize windows with mainMod + LMB/RMB and dragging +hl.bind(MainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) +hl.bind(MainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) + +----- Function keys + +-- Volume +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true }) +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true }) +hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true }) +hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true }) + +-- Brightness +hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 5%+"), { locked = true }) +hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 5%-"), { locked = true }) +hl.bind("SHIFT" .. " + XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 1%+"), { locked = true }) +hl.bind("SHIFT" .. " + XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 1%-"), { locked = true }) + +-- Player controls +hl.bind("XF86AudioNext" , hl.dsp.exec_cmd("playerctl next") , { locked = true }) +hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true }) +hl.bind("XF86AudioPlay" , hl.dsp.exec_cmd("playerctl play-pause"), { locked = true }) +hl.bind("XF86AudioPrev" , hl.dsp.exec_cmd("playerctl previous") , { locked = true }) + +-- Lock laptop on lid close +hl.bind("switch:off:Lid Switch", hl.dsp.exec_cmd("hyprlock --immediate"), { locked = true }) + +-- Screenshot +hl.bind("Print", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot.sh")) +hl.bind("SHIFT" .. " + " .. "Print", hl.dsp.exec_cmd("~/.config/hypr/scripts/screenshot.sh --fullscreen")) + +-- Color picker +hl.bind(MainMod .. " + " .. "SHIFT" .. " + " .. "C", hl.dsp.exec_cmd("hyprpicker -a")) + +-- Touchpad toggle +hl.bind("XF86TouchpadToggle", hl.dsp.exec_cmd("~/.config/hypr/scripts/toggle-touchpad.sh"), { locked = true }) +---- On galaxy books, pressing the disable touchpad key also triggers SUPER and +---- CONTROL keys, this is why there are present here +hl.bind("SUPER + CONTROL" .. " + " .. "XF86TouchpadToggle", hl.dsp.exec_cmd("~/.config/hypr/scripts/toggle-touchpad.sh")) + +-- Keyboard layout toggle +---- Only works between AZERTY and QWERTY because of differences in the numbers row +---- that prevent using the default way provided by hyprland +hl.bind(MainMod .. " + " .. "CONTROL" .. " + " .. "SPACE", hl.dsp.exec_cmd("~/.config/hypr/scripts/change-kb-layout.sh")) + +-- Settings launcher +hl.bind("XF86Launch1", hl.dsp.exec_cmd(TextEditor .. " ~/.config/hypr/config")) diff --git a/config/.config/hypr/config/default/kb_layouts/fr.conf b/config/.config/hypr/config/default/kb_layouts/fr.conf deleted file mode 100644 index 89133a9..0000000 --- a/config/.config/hypr/config/default/kb_layouts/fr.conf +++ /dev/null @@ -1,35 +0,0 @@ -## Overrides inputs for AZERTY layout - -input { - kb_layout = fr - kb_variant = - kb_model = - kb_options = - kb_rules = -} - -## Keybindings - -## Switch workspaces with mainMod + [0-9] -bind = $mainMod, ampersand, workspace, 1 -bind = $mainMod, eacute, workspace, 2 -bind = $mainMod, quotedbl, workspace, 3 -bind = $mainMod, apostrophe, workspace, 4 -bind = $mainMod, parenleft, workspace, 5 -bind = $mainMod, minus, workspace, 6 -bind = $mainMod, egrave, workspace, 7 -bind = $mainMod, underscore, workspace, 8 -bind = $mainMod, ccedilla, workspace, 9 -bind = $mainMod, agrave, workspace, 10 - -## Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, ampersand, movetoworkspace, 1 -bind = $mainMod SHIFT, eacute, movetoworkspace, 2 -bind = $mainMod SHIFT, quotedbl, movetoworkspace, 3 -bind = $mainMod SHIFT, apostrophe, movetoworkspace, 4 -bind = $mainMod SHIFT, parenleft, movetoworkspace, 5 -bind = $mainMod SHIFT, minus, movetoworkspace, 6 -bind = $mainMod SHIFT, egrave, movetoworkspace, 7 -bind = $mainMod SHIFT, underscore, movetoworkspace, 8 -bind = $mainMod SHIFT, ccedilla, movetoworkspace, 9 -bind = $mainMod SHIFT, agrave, movetoworkspace, 10 \ No newline at end of file diff --git a/config/.config/hypr/config/default/kb_layouts/fr.lua b/config/.config/hypr/config/default/kb_layouts/fr.lua new file mode 100644 index 0000000..f2f6742 --- /dev/null +++ b/config/.config/hypr/config/default/kb_layouts/fr.lua @@ -0,0 +1,18 @@ +--# Overrides inputs for AZERTY layout +hl.config({ + input = { + kb_layout = "fr", + }, +}) + +--# Keybindings + +-- Switch workspaces with mainMod + [0-9] +-- Move active window to a workspace with mainMod + SHIFT + [0-9] +local fr_digits_layout = { "ampersand", "eacute", "quotedbl", "apostrophe", "parenleft", "minus", "egrave", "underscore", "ccedilla", "agrave", } +for i = 1, 10 do + local key = fr_digits_layout[(i%11)] + hl.bind(MainMod.. " + " .. key, hl.dsp.focus({ workspace = i })) + hl.bind(MainMod.. " + SHIFT + " .. key, hl.dsp.focus({ workspace = i })) +end + diff --git a/config/.config/hypr/config/default/kb_layouts/us.conf b/config/.config/hypr/config/default/kb_layouts/us.conf deleted file mode 100644 index 8fe85bc..0000000 --- a/config/.config/hypr/config/default/kb_layouts/us.conf +++ /dev/null @@ -1,33 +0,0 @@ -## Overrides inputs for QWERTY layout - -input { - kb_layout = fr - kb_variant = us - kb_model = - kb_options = - kb_rules = -} - -# 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 diff --git a/config/.config/hypr/config/default/kb_layouts/us.lua b/config/.config/hypr/config/default/kb_layouts/us.lua new file mode 100644 index 0000000..a0f4f9b --- /dev/null +++ b/config/.config/hypr/config/default/kb_layouts/us.lua @@ -0,0 +1,9 @@ +hl.config({ + input = { + kb_layout = "fr", + kb_variant = "us", + }, +}) + +-- No need to update the default input layout + diff --git a/config/.config/hypr/config/default/monitors_default.conf b/config/.config/hypr/config/default/monitors_default.conf deleted file mode 100644 index 6ecd178..0000000 --- a/config/.config/hypr/config/default/monitors_default.conf +++ /dev/null @@ -1,6 +0,0 @@ -################ -### MONITORS ### -################ - -# See https://wiki.hyprland.org/Configuring/Monitors/ -monitor=,preferred,auto,auto \ No newline at end of file diff --git a/config/.config/hypr/config/default/plugins.conf b/config/.config/hypr/config/default/plugins.conf deleted file mode 100644 index b281ebb..0000000 --- a/config/.config/hypr/config/default/plugins.conf +++ /dev/null @@ -1,12 +0,0 @@ -# Plugins settings - -plugin { - overview { -# disableGestures = true - reverseSwipe = true - - overrideGaps = false - gapsIn = 10 - gapsOut = 20 - } -} diff --git a/config/.config/hypr/hyprland.conf b/config/.config/hypr/hyprland.conf deleted file mode 100644 index 1f4ee32..0000000 --- a/config/.config/hypr/hyprland.conf +++ /dev/null @@ -1,25 +0,0 @@ -# Config is based on the example Hyprland config file provided on the project's repo. -# Refer to the wiki for more information. -# https://wiki.hyprland.org/Configuring/ - -# Please note not all available settings / options are set here. -# For a full list, see the wiki - -# If you want to modify some settings, go to ./config/custom/user.conf and add them -# They'll automatically override the default ones - -# Default settings -source = ~/.config/hypr/config/default/monitors.conf -source = ~/.config/hypr/config/default/environment.conf -source = ~/.config/hypr/config/default/input.conf -source = ~/.config/hypr/config/default/kb_layouts/fr.conf -source = ~/.config/hypr/config/default/appearance.conf - -# Hyprland plugins -# source = ~/.config/hypr/config/default/plugins.conf - -# Desktop mods -#source = ~/.config/hypr/config/default/minimalist_mod.conf - -# Custom settings -source = ~/.config/hypr/config/custom/user.conf diff --git a/config/.config/hypr/hyprland.lua b/config/.config/hypr/hyprland.lua new file mode 100644 index 0000000..fa5b8fc --- /dev/null +++ b/config/.config/hypr/hyprland.lua @@ -0,0 +1,23 @@ +-- Config is based on the example Hyprland config file provided on the project's repo. +-- Refer to the wiki for more information. +-- https://wiki.hypr.land/Configuring/Start/ + +-- Please note not all available settings / options are set here. +-- For a full list, see the wiki + +-- If you want to modify some settings, go to ./config/custom/user.conf and add them +-- They'll automatically override the default ones + +-- Default settings +require("config.default.environment") +require("config.default.input") +require("config.default.kb_layouts.fr") +require("config.default.appearance") + +-- Desktop mods +--require("config.default.minimalist_mod") + +-- Custom settings +require("config.custom.user") +require("config.custom.plugins") + diff --git a/config/.config/hypr/scripts/change-kb-layout.sh b/config/.config/hypr/scripts/change-kb-layout.sh index 7261fc5..4d81753 100755 --- a/config/.config/hypr/scripts/change-kb-layout.sh +++ b/config/.config/hypr/scripts/change-kb-layout.sh @@ -1,7 +1,7 @@ #!/bin/sh status_file="$HOME/.config/hypr/status/kb_layout" -hyprland_cfg_file="$HOME/.config/hypr/hyprland.conf" +hyprland_cfg_file="$HOME/.config/hypr/hyprland.lua" fr_to_en() { @@ -9,7 +9,7 @@ fr_to_en() { hyprctl notify 1 2000 0 "Keyboard set to QWERTY" - sed -i 's/kb_layouts\/fr/kb_layouts\/us/g' "$hyprland_cfg_file" + sed -i 's/kb_layouts.fr/kb_layouts.us/g' "$hyprland_cfg_file" } en_to_fr() { @@ -17,12 +17,13 @@ en_to_fr() { hyprctl notify 1 2000 0 "Keyboard set to AZERTY" - sed -i 's/kb_layouts\/us/kb_layouts\/fr/g' "$hyprland_cfg_file" + sed -i 's/kb_layouts.us/kb_layouts.fr/g' "$hyprland_cfg_file" } if ! [ -f "${status_file}" ]; then + hyprctl notify 3 3000 0 "Status file missing" hyprctl notify 2 6000 0 "Use Mod + Ctrl + Space to change keyboard layout" - fr_to_en + en_to_fr else if [ $(cat "${status_file}") = "fr" ]; then fr_to_en diff --git a/config/.config/hypr/scripts/game-mode.sh b/config/.config/hypr/scripts/game-mode.sh index b67ae03..f068cc8 100755 --- a/config/.config/hypr/scripts/game-mode.sh +++ b/config/.config/hypr/scripts/game-mode.sh @@ -1,22 +1,35 @@ #!/usr/bin/env sh -# From Hyprland documentation - https://wiki.hyprland.org/0.41.2/Configuring/Uncommon-tips--tricks/#toggle-animationsbluretc-hotkey +# Disables animations accros the desktop (as well as some other tweaks) +# Similar to game mode but with the goal to cure motion sickness -HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') -if [ "$HYPRGAMEMODE" = 1 ] ; then - hyprctl --batch "\ - keyword animations:enabled 0;\ - keyword decoration:drop_shadow 0;\ - keyword decoration:blur:enabled 0;\ - keyword general:gaps_in 0;\ - keyword general:gaps_out 0;\ - keyword general:border_size 1;\ - keyword decoration:rounding 0" - killall waybar - hyprctl notify 1 2000 0 "Enabled game mode" +if [[ "$(hyprctl getoption animations:enabled)" =~ "bool: true" ]] ; then + hyprctl eval " + hl.config({ + general = { + gaps_in = 0, + gaps_out = 0, + border_size = 0, + }, + decoration = { + rounding = 0, + drop_shadow = false, + blur = { + enabled = false, + }, + + }, + animations = { + enabled = false, + }, + }) + " + + hyprctl notify 1 2000 0 "Enabled Sharp mode" exit fi hyprctl reload -~/.config/hypr/scripts/restore-waybar.sh -hyprctl notify 1 2000 0 "Disabled game mode" +# ~/.config/hypr/scripts/restore-waybar.sh +hyprctl notify 1 2000 0 "Disabled Sharp mode" + diff --git a/config/.config/hypr/scripts/sharp-mode.sh b/config/.config/hypr/scripts/sharp-mode.sh index 0a237ea..6374d3b 100755 --- a/config/.config/hypr/scripts/sharp-mode.sh +++ b/config/.config/hypr/scripts/sharp-mode.sh @@ -1,17 +1,26 @@ #!/usr/bin/env sh # Disables animations accros the desktop (as well as some other tweaks) -# Similar to game mode but with the goal to enhance productivity -# From Hyprland documentation - https://wiki.hyprland.org/0.41.2/Configuring/Uncommon-tips--tricks/#toggle-animationsbluretc-hotkey +# Similar to game mode but with the goal to cure motion sickness + +if [[ "$(hyprctl getoption animations:enabled)" =~ "bool: true" ]] ; then + hyprctl eval " + hl.config({ + general = { + gaps_in = 0, + gaps_out = 0, + border_size = 0, + }, + decoration = { + rounding = 0, + + }, + animations = { + enabled = false, + }, + }) + " -HYPRSHARPMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') -if [ "$HYPRSHARPMODE" = 1 ] ; then - hyprctl --batch "\ - keyword animations:enabled 0;\ - keyword general:gaps_in 0;\ - keyword general:gaps_out 0;\ - keyword general:border_size 1;\ - keyword decoration:rounding 0" hyprctl notify 1 2000 0 "Enabled Sharp mode" exit fi