Initial full commit for Dell16 Arch

This commit is contained in:
2026-06-18 09:55:42 +02:00
commit 8d3c4f4acb
61 changed files with 3891 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
general {
lock_cmd = pidof hyprlock || hyprlock
unlock_cmd = pkill -x hyprlock
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch dpms on && ./home/lucas/scripts/restart-external-screen
ignore_dbus_inhibit = false
no_fade_in = true
}
listener {
timeout = 180
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
listener {
timeout = 300
on-timeout = loginctl lock-session
}
listener {
timeout = 360 # lock d'abord, suspend après
on-timeout = systemctl suspend
}

View File

@@ -0,0 +1,23 @@
general {
lock_cmd = pidof hyprlock || hyprlock # Commande de verrouillage
unlock_cmd = pkill -x hyprlock # Commande de déverrouillage
before_sleep_cmd = loginctl lock-session # Avant la mise en veille
after_sleep_cmd = hyprctl dispatch dpms on && ./home/lucas/scripts/restart-external-screen # Après réveil
ignore_dbus_inhibit = false # Respecte les inhibiteurs DBus
no_fade_in = true
}
listener {
timeout = 600 # 10 minutes d'inactivité
on-timeout = loginctl lock-session # Verrouille l'écran
}
listener {
timeout = 900 # 15 minutes d'inactivité
on-timeout = systemctl suspend # Met en veille
}
animations {
animation = fadeIn, 0
animation = fadeOut, 0
}

163
.config/hypr/hyprland.conf Normal file
View File

@@ -0,0 +1,163 @@
source = ~/.config/hypr/monitors.conf
workspace = 1, monitor:eDP-1
workspace = 2, monitor:eDP-1
workspace = 3, monitor:eDP-1
workspace = 4, monitor:HDMI-A-1
workspace = 5, monitor:HDMI-A-1
workspace = 6, monitor:HDMI-A-1
xwayland {
force_zero_scaling = true
}
misc {
vrr = 2 # 0: off, 1: on, 2: fullscreen only
}
# --- IDENTITÉ DE LA SESSION ---
env = XDG_SESSION_TYPE,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
# --- HARDWARE & GPU (Stabilité Hybride) ---
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NVD_BACKEND,direct
# --- TOOLKIT & RENDU ---
env = QT_QPA_PLATFORM,wayland;xcb
env = GDK_BACKEND,wayland,x11
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
# --- THEME ---
env = GTK_THEME,Adwaita:dark
env = QT_STYLE_OVERRIDE,adwaita-dark
# --- CURSOR ---
env = XCURSOR_THEME,Adwaita
env = XCURSOR_SIZE,24
# --- LANCEMENT AUTOMATIQUE ---
exec-once = waybar &
exec-once = mako &
exec-once = ~/scripts/hypridle-launch &
exec-once = nm-applet --indicator &
exec-once = blueman-applet &
exec-once = /usr/lib/polkit-kde-authentication-agent-1 &
exec-once = wl-paste --type text --watch cliphist store &
exec-once = wl-paste --type image --watch cliphist store &
exec-once = dex -a &
exec-once = ~/.config/hypr/scripts/wallpaper.sh &
exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark's
# --- CLAVIER & TRACKPAD ---
input {
kb_layout = fr
kb_options = caps:shiftlock
numlock_by_default = true
follow_mouse = 1
touchpad {
natural_scroll = true
tap-to-click = true
}
numlock_by_default = true
scroll_factor = 1.0
}
# --- RACCOURCIS CLAVIER ---
$mainMod = SUPER
bind = $mainMod, C, exec, alacritty
bind = $mainMod, Q, killactive,
bind = $mainMod, E, exec, thunar
bind = $mainMod, X, togglefloating,
bind = $mainMod, D, exec, rofi -show drun
bind = $mainMod, L, exec, hyprlock
bind = $mainMod, M, exit,
bind = $mainMod, ugrave, exec, systemctl poweroff
bind = $mainMod, asterisk, exec, systemctl reboot
bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
# Navigation Workspaces (AZERTY)
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
# Déplacement fenêtres vers Workspaces (SHIFT + AZERTY)
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
# Gestion fenêtres
bind = $mainMod SHIFT, Right, resizeactive, 50 0
bind = $mainMod SHIFT, Left, resizeactive, -50 0
bind = $mainMod SHIFT, Up, resizeactive, 0 -50
bind = $mainMod SHIFT, Down, resizeactive, 0 50
bind = $mainMod SHIFT, F, togglefloating
bind = $mainMod SHIFT, G, pin
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindowss
# Screenshot
bind = , Print, exec, grim -g "$(slurp)" - | wl-copy
# Display mode
bind = $mainMod, P, exec, ~/.config/hypr/scripts/display-mode.sh
# Contrôles Hardware
bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5
bindel = , XF86AudioLowerVolume, exec, pamixer -d 5
bindl = , XF86AudioMute, exec, pamixer -t
windowrule = workspace 1, match:class ^(Alacritty)$
windowrule = workspace 2, match:title ^(Obsidian)$
windowrule = workspace 3, match:title ^(Beeper)$
windowrule = workspace 4, match:class ^(firefox)$
windowrule = workspace 5, match:class ^(org.inkscape.Inkscape)$
windowrule = workspace 6, match:title ^(ncspot)$
windowrule = workspace 6, match:title ^(Kasts)$
# --- APPARENCE (Catppuccin Mocha) ---
general {
gaps_in = 0
gaps_out = 0
border_size = 0 # Pas de bordure comme demandé
col.active_border = rgb(cba6f7) rgb(89b4fa) 45deg
col.inactive_border = rgba(1e1e2eaa)
layout = dwindle
}
decoration {
rounding = 3
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = false
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
blur {
enabled = false
size = 3
passes = 1
}
}
cursor {
no_hardware_cursors = true
}

View File

@@ -0,0 +1,56 @@
monitor=,highres,auto,1.25
env = XDG_SESSION_TYPE,wayland
env = XDG_CURRENT_DESTKOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = QT_QPA_PLATFORM,wayland
exec-once = waybar &
exec-one =
input {
kb_layout = fr
follow_mouse = 1
touchpad {
natural_scroll = true
tap-to-click = true
}
}
$mainMod = SUPER
bind = $mainMod, Q, exec, alacritty
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, thunar
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, rofi -show drun
bind = $mainMod, L, exec, swaylock
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, 0
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5
bindel = , XF86AudioLowerVolume, exec, pamixer -d 5
bindl = , XF86AudioMute, exec, pamixer -t

View File

@@ -0,0 +1,64 @@
$base = rgb(1e1e2e)
$surface0 = rgb(313244)
$overlay0 = rgb(6c7086)
$text = rgb(cdd6f4)
$mauve = rgb(cba6f7)
$red = rgb(f38ba8)
background {
monitor =
path = screenshot
blur_passes = 3
blur_size = 7
color = $base
}
input-field {
monitor =
size = 300, 50
position = 0, -100
halign = center
valign = center
outline_thickness = 2
dots_size = 0.25
dots_spacing = 0.2
outer_color = $mauve
inner_color = $surface0
font_color = $text
fail_color = $red
check_color = $mauve
placeholder_text = <span foreground="##6c7086">Mot de passe</span>
fail_text = <i>Échec</i>
rounding = 8
}
label {
monitor =
text = cmd[update:1000] echo "$(date +"%H:%M")"
color = $text
font_size = 64
font_family = JetBrains Mono
position = 0, 200
halign = center
valign = center
}
label {
monitor =
text = cmd[update:60000] echo "$(date +"%A %d %B")"
color = $overlay0
font_size = 18
font_family = JetBrains Mono
position = 0, 120
halign = center
valign = center
}
auth {
fingerprint {
enabled = false
}
}

View File

@@ -0,0 +1,11 @@
# Generated with hyprdynamicmonitors freeze.
# This is a template that you can edit, it is just a starter that pulled your current monitor setup,
# adjust as needed.
# You can use templates here etc, see https://github.com/fiffeek/hyprdynamicmonitors/blob/main/examples/basic/hyprconfigs/template.go.tmpl.
# Monitors are given arbitrary tags (the "monitor" prefix and the ID coming from hyprland).
# If you are using tui to edit, leave this at the end of your file (the last monitor config applies)
# and leave the markers.
# <<<<< TUI AUTO START
monitor=desc:BOE 0x0B29,2560x1600@120.00200,320x1440,1.33333333,transform,0,vrr,0
monitor=desc:Shenzhen KTC Technology Group H27T7P-2 0000000000000,2560x1440@119.99800,0x0,1.00000000,transform,0,vrr,0
# <<<<< TUI AUTO END

View File

@@ -0,0 +1,32 @@
#!/bin/bash
STATE_FILE="/tmp/hypr_display_mode"
INTERNAL="eDP-1"
EXTERNAL=$(hyprctl monitors all -j | jq -r '.[].name' | grep -v "$INTERNAL" | head -1)
CURRENT=$(cat "$STATE_FILE" 2>/dev/null || echo "both")
if [ -z "$EXTERNAL" ]; then
notify-send "Display" "Aucun écran externe détecté" -t 2000
exit 0
fi
case "$CURRENT" in
"both")
hyprctl keyword monitor "$INTERNAL, disable"
echo "external" > "$STATE_FILE"
notify-send "Display" "Externe uniquement ($EXTERNAL)" -t 2000
;;
"external")
hyprctl keyword monitor "$EXTERNAL, disable"
hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 0x0, 1.33"
echo "internal" > "$STATE_FILE"
notify-send "Display" "Interne uniquement" -t 2000
;;
"internal")
hyprctl keyword monitor "$INTERNAL, 2560x1600@120.0, 1995x1440, 1.33"
sleep 0.5
hyprctl keyword monitor "$EXTERNAL, 2560x1440@120.0, 1697x0, 1"
echo "both" > "$STATE_FILE"
notify-send "Display" "Double écran" -t 2000
;;
esac

View File

@@ -0,0 +1,25 @@
#!/bin/bash
# Chemins (à adapter)
VIDEO="$HOME/Videos/wallpaper.mp4"
IMAGE="$HOME/Pictures/wallpaper.jpg"
while true; do
# Vérifie si le chargeur est branché (ADP1 ou AC sur Dell)
if cat /sys/class/power_supply/AC*/online | grep -q '1'; then
# SUR SECTEUR : Lancer l'animation si elle n'est pas là
if ! pgrep -x "mpvpaper" > /dev/null; then
pkill hyprpaper
mpvpaper -o "no-audio --loop" eDP-1 "$VIDEO" &
fi
else
# SUR BATTERIE : Couper l'animation et mettre l'image fixe
if pgrep -x "mpvpaper" > /dev/null; then
pkill mpvpaper
hyprpaper &
# Optionnel : baisser les effets Hyprland ici
hyprctl reload
fi
fi
sleep 5 # Vérifie toutes les 5 secondes
done

View File

@@ -0,0 +1,7 @@
#!/bin/bash
hyprlock &
sleep 0.5
systemctl suspend
sleep 1
hyprctl dispatch dpms on
hyprctl reload

View File

@@ -0,0 +1,6 @@
#!/bin/bash
if grep -q "eco_mode=1" /proc/cmdline; then
swaybg -c 000000 &
else
swaybg -i ~/Pictures/wallpaper.jpg -m fill &
fi

View File

@@ -0,0 +1,12 @@
# Generated by nwg-displays on 2026-03-18 at 17:54:45. Do not edit manually.
workspace=1,monitor:eDP-1,default:true
workspace=2,monitor:eDP-1
workspace=3,monitor:eDP-1
workspace=4,monitor:eDP-1
workspace=5,monitor:eDP-1
workspace=6,monitor:eDP-1
workspace=7,monitor:eDP-1
workspace=8,monitor:eDP-1
workspace=9,monitor:eDP-1
workspace=10,monitor:eDP-1