From 1e94c4181ffff3ff93264aebd1d81c8d7ead5ece Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Thu, 25 Sep 2025 19:17:15 -0400 Subject: [PATCH] feat: Adds espanso text expander and updates install packages, walker updates. --- clipse/custom_theme.json | 55 +++++++------- espanso/{espanso => }/config/default.yml | 3 +- espanso/{espanso => }/config/xcode.yml | 0 .../{espanso => }/match/_xcode_snippets.yml | 0 espanso/{espanso => }/match/base.yml | 0 espanso/{espanso => }/match/date.yml | 0 espanso/{espanso => }/match/email.yml | 0 espanso/{espanso => }/match/git.yml | 0 espanso/{espanso => }/match/housecallpro.yml | 0 espanso/{espanso => }/match/links.yml | 0 .../actually-all-emojis-spaces/README.md | 0 .../actually-all-emojis-spaces/_manifest.yml | 0 .../actually-all-emojis-spaces/_pkgsource.yml | 0 .../actually-all-emojis-spaces/package.yml | 0 espanso/{espanso => }/match/symbols.yml | 0 hypr/hyprland.conf | 4 +- hypr/keybinds.conf | 10 ++- nvim/lazynvim/lua/config/options.lua | 72 +++++++++---------- scripts/enable-services | 3 +- scripts/install-pkg-arch.sh | 9 ++- .../user/default.target.wants/espanso.service | 1 + systemd/user/espanso.service | 11 +++ tmux/tmux.conf | 6 +- walker/config.toml | 2 +- 24 files changed, 100 insertions(+), 76 deletions(-) rename espanso/{espanso => }/config/default.yml (98%) rename espanso/{espanso => }/config/xcode.yml (100%) rename espanso/{espanso => }/match/_xcode_snippets.yml (100%) rename espanso/{espanso => }/match/base.yml (100%) rename espanso/{espanso => }/match/date.yml (100%) rename espanso/{espanso => }/match/email.yml (100%) rename espanso/{espanso => }/match/git.yml (100%) rename espanso/{espanso => }/match/housecallpro.yml (100%) rename espanso/{espanso => }/match/links.yml (100%) rename espanso/{espanso => }/match/packages/actually-all-emojis-spaces/README.md (100%) rename espanso/{espanso => }/match/packages/actually-all-emojis-spaces/_manifest.yml (100%) rename espanso/{espanso => }/match/packages/actually-all-emojis-spaces/_pkgsource.yml (100%) rename espanso/{espanso => }/match/packages/actually-all-emojis-spaces/package.yml (100%) rename espanso/{espanso => }/match/symbols.yml (100%) create mode 120000 systemd/user/default.target.wants/espanso.service create mode 100644 systemd/user/espanso.service diff --git a/clipse/custom_theme.json b/clipse/custom_theme.json index 3759206..5215a49 100644 --- a/clipse/custom_theme.json +++ b/clipse/custom_theme.json @@ -1,28 +1,29 @@ { - "useCustomTheme": false, - "TitleFore": "#ffffff", - "TitleBack": "#6F4CBC", - "TitleInfo": "#3498db", - "NormalTitle": "#ffffff", - "DimmedTitle": "#808080", - "SelectedTitle": "#FF69B4", - "NormalDesc": "#808080", - "DimmedDesc": "#808080", - "SelectedDesc": "#FF69B4", - "StatusMsg": "#2ecc71", - "PinIndicatorColor": "#FFD700", - "SelectedBorder": "#3498db", - "SelectedDescBorder": "#3498db", - "FilteredMatch": "#ffffff", - "FilterPrompt": "#2ecc71", - "FilterInfo": "#3498db", - "FilterText": "#ffffff", - "FilterCursor": "#FFD700", - "HelpKey": "#999999", - "HelpDesc": "#808080", - "PageActiveDot": "#3498db", - "PageInactiveDot": "#808080", - "DividerDot": "#3498db", - "PreviewedText": "#ffffff", - "PreviewBorder": "#3498db" -} \ No newline at end of file + "useCustomTheme": true, + "TitleFore": "#6F4CBC", + "TitleBack": "#1e1e2e", + "TitleInfo": "#3498db", + "NormalTitle": "#ffffff", + "DimmedTitle": "#808080", + "SelectedTitle": "#FF69B4", + "NormalDesc": "#808080", + "DimmedDesc": "#808080", + "SelectedDesc": "#FF69B4", + "StatusMsg": "#2ecc71", + "PinIndicatorColor": "#FFD700", + "SelectedBorder": "#3498db", + "SelectedDescBorder": "#3498db", + "FilteredMatch": "#ffffff", + "FilterPrompt": "#2ecc71", + "FilterInfo": "#3498db", + "FilterText": "#ffffff", + "FilterCursor": "#FFD700", + "HelpKey": "#999999", + "HelpDesc": "#808080", + "PageActiveDot": "#3498db", + "PageInactiveDot": "#808080", + "DividerDot": "#3498db", + "PreviewedText": "#ffffff", + "PreviewBorder": "#3498db" +} + diff --git a/espanso/espanso/config/default.yml b/espanso/config/default.yml similarity index 98% rename from espanso/espanso/config/default.yml rename to espanso/config/default.yml index 9f39dfc..a8a4c69 100644 --- a/espanso/espanso/config/default.yml +++ b/espanso/config/default.yml @@ -29,8 +29,7 @@ # --- Auto-restart # Enable/disable the config auto-reload after a file change is detected. -# auto_restart: false - +auto_restart: true # --- Clipboard threshold # Because injecting long texts char-by-char is a slow operation, espanso automatically diff --git a/espanso/espanso/config/xcode.yml b/espanso/config/xcode.yml similarity index 100% rename from espanso/espanso/config/xcode.yml rename to espanso/config/xcode.yml diff --git a/espanso/espanso/match/_xcode_snippets.yml b/espanso/match/_xcode_snippets.yml similarity index 100% rename from espanso/espanso/match/_xcode_snippets.yml rename to espanso/match/_xcode_snippets.yml diff --git a/espanso/espanso/match/base.yml b/espanso/match/base.yml similarity index 100% rename from espanso/espanso/match/base.yml rename to espanso/match/base.yml diff --git a/espanso/espanso/match/date.yml b/espanso/match/date.yml similarity index 100% rename from espanso/espanso/match/date.yml rename to espanso/match/date.yml diff --git a/espanso/espanso/match/email.yml b/espanso/match/email.yml similarity index 100% rename from espanso/espanso/match/email.yml rename to espanso/match/email.yml diff --git a/espanso/espanso/match/git.yml b/espanso/match/git.yml similarity index 100% rename from espanso/espanso/match/git.yml rename to espanso/match/git.yml diff --git a/espanso/espanso/match/housecallpro.yml b/espanso/match/housecallpro.yml similarity index 100% rename from espanso/espanso/match/housecallpro.yml rename to espanso/match/housecallpro.yml diff --git a/espanso/espanso/match/links.yml b/espanso/match/links.yml similarity index 100% rename from espanso/espanso/match/links.yml rename to espanso/match/links.yml diff --git a/espanso/espanso/match/packages/actually-all-emojis-spaces/README.md b/espanso/match/packages/actually-all-emojis-spaces/README.md similarity index 100% rename from espanso/espanso/match/packages/actually-all-emojis-spaces/README.md rename to espanso/match/packages/actually-all-emojis-spaces/README.md diff --git a/espanso/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml b/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml similarity index 100% rename from espanso/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml rename to espanso/match/packages/actually-all-emojis-spaces/_manifest.yml diff --git a/espanso/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml b/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml similarity index 100% rename from espanso/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml rename to espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml diff --git a/espanso/espanso/match/packages/actually-all-emojis-spaces/package.yml b/espanso/match/packages/actually-all-emojis-spaces/package.yml similarity index 100% rename from espanso/espanso/match/packages/actually-all-emojis-spaces/package.yml rename to espanso/match/packages/actually-all-emojis-spaces/package.yml diff --git a/espanso/espanso/match/symbols.yml b/espanso/match/symbols.yml similarity index 100% rename from espanso/espanso/match/symbols.yml rename to espanso/match/symbols.yml diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index a4db6d1..fae8500 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -53,7 +53,7 @@ general { # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false - layout = dwindle # or master + layout = master # dwindle or master } # https://wiki.hyprland.org/Configuring/Variables/#decoration @@ -125,7 +125,7 @@ dwindle { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { - new_status = master + new_status = slave mfact = 0.50 # Set master window to be 50% orientation = left # set master to be on the right. } diff --git a/hypr/keybinds.conf b/hypr/keybinds.conf index 8073efd..67c670d 100644 --- a/hypr/keybinds.conf +++ b/hypr/keybinds.conf @@ -41,7 +41,7 @@ bind = $mainMod, F, exec, $fileManager #bind = $mainMod, K, exec, $launch Komodo bind = $mainMod SHIFT, F, exec, $fileBrowser bind = $mainMod, G, exec, $pwa "https://git.housh.dev" -bind = $mainMod, J, togglesplit, # dwindle +# NOTE: Do not bind apps to H, J, K, or L! bind = $mainMod, M, exec, ~/.local/bin/toggle-waybar bind = $mainMod, N, exec, $terminal -e nvim bind = $mainMod, P, exec, $pwa "https://pass.proton.me" @@ -68,12 +68,16 @@ bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d + # Move windows with mainMod + Shift bind = $mainMod SHIFT, H, movewindow, l +#bind = $mainMod SHIFT, H, swapsplit bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod SHIFT, K, movewindow, u bind = $mainMod SHIFT, J, movewindow, d +bind = $HYPER, J, togglesplit # dwindle + # FIX: Changes size of window, this works a different depending on if # the window is on the right or left of the screen. # @@ -101,8 +105,8 @@ bind = $HYPER, 0, exec, ~/.local/bin/mv-all-workspaces-to-monitor 0 bind = $HYPER, 1, exec, ~/.local/bin/mv-all-workspaces-to-monitor 1 # Move current workspace. -bind = $HYPER, H, movecurrentworkspacetomonitor, 1 -bind = $HYPER, L, movecurrentworkspacetomonitor, 0 +# bind = $HYPER, H, movecurrentworkspacetomonitor, 1 +# bind = $HYPER, L, movecurrentworkspacetomonitor, 0 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 diff --git a/nvim/lazynvim/lua/config/options.lua b/nvim/lazynvim/lua/config/options.lua index 06f384c..f144dbb 100644 --- a/nvim/lazynvim/lua/config/options.lua +++ b/nvim/lazynvim/lua/config/options.lua @@ -8,41 +8,41 @@ local fn = vim.fn vim.cmd.set("inccommand=split") o.filetype = "on" -o.updatetime = 500 -- faster completion -o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds) -o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete -o.backup = false -- creates a backup file -o.swapfile = false -- enable/disable swap file creation -o.dir = fn.stdpath("data") .. "/swp" -- swap file directory -o.undofile = false -- enable/disable undo file creation +o.updatetime = 500 -- faster completion +o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds) +o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete +o.backup = false -- creates a backup file +o.swapfile = false -- enable/disable swap file creation +o.dir = fn.stdpath("data") .. "/swp" -- swap file directory +o.undofile = false -- enable/disable undo file creation o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory -o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered. -o.hidden = true -- required to keep multiple buffers and open multiple buffers -o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard -o.fileencoding = "utf-8" -- the encoding written to a file -o.conceallevel = 0 -- so that `` is visible in markdown files -o.number = true -- set numbered lines -o.relativenumber = true -- set relative numbered lines -o.cmdheight = 1 -- space for displaying messages/commands -o.showmode = false -- we don't need to see things like -- INSERT -- anymore -o.showtabline = 2 -- always show tabs -o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always) -o.smartcase = true -- smart case -o.smartindent = true -- make indenting smarter again -o.splitbelow = true -- force all horizontal splits to go below current window -o.splitright = true -- force all vertical splits to go to the right of current window -o.autoindent = true -- turn on auto indent. -o.expandtab = true -- convert tabs to spaces -o.smarttab = true -- turn on smart tab -o.shiftwidth = 2 -- the number of spaces inserted for each indentation -o.tabstop = 2 -- how many columns a tab counts for -o.termguicolors = true -- set term gui colors (most terminals support this) -o.cursorline = true -- highlight the current line -o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor -o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally -o.hlsearch = false -- highlight all matches on previous search pattern -o.ignorecase = true -- ignore case in search patterns -o.foldenable = false -- disable folding; enable with zi +o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered. +o.hidden = true -- required to keep multiple buffers and open multiple buffers +--o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard +o.fileencoding = "utf-8" -- the encoding written to a file +o.conceallevel = 0 -- so that `` is visible in markdown files +o.number = true -- set numbered lines +o.relativenumber = true -- set relative numbered lines +o.cmdheight = 1 -- space for displaying messages/commands +o.showmode = false -- we don't need to see things like -- INSERT -- anymore +o.showtabline = 2 -- always show tabs +o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always) +o.smartcase = true -- smart case +o.smartindent = true -- make indenting smarter again +o.splitbelow = true -- force all horizontal splits to go below current window +o.splitright = true -- force all vertical splits to go to the right of current window +o.autoindent = true -- turn on auto indent. +o.expandtab = true -- convert tabs to spaces +o.smarttab = true -- turn on smart tab +o.shiftwidth = 2 -- the number of spaces inserted for each indentation +o.tabstop = 2 -- how many columns a tab counts for +o.termguicolors = true -- set term gui colors (most terminals support this) +o.cursorline = true -- highlight the current line +o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor +o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally +o.hlsearch = false -- highlight all matches on previous search pattern +o.ignorecase = true -- ignore case in search patterns +o.foldenable = false -- disable folding; enable with zi o.foldmethod = "expr" o.foldexpr = "nvim_treesitter#foldexpr()" vim.cmd.set("nolist") -- don't show listchars. @@ -51,10 +51,10 @@ o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣" o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages wo.colorcolumn = "99999" o.wildmode = "full" -o.lazyredraw = false -- do not redraw screen while running macros +o.lazyredraw = false -- do not redraw screen while running macros o.grepprg = "rg --hidden --vimgrep --smart-case --" o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion -o.wildignorecase = true -- When set case is ignored when completing file names and directories +o.wildignorecase = true -- When set case is ignored when completing file names and directories o.wildignore = [[ .git,.hg,.svn *.aux,*.out,*.toc diff --git a/scripts/enable-services b/scripts/enable-services index b1cea29..a57b14d 100755 --- a/scripts/enable-services +++ b/scripts/enable-services @@ -2,4 +2,5 @@ systemctl --user enable --now hyprpaper.service systemctl --user enable --now hypridle.service - +espanso service register +sudo setcap "cap_dac_override+p" $(which espanso) diff --git a/scripts/install-pkg-arch.sh b/scripts/install-pkg-arch.sh index 39efc33..8e341c2 100755 --- a/scripts/install-pkg-arch.sh +++ b/scripts/install-pkg-arch.sh @@ -52,7 +52,11 @@ yay -S --noconfirm \ ttf-inconsolata-nerd # Application launcher -yay -S --noconfirm walker elephant +yay -S --noconfirm walker \ + elephant \ + elephant-calc \ + elephant-symbols \ + elephant-websearch # Bluetooth management yay -S --noconfirm blueberry-wayland @@ -75,3 +79,6 @@ yay -S --noconfirm yazi nautilus # Email yay -S --noconfirm thunderbird + +# Text expander +yay -S --noconfirm espanso-wayland-git diff --git a/systemd/user/default.target.wants/espanso.service b/systemd/user/default.target.wants/espanso.service new file mode 120000 index 0000000..f839101 --- /dev/null +++ b/systemd/user/default.target.wants/espanso.service @@ -0,0 +1 @@ +/home/michael/.config/systemd/user/espanso.service \ No newline at end of file diff --git a/systemd/user/espanso.service b/systemd/user/espanso.service new file mode 100644 index 0000000..6c30d4a --- /dev/null +++ b/systemd/user/espanso.service @@ -0,0 +1,11 @@ +[Unit] +Description=espanso + +[Service] +ExecStart=/usr/bin/espanso launcher +Restart=on-failure +RestartSec=3 + +[Install] +WantedBy=default.target + diff --git a/tmux/tmux.conf b/tmux/tmux.conf index 5cb52b5..b0d63be 100755 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -127,8 +127,8 @@ set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag, # bootstrap tpm -if "test ! -d ~/.tmux/plugins/tpm" \ - "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" +if "test ! -d ~/.config/tmux/plugins/tpm" \ + "run 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm && ~/.config/tmux/plugins/tpm/bin/install_plugins'" # Configure Tmux set -g status-position top @@ -163,4 +163,4 @@ set -g window-status-current-format " #I#{?#{!=:#{window_name},Window},: #W,} " set -g window-status-current-style "bg=#{@thm_peach},fg=#{@thm_bg},bold" # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) -run '~/.tmux/plugins/tpm/tpm' +run '~/.config/tmux/plugins/tpm/tpm' diff --git a/walker/config.toml b/walker/config.toml index 364284c..b73d2fc 100644 --- a/walker/config.toml +++ b/walker/config.toml @@ -1,4 +1,4 @@ -force_keyboard_focus = false # forces keyboard forcus to stay in Walker +force_keyboard_focus = true # forces keyboard forcus to stay in Walker close_when_open = true # close walker when invoking while already opened selection_wrap = false # wrap list if at bottom or top global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config