From 9db0b4dac01bd564b8303cf5d50d7a49001ce139 Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 25 Aug 2026 15:14:32 +0200 Subject: [PATCH] fix hyprlock, hypridle & monitor management --- .config/gtk-3.0/bookmarks | 3 + .config/hypr/hypridle-eco.conf | 3 +- .config/hypr/hypridle.conf | 10 +- .config/hypr/hyprland.conf | 23 ++- .config/hypr/hyprland.conf.save | 56 ------ .config/hypr/hyprland.lua | 187 ++++++++++++++++++ .config/hypr/hyprlock.conf | 9 + .config/hypr/monitors.conf | 2 +- .config/hypr/monitors.lua | 41 ++++ .config/hypr/scripts/display-mode.sh | 32 --- .config/hypr/scripts/wallpaper.sh | 4 +- .config/hyprdynamicmonitors/config-eco.toml | 33 ++++ .config/hyprdynamicmonitors/config-power.toml | 37 ++++ .config/hyprdynamicmonitors/config.toml | 25 +-- .../hyprconfigs/dual-eco.go.tmpl | 11 ++ .../hyprconfigs/dual.go.tmpl | 2 +- .../hyprconfigs/fallback.go.tmpl | 7 + .../hyprconfigs/solo-eco.go.tmpl | 1 + .../hyprconfigs/solo.go.tmpl | 1 + .config/mimeapps.list | 12 ++ .config/ncspot/userstate.cbor | Bin 18819 -> 33531 bytes .../user/xdg-desktop-portal-gtk.service | 1 + .zshrc | 7 +- scripts/auto/extract-lrc.sh | 14 ++ scripts/auto/to-opus.sh | 4 + .../{ => backups}/partition_table_backup.txt | 0 scripts/backups/pkglist_aur.txt | 41 ++++ scripts/backups/pkglist_officiel.txt | 180 +++++++++++++++++ scripts/clean.sh | 35 ++++ scripts/display-manager.sh | 2 + ...nload-youtube => download-youtube-flac.sh} | 0 scripts/download-youtube-mp4.sh | 9 + scripts/download-youtube-xjadeo.sh | 129 ++++++++++++ scripts/hdm-config-select.sh | 6 + scripts/mkinitcpio-eco.bak | 2 - scripts/network-hotspot.sh | 87 ++++++++ scripts/network-switch-local.sh | 2 + scripts/pkglist_aur.txt | 17 +- scripts/pkglist_officiel.txt | 30 +++ 39 files changed, 923 insertions(+), 142 deletions(-) delete mode 100644 .config/hypr/hyprland.conf.save create mode 100644 .config/hypr/hyprland.lua create mode 100644 .config/hypr/monitors.lua delete mode 100755 .config/hypr/scripts/display-mode.sh create mode 100644 .config/hyprdynamicmonitors/config-eco.toml create mode 100644 .config/hyprdynamicmonitors/config-power.toml mode change 100644 => 120000 .config/hyprdynamicmonitors/config.toml create mode 100644 .config/hyprdynamicmonitors/hyprconfigs/dual-eco.go.tmpl create mode 100644 .config/hyprdynamicmonitors/hyprconfigs/fallback.go.tmpl create mode 100644 .config/hyprdynamicmonitors/hyprconfigs/solo-eco.go.tmpl create mode 100644 .config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl create mode 120000 .config/systemd/user/xdg-desktop-portal-gtk.service create mode 100755 scripts/auto/extract-lrc.sh create mode 100755 scripts/auto/to-opus.sh rename scripts/{ => backups}/partition_table_backup.txt (100%) create mode 100644 scripts/backups/pkglist_aur.txt create mode 100644 scripts/backups/pkglist_officiel.txt create mode 100755 scripts/clean.sh create mode 100755 scripts/display-manager.sh rename scripts/{download-youtube => download-youtube-flac.sh} (100%) create mode 100755 scripts/download-youtube-mp4.sh create mode 100755 scripts/download-youtube-xjadeo.sh create mode 100755 scripts/hdm-config-select.sh delete mode 100755 scripts/mkinitcpio-eco.bak create mode 100755 scripts/network-hotspot.sh create mode 100755 scripts/network-switch-local.sh diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks index 444d502..d823ec5 100644 --- a/.config/gtk-3.0/bookmarks +++ b/.config/gtk-3.0/bookmarks @@ -1,12 +1,15 @@ +file:///home/lucas/scripts file:///home/lucas/Documents file:///home/lucas/Images file:///home/lucas/Musique file:///home/lucas/Vid%C3%A9os file:///home/lucas/T%C3%A9l%C3%A9chargements file:///home/lucas/LocalProjets +file:///home/lucas/LocalProjets/04%202Limited/VJ file:///home/lucas/Nextcloud file:///home/lucas/Nextcloud/Projets file:///home/lucas/Nextcloud/Projets/2Limited +file:///home/lucas/Nextcloud/Projets/2Limited/Vid%C3%A9os file:///home/lucas/Nextcloud2 file:///home/lucas/Nextcloud2/03.%20Associatif/V%C3%A9lo%20Boom%20Boom file:///home/lucas/Nextcloud2/03.%20Associatif/V%C3%A9lo%20Boom%20Boom/01%20Communication diff --git a/.config/hypr/hypridle-eco.conf b/.config/hypr/hypridle-eco.conf index 3b53533..ef42a05 100644 --- a/.config/hypr/hypridle-eco.conf +++ b/.config/hypr/hypridle-eco.conf @@ -2,9 +2,8 @@ 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 + after_sleep_cmd = hyprctl dispatch dpms on ignore_dbus_inhibit = false - no_fade_in = true } listener { timeout = 180 diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf index c0d218c..5120a76 100644 --- a/.config/hypr/hypridle.conf +++ b/.config/hypr/hypridle.conf @@ -2,9 +2,8 @@ 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 + after_sleep_cmd = hyprctl dispatch dpms on + ignore_dbus_inhibit = false # Respecte les inhibiteurs DBus } listener { @@ -16,8 +15,3 @@ listener { timeout = 900 # 15 minutes d'inactivité on-timeout = systemctl suspend # Met en veille } - -animations { - animation = fadeIn, 0 - animation = fadeOut, 0 -} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index c9ab351..21f0126 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -14,6 +14,8 @@ xwayland { misc { vrr = 2 # 0: off, 1: on, 2: fullscreen only + key_press_enables_dpms = true + mouse_move_enables_dpms = true } # --- IDENTITÉ DE LA SESSION --- @@ -42,18 +44,25 @@ env = XCURSOR_SIZE,24 # --- LANCEMENT AUTOMATIQUE --- +exec-once = /home/lucas/scripts/hdm-config-select.sh exec-once = waybar & exec-once = mako & exec-once = ~/scripts/hypridle-launch & exec-once = nm-applet --indicator & exec-once = blueman-applet & +exec-once = kdeconnectd & +exec-once = xdg-user-dirs-update & +exec-once = xapp-sn-watcher & 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 +exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark' +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland +exec-once = /usr/lib/xdg-desktop-portal-hyprland & +exec-once = sleep 1 && /usr/lib/xdg-desktop-portal-gtk & +exec-once = sleep 2 && /usr/lib/xdg-desktop-portal -r & # --- CLAVIER & TRACKPAD --- input { @@ -82,6 +91,7 @@ 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 +bind = $mainMod, W, exec, thunar # Navigation Workspaces (AZERTY) bind = $mainMod, ampersand, workspace, 1 @@ -107,13 +117,14 @@ 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 +bindm = $mainMod, mouse:273, resizewindow # Screenshot bind = , Print, exec, grim -g "$(slurp)" - | wl-copy +bind = SHIFT, Print, exec, grimblast copy screen -# Display mode -bind = $mainMod, P, exec, ~/.config/hypr/scripts/display-mode.sh +# Display manager +bind = $mainMod, P, exec, ~/scripts/display-manager.sh # Contrôles Hardware bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+ @@ -122,6 +133,7 @@ bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5 bindel = , XF86AudioLowerVolume, exec, pamixer -d 5 bindl = , XF86AudioMute, exec, pamixer -t +# --- ANCIENNES RÈGLES À REMPLACER --- windowrule = workspace 1, match:class ^(Alacritty)$ windowrule = workspace 2, match:title ^(Obsidian)$ windowrule = workspace 3, match:title ^(Beeper)$ @@ -130,7 +142,6 @@ 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 diff --git a/.config/hypr/hyprland.conf.save b/.config/hypr/hyprland.conf.save deleted file mode 100644 index faf77a1..0000000 --- a/.config/hypr/hyprland.conf.save +++ /dev/null @@ -1,56 +0,0 @@ - - - -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 diff --git a/.config/hypr/hyprland.lua b/.config/hypr/hyprland.lua new file mode 100644 index 0000000..6a3ab3f --- /dev/null +++ b/.config/hypr/hyprland.lua @@ -0,0 +1,187 @@ +-- Generated by hyprconf2lua v1.4.0 (manuellement corrigé) +---@module 'hl' + +-- === MONITEURS === +local monitors = require("monitors") + +-- Workspace rules (intégrées directement) +hl.workspace_rule({ workspace = 1, monitor = "eDP-1" }) +hl.workspace_rule({ workspace = 2, monitor = "eDP-1" }) +hl.workspace_rule({ workspace = 3, monitor = "eDP-1" }) +hl.workspace_rule({ workspace = 4, monitor = "HDMI-A-1" }) +hl.workspace_rule({ workspace = 5, monitor = "HDMI-A-1" }) +hl.workspace_rule({ workspace = 6, monitor = "HDMI-A-1" }) + +-- === OPTIONS GÉNÉRALES === +hl.config({ + xwayland = { force_zero_scaling = true }, + misc = { vrr = 2 }, -- 0: off, 1: on, 2: fullscreen only +}) + +-- === ENVIRONNEMENT === +hl.env("XDG_SESSION_TYPE", "wayland") +hl.env("XDG_CURRENT_DESKTOP", "Hyprland") +hl.env("XDG_SESSION_DESKTOP", "Hyprland") + +-- GPU NVIDIA +hl.env("LIBVA_DRIVER_NAME", "nvidia") +hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia") +hl.env("NVD_BACKEND", "direct") + +-- Toolkits +hl.env("QT_QPA_PLATFORM", "wayland;xcb") +hl.env("GDK_BACKEND", "wayland,x11") +hl.env("SDL_VIDEODRIVER", "wayland") +hl.env("CLUTTER_BACKEND", "wayland") + +-- Thème +hl.env("GTK_THEME", "Adwaita:dark") +hl.env("QT_STYLE_OVERRIDE", "adwaita-dark") + +-- Curseur +hl.env("XCURSOR_THEME", "Adwaita") +hl.env("XCURSOR_SIZE", 24) + +-- === CLAVIER & TRACKPAD === +hl.config({ + input = { + kb_layout = "fr", + kb_options = "caps:shiftlock", + numlock_by_default = true, + follow_mouse = 1, + touchpad = { + natural_scroll = true, + tap_to_click = true, + }, + scroll_factor = 1.0, + }, +}) + +-- === RACCOURCIS CLAVIER === +local mainMod = "SUPER" + +-- Lanceurs +hl.bind(mainMod .. " + C", hl.dsp.exec_cmd("alacritty")) +hl.bind(mainMod .. " + E", hl.dsp.exec_cmd("thunar")) +hl.bind(mainMod .. " + D", hl.dsp.exec_cmd("rofi -show drun")) +hl.bind(mainMod .. " + L", hl.dsp.exec_cmd("hyprlock")) +hl.bind(mainMod .. " + V", hl.dsp.exec_cmd("cliphist list | rofi -dmenu | cliphist decode | wl-copy")) +hl.bind(mainMod .. " + W", hl.dsp.exec_cmd("thunar")) +hl.bind(mainMod .. " + P", hl.dsp.exec_cmd("~/scripts/display-manager.sh")) + +-- Gestion des fenêtres +hl.bind(mainMod .. " + Q", hl.dsp.window.close()) +hl.bind(mainMod .. " + X", hl.dsp.window.float()) +hl.bind(mainMod .. " + M", hl.dsp.exit()) +hl.bind(mainMod .. " + SHIFT + F", hl.dsp.window.float()) +hl.bind(mainMod .. " + SHIFT + G", hl.dsp.window.pin()) + +-- Redimensionnement (via hyprctl pour compatibilité) +hl.bind(mainMod .. " + SHIFT + Right", hl.dsp.exec_cmd("hyprctl dispatch resizeactive 50 0")) +hl.bind(mainMod .. " + SHIFT + Left", hl.dsp.exec_cmd("hyprctl dispatch resizeactive -50 0")) +hl.bind(mainMod .. " + SHIFT + Up", hl.dsp.exec_cmd("hyprctl dispatch resizeactive 0 -50")) +hl.bind(mainMod .. " + SHIFT + Down", hl.dsp.exec_cmd("hyprctl dispatch resizeactive 0 50")) + +-- Déplacement avec la souris (bindm) +hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) +hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) + +-- Extinction / redémarrage +hl.bind(mainMod .. " + ugrave", hl.dsp.exec_cmd("systemctl poweroff")) +hl.bind(mainMod .. " + asterisk", hl.dsp.exec_cmd("systemctl reboot")) + +-- Navigation des workspaces (AZERTY) +hl.bind(mainMod .. " + ampersand", hl.dsp.focus({ workspace = 1 })) +hl.bind(mainMod .. " + eacute", hl.dsp.focus({ workspace = 2 })) +hl.bind(mainMod .. " + quotedbl", hl.dsp.focus({ workspace = 3 })) +hl.bind(mainMod .. " + apostrophe",hl.dsp.focus({ workspace = 4 })) +hl.bind(mainMod .. " + parenleft", hl.dsp.focus({ workspace = 5 })) +hl.bind(mainMod .. " + minus", hl.dsp.focus({ workspace = 6 })) + +-- Déplacement des fenêtres vers les workspaces (SHIFT + AZERTY) +hl.bind(mainMod .. " + SHIFT + ampersand", hl.dsp.window.move({ workspace = 1 })) +hl.bind(mainMod .. " + SHIFT + eacute", hl.dsp.window.move({ workspace = 2 })) +hl.bind(mainMod .. " + SHIFT + quotedbl", hl.dsp.window.move({ workspace = 3 })) +hl.bind(mainMod .. " + SHIFT + apostrophe", hl.dsp.window.move({ workspace = 4 })) +hl.bind(mainMod .. " + SHIFT + parenleft", hl.dsp.window.move({ workspace = 5 })) +hl.bind(mainMod .. " + SHIFT + minus", hl.dsp.window.move({ workspace = 6 })) + +-- Captures d'écran +hl.bind("Print", hl.dsp.exec_cmd("grim -g \"$(slurp)\" - | wl-copy")) +hl.bind("SHIFT + Print", hl.dsp.exec_cmd("grimblast copy screen")) + +-- Contrôles matériels (bindl / bindel) +hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set 5%+"), { locked = true }) +hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 5%-"), { locked = true }) +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("pamixer -i 5"), { locked = true }) +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("pamixer -d 5"), { locked = true }) +hl.bind("XF86AudioMute", hl.dsp.exec_cmd("pamixer -t"), { locked = true }) + +-- === RÈGLES POUR LES FENÊTRES === +hl.window_rule({ name = "workspace_1", match = { class = "^(Alacritty)$" }, workspace = 1 }) +hl.window_rule({ name = "workspace_2", match = { title = "^(Obsidian)$" }, workspace = 2 }) +hl.window_rule({ name = "workspace_3", match = { title = "^(Beeper)$" }, workspace = 3 }) +hl.window_rule({ name = "workspace_4", match = { class = "^(firefox)$" }, workspace = 4 }) +hl.window_rule({ name = "workspace_5", match = { class = "^(org.inkscape.Inkscape)$" }, workspace = 5 }) +hl.window_rule({ name = "workspace_6", match = { title = "^(ncspot)$" }, workspace = 6 }) +hl.window_rule({ name = "workspace_6", match = { title = "^(Kasts)$" }, workspace = 6 }) + +-- === APPARENCE === +hl.config({ + general = { + gaps_in = 0, + gaps_out = 0, + border_size = 0, + layout = "dwindle", + col = { + active_border = { colors = { "rgb(cba6f7)", "rgb(89b4fa)" }, angle = 45 }, + inactive_border = "rgba(1e1e2eaa)", + }, + }, + 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, + }, +}) + +-- === DÉMARRAGE AUTOMATIQUE (exec-once) === +hl.on("hyprland.start", function() + hl.exec_cmd("/home/lucas/scripts/hdm-config-select.sh") + hl.exec_cmd( + "bash -c 'while [ $(hyprctl monitors | grep -c \"Monitor\") -lt 2 ]; do sleep 1; done; hyprdynamicmonitors'" + ) + hl.exec_cmd("waybar") + hl.exec_cmd("mako") + hl.exec_cmd("~/scripts/hypridle-launch") + hl.exec_cmd("nm-applet --indicator") + hl.exec_cmd("blueman-applet") + hl.exec_cmd("kdeconnectd") + hl.exec_cmd("xdg-user-dirs-update") + hl.exec_cmd("xapp-sn-watcher") + hl.exec_cmd("/usr/lib/polkit-kde-authentication-agent-1") + hl.exec_cmd("wl-paste --type text --watch cliphist store") + hl.exec_cmd("wl-paste --type image --watch cliphist store") + hl.exec_cmd("~/.config/hypr/scripts/wallpaper.sh") + hl.exec_cmd("gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'") + hl.exec_cmd("gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'") + hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland") + hl.exec_cmd("/usr/lib/xdg-desktop-portal-hyprland") + -- Les portails avec délai + hl.exec_cmd("sleep 1 && /usr/lib/xdg-desktop-portal-gtk") + hl.exec_cmd("sleep 2 && /usr/lib/xdg-desktop-portal -r") +end) \ No newline at end of file diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf index 825bfa0..56b7819 100644 --- a/.config/hypr/hyprlock.conf +++ b/.config/hypr/hyprlock.conf @@ -62,3 +62,12 @@ auth { enabled = false } } + +general { + no_fade_in = true +} + +animations { + animation = fadeIn, 0 + animation = fadeOut, 0 +} diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf index fa69af5..73cbf04 100644 --- a/.config/hypr/monitors.conf +++ b/.config/hypr/monitors.conf @@ -6,6 +6,6 @@ # 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:BOE 0x0B29,2560x1600@120.00,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 diff --git a/.config/hypr/monitors.lua b/.config/hypr/monitors.lua new file mode 100644 index 0000000..53c6e3b --- /dev/null +++ b/.config/hypr/monitors.lua @@ -0,0 +1,41 @@ +-- Generated by hyprconf2lua v1.4.0 +-- https://github.com/Prateek-squadron/hyprconf2lua +-- Manual review may be needed for complex directives + +---@module 'hl' + +-- 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 + +hl.monitor({ + output = "desc:BOE 0x0B29", + mode = "2560x1600@120.00", + position = "320x1440", + scale = 1.33333333, + transform = 0, + vrr = 0, +}) + +hl.monitor({ + output = "desc:Shenzhen KTC Technology Group H27T7P-2 0000000000000", + mode = "2560x1440@119.99800", + position = "0x0", + scale = 1.00000000, + transform = 0, + vrr = 0, +}) + +-- <<<<< TUI AUTO END diff --git a/.config/hypr/scripts/display-mode.sh b/.config/hypr/scripts/display-mode.sh deleted file mode 100755 index c004a93..0000000 --- a/.config/hypr/scripts/display-mode.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/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 \ No newline at end of file diff --git a/.config/hypr/scripts/wallpaper.sh b/.config/hypr/scripts/wallpaper.sh index 3be9548..9057cfe 100755 --- a/.config/hypr/scripts/wallpaper.sh +++ b/.config/hypr/scripts/wallpaper.sh @@ -1,6 +1,6 @@ #!/bin/bash if grep -q "eco_mode=1" /proc/cmdline; then - swaybg -c 000000 & + swaybg -i ~/Pictures/wallpaper-eco.jpg -m fill & else swaybg -i ~/Pictures/wallpaper.jpg -m fill & -fi \ No newline at end of file +fi diff --git a/.config/hyprdynamicmonitors/config-eco.toml b/.config/hyprdynamicmonitors/config-eco.toml new file mode 100644 index 0000000..803e19b --- /dev/null +++ b/.config/hyprdynamicmonitors/config-eco.toml @@ -0,0 +1,33 @@ +[general] +destination = "$HOME/.config/hypr/monitors.conf" + +[power_events] + +[power_events.dbus_query_object] +path = "/org/freedesktop/UPower/devices/line_power_AC" + +[[power_events.dbus_signal_match_rules]] +object_path = "/org/freedesktop/UPower/devices/line_power_AC" + + +[profiles.dual] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl" +config_file_type = "template" +[profiles.dual.conditions] + +[[profiles.dual.conditions.required_monitors]] +description = "BOE 0x0B29" +monitor_tag = "monitor0" + +[[profiles.dual.conditions.required_monitors]] +description = "Shenzhen KTC Technology Group H27T7P-2 0000000000000" +monitor_tag = "monitor1" + +[profiles.solo] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl" +config_file_type = "template" + +[profiles.solo.conditions] +[[profiles.solo.conditions.required_monitors]] +description = "BOE 0x0B29" +monitor_tag = "monitor0" diff --git a/.config/hyprdynamicmonitors/config-power.toml b/.config/hyprdynamicmonitors/config-power.toml new file mode 100644 index 0000000..a38cbbe --- /dev/null +++ b/.config/hyprdynamicmonitors/config-power.toml @@ -0,0 +1,37 @@ +[general] +destination = "$HOME/.config/hypr/monitors.conf" + +[power_events] + +[power_events.dbus_query_object] +path = "/org/freedesktop/UPower/devices/line_power_AC" + +[[power_events.dbus_signal_match_rules]] +object_path = "/org/freedesktop/UPower/devices/line_power_AC" + + +[profiles.dual] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl" +config_file_type = "template" +[profiles.dual.conditions] + +[[profiles.dual.conditions.required_monitors]] +description = "BOE 0x0B29" +monitor_tag = "monitor0" + +[[profiles.dual.conditions.required_monitors]] +description = "Shenzhen KTC Technology Group H27T7P-2 0000000000000" +monitor_tag = "monitor1" + +[profiles.solo] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl" +config_file_type = "template" + +[profiles.solo.conditions] +[[profiles.solo.conditions.required_monitors]] +description = "BOE 0x0B29" +monitor_tag = "monitor0" + +[fallback_profile] +config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/fallback.go.tmpl" +config_file_type = "template" diff --git a/.config/hyprdynamicmonitors/config.toml b/.config/hyprdynamicmonitors/config.toml deleted file mode 100644 index f78ae31..0000000 --- a/.config/hyprdynamicmonitors/config.toml +++ /dev/null @@ -1,24 +0,0 @@ -[general] -destination = "$HOME/.config/hypr/monitors.conf" - -[power_events] - -[power_events.dbus_query_object] -path = "/org/freedesktop/UPower/devices/line_power_AC" - -[[power_events.dbus_signal_match_rules]] -object_path = "/org/freedesktop/UPower/devices/line_power_AC" - - -[profiles.dual] -config_file = "/home/lucas/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl" -config_file_type = "template" -[profiles.dual.conditions] - -[[profiles.dual.conditions.required_monitors]] -description = "BOE 0x0B29" -monitor_tag = "monitor0" - -[[profiles.dual.conditions.required_monitors]] -description = "Shenzhen KTC Technology Group H27T7P-2 0000000000000" -monitor_tag = "monitor1" diff --git a/.config/hyprdynamicmonitors/config.toml b/.config/hyprdynamicmonitors/config.toml new file mode 120000 index 0000000..f3c6f33 --- /dev/null +++ b/.config/hyprdynamicmonitors/config.toml @@ -0,0 +1 @@ +/home/lucas/.config/hyprdynamicmonitors/config-power.toml \ No newline at end of file diff --git a/.config/hyprdynamicmonitors/hyprconfigs/dual-eco.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/dual-eco.go.tmpl new file mode 100644 index 0000000..25c3c4f --- /dev/null +++ b/.config/hyprdynamicmonitors/hyprconfigs/dual-eco.go.tmpl @@ -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@48.00,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 diff --git a/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl index fa69af5..73cbf04 100644 --- a/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl +++ b/.config/hyprdynamicmonitors/hyprconfigs/dual.go.tmpl @@ -6,6 +6,6 @@ # 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:BOE 0x0B29,2560x1600@120.00,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 diff --git a/.config/hyprdynamicmonitors/hyprconfigs/fallback.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/fallback.go.tmpl new file mode 100644 index 0000000..8a72b21 --- /dev/null +++ b/.config/hyprdynamicmonitors/hyprconfigs/fallback.go.tmpl @@ -0,0 +1,7 @@ +{{- range .Monitors}} +{{- if eq .Name "eDP-1"}} +monitor=eDP-1,2560x1600@120,320x1440,1.3333334 +{{- else}} +monitor={{.Name}},preferred,auto,1 +{{- end}} +{{- end}} diff --git a/.config/hyprdynamicmonitors/hyprconfigs/solo-eco.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/solo-eco.go.tmpl new file mode 100644 index 0000000..39e0f1d --- /dev/null +++ b/.config/hyprdynamicmonitors/hyprconfigs/solo-eco.go.tmpl @@ -0,0 +1 @@ +monitor=desc:BOE 0x0B29,2560x1600@48.00,0x0,1.33333333,transform,0,vrr,0 diff --git a/.config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl b/.config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl new file mode 100644 index 0000000..4526b6b --- /dev/null +++ b/.config/hyprdynamicmonitors/hyprconfigs/solo.go.tmpl @@ -0,0 +1 @@ +monitor=desc:BOE 0x0B29,2560x1600@120.00,0x0,1.33333333,transform,0,vrr,0 diff --git a/.config/mimeapps.list b/.config/mimeapps.list index 4ab2d7d..80034c2 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -23,6 +23,10 @@ audio/x-opus+ogg=mpv.desktop audio/flac=mpv.desktop video/x-matroska=mpv.desktop application/json=codium.desktop +video/webm=mpv.desktop +video/vnd.avi=mpv.desktop +video/quicktime=mpv.desktop +text/x-shellscript=codium.desktop [Added Associations] x-scheme-handler/http=firefox.desktop; @@ -45,3 +49,11 @@ audio/flac=mpv.desktop; text/csv=onlyoffice-desktopeditors.desktop;codium.desktop; video/x-matroska=mpv.desktop; application/json=codium.desktop; +video/webm=mpv.desktop; +application/xml=codium.desktop; +video/vnd.avi=mpv.desktop; +application/vnd.openxmlformats-officedocument.wordprocessingml.document=onlyoffice-desktopeditors.desktop; +video/quicktime=mpv.desktop; +text/x-ssa=codium.desktop;org.aegisub.Aegisub.desktop; +text/x-shellscript=codium.desktop; +text/x-python3=codium.desktop; diff --git a/.config/ncspot/userstate.cbor b/.config/ncspot/userstate.cbor index 3ab005de51f7e4e6f97e03d3343925936411b5d8..470e0c178f90719b69819fa02df3066c82d43946 100644 GIT binary patch literal 33531 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 diff --git a/.config/systemd/user/xdg-desktop-portal-gtk.service b/.config/systemd/user/xdg-desktop-portal-gtk.service new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/.config/systemd/user/xdg-desktop-portal-gtk.service @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/.zshrc b/.zshrc index f7ddd56..18a0d69 100644 --- a/.zshrc +++ b/.zshrc @@ -51,10 +51,11 @@ export TERMINAL=alacritty bindkey '^[[3~' delete-char # Update and clean -alias update='yay -Syu --noconfirm && yay -Yc --noconfirm && sudo mkinitcpio -P && sudo /home/lucas/scripts/mkinitcpio-eco && clean' -alias clean='sudo rm -f /var/cache/pacman/pkg/download-* 2>/dev/null; yay -Sc --noconfirm 2>/dev/null; sudo journalctl --vacuum-time=2weeks; pacman -Qdtq | grep -q . && sudo pacman -Rns $(pacman -Qdtq) 2>/dev/null || true' +alias update='yay -Syu --noconfirm && yay -Yc --noconfirm && sudo mkinitcpio -P && sudo /home/lucas/scripts/mkinitcpio-eco && rm -f ~/.cache/updates-count && clean' +alias clean='/home/lucas/scripts/clean.sh' alias clr='clear' alias dotpush='~/scripts/dotpush.sh' +alias etcpush='sudo etckeeper commit "Sauvegarde auto $(date "+%Y-%m-%d %H:%M")"' alias rembg='~/.venv/rembg/bin/rembg' alias pio="$HOME/.platformio/penv/bin/pio" @@ -62,3 +63,5 @@ alias pio="$HOME/.platformio/penv/bin/pio" # Created by `pipx` on 2026-06-16 16:04:30 export PATH="$PATH:/home/lucas/.local/bin" alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' +alias obs='OBS_USE_EGL=1 obs' +export PATH="$HOME/.local/share/flutter/bin:$PATH" diff --git a/scripts/auto/extract-lrc.sh b/scripts/auto/extract-lrc.sh new file mode 100755 index 0000000..e1461e2 --- /dev/null +++ b/scripts/auto/extract-lrc.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +for file in "$@"; do + # Vérifie si c'est un fichier opus + if [[ "$file" == *.opus ]]; then + # Extrait et formate les paroles + lyrics=$(exiftool -b -Syncedlyrics "$file" | sed 's/\[/\n\[/g' | sed '/^$/d') + + # Crée le fichier .lrc uniquement si le tag n'est pas vide + if [ -n "$lyrics" ]; then + echo "$lyrics" > "${file%.*}.lrc" + fi + fi +done diff --git a/scripts/auto/to-opus.sh b/scripts/auto/to-opus.sh new file mode 100755 index 0000000..585787c --- /dev/null +++ b/scripts/auto/to-opus.sh @@ -0,0 +1,4 @@ +#!/bin/bash +for f in "$@"; do + ffmpeg -i "$f" -c:a libopus -b:a 160k "${f%.*}.opus" +done diff --git a/scripts/partition_table_backup.txt b/scripts/backups/partition_table_backup.txt similarity index 100% rename from scripts/partition_table_backup.txt rename to scripts/backups/partition_table_backup.txt diff --git a/scripts/backups/pkglist_aur.txt b/scripts/backups/pkglist_aur.txt new file mode 100644 index 0000000..601a051 --- /dev/null +++ b/scripts/backups/pkglist_aur.txt @@ -0,0 +1,41 @@ +adwaita-qt5-git +adwaita-qt6-git +android-studio +appimagelauncher +balena-etcher +beeper-v4-bin +bibata-cursor-theme-bin +catppuccin-gtk-theme-mocha +chirp-next +chromium-widevine +cnrdrvcups-lb-bin +collabora-office +dell-command-configure +dupeguru +electron40-bin +gimp-plugin-resynthesizer +google-chrome +hyprdynamicmonitors-bin +hyprgraphics-git +hyprlang-git +hyprutils-git +hyprwayland-scanner-git +kdeconnect-git +libjpeg6-turbo +log2ram +networkmanager-dmenu-git +onlyoffice-bin +openssl-1.1 +orca-slicer-bin +pinta +python-yattag +refind-theme-catppuccin-git +rustdesk-bin +sddm-theme-catppuccin-git +ungoogled-chromium-bin +ventoy-bin +vesktop-bin +vscodium-bin +wlogout +yay +zsh-theme-powerlevel10k-git diff --git a/scripts/backups/pkglist_officiel.txt b/scripts/backups/pkglist_officiel.txt new file mode 100644 index 0000000..5a9e566 --- /dev/null +++ b/scripts/backups/pkglist_officiel.txt @@ -0,0 +1,180 @@ +adwaita-qt5-git +adwaita-qt6-git +alacritty +android-studio +appimagelauncher +audacity +balena-etcher +base +base-devel +bc +beeper-v4-bin +bibata-cursor-theme-bin +blender +blueman +bluez +bluez-utils +bolt +brightnessctl +btop +catppuccin-gtk-theme-mocha +chirp-next +chromium-widevine +cliphist +cnrdrvcups-lb-bin +collabora-office +converseen +cups +dell-command-configure +dex +dnsmasq +drawio-desktop +dupeguru +exfat-utils +eza +f3d +file-roller +firefox +flatpak +fwupd +gamemode +ghostscript +gimp +gimp-plugin-gmic +gimp-plugin-resynthesizer +git +github-cli +gnome-calculator +gnome-characters +gnome-keyring +godot +google-chrome +gptfdisk +grim +gst-plugin-pipewire +gvfs +gvfs-afc +gvfs-mtp +gvfs-smb +handbrake +hyprdynamicmonitors-bin +hypridle +hyprland +hyprlock +inkscape +intel-gpu-tools +intel-media-driver +intel-ucode +iwd +jq +kasts +kdeconnect-git +kdenlive +kid3-qt +lib32-gamemode +lib32-nvidia-utils +libva-utils +libvirt +linux +linux-firmware +linux-headers +log2ram +mako +man-db +man-pages +mesa-utils +mixxx +mpv +mtools +mumble +nano +ncdu +ncspot +network-manager-applet +networkmanager +networkmanager-dmenu-git +nextcloud-client +nm-connection-editor +nmap +noto-fonts-cjk +nvidia-open-dkms +nvidia-settings +nvidia-utils +nvtop +nwg-look +obs-studio +obsidian +onlyoffice-bin +orca-slicer-bin +pacman-contrib +pamixer +papirus-icon-theme +pavucontrol +pinta +pipewire-alsa +pipewire-pulse +plymouth +polkit-kde-agent +power-profiles-daemon +powertop +python-build +python-installer +python-pipx +qemu-full +qt5-graphicaleffects +qt5-quickcontrols2 +qt5-svg +qt5-wayland +qt6-5compat +qt6-wayland +refind +refind-theme-catppuccin-git +rofi +rustdesk-bin +sane-airscan +sddm +sddm-theme-catppuccin-git +seahorse +signal-desktop +slurp +sof-firmware +steam +swaybg +syncthing +system-config-printer +texinfo +thermald +throttled +thunar +thunar-archive-plugin +thunderbird +timeshift +tree +ttf-jetbrains-mono-nerd +tumbler +ungoogled-chromium-bin +unzip +ventoy-bin +vesktop-bin +viewnior +virt-manager +vscodium-bin +vulkan-intel +waybar +websocat +wget +wine +wine-gecko +wine-mono +wireguard-tools +wl-clipboard +wlogout +woff2-font-awesome +wol +xdg-desktop-portal-hyprland +yay +ydotool +yt-dlp +zram-generator +zsh +zsh-theme-powerlevel10k-git diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100755 index 0000000..b86a430 --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1,35 @@ +#!/bin/bash +set -e + +echo "==> Suppression téléchargements partiels..." +sudo rm -f /var/cache/pacman/pkg/download-* 2>/dev/null || true + +echo "==> Nettoyage cache pacman..." +sudo paccache -r -k1 -q 2>/dev/null || true + +echo "==> Nettoyage orphelins yay..." +yay -Yc --noconfirm 2>/dev/null || true + +echo "==> Rotation journaux systemd..." +sudo journalctl --vacuum-time=2weeks 2>/dev/null || true + +echo "==> Suppression paquets orphelins..." +orphans=$(pacman -Qdtq 2>/dev/null) || true +if [ -n "$orphans" ]; then + sudo pacman -Rns $orphans --noconfirm || true +else + echo " Aucun orphelin." +fi + +echo "==> Nettoyage cache utilisateur..." +find ~/.cache -type f -delete 2>/dev/null || true +find ~/.cache -type d -empty -delete 2>/dev/null || true + +echo "==> Nettoyage npm..." +npm cache clean --force 2>/dev/null || true + +echo "==> Nettoyage historiques..." +> ~/.lesshst +> ~/.wget-hsts + +echo "==> Terminé." diff --git a/scripts/display-manager.sh b/scripts/display-manager.sh new file mode 100755 index 0000000..7419850 --- /dev/null +++ b/scripts/display-manager.sh @@ -0,0 +1,2 @@ +#!/bin/bash +alacritty -e hyprdynamicmonitors tui diff --git a/scripts/download-youtube b/scripts/download-youtube-flac.sh similarity index 100% rename from scripts/download-youtube rename to scripts/download-youtube-flac.sh diff --git a/scripts/download-youtube-mp4.sh b/scripts/download-youtube-mp4.sh new file mode 100755 index 0000000..1f64128 --- /dev/null +++ b/scripts/download-youtube-mp4.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Usage: ./download-youtube 'URL' + +if [ -z "$1" ]; then + echo "Erreur : donne une URL YouTube en argument." + exit 1 +fi + +yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]" -o "%(title)s.%(ext)s" "$1" diff --git a/scripts/download-youtube-xjadeo.sh b/scripts/download-youtube-xjadeo.sh new file mode 100755 index 0000000..333aa36 --- /dev/null +++ b/scripts/download-youtube-xjadeo.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +# Script de téléchargement et conversion pour xjadeo +# Dépendances : yt-dlp, ffmpeg + +set -euo pipefail + +# Couleurs pour l'affichage +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Fonction d'affichage +info() { echo -e "${BLUE}[INFO]${NC} $1"; } +success() { echo -e "${GREEN}[OK]${NC} $1"; } +error() { echo -e "${RED}[ERREUR]${NC} $1" >&2; } +warn() { echo -e "${YELLOW}[ATTENTION]${NC} $1"; } + +# Vérification des dépendances +check_deps() { + local missing=() + if ! command -v yt-dlp &> /dev/null; then + missing+=("yt-dlp") + fi + if ! command -v ffmpeg &> /dev/null; then + missing+=("ffmpeg") + fi + if [ ${#missing[@]} -ne 0 ]; then + error "Dépendances manquantes : ${missing[*]}" + error "Installe-les avec : sudo pacman -S yt-dlp ffmpeg (Arch) ou sudo apt install yt-dlp ffmpeg (Debian/Ubuntu)" + exit 1 + fi +} + +# Demande de l'URL +get_url() { + if [ $# -eq 1 ]; then + URL="$1" + info "URL fournie en argument : $URL" + else + read -rp "URL YouTube : " URL + fi + if [[ -z "$URL" ]]; then + error "Aucune URL saisie." + exit 1 + fi +} + +# Demande du nom de fichier +get_filename() { + # Essaie d'extraire un titre temporaire avec yt-dlp --get-title + local suggested="" + if command -v yt-dlp &> /dev/null; then + suggested=$(yt-dlp --get-title "$URL" 2>/dev/null | sed 's/[^a-zA-Z0-9._-]/_/g' | head -c 80) + fi + if [ -z "$suggested" ]; then + suggested="video" + fi + read -rp "Nom du fichier (sans extension) [$suggested] : " input_name + FILENAME="${input_name:-$suggested}" +} + +# Téléchargement +download_video() { + info "Téléchargement de la vidéo depuis $URL..." + # Télécharge la meilleure qualité vidéo+audio et fusionne en MKV + yt-dlp -f "bestvideo+bestaudio" --merge-output-format mkv -o "${FILENAME}.%(ext)s" "$URL" + # Recherche le fichier produit (peut être .mkv ou .webm) + SOURCE_FILE=$(find . -maxdepth 1 -name "${FILENAME}.*" -type f | head -1) + if [ -z "$SOURCE_FILE" ]; then + error "Fichier téléchargé introuvable." + exit 1 + fi + success "Téléchargement terminé : $SOURCE_FILE" +} + +# Proposer la conversion +ask_conversion() { + echo "" + read -rp "Souhaites-tu convertir cette vidéo au format MJPEG/AVI pour xjadeo ? (o/N) " convert_choice + case "$convert_choice" in + o|O|oui|Oui|y|Y|yes|Yes) CONVERT="yes" ;; + *) CONVERT="no" ;; + esac +} + +# Conversion +convert_video() { + local output_file="${FILENAME}_xjadeo.avi" + info "Conversion en cours vers $output_file..." + # Qualité vidéo : on demande un paramètre + read -rp "Qualité vidéo MJPEG (q:v de 2 à 31, 2=meilleure) [2] : " qv + qv="${qv:-2}" + if ! [[ "$qv" =~ ^[0-9]+$ ]] || [ "$qv" -lt 2 ] || [ "$qv" -gt 31 ]; then + warn "Valeur invalide, utilisation de 2" + qv=2 + fi + ffmpeg -i "$SOURCE_FILE" -c:v mjpeg -q:v "$qv" -c:a pcm_s16le -fflags +genpts "$output_file" + if [ $? -eq 0 ]; then + success "Conversion terminée : $output_file" + read -rp "Supprimer le fichier source ($SOURCE_FILE) ? (o/N) " del_choice + case "$del_choice" in + o|O|oui|Oui|y|Y|yes|Yes) rm -v "$SOURCE_FILE" ;; + *) info "Fichier source conservé." ;; + esac + else + error "La conversion a échoué." + fi +} + +# Fonction principale +main() { + check_deps + get_url "$@" + get_filename + download_video + ask_conversion + if [ "$CONVERT" = "yes" ]; then + convert_video + else + info "Aucune conversion demandée. Le fichier source est $SOURCE_FILE" + fi + info "Terminé." +} + +# Exécution +main "$@" diff --git a/scripts/hdm-config-select.sh b/scripts/hdm-config-select.sh new file mode 100755 index 0000000..d6324e2 --- /dev/null +++ b/scripts/hdm-config-select.sh @@ -0,0 +1,6 @@ +#!/bin/bash +if grep -q "eco_mode=1" /proc/cmdline; then + ln -sf "$HOME/.config/hyprdynamicmonitors/config-eco.toml" "$HOME/.config/hyprdynamicmonitors/config.toml" +else + ln -sf "$HOME/.config/hyprdynamicmonitors/config-power.toml" "$HOME/.config/hyprdynamicmonitors/config.toml" +fi diff --git a/scripts/mkinitcpio-eco.bak b/scripts/mkinitcpio-eco.bak deleted file mode 100755 index ee2110e..0000000 --- a/scripts/mkinitcpio-eco.bak +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -sudo mkinitcpio -c /etc/mkinitcpio-eco.conf -g /boot/initramfs-linux-eco.img diff --git a/scripts/network-hotspot.sh b/scripts/network-hotspot.sh new file mode 100755 index 0000000..673506c --- /dev/null +++ b/scripts/network-hotspot.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# +# Réinitialise le hotspot "2Limited" sur la carte WiFi disponible. +# Utilisation : sudo ./reset_hotspot.sh +# + +set -e # stop en cas d'erreur + +# --- Configuration --- +SSID="2Limited" +PASS="calais62" +CHANNEL=6 +CONN_NAME="2Limited" + +# --- Détection de l'interface WiFi --- +detect_wifi() { + # Liste des interfaces WiFi gérées par NetworkManager (hors loopback, ethernet, etc.) + local iface=$(nmcli -t -f TYPE,DEVICE device | grep -E '^wifi:' | head -1 | cut -d: -f2) + if [ -z "$iface" ]; then + echo "❌ Aucune interface WiFi détectée." + exit 1 + fi + echo "$iface" +} + +# --- Nettoyage de l'ancienne connexion --- +clean_connection() { + if nmcli con show "$CONN_NAME" &>/dev/null; then + echo "🔁 Suppression de l'ancienne connexion '$CONN_NAME'..." + sudo nmcli con delete "$CONN_NAME" >/dev/null 2>&1 || true + fi +} + +# --- Création du hotspot --- +create_hotspot() { + local iface="$1" + echo "📡 Création du hotspot sur $iface..." + sudo nmcli con add type wifi ifname "$iface" mode ap con-name "$CONN_NAME" ssid "$SSID" >/dev/null + + sudo nmcli con mod "$CONN_NAME" 802-11-wireless.mode ap + sudo nmcli con mod "$CONN_NAME" 802-11-wireless.band bg + sudo nmcli con mod "$CONN_NAME" 802-11-wireless.channel "$CHANNEL" + sudo nmcli con mod "$CONN_NAME" wifi-sec.key-mgmt wpa-psk + sudo nmcli con mod "$CONN_NAME" wifi-sec.psk "$PASS" + sudo nmcli con mod "$CONN_NAME" 802-11-wireless.powersave 2 + sudo nmcli con mod "$CONN_NAME" ipv4.method shared + sudo nmcli con mod "$CONN_NAME" connection.autoconnect yes +} + +# --- Démarrage du hotspot --- +start_hotspot() { + echo "▶️ Démarrage du hotspot..." + sudo nmcli con up "$CONN_NAME" >/dev/null + if [ $? -eq 0 ]; then + echo "✅ Hotspot '$SSID' actif." + # Afficher l'IP de la passerelle (le PC) + local gateway=$(ip -4 addr show "$(nmcli -t -f DEVICE device status | grep -E '^wlan' | cut -d: -f1)" | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1) + echo "🌐 IP du PC (passerelle) : $gateway" + echo "🔑 Mot de passe : $PASS" + echo "📶 Canal : $CHANNEL" + else + echo "❌ Échec du démarrage du hotspot." + exit 1 + fi +} + +# --- Exécution --- +main() { + echo "🔄 Réinitialisation du hotspot '$SSID'..." + WIFI_IFACE=$(detect_wifi) + echo "🔌 Interface détectée : $WIFI_IFACE" + + clean_connection + create_hotspot "$WIFI_IFACE" + start_hotspot + + echo "" + echo "✨ Prêt ! L'ESP peut maintenant se connecter à '$SSID'." +} + +# Vérification des droits +if [ "$EUID" -ne 0 ]; then + echo "⚠️ Ce script nécessite les droits root. Relance avec sudo." + exit 1 +fi + +main diff --git a/scripts/network-switch-local.sh b/scripts/network-switch-local.sh new file mode 100755 index 0000000..3b1e72b --- /dev/null +++ b/scripts/network-switch-local.sh @@ -0,0 +1,2 @@ +sudo nmcli connection up "Switch-Local" +sudo systemctl start dnsmasq diff --git a/scripts/pkglist_aur.txt b/scripts/pkglist_aur.txt index 601a051..0d21cd1 100644 --- a/scripts/pkglist_aur.txt +++ b/scripts/pkglist_aur.txt @@ -12,30 +12,35 @@ cnrdrvcups-lb-bin collabora-office dell-command-configure dupeguru -electron40-bin +electron37 gimp-plugin-resynthesizer +glava google-chrome +grimblast-git +gtk2 hyprdynamicmonitors-bin -hyprgraphics-git -hyprlang-git -hyprutils-git -hyprwayland-scanner-git kdeconnect-git libjpeg6-turbo log2ram networkmanager-dmenu-git +obs-advanced-masks +obs-move-transition onlyoffice-bin openssl-1.1 orca-slicer-bin -pinta python-yattag refind-theme-catppuccin-git +rsgain +rtpmidid-bin rustdesk-bin sddm-theme-catppuccin-git +spotify ungoogled-chromium-bin ventoy-bin vesktop-bin +vibe-audio-visualizer-git vscodium-bin wlogout +xwaylandvideobridge yay zsh-theme-powerlevel10k-git diff --git a/scripts/pkglist_officiel.txt b/scripts/pkglist_officiel.txt index 5a9e566..8ac6bab 100644 --- a/scripts/pkglist_officiel.txt +++ b/scripts/pkglist_officiel.txt @@ -1,7 +1,12 @@ adwaita-qt5-git adwaita-qt6-git +aegisub alacritty +alsa-firmware +alsa-utils android-studio +android-tools +android-udev appimagelauncher audacity balena-etcher @@ -18,6 +23,7 @@ bolt brightnessctl btop catppuccin-gtk-theme-mocha +cdrtools chirp-next chromium-widevine cliphist @@ -30,11 +36,13 @@ dex dnsmasq drawio-desktop dupeguru +etckeeper exfat-utils eza f3d file-roller firefox +firefox-i18n-fr flatpak fwupd gamemode @@ -44,6 +52,7 @@ gimp-plugin-gmic gimp-plugin-resynthesizer git github-cli +glava gnome-calculator gnome-characters gnome-keyring @@ -51,6 +60,7 @@ godot google-chrome gptfdisk grim +grimblast-git gst-plugin-pipewire gvfs gvfs-afc @@ -66,6 +76,8 @@ intel-gpu-tools intel-media-driver intel-ucode iwd +jack2 +jdk17-openjdk jq kasts kdeconnect-git @@ -83,6 +95,7 @@ mako man-db man-pages mesa-utils +meson mixxx mpv mtools @@ -97,19 +110,25 @@ nextcloud-client nm-connection-editor nmap noto-fonts-cjk +ntfs-3g +ntfsprogs nvidia-open-dkms nvidia-settings nvidia-utils nvtop nwg-look +obs-advanced-masks +obs-move-transition obs-studio obsidian onlyoffice-bin +openrct2 orca-slicer-bin pacman-contrib pamixer papirus-icon-theme pavucontrol +perl-image-exiftool pinta pipewire-alsa pipewire-pulse @@ -117,6 +136,7 @@ plymouth polkit-kde-agent power-profiles-daemon powertop +projectm python-build python-installer python-pipx @@ -130,18 +150,24 @@ qt6-wayland refind refind-theme-catppuccin-git rofi +rsgain +rtpmidid-bin rustdesk-bin sane-airscan +sbctl sddm sddm-theme-catppuccin-git seahorse signal-desktop slurp sof-firmware +spotify +sqlcipher steam swaybg syncthing system-config-printer +tcpdump texinfo thermald throttled @@ -156,6 +182,7 @@ ungoogled-chromium-bin unzip ventoy-bin vesktop-bin +vibe-audio-visualizer-git viewnior virt-manager vscodium-bin @@ -163,6 +190,7 @@ vulkan-intel waybar websocat wget +whois wine wine-gecko wine-mono @@ -172,6 +200,8 @@ wlogout woff2-font-awesome wol xdg-desktop-portal-hyprland +xjadeo +xwaylandvideobridge yay ydotool yt-dlp