diff --git a/hyprwhspr/.config/hyprwhspr/.recovery_notification_lock/lock b/hyprwhspr/.config/hyprwhspr/.recovery_notification_lock/lock new file mode 100644 index 000000000..d958ac2e1 --- /dev/null +++ b/hyprwhspr/.config/hyprwhspr/.recovery_notification_lock/lock @@ -0,0 +1 @@ +1779306768:success:suspend_resume diff --git a/hyprwhspr/.config/hyprwhspr/config.json b/hyprwhspr/.config/hyprwhspr/config.json new file mode 100644 index 000000000..f0a0d94b8 --- /dev/null +++ b/hyprwhspr/.config/hyprwhspr/config.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://raw.githubusercontent.com/goodroot/hyprwhspr/main/share/config.schema.json", + "transcription_backend": "vulkan", + "model": "large-v3-turbo", + "audio_ducking": true, + "primary_shortcut": "ALT+S", + "recording_mode": "push_to_talk", + "language": "fr", + "start_sound_volume": 0.5, + "stop_sound_volume": 0.5, + "start_sound_path": "ping-up.ogg", + "stop_sound_path": "ping-down.ogg", + "audio_ducking": true, + "audio_ducking_percent": 50, + "mic_osd_enabled": true, + "whisper_prompt_fr": "Transcrire en français avec des phrases complètes, une ponctuation claire et des majuscules correctes au début des phrases, pour les noms propres et les titres, comme dans un texte rédigé" +} diff --git a/hyprwhspr/.config/hyprwhspr/mic_osd.pid b/hyprwhspr/.config/hyprwhspr/mic_osd.pid new file mode 100644 index 000000000..b3ba61b6a --- /dev/null +++ b/hyprwhspr/.config/hyprwhspr/mic_osd.pid @@ -0,0 +1 @@ +3871 \ No newline at end of file diff --git a/hyprwhspr/.config/hyprwhspr/ping-down.ogg b/hyprwhspr/.config/hyprwhspr/ping-down.ogg new file mode 100644 index 000000000..09ea6722a Binary files /dev/null and b/hyprwhspr/.config/hyprwhspr/ping-down.ogg differ diff --git a/hyprwhspr/.config/hyprwhspr/ping-up.ogg b/hyprwhspr/.config/hyprwhspr/ping-up.ogg new file mode 100644 index 000000000..1f25e1667 Binary files /dev/null and b/hyprwhspr/.config/hyprwhspr/ping-up.ogg differ diff --git a/hyprwhspr/.local/share/hyprwhspr/assets/ping-down.ogg b/hyprwhspr/.local/share/hyprwhspr/assets/ping-down.ogg new file mode 100644 index 000000000..09ea6722a Binary files /dev/null and b/hyprwhspr/.local/share/hyprwhspr/assets/ping-down.ogg differ diff --git a/hyprwhspr/.local/share/hyprwhspr/assets/ping-up.ogg b/hyprwhspr/.local/share/hyprwhspr/assets/ping-up.ogg new file mode 100644 index 000000000..1f25e1667 Binary files /dev/null and b/hyprwhspr/.local/share/hyprwhspr/assets/ping-up.ogg differ diff --git a/hyprwhspr/.local/share/hyprwhspr/pywhispercpp-src b/hyprwhspr/.local/share/hyprwhspr/pywhispercpp-src new file mode 160000 index 000000000..d8f202f44 --- /dev/null +++ b/hyprwhspr/.local/share/hyprwhspr/pywhispercpp-src @@ -0,0 +1 @@ +Subproject commit d8f202f4435cf3e5e0bf735723eaacbe84c6853c diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index 23fbc9ef6..9c32adc27 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -30,3 +30,4 @@ cursor_trail 0 shell_integration no-cursor include kitty-themes/themes/mocha.conf + diff --git a/mango/.config/mango/autostart.conf b/mango/.config/mango/autostart.conf index 2e55274a7..26708f96f 100644 --- a/mango/.config/mango/autostart.conf +++ b/mango/.config/mango/autostart.conf @@ -22,7 +22,6 @@ exec-once=swaybg -i ~/.wallpapers/662412-vanilla-arch-wallpaper-linuxart.png exec-once=kitty --class kitty-1 --directory $HOME exec-once=perplexity exec-once=kitty --class kitty-2 --directory $HOME -exec-once=kitty --class kitty-3 --directory $HOME -- sh -c "ssh srv-admin-ext" exec-once=chromium exec-once=thunderbird exec-once=spotify-launcher diff --git a/mango/.config/mango/bind_navigation.conf b/mango/.config/mango/bind_navigation.conf index 6cdc2c494..2d80850c6 100644 --- a/mango/.config/mango/bind_navigation.conf +++ b/mango/.config/mango/bind_navigation.conf @@ -6,10 +6,10 @@ # switch window focus binds=SUPER,Tab,focusstack,next -binds=ALT,Left,focusdir,left -binds=ALT,Right,focusdir,right -binds=ALT,Up,focusdir,up -binds=ALT,Down,focusdir,down +binds=SUPER,Left,focusdir,left +binds=SUPER,Right,focusdir,right +binds=SUPER,Up,focusdir,up +binds=SUPER,Down,focusdir,down # swap window binds=SUPER+SHIFT,Up,exchange_client,up @@ -19,52 +19,52 @@ binds=SUPER+SHIFT,Right,exchange_client,right # switch window status binds=SUPER,g,toggleglobal, -binds=ALT,Tab,toggleoverview, -binds=ALT,backslash,togglefloating, -binds=ALT,a,togglemaximizescreen, -binds=ALT,f,togglefullscreen, -binds=ALT+SHIFT,f,togglefakefullscreen, +binds=SUPER,Tab,toggleoverview, +binds=SUPER,backslash,togglefloating, +binds=SUPER,a,togglemaximizescreen, +binds=SUPER,f,togglefullscreen, +binds=SUPER+SHIFT,f,togglefakefullscreen, binds=SUPER,i,minimized, binds=SUPER,o,toggleoverlay, binds=SUPER+SHIFT,I,restore_minimized -binds=ALT,z,toggle_scratchpad +binds=SUPER,z,toggle_scratchpad # tag switch -binds=SUPER,Left,viewtoleft,0 -binds=CTRL,Left,viewtoleft_have_client,0 -binds=SUPER,Right,viewtoright,0 -binds=CTRL,Right,viewtoright_have_client,0 -binds=CTRL+SUPER,Left,tagtoleft,0 -binds=CTRL+SUPER,Right,tagtoright,0 +binds=ALT,Left,viewtoleft,0 +binds=ALT+SHIFT,Left,viewtoleft_have_client,0 +binds=ALT,Right,viewtoright,0 +binds=ALT+SHIFT,Right,viewtoright_have_client,0 +binds=ALT+SUPER,Left,tagtoleft,0 +binds=ALT+SUPER,Right,tagtoright,0 -binds=CTRL,ampersand,view,1,0 -binds=CTRL,eacute,view,2,0 -binds=CTRL,quotedbl,view,3,0 -binds=CTRL,apostrophe,view,4,0 -binds=CTRL,parenleft,view,5,0 -binds=CTRL,minus,view,6,0 -binds=CTRL,egrave,view,7,0 -binds=CTRL,underscore,view,8,0 -binds=CTRL,ccedilla,view,9,0 +binds=ALT,ampersand,view,1,0 +binds=ALT,eacute,view,2,0 +binds=ALT,quotedbl,view,3,0 +binds=ALT,apostrophe,view,4,0 +binds=ALT,parenleft,view,5,0 +binds=ALT,minus,view,6,0 +binds=ALT,egrave,view,7,0 +binds=ALT,underscore,view,8,0 +binds=ALT,ccedilla,view,9,0 # tag: move client to the tag and focus it # tagsilent: move client to the tag and not focus it # bind=ALT,1,tagsilent,1 -binds=ALT,ampersand,tag,1,0 -binds=ALT,eacute,tag,2,0 -binds=ALT,quotedbl,tag,3,0 -binds=ALT,apostrophe,tag,4,0 -binds=ALT,parenleft,tag,5,0 -binds=ALT,minus,tag,6,0 -binds=ALT,egrave,tag,7,0 -binds=ALT,underscore,tag,8,0 -binds=ALT,ccedilla,tag,9,0 +binds=ALT+SUPER,ampersand,tag,1,0 +binds=ALT+SUPER,eacute,tag,2,0 +binds=ALT+SUPER,quotedbl,tag,3,0 +binds=ALT+SUPER,apostrophe,tag,4,0 +binds=ALT+SUPER,parenleft,tag,5,0 +binds=ALT+SUPER,minus,tag,6,0 +binds=ALT+SUPER,egrave,tag,7,0 +binds=ALT+SUPER,underscore,tag,8,0 +binds=ALT+SUPER,ccedilla,tag,9,0 # monitor switch -binds=ALT+SHIFT,Left,focusmon,left -binds=ALT+SHIFT,Right,focusmon,right -binds=SUPER+ALT,Left,tagmon,left -binds=SUPER+ALT,Right,tagmon,right +binds=CTRL+SHIFT,Left,focusmon,left +binds=CTRL+SHIFT,Right,focusmon,right +binds=CTRL+SUPER,Left,tagmon,left +binds=CTRL+SUPER,Right,tagmon,right # gaps binds=ALT+SHIFT,X,incgaps,1 @@ -78,10 +78,10 @@ binds=ALT+SHIFT,R,togglegaps # binds=CTRL+SHIFT,Right,movewin,+50,+0 # resizewin -binds=CTRL+ALT,Up,resizewin,+0,-10 -binds=CTRL+ALT,Down,resizewin,+0,+10 -binds=CTRL+ALT,Left,resizewin,-10,+0 -binds=CTRL+ALT,Right,resizewin,+10,+0 +binds=SUPER+CTRL,Up,resizewin,+0,-10 +binds=SUPER+CTRL,Down,resizewin,+0,+10 +binds=SUPER+CTRL,Left,resizewin,-10,+0 +binds=SUPER+CTRL,Right,resizewin,+10,+0 # Mouse Button Bindings # btn_left and btn_right can't bind none mod key @@ -91,4 +91,4 @@ mousebind=SUPER,btn_right,moveresize,curresize # Axis Bindings axisbind=SUPER,UP,viewtoleft_have_client -axisbind=SUPER,DOWN,viewtoright_have_client +# axisbind=SUPER,DOWN,viewtoright_have_client diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 9a65b3536..2adf761c5 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -26,35 +26,38 @@ vim.opt.clipboard = "unnamedplus" vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 +vim.g.loaded_ruby_provider = 0 +vim.g.loaded_node_provider = 0 +vim.g.loaded_perl_provider = 0 -- Avant require("config.lazy") local ts_site = vim.fn.stdpath("data") .. "/site" if not vim.tbl_contains(vim.opt.rtp:get(), ts_site) then - vim.opt.rtp:append(ts_site) + vim.opt.rtp:append(ts_site) end -- charge lazy.nvim + plugins require("config.lazy") -- Position du curser vim.api.nvim_create_autocmd("BufReadPost", { - callback = function() - local mark = vim.api.nvim_buf_get_mark(0, '"') - local line_count = vim.api.nvim_buf_line_count(0) - if mark[1] > 0 and mark[1] <= line_count then - vim.api.nvim_win_set_cursor(0, mark) - end - end, + callback = function() + local mark = vim.api.nvim_buf_get_mark(0, '"') + local line_count = vim.api.nvim_buf_line_count(0) + if mark[1] > 0 and mark[1] <= line_count then + vim.api.nvim_win_set_cursor(0, mark) + end + end, }) -- Undo persistant local undodir = vim.fn.stdpath("state") .. "/undo" if vim.fn.isdirectory(undodir) == 0 then - vim.fn.mkdir(undodir, "p") + vim.fn.mkdir(undodir, "p") end vim.opt.undodir = undodir vim.opt.undofile = true vim.filetype.add({ - pattern = { [".*/hypr/.*%.conf"] = "hyprlang" }, + pattern = { [".*/hypr/.*%.conf"] = "hyprlang" }, }) -- require @@ -67,7 +70,4 @@ require("config.markdown") -- Mason/LSP require("mason-lspconfig").setup() - vim.cmd.colorscheme "catppuccin-mocha" - - diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 61719e8f2..6879d8211 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -1,5 +1,5 @@ { - "LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" }, + "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, @@ -12,15 +12,15 @@ "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" }, "mason.nvim": { "branch": "main", "commit": "cbf8d285e1462dd24acf3507817be2bbcb035919" }, - "mini.icons": { "branch": "main", "commit": "9c7b1b90b15bdd69c52f6e31889dbc9987c30ec4" }, + "mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" }, "mini.map": { "branch": "stable", "commit": "234eaf5cbcaee320d87e96465fbb534aa05b301e" }, - "mini.starter": { "branch": "main", "commit": "35b018a035794e341ac01cb2091bbd71b3f823d0" }, + "mini.starter": { "branch": "main", "commit": "a7d8b353cf120fee32bb5d88e7a9de5eaec746e7" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "ebd66767191714e008ce73b769518a763ff31bdc" }, "neowiki.nvim": { "branch": "main", "commit": "85dddf6057b07d4d6772b2f90e754a18e958a865" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" }, "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "5cfe7fffbd01e17b3c1e14af85d5febdef88bd8c" }, "nvim-lsp-file-operations": { "branch": "master", "commit": "b9c795d3973e8eec22706af14959bc60c579e771" }, "nvim-lspconfig": { "branch": "master", "commit": "246572944c2a1e2a646c2e7609ff619b0fe74c18" }, "nvim-tcss": { "branch": "main", "commit": "bf9001416158f32fe7e92c42de94de3595aa13e5" }, @@ -31,6 +31,7 @@ "outline.nvim": { "branch": "main", "commit": "c293eb56db880a0539bf9d85b4a27816960b863e" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "render-markdown.nvim": { "branch": "main", "commit": "629eb9533ec989d9d5c6cab8f3ad5372422c24e0" }, + "rustaceanvim": { "branch": "main", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "3610dc7dc91f06aa98b11dca5cc30dfa98626b7e" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" }, diff --git a/nvim/.config/nvim/lua/config/lsp-setup.lua b/nvim/.config/nvim/lua/config/lsp-setup.lua index 4a7e24997..a6c571c5b 100644 --- a/nvim/.config/nvim/lua/config/lsp-setup.lua +++ b/nvim/.config/nvim/lua/config/lsp-setup.lua @@ -1,40 +1,63 @@ +-- capabilities avec cmp si disponible local capabilities = vim.lsp.protocol.make_client_capabilities() local ok_cmp, cmp_lsp = pcall(require, "cmp_nvim_lsp") if ok_cmp then - capabilities = cmp_lsp.default_capabilities(capabilities) + capabilities = cmp_lsp.default_capabilities(capabilities) end -local lspconfig = require("lspconfig") +-- Keymaps + format on save (déclenché à chaque attach LSP) +vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local bufnr = args.buf + local map = function(lhs, rhs, desc) + vim.keymap.set("n", lhs, rhs, { buffer = bufnr, desc = desc }) + end --- Fonction appelée quand un serveur LSP se connecte à un buffer -local on_attach = function(_, bufnr) - local map = function(mode, lhs, rhs, desc) - vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc }) - end + map("ld", vim.lsp.buf.definition, "LSP: Go to definition") + map("lD", vim.lsp.buf.declaration, "LSP: Go to declaration") + map("lr", vim.lsp.buf.references, "LSP: References") + map("K", vim.lsp.buf.hover, "LSP: Hover") + map("rn", vim.lsp.buf.rename, "LSP: Rename") + map("ca", vim.lsp.buf.code_action, "LSP: Code action") + map("e", vim.diagnostic.open_float, "LSP: Show diagnostic") + -- diagnostics dépréciés en 0.11 → remplacés par vim.diagnostic.jump + map("[d", function() vim.diagnostic.jump({ count = -1 }) end, "LSP: Prev diagnostic") + map("]d", function() vim.diagnostic.jump({ count = 1 }) end, "LSP: Next diagnostic") - -- Keymaps de base LSP - map("n", "gd", vim.lsp.buf.definition, "LSP: Go to definition") - map("n", "gr", vim.lsp.buf.references, "LSP: References") - map("n", "K", vim.lsp.buf.hover, "LSP: Hover") - map("n", "rn", vim.lsp.buf.rename, "LSP: Rename") - map("n", "ca", vim.lsp.buf.code_action, "LSP: Code action") - map("n", "[d", vim.diagnostic.goto_prev, "LSP: Prev diagnostic") - map("n", "]d", vim.diagnostic.goto_next, "LSP: Next diagnostic") - - -- Format on save (si le serveur sait formater) - vim.api.nvim_create_autocmd("BufWritePre", { - buffer = bufnr, - callback = function() - vim.lsp.buf.format({ async = false }) + -- Format on save + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ async = false }) + end, + }) end, - }) -end - --- Pyright pour Python --- Exemple approximatif avec la future API -local cfg = vim.lsp._config -- ou vim.lsp.config selon la version - -cfg.setup("pyright", { - on_attach = on_attach, - capabilities = capabilities, }) + +-- Config des serveurs via la nouvelle API vim.lsp.config +vim.lsp.config("clangd", { + capabilities = capabilities, + cmd = { "clangd", "--background-index", "--clang-tidy" }, +}) + +vim.lsp.config("pyright", { + capabilities = capabilities, +}) + +vim.lsp.config("bashls", { + capabilities = capabilities, +}) + +vim.lsp.config("lua_ls", { + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { globals = { "vim" } }, + }, + }, +}) + +-- Activation des serveurs +vim.lsp.enable({ "clangd", "pyright", "bashls", "lua_ls" }) + +-- rust_analyzer géré par rustaceanvim, ne pas l'activer ici diff --git a/nvim/.config/nvim/lua/plugins/colorizer.lua b/nvim/.config/nvim/lua/plugins/colorizer.lua index 512e65f63..558cdc967 100644 --- a/nvim/.config/nvim/lua/plugins/colorizer.lua +++ b/nvim/.config/nvim/lua/plugins/colorizer.lua @@ -1,6 +1,5 @@ return { - "norcalli/nvim-colorizer.lua", - config = function() - require("colorizer").setup() - end, + "catgoose/nvim-colorizer.lua", + event = "BufReadPre", + opts = {}, } diff --git a/nvim/.config/nvim/lua/plugins/lsp.lua b/nvim/.config/nvim/lua/plugins/lsp.lua index 55d8180cd..c1a7c08d6 100644 --- a/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/plugins/lsp.lua @@ -1,15 +1,42 @@ return { - "mason-org/mason-lspconfig.nvim", - opts = { - ensure_installed = { - "pyright" + -- Mason + { + "mason-org/mason.nvim", + opts = {}, + }, + + -- Bridge Mason <-> lspconfig + { + "mason-org/mason-lspconfig.nvim", + opts = { + ensure_installed = { + "pyright", -- Python (tu l'avais déjà) + "bashls", -- Bash + "lua_ls", -- Lua + -- rust_analyzer : géré par rustaceanvim, pas ici + }, + automatic_enable = { + exclude = { "rust_analyzer" }, + }, + }, + dependencies = { + { "mason-org/mason.nvim", opts = {} }, + "neovim/nvim-lspconfig", }, }, - dependencies = { - { - "mason-org/mason.nvim", - opts = {} - }, + + -- nvim-lspconfig : chargé, config dans lsp-setup.lua + { "neovim/nvim-lspconfig", + config = function() + require("config.lsp-setup") + end, + }, + + -- Rust : rustaceanvim + { + "mrcjkb/rustaceanvim", + version = "^5", + lazy = false, }, } diff --git a/nvim/.config/nvim/lua/plugins/render-markdown.lua b/nvim/.config/nvim/lua/plugins/render-markdown.lua index 290636c7b..b1b2b96de 100644 --- a/nvim/.config/nvim/lua/plugins/render-markdown.lua +++ b/nvim/.config/nvim/lua/plugins/render-markdown.lua @@ -1,15 +1,18 @@ ---@type LazySpec return { - { - "MeanderingProgrammer/render-markdown.nvim", - dependencies = { - "nvim-treesitter/nvim-treesitter", - "nvim-tree/nvim-web-devicons", -- ou mini.icons si tu utilises mini + { + "MeanderingProgrammer/render-markdown.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", + "nvim-tree/nvim-web-devicons", -- ou mini.icons si tu utilises mini + }, + opts = { + -- preset = "lazy", -- tu peux tester ce preset plus tard + enabled = true, + file_types = { "markdown" }, + latex = { + enabled = false, + }, + }, }, - opts = { - -- preset = "lazy", -- tu peux tester ce preset plus tard - enabled = true, - file_types = { "markdown" }, - }, - }, } diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua index 67153ad1e..5d03aacb2 100644 --- a/nvim/.config/nvim/lua/plugins/treesitter.lua +++ b/nvim/.config/nvim/lua/plugins/treesitter.lua @@ -1,27 +1,29 @@ return { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - opts = { - ensure_installed = { - "bash", - "c", - "lua", - "vim", - "vimdoc", - "markdown", - "markdown_inline", - "query", - "python", - "html", + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + opts = { + ensure_installed = { + "bash", + "c", + "lua", + "vim", + "vimdoc", + "markdown", + "markdown_inline", + "query", + "python", + "html", + "yaml", + "latex", + "rust", + }, + auto_install = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = {}, + }, + indent = { + enable = true, + }, }, - auto_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = {}, - }, - indent = { - enable = true, - }, - }, } - diff --git a/systemd/.config/systemd/user/cliphist-image.service b/systemd/.config/systemd/user/cliphist-image.service index f0598c3f0..ac38ee2a8 100644 --- a/systemd/.config/systemd/user/cliphist-image.service +++ b/systemd/.config/systemd/user/cliphist-image.service @@ -1,7 +1,7 @@ [Unit] Description=Cliphist image watcher -PartOf=wayland-session.target -After=wayland-session.target +PartOf=graphical-session.target +After=graphical-session.target [Service] Type=simple @@ -10,4 +10,4 @@ ExecStart=/usr/bin/wl-paste --type image --watch cliphist store Restart=on-failure [Install] -WantedBy=wayland-session.target +WantedBy=graphical-session.target diff --git a/systemd/.config/systemd/user/cliphist-text.service b/systemd/.config/systemd/user/cliphist-text.service index a12901d13..645d7b83f 100644 --- a/systemd/.config/systemd/user/cliphist-text.service +++ b/systemd/.config/systemd/user/cliphist-text.service @@ -1,7 +1,7 @@ [Unit] Description=Cliphist text watcher -PartOf=wayland-session.target -After=wayland-session.target +PartOf=graphical-session.target +After=graphical-session.target [Service] Type=simple @@ -10,4 +10,4 @@ ExecStart=/usr/bin/wl-paste --watch cliphist store Restart=on-failure [Install] -WantedBy=wayland-session.target +WantedBy=graphical-session.target diff --git a/systemd/.config/systemd/user/default.target.wants/ydotool.service b/systemd/.config/systemd/user/default.target.wants/ydotool.service new file mode 120000 index 000000000..e3b4f6327 --- /dev/null +++ b/systemd/.config/systemd/user/default.target.wants/ydotool.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/ydotool.service \ No newline at end of file diff --git a/systemd/.config/systemd/user/gnome-keyring.service b/systemd/.config/systemd/user/gnome-keyring.service index 904a259e8..10517bd90 100644 --- a/systemd/.config/systemd/user/gnome-keyring.service +++ b/systemd/.config/systemd/user/gnome-keyring.service @@ -1,11 +1,11 @@ [Unit] Description=GNOME keyring daemon -PartOf=wayland-session.target -After=wayland-session.target +PartOf=graphical-session.target +After=graphical-session.target [Service] ExecStart=/usr/bin/gnome-keyring-daemon --components=pkcs11,secrets,ssh --start Restart=on-failure [Install] -WantedBy=wayland-session.target +WantedBy=graphical-session.target diff --git a/systemd/.config/systemd/user/graphical-session.target.wants/hyprwhspr.service b/systemd/.config/systemd/user/graphical-session.target.wants/hyprwhspr.service new file mode 120000 index 000000000..a30c8fa3a --- /dev/null +++ b/systemd/.config/systemd/user/graphical-session.target.wants/hyprwhspr.service @@ -0,0 +1 @@ +/home/fy59/.config/systemd/user/hyprwhspr.service \ No newline at end of file diff --git a/systemd/.config/systemd/user/graphical-session.target.wants/swaync.service b/systemd/.config/systemd/user/graphical-session.target.wants/swaync.service new file mode 120000 index 000000000..0026cb991 --- /dev/null +++ b/systemd/.config/systemd/user/graphical-session.target.wants/swaync.service @@ -0,0 +1 @@ +/home/fy59/.config/systemd/user/swaync.service \ No newline at end of file diff --git a/systemd/.config/systemd/user/wayland-session.target.wants/wlsunset.service b/systemd/.config/systemd/user/graphical-session.target.wants/wlsunset.service similarity index 100% rename from systemd/.config/systemd/user/wayland-session.target.wants/wlsunset.service rename to systemd/.config/systemd/user/graphical-session.target.wants/wlsunset.service diff --git a/systemd/.config/systemd/user/hyprwhspr.service b/systemd/.config/systemd/user/hyprwhspr.service new file mode 100644 index 000000000..215bfddaf --- /dev/null +++ b/systemd/.config/systemd/user/hyprwhspr.service @@ -0,0 +1,28 @@ +[Unit] +Description=hyprwhspr stt +Documentation=https://github.com/goodroot/hyprwhspr + +PartOf=graphical-session.target +After=graphical-session.target + +After=pipewire.service ydotool.service +Wants=pipewire.service +Requires=ydotool.service + +Wants=wireplumber.service +After=wireplumber.service + +[Service] +Type=simple +ExecStartPre=/bin/bash -lc 'for i in $(seq 1 60); do ls "$XDG_RUNTIME_DIR"/wayland-* >/dev/null 2>&1 && exit 0; sleep 0.25; done; echo "Wayland socket not found"; exit 1' +ExecStart=/usr/lib/hyprwhspr/bin/hyprwhspr +ExecStopPost=/bin/bash -c 'pkill -9 -f "hyprwhspr-virtual-keyboard" 2>/dev/null || true' +Environment=HYPRWHSPR_ROOT=/usr/lib/hyprwhspr +Environment=PYTHONUNBUFFERED=1 +Restart=on-failure +RestartSec=2 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=graphical-session.target diff --git a/systemd/.config/systemd/user/swaync.service b/systemd/.config/systemd/user/swaync.service index c1dc5efb1..16a47c3c7 100644 --- a/systemd/.config/systemd/user/swaync.service +++ b/systemd/.config/systemd/user/swaync.service @@ -1,11 +1,11 @@ [Unit] Description=Wayland notification daemon -PartOf=wayland-session.target -After=wayland-session.target +PartOf=graphical-session.target +After=graphical-session.target [Service] ExecStart=/usr/bin/swaync Restart=on-failure [Install] -WantedBy=wayland-session.target +WantedBy=graphical-session.target diff --git a/systemd/.config/systemd/user/wayland-session.target b/systemd/.config/systemd/user/wayland-session.target deleted file mode 100644 index eb0d69926..000000000 --- a/systemd/.config/systemd/user/wayland-session.target +++ /dev/null @@ -1,4 +0,0 @@ -[Unit] -Description=Wayland user session -Requires=basic.target -After=basic.target diff --git a/systemd/.config/systemd/user/wayland-session.target.wants/swaync.service b/systemd/.config/systemd/user/wayland-session.target.wants/swaync.service deleted file mode 120000 index e54ce98bc..000000000 --- a/systemd/.config/systemd/user/wayland-session.target.wants/swaync.service +++ /dev/null @@ -1 +0,0 @@ -../swaync.service \ No newline at end of file diff --git a/systemd/.config/systemd/user/wlsunset.service b/systemd/.config/systemd/user/wlsunset.service index b1e5ee0be..a364bdfcf 100644 --- a/systemd/.config/systemd/user/wlsunset.service +++ b/systemd/.config/systemd/user/wlsunset.service @@ -1,11 +1,11 @@ [Unit] Description=Wayland color temperature (wlsunset) -PartOf=wayland-session.target -After=wayland-session.target +PartOf=graphical-session.target +After=graphical-session.target [Service] ExecStart=/usr/bin/wlsunset -l 48.85 -L 2.35 -t 3000 -T 6500 Restart=on-failure [Install] -WantedBy=wayland-session.target +WantedBy=graphical-session.target diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc index bf9f8fe2f..6bb7f6926 100644 --- a/waybar/.config/waybar/config.jsonc +++ b/waybar/.config/waybar/config.jsonc @@ -1,6 +1,7 @@ { "modules-left": [ - "ext/workspaces" + "ext/workspaces", + "custom/hyprwhspr" ], "modules-right": [ "mpris", @@ -158,5 +159,15 @@ }, "exec-if": "which waybar-module-pacman-updates", "exec": "waybar-module-pacman-updates --no-zero-output" + }, + "custom/hyprwhspr": { + "format": "{}", + "exec": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh status", + "interval": 1, + "return-type": "json", + "exec-on-event": true, + "on-click": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh record", + "on-click-right": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh restart", + "tooltip": true } } diff --git a/waybar/.config/waybar/hyprwhspr-module.jsonc b/waybar/.config/waybar/hyprwhspr-module.jsonc new file mode 100644 index 000000000..60c0fbcbf --- /dev/null +++ b/waybar/.config/waybar/hyprwhspr-module.jsonc @@ -0,0 +1,12 @@ +{ + "custom/hyprwhspr": { + "format": "{}", + "exec": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh status", + "interval": 1, + "return-type": "json", + "exec-on-event": true, + "on-click": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh record", + "on-click-right": "/usr/lib/hyprwhspr/config/hyprland/hyprwhspr-tray.sh restart", + "tooltip": true + } +} \ No newline at end of file diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css index 01b66decb..0e2a77cb9 100644 --- a/waybar/.config/waybar/style.css +++ b/waybar/.config/waybar/style.css @@ -197,3 +197,39 @@ tooltip { tooltip label { color: @text; } + +/* hyprwhspr Waybar Styling - Waybar Compatible */ + +/* Base styles - same icon for all states, only colors change */ +#custom-hyprwhspr { + font-size: 13px; + font-weight: bold; + margin: 4px; + padding: 6px 6px; + background: alpha(@mantle, 0.88); + border: 1px solid alpha(@lavender, 0.35); + border-radius: 8px; +} + +#custom-hyprwhspr.ready { + color: inherit; +} + +#custom-hyprwhspr.recording { + color: @red; + font-family: monospace; /* Better rendering of dot characters */ + letter-spacing: 0.5px; /* Slight spacing for better dot visibility */ +} + +#custom-hyprwhspr.stopped { + color: inherit; +} + +#custom-hyprwhspr.error { + color: @peach; +} + +/* Hover effects - Waybar doesn't support filter, so we use opacity instead */ +#custom-hyprwhspr:hover { + opacity: 0.8; +} diff --git a/zsh/.zshrc b/zsh/.zshrc index 95cdce651..015774605 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -9,6 +9,7 @@ # PATH & env # ========================= export PATH="$HOME/.local/bin:$PATH" +export PATH="$HOME/.cargo/bin:$PATH" export PYENV_ROOT="$HOME/.pyenv" export HISTFILE="$HOME/.zsh_history" export HISTSIZE=10000