diff --git a/.config/bat/config b/.config/bat/config index 768b0ce..544de5d 100644 --- a/.config/bat/config +++ b/.config/bat/config @@ -1 +1 @@ ---theme="Catppuccin Macchiato" +--theme=noctalia diff --git a/.config/hypr/custom/keybinds.lua b/.config/hypr/custom/keybinds.lua index 314a7b0..8e37673 100644 --- a/.config/hypr/custom/keybinds.lua +++ b/.config/hypr/custom/keybinds.lua @@ -1 +1 @@ --- User-specific keybindings. Loaded after hyprland/keybinds.lua. +-- User-specific keybinds. Loaded after hyprland/keybinds.lua. diff --git a/.config/hypr/custom/monitors.lua b/.config/hypr/custom/monitors.lua index 88bf07c..fb774bf 100644 --- a/.config/hypr/custom/monitors.lua +++ b/.config/hypr/custom/monitors.lua @@ -1,4 +1,6 @@ -- User-specific monitor overrides. Loaded after hyprland/monitors.lua. hl.monitor({ output = "eDP-1", mode = "2256x1504@60", position = "auto", scale = 1.33, bitdepth = 10, vrr = 1 }) -hl.monitor({ output = "DP-3", mode = "3440x1440@99", position = "auto", scale = 1, bitdepth = 10, vrr = 1 }) \ No newline at end of file +hl.monitor({ output = "DP-3", mode = "3440x1440@99", position = "auto", scale = 1, bitdepth = 10, vrr = 1 }) +hl.monitor({ output = "DP-4", mode = "4096x2160@120", position = "auto", scale = 1.33, bitdepth = 10, vrr = 1 }) + diff --git a/.config/hypr/custom/windowrules.lua b/.config/hypr/custom/windowrules.lua index ae54aea..150ad09 100644 --- a/.config/hypr/custom/windowrules.lua +++ b/.config/hypr/custom/windowrules.lua @@ -1 +1,2 @@ --- User-specific window rules. Loaded after hyprland/windowrules.lua. \ No newline at end of file +-- User-specific windowrules. Loaded after hyprland/windowrules.lua. +require("custom/windowrules/godot") diff --git a/.config/hypr/custom/windowrules/godot.lua b/.config/hypr/custom/windowrules/godot.lua new file mode 100644 index 0000000..1ff0f4c --- /dev/null +++ b/.config/hypr/custom/windowrules/godot.lua @@ -0,0 +1,51 @@ +-- Godot application windowrules -- + +hl.window_rule({ + name = "Resize Godot confirmation dialogs", + match = { + class = "org.godotengine.Editor", + float = true, + }, + size = { "monitor_w * 0.15", "monitor_h * 0.1" }, + center = true, +}) + +hl.window_rule({ + name = "Resize New node dialog", + match = { + class = "org.godotengine.Editor", + title = "Créer un nouveau Node", + }, + size = { 1000, 750 }, +}) + +hl.window_rule({ + name = "Resize Region edit dialog", + match = { + class = "org.godotengine.Editor", + title = "Éditeur de régions", + }, + size = { 1500, 1000 }, +}) + +hl.window_rule({ + name = "Resize Region edit dialog", + match = { + class = "org.godotengine.Editor", + title = "Sélectionner une scène", + }, + size = { 550, 450 }, +}) + + + +hl.window_rule({ + name = "Floating DEBUG window", + match = { + class = "org.godotengine.Editor", + title = ".*DEBUG.*", + }, + size = { 1280, 720 }, + float = true, + center = true, +}) diff --git a/.config/hypr/hyprland.lua b/.config/hypr/hyprland.lua index d143c40..1ca35f2 100644 --- a/.config/hypr/hyprland.lua +++ b/.config/hypr/hyprland.lua @@ -28,3 +28,6 @@ require("custom/windowrules") -- Noctalia generates a hyprlang colours file; load it last so it overrides above. -- dofile() because it is a .conf, not a Lua module. -- dofile(os.getenv("HOME") .. "/.config/hypr/noctalia/noctalia-colors.conf") + +-- For Noctalia Color templates +require("noctalia") diff --git a/.config/hypr/hyprland/autostart.lua b/.config/hypr/hyprland/autostart.lua index 7fb2908..3e2ded0 100644 --- a/.config/hypr/hyprland/autostart.lua +++ b/.config/hypr/hyprland/autostart.lua @@ -2,5 +2,5 @@ -- Shared defaults — do not edit. Add user-specific autostart in custom/autostart.lua. hl.on("hyprland.start", function() - hl.exec_cmd("qs -c noctalia-shell") + hl.exec_cmd("noctalia") end) diff --git a/.config/hypr/hyprland/keybinds.lua b/.config/hypr/hyprland/keybinds.lua index aac0cfa..a2b1d08 100644 --- a/.config/hypr/hyprland/keybinds.lua +++ b/.config/hypr/hyprland/keybinds.lua @@ -1,80 +1,96 @@ -- https://wiki.hypr.land/Configuring/Binds/ -- Shared defaults — do not edit. Add user-specific keybindings in custom/keybinds.lua. -local mainMod = "SUPER" +local mainMod = "SUPER" local terminal = "kitty" -local fileMgr = "nautilus" -local ipc = "qs -c noctalia-shell ipc call" +local fileMgr = "nautilus" +local ipc = "noctalia msg" -hl.bind("CTRL + ALT + T", hl.dsp.exec_cmd(terminal)) -hl.bind(mainMod .. " + SPACE", hl.dsp.exec_cmd(ipc .. " launcher toggle")) -hl.bind(mainMod .. " + C", hl.dsp.window.close()) -hl.bind(mainMod .. " + M", hl.dsp.exit()) -hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileMgr)) -hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" })) -hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ state = "toggle" })) -hl.bind(mainMod .. " + P", hl.dsp.window.pseudo()) -hl.bind(mainMod .. " + U", hl.dsp.layout("togglesplit")) -hl.bind(mainMod .. " + H", hl.dsp.layout("swapsplit")) +hl.bind("CTRL + ALT + T", hl.dsp.exec_cmd(terminal)) +hl.bind(mainMod .. " + C", hl.dsp.window.close()) +hl.bind(mainMod .. " + M", hl.dsp.exit()) +hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileMgr)) +hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" })) +hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ mode = "maximized", state = "toggle" })) +hl.bind(mainMod .. " + P", hl.dsp.window.pseudo()) +hl.bind(mainMod .. " + U", hl.dsp.layout("togglesplit")) +hl.bind(mainMod .. " + H", hl.dsp.layout("swapsplit")) -- Focus: arrow keys + IJKL for _, m in ipairs({ - { "left", "l" }, { "right", "r" }, { "up", "u" }, { "down", "d" }, - { "J", "l" }, { "L", "r" }, { "I", "u" }, { "K", "d" }, + { "left", "l" }, + { "right", "r" }, + { "up", "u" }, + { "down", "d" }, + { "J", "l" }, + { "L", "r" }, + { "I", "u" }, + { "K", "d" }, }) do - hl.bind(mainMod .. " + " .. m[1], hl.dsp.focus({ direction = m[2] })) + hl.bind(mainMod .. " + " .. m[1], hl.dsp.focus({ direction = m[2] })) end -- Workspaces 1..10: digit + AZERTY keysym, plus SHIFT to move active window local azerty = { - "ampersand", "eacute", "quotedbl", "apostrophe", "parenleft", - "minus", "egrave", "underscore", "ccedilla", "agrave", + "ampersand", + "eacute", + "quotedbl", + "apostrophe", + "parenleft", + "minus", + "egrave", + "underscore", + "ccedilla", + "agrave", } for i = 1, 10 do - local digit = (i == 10) and "0" or tostring(i) - hl.bind(mainMod .. " + " .. digit, hl.dsp.focus({ workspace = i })) - hl.bind(mainMod .. " + " .. azerty[i], hl.dsp.focus({ workspace = i })) - hl.bind(mainMod .. " + SHIFT + " .. azerty[i], hl.dsp.window.move({ workspace = i })) + local digit = (i == 10) and "0" or tostring(i) + hl.bind(mainMod .. " + " .. digit, hl.dsp.focus({ workspace = i })) + hl.bind(mainMod .. " + " .. azerty[i], hl.dsp.focus({ workspace = i })) + hl.bind(mainMod .. " + SHIFT + " .. azerty[i], hl.dsp.window.move({ workspace = i })) end -- Mouse scroll between workspaces hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" })) -hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" })) +hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" })) -- Mouse drag / resize -hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) +hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) -- Volume / brightness for _, b in ipairs({ - { "XF86AudioRaiseVolume", "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" }, - { "XF86AudioLowerVolume", "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" }, - { "XF86AudioMute", "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" }, - { "XF86AudioMicMute", "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" }, - { "XF86MonBrightnessUp", "brightnessctl -e4 -n2 set 5%+" }, - { "XF86MonBrightnessDown", "brightnessctl -e4 -n2 set 5%-" }, + { "XF86AudioRaiseVolume", "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" }, + { "XF86AudioLowerVolume", "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" }, + { "XF86AudioMute", "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" }, + { "XF86AudioMicMute", "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" }, + { "XF86MonBrightnessUp", "brightnessctl -e4 -n2 set 5%+" }, + { "XF86MonBrightnessDown", "brightnessctl -e4 -n2 set 5%-" }, }) do - hl.bind(b[1], hl.dsp.exec_cmd(b[2]), { locked = true, repeating = true }) + hl.bind(b[1], hl.dsp.exec_cmd(b[2]), { locked = true, repeating = true }) end -- Media player for _, b in ipairs({ - { "XF86AudioNext", "playerctl next" }, - { "XF86AudioPause", "playerctl play-pause" }, - { "XF86AudioPlay", "playerctl play-pause" }, - { "XF86AudioPrev", "playerctl previous" }, + { "XF86AudioNext", "playerctl next" }, + { "XF86AudioPause", "playerctl play-pause" }, + { "XF86AudioPlay", "playerctl play-pause" }, + { "XF86AudioPrev", "playerctl previous" }, }) do - hl.bind(b[1], hl.dsp.exec_cmd(b[2]), { locked = true }) + hl.bind(b[1], hl.dsp.exec_cmd(b[2]), { locked = true }) end -- Screenshot -hl.bind("Print", hl.dsp.exec_cmd("hyprshot -m region"), { locked = true }) +hl.bind("Print", hl.dsp.exec_cmd("hyprshot -m region"), { locked = true }) hl.bind("CTRL + Print", hl.dsp.exec_cmd("hyprshot -m output -m active"), { locked = true }) hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator")) -- Noctalia IPC -hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(ipc .. " darkMode toggle")) -hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(ipc .. " wallpaper toggle")) -hl.bind(mainMod .. " + SHIFT + L", hl.dsp.exec_cmd(ipc .. " lockScreen lock")) -hl.bind("switch:Lid Switch", hl.dsp.exec_cmd(ipc .. " lockScreen lock"), { locked = true }) +hl.bind(mainMod .. " + SPACE", hl.dsp.exec_cmd(ipc .. " panel-toggle launcher")) +hl.bind(mainMod .. " + S", hl.dsp.exec_cmd(ipc .. " panel-toggle control-center")) +hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(ipc .. " theme-mode-toggle")) +hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(ipc .. " panel-toggle wallpaper")) +hl.bind(mainMod .. " + SHIFT + L", hl.dsp.exec_cmd(ipc .. " session lock")) +hl.bind("switch:Lid Switch", hl.dsp.exec_cmd(ipc .. " session lock"), { locked = true }) +hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(ipc .. " plugin noctalia/screen_recorder:service all toggle")) diff --git a/.config/hypr/hyprland/windowrules.lua b/.config/hypr/hyprland/windowrules.lua index 849db6f..ac25e4f 100644 --- a/.config/hypr/hyprland/windowrules.lua +++ b/.config/hypr/hyprland/windowrules.lua @@ -2,41 +2,41 @@ -- Shared defaults — do not edit. Add user-specific window rules in custom/windowrules.lua. hl.window_rule({ - name = "floating-window", - match = { class = "(Imprimer l'image|org.gnome.Calculator|org.gnome.Loupe)" }, - float = true, + name = "floating-window", + match = { class = "(Imprimer l'image|org.gnome.Calculator|org.gnome.Loupe)" }, + float = true, }) hl.window_rule({ - name = "kitty-term", - match = { class = "kitty" }, - size = "(monitor_w*0.50) (monitor_h*0.47)", - float = true, - center = true, + name = "kitty-term", + match = { class = "kitty" }, + size = "(monitor_w*0.50) (monitor_h*0.47)", + float = true, + center = true, }) hl.window_rule({ - name = "floating-messages", - match = { class = "(signal|org.telegram.desktop)" }, - size = "(monitor_w*0.27) (monitor_h*0.7)", - move = "(monitor_w*0.70) (monitor_h*0.15)", - float = true, - pin = true, + name = "floating-messages", + match = { class = "(signal|org.telegram.desktop)" }, + size = "(monitor_w*0.25) (monitor_h*0.7)", + move = "(monitor_w*0.72) (monitor_h*0.15)", + float = true, + pin = true, }) hl.window_rule({ - name = "filesystems", - match = { class = "DevTools|Tous les fichiers|org.gnome.Nautilus" }, - float = true, - center = true, - size = "(monitor_w*0.48) (monitor_h*0.5)", + name = "filesystems", + match = { class = "DevTools|Tous les fichiers|org.gnome.Nautilus" }, + float = true, + center = true, + size = "(monitor_w*0.48) (monitor_h*0.5)", }) hl.window_rule({ - name = "pip", - match = { class = "zen", title = "Picture-in-Picture" }, - center = true, - size = "1280 720", - float = true, - pin = true, + name = "pip", + match = { class = "zen", title = "Picture-in-Picture" }, + center = true, + size = "1280 720", + float = true, + pin = true, }) diff --git a/.config/zed/settings.json b/.config/zed/settings.json index 66b5d17..cf6b479 100644 --- a/.config/zed/settings.json +++ b/.config/zed/settings.json @@ -7,6 +7,107 @@ // custom settings, run `zed: open default settings` from the // command palette (cmd-shift-p / ctrl-shift-p) { + "context_servers": { + "Vuetify": { + "enabled": true, + "url": "https://mcp.vuetifyjs.com/mcp" + }, + "Nuxt": { + "enabled": true, + "url": "https://nuxt.com/mcp" + }, + "Obsidian vault": { + "enabled": true, + "url": "https://obsidian-mcp.thomas-philippot.dev/mcp", + "headers": { + "Authorization": "Bearer LxFYd1G2EgrTVa3jod4lxjNJhfZKkhZNVEQkk909j3E" + } + }, + "mcp-server-brave-search": { + "enabled": true, + "remote": false, + "settings": { + "brave_api_key": "BSA0XaLBu6taYBZNnX10FpRJsAS4xE2" + } + }, + "mcp-server-github": { + "enabled": true, + "remote": false, + "settings": { + "github_personal_access_token": "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" + } + } + }, + "agent": { + "tool_permissions": { + "tools": { + "mcp:Obsidian vault:vault_edit": { + "default": "allow" + }, + "mcp:Obsidian vault:vault_create": { + "default": "allow" + }, + "terminal": { + "always_allow": [ + { + "pattern": "^cat\\s+\\~/Projects/Code/legacy-v4-plugins/git-companion/BarWidget\\.qml(\\s|$)" + }, + { + "pattern": "^find\\s+De-Vanced/patches/src/main/kotlin(\\s|$)" + }, + { + "pattern": "^grep\\b" + }, + { + "pattern": "^sort\\b" + } + ] + } + } + }, + "default_model": { + "provider": "ollama", + "model": "glm-5.2:cloud", + "enable_thinking": true + }, + "favorite_models": [ + { + "provider": "ollama", + "model": "gemma4:31b-cloud", + "enable_thinking": true + } + ], + "model_parameters": [] + }, + "language_models": { + "anthropic_compatible": { + + }, + "openai_compatible": { + "Hermes": { + "api_url": "https://hermes.thomas-philippot.dev/v1", + "available_models": [ + { + "name": "hermes-agent", + "max_tokens": 32768, + "max_output_tokens": 200000, + "max_completion_tokens": 200000, + "capabilities": { + "tools": true, + "images": true, + "parallel_tool_calls": false, + "prompt_cache_key": false, + "chat_completions": true, + "interleaved_reasoning": false + } + } + ] + } + }, + "ollama": { + "api_url": "http://localhost:11434" + } + }, "git": { "inline_blame": { "show_commit_summary": false, diff --git a/.zshrc b/.zshrc index 3e562f2..e6ef9b9 100644 --- a/.zshrc +++ b/.zshrc @@ -11,7 +11,6 @@ export FZF_DEFAULT_OPTS=" \ --color=selected-bg:#494D64 \ --color=border:#6E738D,label:#CAD3F5" - # Set name of the theme to load --- if set to "random", it will # load a random theme each time Oh My Zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME