ajout whisper + modif binds MangoWM

This commit is contained in:
grayTerminal-sh 2026-05-20 23:13:15 +02:00
parent aaf6fc8fdd
commit 32d124441e
34 changed files with 322 additions and 161 deletions

View file

@ -0,0 +1 @@
1779306768:success:suspend_resume

View file

@ -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é"
}

View file

@ -0,0 +1 @@
3871

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1 @@
Subproject commit d8f202f4435cf3e5e0bf735723eaacbe84c6853c

View file

@ -30,3 +30,4 @@ cursor_trail 0
shell_integration no-cursor
include kitty-themes/themes/mocha.conf

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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" },

View file

@ -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("<leader>rn", vim.lsp.buf.rename, "LSP: Rename")
map("<leader>ca", vim.lsp.buf.code_action, "LSP: Code action")
map("<leader>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", "<leader>rn", vim.lsp.buf.rename, "LSP: Rename")
map("n", "<leader>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

View file

@ -1,6 +1,5 @@
return {
"norcalli/nvim-colorizer.lua",
config = function()
require("colorizer").setup()
end,
"catgoose/nvim-colorizer.lua",
event = "BufReadPre",
opts = {},
}

View file

@ -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,
},
}

View file

@ -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" },
},
},
}

View file

@ -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,
},
},
}

View file

@ -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

View file

@ -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

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/ydotool.service

View file

@ -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

View file

@ -0,0 +1 @@
/home/fy59/.config/systemd/user/hyprwhspr.service

View file

@ -0,0 +1 @@
/home/fy59/.config/systemd/user/swaync.service

View file

@ -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

View file

@ -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

View file

@ -1,4 +0,0 @@
[Unit]
Description=Wayland user session
Requires=basic.target
After=basic.target

View file

@ -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

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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;
}

View file

@ -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