2 Commits

30 changed files with 152 additions and 96 deletions

View File

@@ -10,5 +10,6 @@
# Arch Todos
- Separate scripts that are used for configurations / store them somewhere
aside from `~/.local/bin`
- Separate scripts that are used for configurations / store them somewhere aside
from `~/.local/bin`
- Remove system-d stuff (don't think it's needed).

View File

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

View File

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

View File

@@ -5,7 +5,7 @@ ttyname $GPG_TTY
default-cache-ttl 60
max-cache-ttl 120
#pinentry-program /usr/bin/pinentry-curses
pinentry-program /usr/bin/pinentry-gnome3
#pinentry-program /usr/bin/pinentry-gnome3
#pinentry-program /usr/bin/pinentry-tty
#pinentry-program /usr/bin/pinentry-x11
#pinentry-program /usr/local/bin/pinentry-curses

View File

@@ -38,8 +38,8 @@ source = ~/.config/hypr/autostart.conf
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 2
gaps_out = 3
gaps_in = 3
gaps_out = 0, 5, 5, 5
border_size = 1
@@ -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.
}

View File

@@ -4,6 +4,7 @@
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Command/Windows" key as main modifier
$HYPER = ALT SHIFT WIN CTRL
###################
### MY PROGRAMS ###
@@ -32,6 +33,7 @@ bind = $mainMod, A, exec, $pwa "https://chatgpt.com"
bind = $mainMod, B, exec, $browser
bind = $mainMod SHIFT, B, exec, $browser --private-window
bind = $mainMod, C, exec, $terminal -e ~/.local/share/scripts/tmux-sessionator ~/.config
bind = $mainMod, D, exec, $pwa "https://pro.housecallpro.com/app/calendar_new"
bind = $mainMod SHIFT, D, exec, ~/.local/bin/toggle-desktop
bind = $mainMod, E, exec, $pwa "https://mail.proton.me"
bind = $mainMod SHIFT, E, exec, uwsm app -- thunderbird
@@ -39,6 +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"
# 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"
@@ -53,7 +56,6 @@ bind = $mainMod SHIFT, R, exec, ~/.local/bin/waybar-restart
# TODO: change modifier key.
#bind = $mainMod, V, togglefloating
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle
#
# Screenshots
bind = $mainMod SHIFT ALT, 4, exec, hyprshot -m region -o ~/Pictures
@@ -61,20 +63,21 @@ bind = $mainMod SHIFT ALT, 3, exec, hyprshot -m window -o ~/Pictures
bind = CTRL, F, exec, ~/.local/bin/window-toggle-floating
# hyprctl dispatch togglefloating \
# && hyprctl dispatch centerwindow
# Move focus with mainMod + arrow keys
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.
#
@@ -85,7 +88,7 @@ bind = $mainMod, MINUS, resizeactive, -20 0
bind = $mainMod SHIFT, EQUAL, resizeactive, 0 20
bind = $mainMod SHIFT, MINUS, resizeactive, 0 -20
# Switch workspaces with mainMod + [0-9]
# Switch to workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
@@ -97,6 +100,14 @@ bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move all workspaces to a monitor
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
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2

View File

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

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Moves all workspaces to the passed in monitor id, which can be useful when
# connecting or disconnecting from a monitor.
MONITOR=$1
if [ ! $# = 1 ]; then
echo "Usage: mv-all-workspaces-to-monitor <monitor-id>"
exit 1
fi
hyprctl workspaces -j |
jq '.[] | select(.monitorID != "$MONITOR") | .id' |
xargs -I{} hyprctl dispatch moveworkspacetomonitor {} "$MONITOR" >/dev/null 2>&1

6
scripts/enable-services Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
systemctl --user enable --now hyprpaper.service
systemctl --user enable --now hypridle.service
espanso service register
sudo setcap "cap_dac_override+p" $(which espanso)

View File

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

View File

@@ -0,0 +1 @@
/home/michael/.config/systemd/user/espanso.service

View File

@@ -1 +0,0 @@
/home/michael/.config/systemd/user/hypr-lid.service

View File

@@ -0,0 +1,11 @@
[Unit]
Description=espanso
[Service]
ExecStart=/usr/bin/espanso launcher
Restart=on-failure
RestartSec=3
[Install]
WantedBy=default.target

View File

@@ -108,26 +108,27 @@ set -g @offline_icon "nok"
# status left look and feel
set -g status-left-length 100
set -g status-left ""
set -ga status-left "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold]  #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}]  #S }}"
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_maroon}]  #{pane_current_command} "
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}]  #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag,  zoom ,}"
# set -ga status-left "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
# set -ga status-left "#[bg=#{@thm_bg}]#{?#{==:#{online_status},ok},#[fg=#{@thm_mauve}] 󰖩 on ,#[fg=#{@thm_red},bold]#[reverse] 󰖪 off }"
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}] 󰭦 %Y-%m-%d 󰅐 %H:%M "
# status right look and feel
set -g status-right-length 100
set -g status-right ""
set -ga status-right "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
set -ga status-right "#[bg=#{@thm_bg}]#{?#{==:#{online_status},ok},#[fg=#{@thm_mauve}] 󰖩 on ,#[fg=#{@thm_red},bold]#[reverse] 󰖪 off }"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_blue}] 󰭦 %Y-%m-%d 󰅐 %H:%M "
set -ga status-right "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold]  #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}]  #S }}"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_maroon}]  #{pane_current_command} "
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_blue}]  #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag,  zoom ,}"
# 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
@@ -162,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'

View File

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

View File

@@ -25,7 +25,7 @@
"spacing": 10,
},
"clock": {
"timezone": "America/Denver",
"timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%d - %H:%M}",
},

View File

@@ -4,6 +4,8 @@
@define-color blue #89b4fa;
@define-color red #f38ba8;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color lavender #b4befe;
* {
font-family: JetbrainsMono Nerd Font;
@@ -81,10 +83,12 @@
}
#cpu {
color: @lavender;
border-radius: 10px 0px 0px 10px;
}
#memory {
color: @peach;
margin-right: 1rem;
border-radius: 0px 10px 10px 0px;
}