Migrated the hyprland config to lua and fixed some broken scripts
This commit is contained in:
parent
cb97bab237
commit
ea230b4b06
22 changed files with 618 additions and 651 deletions
3
config/.config/hypr/config/custom/plugins.lua
Normal file
3
config/.config/hypr/config/custom/plugins.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
------ Plugins
|
||||
|
||||
-- This file is meant to contain all user plugins declaration and configuration
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
###################
|
||||
## USER SETTINGS ##
|
||||
###################
|
||||
|
||||
# This is meant to contain all user-defined settings (to not break all settings after updates)
|
||||
3
config/.config/hypr/config/custom/user.lua
Normal file
3
config/.config/hypr/config/custom/user.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
------ User settings
|
||||
|
||||
-- This file is meant to contain all user-defined settings (to not break all settings after updates)
|
||||
|
|
@ -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
|
||||
301
config/.config/hypr/config/default/appearance.lua
Normal file
301
config/.config/hypr/config/default/appearance.lua
Normal file
|
|
@ -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
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../../colors/hyprland.conf
|
||||
1
config/.config/hypr/config/default/colors.lua
Symbolic link
1
config/.config/hypr/config/default/colors.lua
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
../../../colors/hyprland.lua
|
||||
|
|
@ -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
|
||||
54
config/.config/hypr/config/default/environment.lua
Normal file
54
config/.config/hypr/config/default/environment.lua
Normal file
|
|
@ -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")
|
||||
|
||||
|
|
@ -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
|
||||
154
config/.config/hypr/config/default/input.lua
Normal file
154
config/.config/hypr/config/default/input.lua
Normal file
|
|
@ -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"))
|
||||
|
|
@ -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
|
||||
18
config/.config/hypr/config/default/kb_layouts/fr.lua
Normal file
18
config/.config/hypr/config/default/kb_layouts/fr.lua
Normal file
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
9
config/.config/hypr/config/default/kb_layouts/us.lua
Normal file
9
config/.config/hypr/config/default/kb_layouts/us.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
hl.config({
|
||||
input = {
|
||||
kb_layout = "fr",
|
||||
kb_variant = "us",
|
||||
},
|
||||
})
|
||||
|
||||
-- No need to update the default input layout
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# Plugins settings
|
||||
|
||||
plugin {
|
||||
overview {
|
||||
# disableGestures = true
|
||||
reverseSwipe = true
|
||||
|
||||
overrideGaps = false
|
||||
gapsIn = 10
|
||||
gapsOut = 20
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
23
config/.config/hypr/hyprland.lua
Normal file
23
config/.config/hypr/hyprland.lua
Normal file
|
|
@ -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")
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue