Compare commits
31
Commits
a0ad6fa930
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6eb9d01a65 | ||
|
|
f181f39145 | ||
|
|
0b70337bbd | ||
|
|
8756ad8857 | ||
|
|
1e4d26364a | ||
|
|
e82d86fa8f | ||
|
|
03abb54797 | ||
|
|
93672442f9 | ||
|
|
4380be3108 | ||
|
|
0ce884dfee | ||
|
|
a83a1c170b | ||
|
|
b304d302a7 | ||
|
|
292bb58b18 | ||
|
|
e73d3acc39 | ||
|
|
5b31d14829 | ||
|
|
4197230886 | ||
|
|
0e203b188d | ||
|
|
ecf01dad51 | ||
|
|
7902fe531e | ||
|
|
bb9f74b7cf | ||
|
|
10cfce1731 | ||
|
|
401220f3b5 | ||
|
|
3cf0f65164 | ||
|
|
e960f71340 | ||
|
|
6301e15e57 | ||
|
|
ccb95c439a | ||
|
|
2249d5c3e8 | ||
|
|
c1f57dd476 | ||
|
|
aa66340875 | ||
|
|
c2b4707b0a | ||
|
|
4b494eb433 |
+4
-2
@@ -5,6 +5,8 @@ alias wtr="wt remove @"
|
||||
alias ll="eza -l -g --icons"
|
||||
alias ls="eza -al --color=always --group-directories-first"
|
||||
alias g="git"
|
||||
alias neogit="nvim +Neogit"
|
||||
alias ngit="nvim +Neogit"
|
||||
alias zdiff="nvim +Zdiff"
|
||||
alias review="nvim '+Zdiff origin/HEAD'"
|
||||
alias review="nvim +'Zdiff origin/HEAD'"
|
||||
alias wm="workmux"
|
||||
alias wmd="workmux dashboard"
|
||||
|
||||
+20
-11
@@ -11,30 +11,39 @@ append_path "$HOME/.local/bin"
|
||||
append_path "$HOME/.cargo/bin"
|
||||
|
||||
export PATH
|
||||
if [ -x $(command -v bat) ]; then
|
||||
export PAGER="bat"
|
||||
fi
|
||||
|
||||
if [ test -x $(command -v mise) ]; then
|
||||
if [ -x $(command -v mise) ]; then
|
||||
eval "$(mise activate bash)"
|
||||
fi
|
||||
|
||||
if [ test -x $(command -v zoxide) ]; then
|
||||
if [ -x $(command -v zoxide) ]; then
|
||||
eval "$(zoxide init bash)"
|
||||
fi
|
||||
|
||||
if [ test -x $(command -v fzf) ]; then
|
||||
if [ -x $(command -v fzf) ]; then
|
||||
eval "$(fzf --bash)"
|
||||
fi
|
||||
|
||||
if [ -z "$SSH_CONNECTION" ]; then
|
||||
export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
|
||||
fi
|
||||
if [ -x $(command -v wt) ]; then
|
||||
eval "$(command wt config shell init bash)";
|
||||
fi
|
||||
|
||||
# Create a predictable symlink pointing to the current SSH auth socket
|
||||
auth_sock="$HOME/.ssh/ssh_auth_sock"
|
||||
if [ -n "$SSH_AUTH_SOCK" ] && [ "$SSH_AUTH_SOCK" != "$auth_sock" ]; then
|
||||
mkdir -p "$HOME/.ssh"
|
||||
ln -sf "$SSH_AUTH_SOCK" "$auth_sock"
|
||||
if [ -n "$SSH_CONNECTION" ]; then
|
||||
# Create a predictable symlink pointing to the current SSH auth socket
|
||||
auth_sock="$HOME/.ssh/ssh_auth_sock"
|
||||
if [ -n "$SSH_AUTH_SOCK" ] && [ "$SSH_AUTH_SOCK" != "$auth_sock" ]; then
|
||||
mkdir -p "$HOME/.ssh" && ln -snf "$SSH_AUTH_SOCK" "$auth_sock"
|
||||
fi
|
||||
else
|
||||
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
||||
fi
|
||||
|
||||
for _f in "$HOME"/.config/herdr/plugins/github/herdr-automatic-rename-*/shell/hook.bash; do
|
||||
[ -r "$_f" ] && { source "$_f"; break; }
|
||||
done
|
||||
|
||||
[[ -f ~/.bash_aliases ]] && . ~/.bash_aliases
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
# Create a predictable symlink to the current SSH auth socket.
|
||||
# tmux forces SSH_AUTH_SOCK to ~/.ssh/ssh_auth_sock globally
|
||||
# (see config/tmux/tmux.conf), so this symlink must exist for every
|
||||
# interactive shell -- not just bash login shells.
|
||||
#
|
||||
# For herdr (which lacks tmux's setenv -g): if we inherit a real
|
||||
# SSH_AUTH_SOCK, update the symlink. Then always export the symlink
|
||||
# path so new panes that didn't inherit the env still pick it up.
|
||||
set -l auth_sock "$HOME/.ssh/ssh_auth_sock"
|
||||
|
||||
# If we have a real socket (not the symlink), refresh the symlink
|
||||
if set -q SSH_AUTH_SOCK; and test "$SSH_AUTH_SOCK" != "$auth_sock"; and test -S "$SSH_AUTH_SOCK"
|
||||
mkdir -p "$HOME/.ssh"
|
||||
ln -sf "$SSH_AUTH_SOCK" "$auth_sock"
|
||||
end
|
||||
|
||||
# Always export the symlink path if it points to a live socket
|
||||
if test -S "$auth_sock"
|
||||
set -gx SSH_AUTH_SOCK "$auth_sock"
|
||||
end
|
||||
@@ -39,6 +39,9 @@ detach = "prefix+d"
|
||||
zoom = "prefix+z"
|
||||
copy_mode = "prefix+["
|
||||
last_pane = "prefix+;"
|
||||
focus_agent = "prefix+alt+1..9"
|
||||
switch_workspace = "prefix+shift+1..9"
|
||||
|
||||
|
||||
[remote]
|
||||
manage_ssh_config = true
|
||||
|
||||
@@ -1,542 +0,0 @@
|
||||
local terminal = "foot"
|
||||
local browser = "gtk-launch firefox.desktop"
|
||||
local webapp = "chromium --new-window --ozone-platform=wayland --app="
|
||||
local music = "gtk-launch spotify.desktop"
|
||||
|
||||
local HYPR = "SUPER + CONTROL + SHIFT + ALT + "
|
||||
|
||||
require("sjb/monitors")
|
||||
require("sjb/functions")
|
||||
require("sjb/rules")
|
||||
require("sjb/envs")
|
||||
require("sjb/autostart")
|
||||
require("theme")
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = ",qwerty",
|
||||
-- kb_model =
|
||||
-- kb_options = ctrl:nocaps
|
||||
kb_options = "caps:ctrl_modifier,compose:ralt",
|
||||
-- kb_options = compose:ralt
|
||||
follow_mouse = 1,
|
||||
repeat_rate = 40,
|
||||
repeat_delay = 600,
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
disable_while_typing = true,
|
||||
clickfinger_behavior = true,
|
||||
scroll_factor = 0.7,
|
||||
},
|
||||
scroll_method = "2fg",
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
},
|
||||
|
||||
ecosystem = {
|
||||
no_update_news = true,
|
||||
enforce_permissions = false,
|
||||
},
|
||||
|
||||
general = {
|
||||
gaps_in = 3,
|
||||
gaps_out = 3,
|
||||
border_size = 2,
|
||||
allow_tearing = true,
|
||||
snap = {
|
||||
enabled = true
|
||||
},
|
||||
col = {
|
||||
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
layout = "master"
|
||||
},
|
||||
|
||||
master = {
|
||||
allow_small_split = true,
|
||||
mfact = 0.50,
|
||||
new_status = "master",
|
||||
orientation = "center",
|
||||
},
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true,
|
||||
force_split = 2,
|
||||
},
|
||||
|
||||
scrolling = {
|
||||
focus_fit_method = 0,
|
||||
column_width = 0.49,
|
||||
fullscreen_on_one_column = true
|
||||
},
|
||||
|
||||
cursor = {
|
||||
hide_on_key_press = true,
|
||||
warp_on_change_workspace = 1,
|
||||
},
|
||||
|
||||
binds = {
|
||||
hide_special_on_workspace_change = true,
|
||||
},
|
||||
decoration = {
|
||||
rounding = 1,
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 0.95,
|
||||
dim_inactive = true,
|
||||
dim_special = 0.0,
|
||||
dim_strength = 0.3,
|
||||
|
||||
shadow = {
|
||||
enabled = false,
|
||||
range = 2,
|
||||
render_power = 3,
|
||||
color = "rgba(1a1a1aee)",
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = false,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
group = {
|
||||
groupbar = {
|
||||
enabled = false
|
||||
}
|
||||
},
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true,
|
||||
disable_splash_rendering = true,
|
||||
disable_scale_notification = true,
|
||||
focus_on_activate = true,
|
||||
anr_missed_pings = 3,
|
||||
on_focus_under_fullscreen = 1,
|
||||
mouse_move_enables_dpms = true,
|
||||
animate_manual_resizes = true,
|
||||
mouse_move_focuses_monitor = true,
|
||||
enable_swallow = true,
|
||||
enable_anr_dialog = false,
|
||||
force_default_wallpaper = true,
|
||||
initial_workspace_tracking = 0,
|
||||
allow_session_lock_restore = true,
|
||||
},
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
}
|
||||
})
|
||||
|
||||
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
|
||||
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||
hl.curve("generic", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.08 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1.0 } } })
|
||||
hl.curve("overshoot", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.1 } } })
|
||||
hl.curve("rubber", { type = "spring", mass = 1, stiffness = 70, dampening = 10 })
|
||||
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 3.79, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "fadeSwitch", enabled = false })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 0.5, bezier = "quick" })
|
||||
|
||||
hl.animation({ leaf = "specialWorkspaceIn", enabled = true, speed = 3, bezier = "easeOutQuint", style = "slide top" })
|
||||
hl.animation({ leaf = "specialWorkspaceOut", enabled = true, speed = 2, bezier = "easeInOutCubic", style = "slide bottom" })
|
||||
|
||||
-- Keybindings
|
||||
|
||||
hl.bind("SUPER + SHIFT + return", hl.dsp.exec_cmd("gtk-launch herdr.desktop"), { description = "Open herdr terminal" })
|
||||
hl.bind("SUPER + return", hl.dsp.exec_cmd("gtk-launch tmux.desktop"), { description = "Open tmux terminal" })
|
||||
hl.bind("SUPER + N", hl.dsp.exec_cmd(terminal .. " -a quicknotes -e nvim +'Obsidian today'"),
|
||||
{ description = "Open Obsidian today in a centered floating window" })
|
||||
|
||||
hl.bind("SUPER + B", hl.dsp.exec_raw(browser), { description = "Open browser" })
|
||||
hl.bind("SUPER + I", sysinfo, { description = "Show system info" })
|
||||
|
||||
hl.bind("SUPER + CONTROL + X", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
|
||||
hl.bind("F9", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
|
||||
|
||||
hl.bind(
|
||||
"SUPER + Y",
|
||||
toggle_master_scrolling,
|
||||
{ description = "Layout: Toggle master/scrolling" }
|
||||
)
|
||||
|
||||
-- Open rofi on first press, closes it on second
|
||||
hl.bind("SUPER + Space", hl.dsp.exec_raw("rofi -show combi --modes combi"),
|
||||
{ release = true, description = "Open Application Menu" })
|
||||
hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("~/.local/bin/hyprland-fetch-client"),
|
||||
{ release = true, description = "Fetch client" })
|
||||
hl.bind("SUPER + CONTROL + SPACE",
|
||||
hl.dsp.exec_cmd("~/.local/bin/hyprland-focus-client"),
|
||||
{ release = true, description = "Focus client" }
|
||||
)
|
||||
hl.bind("SUPER + slash",
|
||||
hl.dsp.exec_cmd("ROFI_PASS_BACKEND=wtype ROFI_PASS_CLIPBOARD_BACKEND=wl-clipboard ~/.local/bin/rofi-pass"),
|
||||
{ release = true, description = "Open rofi-pass" })
|
||||
|
||||
hl.bind("Print",
|
||||
hl.dsp.exec_cmd("hyprshot -m window -o ~/Pictures/ -- tensaku-edit"),
|
||||
{ description = "Take screenshot" })
|
||||
|
||||
hl.bind("SHIFT + PRINT",
|
||||
hl.dsp.exec_cmd("hyprshot -m region -o ~/Pictures/ -- tensaku-edit"),
|
||||
{ description = "Take screenshot" })
|
||||
|
||||
hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { description = "Pick color" })
|
||||
hl.bind("SUPER + CONTROL + PRINT",
|
||||
hl.dsp.exec_cmd("hyprshot -m region --raw -z | /usr/bin/tesseract stdin stdout --oem 1 --psm 6 -l eng | wl-copy"),
|
||||
{ description = "Extract text (OCR) from screenshot" })
|
||||
|
||||
hl.bind("SUPER + ALT + Print",
|
||||
hl.dsp.exec_cmd("~/.local/bin/screen-recorder -o ~/Videos/$(date +'%Y-%m-%d_%H%M%S')_recording.mp4"),
|
||||
{ description = "Start/Stop screen recording" })
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + Print",
|
||||
hl.dsp.exec_cmd("~/.local/bin/screen-recorder stop"),
|
||||
{ description = "Stop screen recording" })
|
||||
|
||||
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ repeating = true, description = "Volume down" })
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ repeating = true, description = "Volume up" })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { description = "Toggle mute" })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ description = "Toggle mic mute" })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"),
|
||||
{ repeating = true, description = "Brightness up" })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"),
|
||||
{ repeating = true, description = "Brightness down" })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { description = "Play/pause media" })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { description = "Previous media" })
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" })
|
||||
|
||||
hl.bind("SUPER + Y", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss notifications" })
|
||||
|
||||
|
||||
hl.bind("SUPER + W", hl.dsp.window.close(), { description = "Window: Close" })
|
||||
hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }),
|
||||
{ description = "Window: Toggle fullscreen" })
|
||||
hl.bind("SUPER + CONTROL + F", hl.dsp.window.fullscreen_state({ internal = 2, client = 0, action = "toggle" }),
|
||||
{ description = "Window: Toggle fullscreen state 2" })
|
||||
hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen_state({ internal = 0, client = 2, action = "toggle" }),
|
||||
{ description = "Window: Toggle fullscreen state 2" })
|
||||
|
||||
hl.bind("SUPER + T", toggle_float_with_limit,
|
||||
{ description = "Window: Toggle floating/tiling (max 80%)" })
|
||||
|
||||
-- hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Window: Toggle pseudo tiling" })
|
||||
hl.bind("SUPER + P", toggle_pin, { description = "Window: Toggle Pin" })
|
||||
|
||||
hl.bind("SUPER + A", hl.dsp.window.alter_zorder({ mode = "top" }), { description = "Window: Move to top" })
|
||||
|
||||
hl.bind("SUPER + left", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
|
||||
hl.bind("SUPER + right", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
|
||||
hl.bind("SUPER + up", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
|
||||
hl.bind("SUPER + down", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" })
|
||||
|
||||
hl.bind("SUPER + H", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
|
||||
hl.bind("SUPER + L", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
|
||||
hl.bind("SUPER + K", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
|
||||
hl.bind("SUPER + J", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" }) -- hl.bind("SUPER + H", hl.dsp.window.resize("left"), { repeating = true, description = "Window: Resize left" })
|
||||
|
||||
-- hl.bind("SUPER + z", hl.dsp.focus({ last = true }), { description = "Window: Focus last" })
|
||||
hl.bind("SUPER + Z", hl.dsp.focus({ urgent_or_last = true }), { description = "Window: Focus last" })
|
||||
|
||||
hl.bind("SUPER + ALT + period", function()
|
||||
hl.dispatch(hl.dsp.layout("cycleprev"))
|
||||
end, { description = "Window: Swap with next" })
|
||||
hl.bind("SUPER + ALT + comma", function()
|
||||
hl.dispatch(hl.dsp.layout("cyclenext"))
|
||||
end, { description = "Window: Swap with prev" })
|
||||
|
||||
hl.bind("ALT + Tab", cycle_next_window({ next = true }), { description = "Window: Cycle next" })
|
||||
hl.bind("ALT + SHIFT + Tab", cycle_next_window({ next = false }), { description = "Window: Cycle prev" })
|
||||
|
||||
-- hl.bind("ALT + TAB", hl.dsp.window.cycle_next(), { description = "Focus on next window" })
|
||||
-- hl.bind("ALT + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }), { description = "Focus on previous window" })
|
||||
-- hl.bind("ALT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
|
||||
-- hl.bind("ALT + SHIFT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" })
|
||||
|
||||
hl.bind("CONTROL + ALT + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Focus on next monitor" })
|
||||
hl.bind("CONTROL + ALT + SHIFT + TAB", hl.dsp.focus({ monitor = "-1" }), { description = "Focus on previous monitor" })
|
||||
|
||||
hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
|
||||
hl.bind("SUPER + ALT + S", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }),
|
||||
{ description = "Move window to scratchpad" })
|
||||
hl.bind("SUPER + grave", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
|
||||
hl.bind("SUPER + SHIFT + grave", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }),
|
||||
{ description = "Move window to scratchpad" })
|
||||
|
||||
-- hl.bind("SUPER + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Monitor: move focus to next monitor" })
|
||||
hl.bind("SUPER + TAB", hl.dsp.focus({ workspace = "e+1" }), { description = "Next workspace" })
|
||||
hl.bind("SUPER + SHIFT + TAB", hl.dsp.focus({ workspace = "e-1" }), { description = "Previous workspace" })
|
||||
hl.bind("SUPER + CONTROL + TAB", hl.dsp.focus({ workspace = "previous" }), { description = "Former workspace" })
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + LEFT", hl.dsp.workspace.move({ monitor = "l" }),
|
||||
{ description = "Move workspace to left monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + RIGHT", hl.dsp.workspace.move({ monitor = "r" }),
|
||||
{ description = "Move workspace to right monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + UP", hl.dsp.workspace.move({ monitor = "u" }),
|
||||
{ description = "Move workspace to up monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + DOWN", hl.dsp.workspace.move({ monitor = "d" }),
|
||||
{ description = "Move workspace to down monitor" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + LEFT", hl.dsp.window.swap({ direction = "l" }), { description = "Swap window to the left" })
|
||||
hl.bind("SUPER + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "r" }), { description = "Swap window to the right" })
|
||||
hl.bind("SUPER + SHIFT + UP", hl.dsp.window.swap({ direction = "u" }), { description = "Swap window up" })
|
||||
hl.bind("SUPER + SHIFT + DOWN", hl.dsp.window.swap({ direction = "d" }), { description = "Swap window down" })
|
||||
|
||||
hl.bind("SUPER + ALT + Tab", hl.dsp.focus({ workspace = "next", on_current_monitor = true }),
|
||||
{ description = "Window: Focus previous in workspace" })
|
||||
hl.bind("SUPER + ALT + SHIFT + Tab", hl.dsp.focus({ workspace = "previous", on_current_monitor = true }),
|
||||
{ description = "Window: Focus previous in workspace" })
|
||||
|
||||
-- arrange split ratio
|
||||
hl.bind("SUPER + X", toggle_master, { description = "Layout: Toggle master size" })
|
||||
-- hl.bind("SUPER + equal", hl.dsp.layout("mfact exact 0.5"))
|
||||
hl.bind("SUPER + M", function()
|
||||
local current_layout = hl.get_config("general.layout")
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("consume_or_expel next"))
|
||||
end
|
||||
end, { description = "Layout: Swap with master" })
|
||||
|
||||
-- hl.bind("SUPER + M", hl.dsp.layout("rollnext"))
|
||||
hl.bind("SUPER + period", function()
|
||||
local current_layout = hl.get_config("general.layout")
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("cycleprev"))
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("swapcol r"))
|
||||
hl.dispatch(hl.dsp.layout("focus l"))
|
||||
end
|
||||
-- hl.dispatch(hl.dsp.layout("focus r"))
|
||||
end, { description = "Layout: Cycle next" })
|
||||
|
||||
hl.bind("SUPER + comma", function()
|
||||
local current_layout = hl.get_config("general.layout")
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("cyclenext"))
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("swapcol l"))
|
||||
hl.dispatch(hl.dsp.layout("focus r"))
|
||||
end
|
||||
-- hl.dispatch(hl.dsp.layout("focus l"))
|
||||
end, { description = "Layout: Cycle previous" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + comma", hl.dsp.window.move({ workspace = "-1" }),
|
||||
{ description = "Window: Move to previous workspace" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + period", hl.dsp.window.move({ workspace = "+1" }),
|
||||
{ description = "Window: Move to next workspace" })
|
||||
|
||||
hl.bind("SUPER + ALT + comma", hl.dsp.workspace.move({ monitor = "-1" }),
|
||||
{ description = "Window: Move to previous workspace and follow" })
|
||||
|
||||
hl.bind("SUPER + ALT + period", hl.dsp.workspace.move({ monitor = "+1" }),
|
||||
{ description = "Window: Move to next workspace and follow" })
|
||||
|
||||
hl.bind("SUPER + C", hl.dsp.window.center(), { description = "Window: Center" })
|
||||
|
||||
hl.bind("SUPER + CONTROL + SHIFT + slash",
|
||||
hl.dsp.exec_cmd("makoctl mode -t do-not-disturb"),
|
||||
{ description = "Toggle do-not-disturb" })
|
||||
|
||||
hl.bind("SUPER + CONTROL + Delete", hl.dsp.exec_cmd("hyprland-toggle-monitor eDP-1"),
|
||||
{ description = "Toggle laptop display" })
|
||||
|
||||
hl.bind("SUPER + Escape", hl.dsp.exec_raw("loginctl lock-session"), { description = "Lock screen" })
|
||||
hl.bind("SUPER + SHIFT + escape", hl.dsp.exec_raw("systemctl suspend"), { description = "Suspend" })
|
||||
--hl.bind("SUPER + ALT + escape", hl.dsp.exec_raw("uwsm stop"), { description = "Stop UWSM" })
|
||||
hl.bind("SUPER + ALT + escape", hl.dsp.exit(), { description = "Exit Hyprland" })
|
||||
hl.bind("SUPER + CONTROL + escape", hl.dsp.exec_raw("reboot"), { description = "Reboot" })
|
||||
hl.bind("SUPER + SHIFT + CONTROL + escape", hl.dsp.exec_raw("systemctl poweroff"), { description = "Power off" })
|
||||
|
||||
-- hl.bind("SUPER + L", hl.dsp.window.resize("right"), { repeating = true, description = "Window: Resize right" })
|
||||
-- hl.bind("SUPER + J", hl.dsp.window.resize("down"), { repeating = true, description = "Window: Resize down" })
|
||||
-- hl.bind("SUPER + K", hl.dsp.window.resize("up"), { repeating = true, description = "Window: Resize up" })
|
||||
|
||||
-- # Change Workspace Mode
|
||||
--
|
||||
-- bind = SUPER SHIFT, X, workspaceopt, allfloat
|
||||
-- bind = SUPER SHIFT, X, exec, $notifycmd "Toggled All Float Mode"
|
||||
|
||||
-- bind = SUPER SHIFT, Z, workspaceopt, allpseudo
|
||||
-- bind = SUPER SHIFT, Z, exec, $notifycmd "Toggled All Pseudo Mode"
|
||||
|
||||
hl.on("keybinds.submap", function(name)
|
||||
if name == "" then
|
||||
hl.notification.create({ text = "Exited submap", duration = 2000, icon = "hint" })
|
||||
return
|
||||
end
|
||||
hl.notification.create({ text = "Entered submap: " .. name, duration = 2000, icon = "hint" })
|
||||
end)
|
||||
|
||||
hl.bind(HYPR .. "Z", hl.dsp.submap("passthru"), { description = "Passthru Menu" })
|
||||
hl.define_submap("passthru", function()
|
||||
hl.bind("escape", hl.dsp.submap("reset"), { description = "Passthru: Exit" })
|
||||
end)
|
||||
|
||||
hl.bind("SUPER + F9", hl.dsp.submap("resize"), { description = "Resize Menu" })
|
||||
hl.define_submap("resize", function()
|
||||
hl.bind("period", hl.dsp.window.resize({ x = 10, y = 10, relative = true }),
|
||||
{ repeating = true, description = "Resize: Increase" })
|
||||
hl.bind("comma", hl.dsp.window.resize({ x = -10, y = -10, relative = true }),
|
||||
{ repeating = true, description = "Resize: Decrease" })
|
||||
hl.bind("R", function()
|
||||
window_resize_percentage(0.5, 0.5)
|
||||
end, { description = "Resize: Reset" })
|
||||
hl.bind("S", function()
|
||||
window_resize_percentage(0.25, 0.25)
|
||||
end, { description = "Resize: Small" })
|
||||
hl.bind("D", function()
|
||||
window_resize_percentage(0.7, 0.96)
|
||||
hl.dispatch(hl.dsp.window.center())
|
||||
end, { description = "Resize: Large" })
|
||||
hl.bind("C", hl.dsp.window.center(), { description = "Resize: Center" })
|
||||
hl.bind("P", hl.dsp.window.pin(), { description = "Resize: Pin" })
|
||||
hl.bind("up", hl.dsp.window.move({ direction = "up" }), { description = "Resize: Move up" })
|
||||
hl.bind("down", hl.dsp.window.move({ direction = "down" }), { description = "Resize: Move down" })
|
||||
hl.bind("left", hl.dsp.window.move({ direction = "left" }), { description = "Resize: Move left" })
|
||||
hl.bind("right", hl.dsp.window.move({ direction = "right" }), { description = "Resize: Move right" })
|
||||
hl.bind("escape", hl.dsp.submap("reset"), { description = "Resize: Exit" })
|
||||
hl.bind("catchall", hl.dsp.submap("reset"), { description = "Resize: Exit" })
|
||||
end)
|
||||
|
||||
local workspaceGroupSize = 10
|
||||
local numberkey = { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }
|
||||
|
||||
function workspace_in_group(i)
|
||||
local curr = hl.get_active_workspace().id
|
||||
local newVal = math.floor((curr - 1) / workspaceGroupSize) * workspaceGroupSize + i
|
||||
return newVal
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + CONTROL + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.workspace.move({ monitor = "+1", workspace = workspace_in_group(i), follow = true }))
|
||||
end, { description = "Workspace: Move monitor " .. i })
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + SHIFT + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.window.move({ workspace = workspace_in_group(i), follow = true }))
|
||||
end, { description = "Workspace: Move " .. i })
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.focus({ workspace = workspace_in_group(i), on_current_monitor = true }))
|
||||
end, { description = "Workspace: Focus " .. i })
|
||||
end
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Workspace: Next" })
|
||||
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Workspace: Previous" })
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Window: Drag" })
|
||||
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Window: Resize" })
|
||||
hl.bind("mouse:275", hl.dsp.window.cycle_next({ next = true }), { click = true, description = "Window: Cycle next" })
|
||||
hl.bind("mouse:276", hl.dsp.window.cycle_next({ next = false }), { click = true, description = "Window: Cycle previous" })
|
||||
|
||||
hl.bind(HYPR .. "V", hl.dsp.exec_cmd("pavucontrol"), { description = "Volume control" })
|
||||
hl.bind(HYPR .. "B", hl.dsp.exec_cmd("blueberry"), { description = "Bluetooth manager" })
|
||||
|
||||
hl.bind(HYPR .. "semicolon", hl.dsp.exec_cmd("~/.local/bin/set-wallpaper.sh categories/technics"),
|
||||
{ description = "get new wallpaper" })
|
||||
|
||||
hl.bind(HYPR .. "A", hl.dsp.exec_cmd("gtk-launch pi.desktop"), { description = "Open pi tui" })
|
||||
hl.bind(HYPR .. "C", dispatch_focus_or_launch({
|
||||
match = "chrome-chatgpt.com",
|
||||
cmd = "gtk-launch ChatGPT.desktop",
|
||||
}), { description = "ChatGPT" })
|
||||
|
||||
hl.bind(HYPR .. "O", dispatch_focus_or_launch({
|
||||
match = "chrome-outlook.office.com",
|
||||
cmd = "gtk-launch Outlook.desktop",
|
||||
}), { description = "Email" })
|
||||
|
||||
hl.bind(HYPR .. "T", dispatch_focus_or_launch({
|
||||
match = "chrome-teams.microsoft.com",
|
||||
cmd = "gtk-launch Team.desktop",
|
||||
}), { description = "UWO Team" })
|
||||
|
||||
hl.bind(HYPR .. "Y", dispatch_focus_or_launch({
|
||||
match = "chrome-youtube.com",
|
||||
cmd = "gtk-launch YouTube.desktop",
|
||||
}), { description = "YouTube" })
|
||||
|
||||
hl.bind(HYPR .. "W", dispatch_focus_or_launch({
|
||||
match = "chrome-web.whatsapp.com",
|
||||
cmd = "gtk-launch WhatsApp.desktop",
|
||||
}), { description = "WhatsApp" })
|
||||
|
||||
hl.bind(HYPR .. "G", dispatch_focus_or_launch({
|
||||
match = "chrome-www.gmail.com",
|
||||
cmd = webapp .. "https://www.gmail.com/",
|
||||
}), { description = "Google" })
|
||||
|
||||
hl.bind(HYPR .. "D", dispatch_focus_or_launch({
|
||||
match = "chrome-discord.com",
|
||||
cmd = "gtk-launch Discord.desktop"
|
||||
}), { description = "Discord" })
|
||||
|
||||
hl.bind(HYPR .. "M", dispatch_focus_or_launch({
|
||||
match = "chrome-messages.google.com",
|
||||
cmd = "gtk-launch \"Google Messages.desktop\"",
|
||||
}), { description = "Google Messages" })
|
||||
|
||||
hl.bind(HYPR .. "S", dispatch_focus_or_launch({
|
||||
match = "Spotify",
|
||||
cmd = music,
|
||||
}), { description = "Music" })
|
||||
|
||||
hl.bind(HYPR .. "F", dispatch_focus_or_launch({
|
||||
match = "strata",
|
||||
cmd = "gtk-launch io.github.lgse.Strata.desktop",
|
||||
}), { description = "File Manager" })
|
||||
|
||||
-- Gestures
|
||||
-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
|
||||
-- hl.gesture({ fingers = 3, direction = "down", mods = "ALT", action = "close" })
|
||||
-- hl.gesture({ fingers = 3, direction = "up", mods = "SUPER", scale = 1.5, action = "fullscreen" })
|
||||
-- hl.gesture({ fingers = 3, direction = "left", scale = 1.5, action = "float" })
|
||||
--
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 2 })
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1.2, mode = "mult" })
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1, mode = "live" })
|
||||
+22
-5
@@ -33,6 +33,11 @@ worktrunk = "latest"
|
||||
bin = "tea",
|
||||
format = "raw"
|
||||
}
|
||||
uv = "latest"
|
||||
tmux = "latest"
|
||||
node = "latest"
|
||||
go = "latest"
|
||||
croc = "latest"
|
||||
# url = 'https://releases.hashicorp.com/sentinel/{{version}}/sentinel_{{version}}_{{os(macos="darwin")}}_{{arch(x64="amd64")}}.zip'
|
||||
|
||||
[tasks.setup_pi]
|
||||
@@ -45,9 +50,20 @@ run = [
|
||||
'pi install npm:@dietrichgebert/ponytail',
|
||||
'pi install npm:@gotgenes/pi-permission-system',
|
||||
'pi install npm:@plannotator/pi-extension',
|
||||
'test -x /usr/bin/pass && /usr/bin/pass show config/pi/auth.json > ~/.pi/agent/auth.json'
|
||||
'pi install npm:pi-hermes-memory',
|
||||
'pi install npm:pi-msg-queue',
|
||||
]
|
||||
|
||||
[tasks.setup_fish]
|
||||
run = '''
|
||||
if [[ -x /usr/bin/fish ]]; then
|
||||
if [[ "$(getent passwd "$USER" | cut -d: -f7)" != /usr/bin/fish ]]; then
|
||||
chsh -s /usr/bin/fish
|
||||
fi
|
||||
fish -c "fisher install franciscolourenco/done"
|
||||
fi
|
||||
'''
|
||||
|
||||
[tasks.setup_nvim]
|
||||
run = [
|
||||
'uv tool install vectorcode'
|
||||
@@ -56,19 +72,20 @@ run = [
|
||||
[tasks.skills]
|
||||
run = [
|
||||
"test -d ~/.local/share/skills || git clone https://github.com/SjB/skills.git ~/.local/share/skills",
|
||||
"git -C ~/.local/share/skills pull --rebase",
|
||||
"ln -snf ~/.local/share/skills/skills ~/.agents/skills"
|
||||
"git -C ~/.local/share/skills pull -q --rebase || true",
|
||||
"test -L ~/.agents/skills || ln -snf ~/.local/share/skills/skills ~/.agents/skills"
|
||||
]
|
||||
|
||||
[tasks.herdr_setup]
|
||||
[tasks.setup_herdr]
|
||||
run = [
|
||||
'herdr plugin install devashish2203/herdr-worktrunk --yes',
|
||||
'herdr plugin install qu8n/herdr-automatic-rename --yes',
|
||||
'herdr plugin install den-tanui/herdr-zoxide --yes',
|
||||
'herdr plugin install plannotator/herdr-annotate --yes',
|
||||
'herdr plugin install qu8n/herdr-automatic-rename --yes',
|
||||
]
|
||||
|
||||
[tasks.tmux_setup]
|
||||
[tasks.setup_tmux]
|
||||
run = [
|
||||
'test -d ~/.config/tmux/plugins/tpm || git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm',
|
||||
'tmux run-shell ~/.config/tmux/plugins/tpm/bindings/install_plugins',
|
||||
|
||||
@@ -9,8 +9,8 @@ require('orgmode').setup({
|
||||
use_vim_ui = true
|
||||
}
|
||||
},
|
||||
org_agenda_files = {'~/Documents/notes/*project*org', '~/Documents/notes/Inbox*org', '~/Documents/journals/*.org'},
|
||||
org_default_notes_file = "~/Documents/notes/Inbox.org",
|
||||
org_agenda_files = {'~/Documents/GTD/*project*org', '~/Documents/GTD/Inbox*org', '~/Documents/GTD/journals/*.org'},
|
||||
org_default_notes_file = "~/Documents/GTD/Inbox.org",
|
||||
org_todo_keywords = { 'TODO(t)', 'NEXT(n)', '|', 'DONE(d)', 'DELEGATED(a)' },
|
||||
mappings = {
|
||||
capture = {
|
||||
@@ -25,7 +25,7 @@ require('orgmode').setup({
|
||||
},
|
||||
j = {
|
||||
description = "Journal entry",
|
||||
target = "~/Documents/notes/journals/%<%Y-%m-%d>.org",
|
||||
target = "~/Documents/GTD/journals/%<%Y-%m-%d>.org",
|
||||
template = "* %<%Y-%m-%d %H:%M> %?\n",
|
||||
},
|
||||
},
|
||||
@@ -65,7 +65,7 @@ require('org-roam').setup({
|
||||
bindings = {
|
||||
prefix = "<LocalLeader>oO",
|
||||
},
|
||||
directory = "~/Documents/notes",
|
||||
directory = "~/Documents/GTD",
|
||||
extensions = {
|
||||
dailies = {
|
||||
directory = "journals"
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
{
|
||||
"providers": {
|
||||
"brine.sharcnet.ca": {
|
||||
"baseUrl": "https://brine.sharcnet.ca/v1",
|
||||
"api": "openai-completions",
|
||||
"models": [
|
||||
{
|
||||
"id": "openai//opt/vllm/models/North-Mini-Code-1.0-fp8",
|
||||
"name": "openai//opt/vllm/models/North-Mini-Code-1.0-fp8"
|
||||
},
|
||||
{
|
||||
"id": "openai/models/DeepSeek-V4-Flash-0731",
|
||||
"name": "openai/models/DeepSeek-V4-Flash-0731"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sagacity": {
|
||||
"baseUrl": "https://agent.sagacity.ca/v1",
|
||||
"api": "openai-completions",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"lastChangelogVersion": "0.99.2",
|
||||
"lastChangelogVersion": "1.1.0",
|
||||
"theme": "light/dark",
|
||||
"defaultProvider": "openai-codex",
|
||||
"defaultModel": "gpt-6-luna",
|
||||
"defaultProvider": "openai",
|
||||
"defaultModel": "gpt-6-sol",
|
||||
"defaultThinkingLevel": "high",
|
||||
"hideThinkingBlock": true,
|
||||
"compaction": {
|
||||
@@ -25,22 +25,26 @@
|
||||
"npm:pi-subagents",
|
||||
"npm:@ff-labs/pi-fff",
|
||||
"npm:@narumitw/pi-plan-mode",
|
||||
"npm:@dietrichgebert/ponytail"
|
||||
"npm:@dietrichgebert/ponytail",
|
||||
"npm:@plannotator/pi-extension",
|
||||
"npm:pi-hermes-memory",
|
||||
"npm:pi-msg-queue"
|
||||
],
|
||||
"subagents": {
|
||||
"agentOverrides": {
|
||||
"reviewer": {
|
||||
"model": "openai-codex/gpt-6-luna",
|
||||
"model": "obelix/ornith-1.5-35B",
|
||||
"thinking": "high"
|
||||
},
|
||||
"planner": {
|
||||
"model": "opencode-go/deepseek-v4-pro"
|
||||
"model": "openai/gpt-6-luna",
|
||||
"thinking": "high"
|
||||
},
|
||||
"worker": {
|
||||
"model": "obelix/ornith-1.0-35B"
|
||||
"model": "opencode-go/claude-haiku-5-5"
|
||||
},
|
||||
"oracle": {
|
||||
"model": "openai-codex/gpt-6.1-sol",
|
||||
"model": "openai/gpt-6.1-sol",
|
||||
"thinking": "high"
|
||||
}
|
||||
}
|
||||
@@ -52,5 +56,6 @@
|
||||
"steeringMode": "all",
|
||||
"terminal": {
|
||||
"showTerminalProgress": true
|
||||
}
|
||||
},
|
||||
"deviceId": "2314a9e6-0e82-49cd-8518-efc15c870eef"
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
hl.bind(sjb.HYPR .. "Z", hl.dsp.submap("passthru"), { description = "Passthru Menu" })
|
||||
hl.define_submap("passthru", function()
|
||||
hl.bind(sjb.HYPR .. "Z", hl.dsp.submap("reset"), { description = "Passthru: Exit" })
|
||||
end)
|
||||
|
||||
hl.bind(sjb.HYPR .. "A", hl.dsp.exec_cmd("gtk-launch pi.desktop"), { description = "Open pi tui" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "O", dispatch_focus_or_launch({
|
||||
match = "chrome-outlook.office.com",
|
||||
cmd = "gtk-launch Outlook.desktop",
|
||||
}), { description = "Email" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "T", dispatch_focus_or_launch({
|
||||
match = "chrome-teams.microsoft.com",
|
||||
cmd = "gtk-launch Team.desktop",
|
||||
}), { description = "UWO Team" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "Y", dispatch_focus_or_launch({
|
||||
match = "chrome-youtube.com",
|
||||
cmd = "gtk-launch YouTube.desktop",
|
||||
}), { description = "YouTube" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "W", dispatch_focus_or_launch({
|
||||
match = "chrome-web.whatsapp.com",
|
||||
cmd = "gtk-launch WhatsApp.desktop",
|
||||
}), { description = "WhatsApp" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "G", dispatch_focus_or_launch({
|
||||
match = "chrome-chatgpt.com",
|
||||
cmd = "gtk-launch ChatGPT.desktop",
|
||||
}), { description = "ChatGPT" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "D", dispatch_focus_or_launch({
|
||||
match = "chrome-discord.com",
|
||||
cmd = "gtk-launch Discord.desktop"
|
||||
}), { description = "Discord" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "M", dispatch_focus_or_launch({
|
||||
match = "chrome-messages.google.com",
|
||||
cmd = "gtk-launch \"Google Messages.desktop\"",
|
||||
}), { description = "Google Messages" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "X", dispatch_focus_or_launch({
|
||||
match = "X",
|
||||
cmd = "gtk-launch X.desktop",
|
||||
}), { description = "X" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "S", dispatch_focus_or_launch({
|
||||
match = "Spotify",
|
||||
cmd = "gtk-launch spotify.desktop"
|
||||
}), { description = "Music" })
|
||||
@@ -0,0 +1,250 @@
|
||||
local terminal = "footclient"
|
||||
local browser = "gtk-launch chromium.desktop"
|
||||
|
||||
-- Keybindings
|
||||
|
||||
hl.bind("SUPER + SHIFT + RETURN", hl.dsp.exec_raw(browser), { description = "Open browser" })
|
||||
hl.bind("SUPER + SHIFT + B", hl.dsp.exec_raw(browser), { description = "Open browser" })
|
||||
hl.bind("SUPER + RETURN", hl.dsp.exec_cmd("footclient -a terminal -T terminal"),
|
||||
{ description = "Open terminal" })
|
||||
hl.bind("SUPER + SHIFT + F", dispatch_focus_or_launch({
|
||||
match = "strata",
|
||||
cmd = "gtk-launch io.github.lgse.Strata.desktop",
|
||||
}), { description = "File Manager" })
|
||||
|
||||
hl.bind("SUPER + CTRL + RETURN", hl.dsp.exec_cmd("gtk-launch herdr.desktop"),
|
||||
{ description = "Open herdr terminal" })
|
||||
hl.bind("SUPER + ALT + RETURN", hl.dsp.exec_cmd("gtk-launch tmux.desktop"),
|
||||
{ description = "Open tmux terminal" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + N", hl.dsp.exec_cmd("terminal-launcher quicknotes \"nvim +'Obsidian today'\""),
|
||||
{ description = "Open Obsidian today in a centered floating window" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + A", hl.dsp.exec_cmd("terminal-launcher agenda \"nvim +'Org agenda t'\""),
|
||||
{ description = "Open Org agenda in a centered floating window" })
|
||||
hl.bind("SUPER + CONTROL + A", hl.dsp.exec_cmd("terminal-launcher capture \"nvim +'Org capture t'\""),
|
||||
{ description = "Open Org capture in a centered floating window" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + I", sysinfo, { description = "Show system info" })
|
||||
|
||||
-- hl.bind("SUPER + SHIFT + Q", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
|
||||
-- hl.bind("F9", hl.dsp.exec_raw("ostt launch --paste"), { description = "Open ostt" })
|
||||
hl.bind("F9", hl.dsp.exec_raw("voxtype record toggle"), { description = "Toggle Voxtype dictation" })
|
||||
hl.bind("SUPER + SHIFT + Q", hl.dsp.exec_raw("voxtype record toggle"), { description = "Toggle Voxtype dictation" })
|
||||
|
||||
hl.bind("SUPER + Y", toggle_master_scrolling,
|
||||
{ description = "Layout: Toggle master/scrolling" })
|
||||
hl.bind("SUPER + W", hl.dsp.window.close(), { description = "Window: Close" })
|
||||
|
||||
hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }),
|
||||
{ description = "Window: Toggle fullscreen" })
|
||||
hl.bind("SUPER + CONTROL + F", hl.dsp.window.fullscreen_state({ internal = 2, client = 0, action = "toggle" }),
|
||||
{ description = "Window: Toggle Tiled fullscreen" })
|
||||
hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen_state({ internal = 0, client = 2, action = "toggle" }),
|
||||
{ description = "Window: Toggle full width" })
|
||||
|
||||
hl.bind("SUPER + T", toggle_float_with_limit,
|
||||
{ description = "Window: Toggle floating/tiling (max 80%)" })
|
||||
|
||||
hl.bind("SUPER + P", toggle_pin, { description = "Window: Toggle Pin" })
|
||||
|
||||
hl.bind("SUPER + left", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
|
||||
hl.bind("SUPER + right", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
|
||||
hl.bind("SUPER + up", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
|
||||
hl.bind("SUPER + down", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" })
|
||||
|
||||
hl.bind("SUPER + H", hl.dsp.focus({ direction = "l" }), { description = "Window: Focus left" })
|
||||
hl.bind("SUPER + L", hl.dsp.focus({ direction = "r" }), { description = "Window: Focus right" })
|
||||
hl.bind("SUPER + K", hl.dsp.focus({ direction = "u" }), { description = "Window: Focus up" })
|
||||
hl.bind("SUPER + J", hl.dsp.focus({ direction = "d" }), { description = "Window: Focus down" }) -- hl.bind("SUPER + H", hl.dsp.window.resize("left"), { repeating = true, description = "Window: Resize left" })
|
||||
|
||||
-- hl.bind("SUPER + z", hl.dsp.focus({ last = true }), { description = "Window: Focus last" })
|
||||
hl.bind("SUPER + Z", hl.dsp.focus({ urgent_or_last = true }), { description = "Window: Focus last" })
|
||||
|
||||
hl.bind("SUPER + ALT + period", hl.dsp.layout("cycleprev"), { description = "Window: Swap with next" })
|
||||
hl.bind("SUPER + ALT + comma", hl.dsp.layout("cyclenext"), { description = "Window: Swap with prev" })
|
||||
|
||||
-- hl.bind("SUPER + ALT + comma", hl.dsp.workspace.move({ monitor = "-1" }),
|
||||
-- { description = "Window: Move to previous workspace and follow" })
|
||||
|
||||
-- hl.bind("SUPER + ALT + period", hl.dsp.workspace.move({ monitor = "+1" }),
|
||||
-- { description = "Window: Move to next workspace and follow" })
|
||||
|
||||
-- FIX: sjb
|
||||
--hl.bind("SUPER + J", hl.dsp.layout("togglesplit"), { description = "Toggle window split" })
|
||||
--hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Pseudo window" })
|
||||
|
||||
hl.bind("ALT + Tab", cycle_next_window({ next = true }), { description = "Window: Cycle next" })
|
||||
hl.bind("ALT + SHIFT + Tab", cycle_next_window({ next = false }), { description = "Window: Cycle prev" })
|
||||
|
||||
hl.bind("CONTROL + ALT + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Focus on next monitor" })
|
||||
hl.bind("CONTROL + ALT + SHIFT + TAB", hl.dsp.focus({ monitor = "-1" }), { description = "Focus on previous monitor" })
|
||||
|
||||
hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
|
||||
hl.bind("SUPER + ALT + S", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }),
|
||||
{ description = "Move window to scratchpad" })
|
||||
|
||||
-- hl.bind("SUPER + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Monitor: move focus to next monitor" })
|
||||
hl.bind("SUPER + TAB", hl.dsp.focus({ workspace = "e+1" }), { description = "Next workspace" })
|
||||
hl.bind("SUPER + SHIFT + TAB", hl.dsp.focus({ workspace = "e-1" }), { description = "Previous workspace" })
|
||||
hl.bind("SUPER + CONTROL + TAB", hl.dsp.focus({ workspace = "previous" }), { description = "Former workspace" })
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + LEFT", hl.dsp.workspace.move({ monitor = "l" }),
|
||||
{ description = "Move workspace to left monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + RIGHT", hl.dsp.workspace.move({ monitor = "r" }),
|
||||
{ description = "Move workspace to right monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + UP", hl.dsp.workspace.move({ monitor = "u" }),
|
||||
{ description = "Move workspace to up monitor" })
|
||||
hl.bind("SUPER + ALT + SHIFT + DOWN", hl.dsp.workspace.move({ monitor = "d" }),
|
||||
{ description = "Move workspace to down monitor" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + LEFT", hl.dsp.window.swap({ direction = "l" }), { description = "Swap window to the left" })
|
||||
hl.bind("SUPER + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "r" }), { description = "Swap window to the right" })
|
||||
hl.bind("SUPER + SHIFT + UP", hl.dsp.window.swap({ direction = "u" }), { description = "Swap window up" })
|
||||
hl.bind("SUPER + SHIFT + DOWN", hl.dsp.window.swap({ direction = "d" }), { description = "Swap window down" })
|
||||
|
||||
hl.bind("SUPER + ALT + Tab", hl.dsp.focus({ workspace = "next", on_current_monitor = true }),
|
||||
{ description = "Window: Focus previous in workspace" })
|
||||
hl.bind("SUPER + ALT + SHIFT + Tab", hl.dsp.focus({ workspace = "previous", on_current_monitor = true }),
|
||||
{ description = "Window: Focus previous in workspace" })
|
||||
|
||||
-- arrange split ratio
|
||||
hl.bind("SUPER + SHIFT + M", toggle_master, { description = "Layout: Toggle master size" })
|
||||
hl.bind("SUPER + M", function()
|
||||
local ws = hl.get_active_workspace()
|
||||
local current_layout = ws.tiled_layout
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("consume_or_expel next"))
|
||||
end
|
||||
end, { description = "Layout: Swap with master" })
|
||||
|
||||
hl.bind("SUPER + period", function()
|
||||
local ws = hl.get_active_workspace()
|
||||
local current_layout = ws.tiled_layout
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("cycleprev"))
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("swapcol r"))
|
||||
hl.dispatch(hl.dsp.layout("focus l"))
|
||||
end
|
||||
-- hl.dispatch(hl.dsp.layout("focus r"))
|
||||
end, { description = "Layout: Cycle next" })
|
||||
|
||||
hl.bind("SUPER + comma", function()
|
||||
local ws = hl.get_active_workspace()
|
||||
local current_layout = ws.tiled_layout
|
||||
if current_layout == "master" then
|
||||
hl.dispatch(hl.dsp.layout("cyclenext"))
|
||||
hl.dispatch(hl.dsp.layout("swapwithmaster"))
|
||||
end
|
||||
|
||||
if current_layout == "scrolling" then
|
||||
hl.dispatch(hl.dsp.layout("swapcol l"))
|
||||
hl.dispatch(hl.dsp.layout("focus r"))
|
||||
end
|
||||
-- hl.dispatch(hl.dsp.layout("focus l"))
|
||||
end, { description = "Layout: Cycle previous" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + comma", hl.dsp.window.move({ workspace = "-1" }),
|
||||
{ description = "Window: Move to previous workspace" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + period", hl.dsp.window.move({ workspace = "+1" }),
|
||||
{ description = "Window: Move to next workspace" })
|
||||
|
||||
|
||||
hl.bind("SUPER + CONTROL + SHIFT + slash",
|
||||
hl.dsp.exec_cmd("makoctl mode -t do-not-disturb"),
|
||||
{ description = "Toggle do-not-disturb" })
|
||||
|
||||
hl.bind("SUPER + CONTROL + Delete", hl.dsp.exec_cmd("hyprland-toggle-monitor eDP-1"),
|
||||
{ description = "Toggle laptop display" })
|
||||
|
||||
hl.on("keybinds.submap", function(name)
|
||||
if name == "" then
|
||||
hl.notification.create({ text = "Exited submap", duration = 2000, icon = "hint" })
|
||||
return
|
||||
end
|
||||
hl.notification.create({ text = "Entered submap: " .. name, duration = 2000, icon = "hint" })
|
||||
end)
|
||||
|
||||
hl.bind("SUPER + F9", hl.dsp.submap("resize"), { description = "Resize Menu" })
|
||||
hl.define_submap("resize", function()
|
||||
hl.bind("period", hl.dsp.window.resize({ x = 10, y = 10, relative = true }),
|
||||
{ repeating = true, description = "Resize: Increase" })
|
||||
hl.bind("comma", hl.dsp.window.resize({ x = -10, y = -10, relative = true }),
|
||||
{ repeating = true, description = "Resize: Decrease" })
|
||||
hl.bind("R", function()
|
||||
window_resize_percentage(0.5, 0.5)
|
||||
end, { description = "Resize: Reset" })
|
||||
hl.bind("S", function()
|
||||
window_resize_percentage(0.25, 0.25)
|
||||
end, { description = "Resize: Small" })
|
||||
hl.bind("D", function()
|
||||
window_resize_percentage(0.7, 0.96)
|
||||
hl.dispatch(hl.dsp.window.center())
|
||||
end, { description = "Resize: Large" })
|
||||
hl.bind("C", hl.dsp.window.center(), { description = "Resize: Center" })
|
||||
hl.bind("P", hl.dsp.window.pin(), { description = "Resize: Pin" })
|
||||
hl.bind("up", hl.dsp.window.move({ direction = "up" }), { description = "Resize: Move up" })
|
||||
hl.bind("down", hl.dsp.window.move({ direction = "down" }), { description = "Resize: Move down" })
|
||||
hl.bind("left", hl.dsp.window.move({ direction = "left" }), { description = "Resize: Move left" })
|
||||
hl.bind("right", hl.dsp.window.move({ direction = "right" }), { description = "Resize: Move right" })
|
||||
hl.bind("escape", hl.dsp.submap("reset"), { description = "Resize: Exit" })
|
||||
hl.bind("catchall", hl.dsp.submap("reset"), { description = "Resize: Exit" })
|
||||
end)
|
||||
|
||||
local workspaceGroupSize = 10
|
||||
local numberkey = { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }
|
||||
|
||||
function workspace_in_group(i)
|
||||
local curr = hl.get_active_workspace().id
|
||||
local newVal = math.floor((curr - 1) / workspaceGroupSize) * workspaceGroupSize + i
|
||||
return newVal
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + CONTROL + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.workspace.move({ monitor = "+1", workspace = workspace_in_group(i), follow = true }))
|
||||
end, { description = "Workspace: Move monitor " .. i })
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + SHIFT + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.window.move({ workspace = workspace_in_group(i), follow = true }))
|
||||
end, { description = "Workspace: Move " .. i })
|
||||
end
|
||||
|
||||
for i = 1, 10 do
|
||||
hl.bind("SUPER + code:" .. numberkey[i], function()
|
||||
hl.dispatch(hl.dsp.focus({ workspace = workspace_in_group(i), on_current_monitor = true }))
|
||||
end, { description = "Workspace: Focus " .. i })
|
||||
end
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Workspace: Next" })
|
||||
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Workspace: Previous" })
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Window: Drag" })
|
||||
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Window: Resize" })
|
||||
hl.bind("mouse:275", hl.dsp.window.cycle_next({ next = true }), { click = true, description = "Window: Cycle next" })
|
||||
hl.bind("mouse:276", hl.dsp.window.cycle_next({ next = false }), { click = true, description = "Window: Cycle previous" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "semicolon", hl.dsp.exec_cmd("~/.local/bin/set-wallpaper.sh categories/technics"),
|
||||
{ description = "get new wallpaper" })
|
||||
|
||||
-- Gestures
|
||||
-- hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
|
||||
-- hl.gesture({ fingers = 3, direction = "down", mods = "ALT", action = "close" })
|
||||
-- hl.gesture({ fingers = 3, direction = "up", mods = "SUPER", scale = 1.5, action = "fullscreen" })
|
||||
-- hl.gesture({ fingers = 3, direction = "left", scale = 1.5, action = "float" })
|
||||
--
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 2 })
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1.2, mode = "mult" })
|
||||
-- hl.gesture({ fingers = 2, direction = "pinch", action = "cursorZoom", zoom_level = 1, mode = "live" })
|
||||
@@ -0,0 +1,154 @@
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = ",qwerty",
|
||||
-- kb_model =
|
||||
-- kb_options = ctrl:nocaps
|
||||
kb_options = "caps:ctrl_modifier,compose:ralt",
|
||||
-- kb_options = compose:ralt
|
||||
follow_mouse = 1,
|
||||
repeat_rate = 40,
|
||||
repeat_delay = 600,
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
disable_while_typing = true,
|
||||
clickfinger_behavior = true,
|
||||
scroll_factor = 0.7,
|
||||
},
|
||||
scroll_method = "2fg",
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
},
|
||||
|
||||
ecosystem = {
|
||||
no_update_news = true,
|
||||
enforce_permissions = false,
|
||||
},
|
||||
|
||||
general = {
|
||||
gaps_in = 3,
|
||||
gaps_out = 3,
|
||||
border_size = 2,
|
||||
allow_tearing = true,
|
||||
snap = {
|
||||
enabled = true
|
||||
},
|
||||
col = {
|
||||
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
layout = "master"
|
||||
},
|
||||
|
||||
master = {
|
||||
allow_small_split = true,
|
||||
mfact = 0.50,
|
||||
new_status = "master",
|
||||
orientation = "center",
|
||||
},
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true,
|
||||
force_split = 2,
|
||||
},
|
||||
|
||||
scrolling = {
|
||||
focus_fit_method = 0,
|
||||
column_width = 0.49,
|
||||
fullscreen_on_one_column = true
|
||||
},
|
||||
|
||||
cursor = {
|
||||
hide_on_key_press = true,
|
||||
warp_on_change_workspace = 1,
|
||||
},
|
||||
|
||||
binds = {
|
||||
hide_special_on_workspace_change = true,
|
||||
},
|
||||
decoration = {
|
||||
rounding = 1,
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 0.95,
|
||||
dim_inactive = true,
|
||||
dim_special = 0.0,
|
||||
dim_strength = 0.3,
|
||||
|
||||
shadow = {
|
||||
enabled = false,
|
||||
range = 2,
|
||||
render_power = 3,
|
||||
color = "rgba(1a1a1aee)",
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = false,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
group = {
|
||||
groupbar = {
|
||||
enabled = false
|
||||
}
|
||||
},
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true,
|
||||
disable_splash_rendering = true,
|
||||
disable_scale_notification = true,
|
||||
focus_on_activate = true,
|
||||
anr_missed_pings = 3,
|
||||
on_focus_under_fullscreen = 1,
|
||||
mouse_move_enables_dpms = true,
|
||||
animate_manual_resizes = true,
|
||||
mouse_move_focuses_monitor = true,
|
||||
enable_swallow = true,
|
||||
enable_anr_dialog = false,
|
||||
force_default_wallpaper = true,
|
||||
initial_workspace_tracking = 0,
|
||||
allow_session_lock_restore = true,
|
||||
},
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
}
|
||||
})
|
||||
|
||||
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
|
||||
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||
hl.curve("generic", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.08 } } })
|
||||
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1.0 } } })
|
||||
hl.curve("overshoot", { type = "bezier", points = { { 0.5, 0.9 }, { 0.1, 1.1 } } })
|
||||
hl.curve("rubber", { type = "spring", mass = 1, stiffness = 70, dampening = 10 })
|
||||
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 3.79, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "fadeSwitch", enabled = false })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 0.5, bezier = "quick" })
|
||||
|
||||
hl.animation({ leaf = "specialWorkspaceIn", enabled = true, speed = 3, bezier = "easeOutQuint", style = "slide top" })
|
||||
hl.animation({ leaf = "specialWorkspaceOut", enabled = true, speed = 2, bezier = "easeInOutCubic", style = "slide bottom" })
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
-- Open rofi on first press, closes it on second
|
||||
hl.bind("SUPER + Space", hl.dsp.exec_raw("rofi -show combi --modes combi"),
|
||||
{ release = true, description = "Open Application Menu" })
|
||||
hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("~/.local/bin/hyprland-fetch-client"),
|
||||
{ release = true, description = "Fetch client" })
|
||||
hl.bind("SUPER + CONTROL + SPACE",
|
||||
hl.dsp.exec_cmd("~/.local/bin/hyprland-focus-client"),
|
||||
{ release = true, description = "Focus client" }
|
||||
)
|
||||
hl.bind("SUPER + slash",
|
||||
hl.dsp.exec_cmd("ROFI_PASS_BACKEND=wtype ROFI_PASS_CLIPBOARD_BACKEND=wl-clipboard ~/.local/bin/rofi-pass"),
|
||||
{ release = true, description = "Open rofi-pass" })
|
||||
|
||||
hl.bind("SUPER + Y", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss notifications" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "V", hl.dsp.exec_cmd("pavucontrol"), { description = "Volume control" })
|
||||
hl.bind(sjb.HYPR .. "B", hl.dsp.exec_cmd("blueberry"), { description = "Bluetooth manager" })
|
||||
|
||||
hl.bind("SUPER + Escape", hl.dsp.exec_raw("loginctl lock-session"), { description = "Lock screen" })
|
||||
hl.bind("SUPER + SHIFT + escape", hl.dsp.exec_raw("systemctl suspend"), { description = "Suspend" })
|
||||
hl.bind("SUPER + ALT + escape", hl.dsp.exit(), { description = "Exit Hyprland" })
|
||||
hl.bind("SUPER + CONTROL + escape", hl.dsp.exec_raw("reboot"), { description = "Reboot" })
|
||||
hl.bind("SUPER + SHIFT + CONTROL + escape", hl.dsp.exec_raw("systemctl poweroff"), { description = "Power off" })
|
||||
|
||||
hl.bind("PRINT",
|
||||
hl.dsp.exec_cmd("hyprshot -m window -o ~/Pictures/ -- tensaku-edit"),
|
||||
{ description = "Take screenshot" })
|
||||
|
||||
hl.bind("SHIFT + PRINT",
|
||||
hl.dsp.exec_cmd("hyprshot -m region -o ~/Pictures/ -- tensaku-edit"),
|
||||
{ description = "Take screenshot" })
|
||||
|
||||
hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { description = "Pick color" })
|
||||
hl.bind("SUPER + CONTROL + PRINT",
|
||||
hl.dsp.exec_cmd("hyprshot -m region --raw -z | /usr/bin/tesseract stdin stdout --oem 1 --psm 6 -l eng | wl-copy"),
|
||||
{ description = "Extract text (OCR) from screenshot" })
|
||||
|
||||
hl.bind("SUPER + ALT + PRINT",
|
||||
hl.dsp.exec_cmd("~/.local/bin/screen-recorder -o ~/Videos/$(date +'%Y-%m-%d_%H%M%S')_recording.mp4"),
|
||||
{ description = "Start/Stop screen recording" })
|
||||
|
||||
hl.bind("SUPER + ALT + SHIFT + PRINT",
|
||||
hl.dsp.exec_cmd("~/.local/bin/screen-recorder stop"),
|
||||
{ description = "Stop screen recording" })
|
||||
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ repeating = true, description = "Volume down" })
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ repeating = true, description = "Volume up" })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { description = "Toggle mute" })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ description = "Toggle mic mute" })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"),
|
||||
{ repeating = true, description = "Brightness up" })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"),
|
||||
{ repeating = true, description = "Brightness down" })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { description = "Play/pause media" })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { description = "Previous media" })
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" })
|
||||
@@ -1,3 +1,21 @@
|
||||
sjb = sjb or {}
|
||||
|
||||
local function file_exists(path)
|
||||
local file = io.open(path, "r")
|
||||
if file then
|
||||
file:close()
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function sjb.omarchy_tools_available()
|
||||
return file_exists("/usr/bin/omarchy-menu")
|
||||
end
|
||||
|
||||
sjb.HYPR = "SUPER + CONTROL + SHIFT + ALT + "
|
||||
|
||||
function sysinfo()
|
||||
local mem = io.popen("free -h | awk '/^Mem/ {print $3 \"/\" $2}'"):read("*a")
|
||||
local cpu = io.popen("top -bn1 | grep 'Cpu(s)' | awk '{print $2 + $4 \"%\"}'"):read("*a")
|
||||
@@ -113,6 +131,10 @@ function toggle_master()
|
||||
end
|
||||
end
|
||||
|
||||
if mfact == nil then
|
||||
return
|
||||
end
|
||||
|
||||
if mfact == 0.7 then
|
||||
mfact = 0.5
|
||||
else
|
||||
@@ -191,8 +213,9 @@ function window_resize_percentage(px, py)
|
||||
end
|
||||
|
||||
function toggle_master_scrolling()
|
||||
local current = hl.get_config("general.layout")
|
||||
local next_layout = current == "master" and "scrolling" or "master"
|
||||
local ws = hl.get_active_workspace()
|
||||
|
||||
hl.config({ general = { layout = next_layout } })
|
||||
local next_layout = ws.tiled_layout == "master" and "scrolling" or "master"
|
||||
hl.notification.create({ text = "Workspace layout set to " .. next_layout, icon = "hint", duration = 5000 })
|
||||
hl.workspace_rule({ workspace = ws.id, layout = next_layout })
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
require("sjb/monitors")
|
||||
require("sjb/configuration")
|
||||
require("sjb/functions")
|
||||
require("sjb/rules")
|
||||
require("sjb/envs")
|
||||
require("sjb/autostart")
|
||||
require("sjb/bindings")
|
||||
require("sjb/applications")
|
||||
|
||||
if sjb.omarchy_tools_available() then
|
||||
require("sjb/omarchy")
|
||||
require("sjb/utilities")
|
||||
else
|
||||
require("sjb/extra")
|
||||
end
|
||||
-- require("theme")
|
||||
@@ -7,6 +7,24 @@ hl.monitor({
|
||||
scale =
|
||||
"1.333333"
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "desc:Apple Computer Inc LED Cinema W82104Y16JL",
|
||||
mode = "preferred",
|
||||
position = "auto-right",
|
||||
scale =
|
||||
"1.333333"
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "desc:Microstep MSI MAG342CQR DB6H252300057",
|
||||
mode = "3440x1440@144",
|
||||
-- mode = "preferred",
|
||||
position = "auto-left",
|
||||
scale =
|
||||
"1.0"
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "desc:Ancor Communications Inc ASUS MG28U 0x00009B77",
|
||||
mode = "preferred",
|
||||
@@ -38,8 +56,8 @@ hl.monitor({
|
||||
hl.monitor({ output = "desc:Lenovo Group Limited L15 U133R0A2", mode = "preferred", position = "auto-down", scale = 1 })
|
||||
hl.monitor({ output = "desc:Lenovo Group Limited M15 V30F2A15", mode = "preferred", position = "auto-down", scale = 1 })
|
||||
hl.monitor({ output = "desc:Lenovo Group Limited L15 U133X4PG", mode = "preferred", position = "auto-down", scale = 1 })
|
||||
hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", position = "auto-down", scale = 1 })
|
||||
hl.monitor({ output = "desc:Proteon TYPE-C 8R33926O00QS", mode = "preferred", position = "auto-right", scale = "1.0" })
|
||||
hl.monitor({ output = "desc:Stargate Technology TYPE-C", mode = "preferred", position = "auto-down", scale = "1.0" })
|
||||
hl.monitor({ output = "desc:GWD ARZOPA 000000000000", mode = "preferred", position = "auto-down", scale = "1.0" })
|
||||
hl.monitor({ output = "desc:BNQ BenQ EX3203R 7CL00509019", mode = "preferred", position = "auto", scale = 1 })
|
||||
hl.monitor({ output = "desc:BNQ BenQ EX3501R N4M05650019", mode = "preferred", position = "auto-right", scale = "1.0" })
|
||||
@@ -50,11 +68,3 @@ hl.monitor({
|
||||
scale =
|
||||
"1.0"
|
||||
})
|
||||
hl.monitor({
|
||||
output = "desc:Microstep MSI MAG342CQR DB6H252300057",
|
||||
mode = "3440x1440@144",
|
||||
-- mode = "preferred",
|
||||
position = "auto-left",
|
||||
scale =
|
||||
"1.0"
|
||||
})
|
||||
@@ -0,0 +1,107 @@
|
||||
hl.bind("SUPER + SPACE", hl.dsp.exec_raw("omarchy-menu toggle"), { description = "Omarchy menu" })
|
||||
hl.bind("SUPER + ALT + SPACE", hl.dsp.exec_raw("omarchy-menu toggle apps"), { description = "Apps menu" })
|
||||
hl.bind("SUPER + CTRL + E", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.emojis"), { description = "Emojis" })
|
||||
hl.bind("SUPER + CTRL + C", hl.dsp.exec_raw("omarchy-menu toggle capture"), { description = "Capture menu" })
|
||||
hl.bind("SUPER + CTRL + O", hl.dsp.exec_raw("omarchy-menu toggle toggle"), { description = "Toggle menu" })
|
||||
hl.bind("SUPER + CTRL + H", hl.dsp.exec_raw("omarchy-menu toggle hardware"), { description = "Hardware menu" })
|
||||
hl.bind("SUPER + SHIFT + code:201", hl.dsp.exec_raw("omarchy-menu toggle root"), { description = "Omarchy menu" })
|
||||
hl.bind("SUPER + ESCAPE", hl.dsp.exec_raw("omarchy-menu toggle system"), { description = "System menu" })
|
||||
hl.bind("SUPER + CTRL + Q", hl.dsp.exec_raw("omacalc"), { description = "Calculator" })
|
||||
hl.bind("XF86Calculator", hl.dsp.exec_raw("omacalc"), { description = "Calculator" })
|
||||
hl.bind("XF86PowerOff", hl.dsp.exec_raw("omarchy-menu toggle system", { locked = true }), { description = "Power menu" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_raw('omarchy-toggle-bar'), { description = "Toggle top bar" })
|
||||
|
||||
hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_raw("omarchy-menu toggle background"),
|
||||
{ description = "Background switcher" })
|
||||
hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_raw("omarchy-menu toggle theme"), { description = "Theme menu" })
|
||||
hl.bind("SUPER + BACKSPACE", hl.dsp.exec_raw("omarchy-hyprland-window-transparency-toggle"),
|
||||
{ description = "Toggle window transparency" })
|
||||
hl.bind("SUPER + SHIFT + BACKSPACE", hl.dsp.exec_raw("omarchy-hyprland-window-gaps-toggle"),
|
||||
{ description = "Toggle window gaps" })
|
||||
hl.bind("SUPER + CTRL + BACKSPACE", hl.dsp.exec_raw("omarchy-hyprland-window-single-square-aspect-toggle"),
|
||||
{ description = "Toggle single-window square aspect" })
|
||||
|
||||
-- xkbcommon names the comma keysym "comma"; the upper-case "COMMA" does not match.
|
||||
hl.bind("SUPER + X", hl.dsp.exec_raw("omarchy-shell notifications dismissOne"),
|
||||
{ description = "Dismiss last notification" })
|
||||
hl.bind("SUPER + SHIFT + X", hl.dsp.exec_raw("omarchy-shell notifications dismissAll"),
|
||||
{ description = "Dismiss all notifications" })
|
||||
hl.bind("SUPER + CTRL + X", hl.dsp.exec_raw("omarchy-toggle-notification-silencing"),
|
||||
{ description = "Toggle silencing notifications" })
|
||||
hl.bind("SUPER + ALT + X", hl.dsp.exec_raw("omarchy-shell notifications invokeLast"),
|
||||
{ description = "Invoke last notification" })
|
||||
hl.bind("SUPER + SHIFT + ALT + ", hl.dsp.exec_raw("omarchy-shell notifications showHistory"),
|
||||
{ description = "Open notification history" })
|
||||
|
||||
hl.bind("SUPER + O", hl.dsp.exec_raw("omarchy-hyprland-window-pop"), { description = "Pop window out (float & pin)" })
|
||||
hl.bind("SUPER + ALT + Home", hl.dsp.exec_raw("omarchy-hyprland-window-width save"),
|
||||
{ description = "Save window width" })
|
||||
hl.bind("SUPER + Home", hl.dsp.exec_raw("omarchy-hyprland-window-width restore"),
|
||||
{ description = "Restore window width" })
|
||||
|
||||
-- Volume, brightness, keyboard backlight, and touchpad controls.
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_raw("omarchy-audio-output-volume raise"),
|
||||
{ locked = true, repeating = true, description = "Volume up" })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_raw("omarchy-audio-output-volume lower"),
|
||||
{ locked = true, repeating = true, description = "Volume down" })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_raw("omarchy-audio-output-volume mute-toggle"),
|
||||
{ locked = true, description = "Mute" })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_raw("omarchy-audio-input-mute"),
|
||||
{ locked = true, description = "Mute microphone" })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_raw("omarchy-brightness-display +5%"),
|
||||
{ locked = true, repeating = true, description = "Brightness up" })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_raw("omarchy-brightness-display 5%-"),
|
||||
{ locked = true, repeating = true, description = "Brightness down" })
|
||||
hl.bind("SHIFT + XF86MonBrightnessUp",
|
||||
hl.dsp.exec_raw("omarchy-brightness-display 100%"),
|
||||
{ locked = true, repeating = true, description = "Brightness maximum" })
|
||||
hl.bind("SHIFT + XF86MonBrightnessDown",
|
||||
hl.dsp.exec_raw("omarchy-brightness-display 1%"),
|
||||
{ locked = true, repeating = true, description = "Brightness minimum" })
|
||||
hl.bind("XF86KbdBrightnessUp", hl.dsp.exec_raw("omarchy-brightness-keyboard up"),
|
||||
{ locked = true, repeating = true, description = "Keyboard brightness up" })
|
||||
hl.bind("XF86KbdBrightnessDown", hl.dsp.exec_raw("omarchy-brightness-keyboard down"),
|
||||
{ locked = true, repeating = true, description = "Keyboard brightness down" })
|
||||
hl.bind("XF86KbdLightOnOff", hl.dsp.exec_raw("omarchy-brightness-keyboard cycle"),
|
||||
{ locked = true, description = "Keyboard backlight cycle" })
|
||||
hl.bind("XF86TouchpadToggle", hl.dsp.exec_raw("omarchy-toggle-touchpad"),
|
||||
{ description = "Toggle touchpad", locked = true })
|
||||
hl.bind("XF86TouchpadOn", hl.dsp.exec_raw("omarchy-toggle-touchpad on"),
|
||||
{ locked = true, description = "Enable touchpad" })
|
||||
hl.bind("XF86TouchpadOff", hl.dsp.exec_raw("omarchy-toggle-touchpad off"),
|
||||
{ locked = true, description = "Disable touchpad" })
|
||||
|
||||
-- Precise volume and brightness controls.
|
||||
hl.bind("ALT + XF86AudioRaiseVolume",
|
||||
hl.dsp.exec_raw("omarchy-audio-output-volume +1"),
|
||||
{ locked = true, repeating = true, description = "Volume up precise" })
|
||||
hl.bind("ALT + XF86AudioLowerVolume",
|
||||
hl.dsp.exec_raw("omarchy-audio-output-volume -1"),
|
||||
{ locked = true, repeating = true, description = "Volume down precise" })
|
||||
hl.bind("ALT + XF86MonBrightnessUp",
|
||||
hl.dsp.exec_raw("omarchy-brightness-display +1%"),
|
||||
{ locked = true, repeating = true, description = "Brightness up precise" })
|
||||
hl.bind("ALT + XF86MonBrightnessDown",
|
||||
hl.dsp.exec_raw("omarchy-brightness-display 1%-"),
|
||||
{ locked = true, repeating = true, description = "Brightness down precise" })
|
||||
|
||||
-- Media controls.
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_raw("omarchy-shell media next"), { locked = true, description = "Next track" })
|
||||
hl.bind("ALT + XF86AudioPlay", hl.dsp.exec_raw("omarchy-shell media next"), { locked = true, description = "Next track" })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_raw("omarchy-shell media playPause"), { locked = true, description = "Pause" })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_raw("omarchy-shell media playPause"), { locked = true, description = "Play" })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_raw("omarchy-shell media previous"),
|
||||
{ locked = true, description = "Previous track" })
|
||||
hl.bind("ALT + SHIFT + XF86AudioPlay", hl.dsp.exec_raw("omarchy-shell media previous"),
|
||||
{ locked = true, description = "Previous track" })
|
||||
hl.bind("XF86Eject", hl.dsp.exec_raw("eject"), { locked = true, description = "Eject media" })
|
||||
|
||||
hl.bind("SHIFT + XF86AudioMute", hl.dsp.exec_raw("omarchy-audio-output-switch"),
|
||||
{ locked = true, description = "Switch audio output" })
|
||||
hl.bind("SHIFT + XF86AudioPause", hl.dsp.exec_raw("omarchy-audio-source-switch"),
|
||||
{ locked = true, description = "Switch media source" })
|
||||
hl.bind("SHIFT + XF86AudioPlay", hl.dsp.exec_raw("omarchy-audio-source-switch"),
|
||||
{ locked = true, description = "Switch media source" })
|
||||
|
||||
hl.bind(sjb.HYPR .. "L", hl.dsp.exec_raw("omarchy-system-lock"), { description = "Lock system" })
|
||||
@@ -14,7 +14,9 @@ hl.window_rule({
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = { class = "quicknotes" },
|
||||
match = {
|
||||
class = "(quicknotes|capture|agenda)"
|
||||
},
|
||||
tag = "+floating-window"
|
||||
})
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
hl.bind("SUPER + CTRL + I", hl.dsp.exec_raw("omarchy-toggle-idle"), { description = "Toggle locking on idle" })
|
||||
hl.bind("SUPER + CTRL + N", hl.dsp.exec_raw("omarchy-toggle-nightlight"), { description = "Toggle nightlight" })
|
||||
|
||||
hl.bind("SUPER + CTRL + Delete", hl.dsp.exec_raw("omarchy-hyprland-monitor-internal toggle"),
|
||||
{ description = "Toggle laptop display" })
|
||||
hl.bind("SUPER + CTRL + ALT + Delete", hl.dsp.exec_raw("omarchy-hyprland-monitor-internal-mirror toggle"),
|
||||
{ description = "Toggle laptop display mirroring" })
|
||||
|
||||
hl.bind("switch:on:Lid Switch", hl.dsp.exec_raw("omarchy-system-lid-close"), { locked = true, description = nil })
|
||||
hl.bind("switch:off:Lid Switch", hl.dsp.exec_raw("omarchy-hyprland-monitor-clamshell"),
|
||||
{ locked = true, description = nil })
|
||||
|
||||
hl.bind("PRINT", hl.dsp.exec_raw("omarchy-capture-screenshot"), { description = "Screenshot" })
|
||||
hl.bind("ALT + PRINT",
|
||||
hl.dsp.exec_raw(
|
||||
"omarchy-capture-screenrecording --stop-recording || omarchy-menu toggle trigger.capture.screenrecord"),
|
||||
{ description = "Screenrecording" })
|
||||
hl.bind("SUPER + ALT + code:34", hl.dsp.exec_raw("omarchy-capture-webcam-resize smaller"),
|
||||
{ description = "Make webcam overlay smaller" })
|
||||
hl.bind("SUPER + ALT + code:35", hl.dsp.exec_raw("omarchy-capture-webcam-resize larger"),
|
||||
{ description = "Make webcam overlay larger" })
|
||||
hl.bind("SUPER + PRINT", hl.dsp.exec_raw("pkill hyprpicker || hyprpicker -a"), { description = "Color picker" })
|
||||
hl.bind("SUPER + CTRL + PRINT", hl.dsp.exec_raw("omarchy-capture-text"),
|
||||
{ description = "Extract text (OCR) from screenshot" })
|
||||
|
||||
-- Keyboard control for the slurp region picker (see omarchy-capture-region).
|
||||
-- The binds live exactly as long as a selection layer is on screen (slurp
|
||||
-- opens one per monitor), so they cannot leak or get stuck.
|
||||
-- Unbinding by key would take a same-key binding out of the user's own config
|
||||
-- with it, so each handle is kept and removed individually.
|
||||
local selection_layers = 0
|
||||
local selection_binds = {}
|
||||
|
||||
hl.on("layer.opened", function(layer)
|
||||
if layer.namespace == "selection" then
|
||||
selection_layers = selection_layers + 1
|
||||
if selection_layers == 1 then
|
||||
selection_binds = {
|
||||
hl.bind("RETURN", hl.dsp.exec_cmd("omarchy-capture-region --take-window"),
|
||||
{ description = "Capture highlighted window" }),
|
||||
hl.bind("CTRL + RETURN", hl.dsp.exec_cmd("omarchy-capture-region --take-fullscreen"),
|
||||
{ description = "Capture entire screen" }),
|
||||
hl.bind("TAB", hl.dsp.exec_cmd("omarchy-capture-region --select-window next"),
|
||||
{ description = "Select next window to capture" }),
|
||||
hl.bind("CTRL + TAB", hl.dsp.exec_cmd("omarchy-capture-region --select-window prev"),
|
||||
{ description = "Select previous window to capture" }),
|
||||
}
|
||||
for _, direction in ipairs({ "left", "right", "up", "down" }) do
|
||||
table.insert(
|
||||
selection_binds,
|
||||
hl.bind(direction:upper(), hl.dsp.exec_cmd("omarchy-capture-region --select-window " .. direction),
|
||||
{ description = "Select window to capture" })
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hl.on("layer.closed", function(layer)
|
||||
if layer.namespace == "selection" and selection_layers > 0 then
|
||||
selection_layers = selection_layers - 1
|
||||
if selection_layers == 0 then
|
||||
for _, keybind in ipairs(selection_binds) do
|
||||
keybind:unbind()
|
||||
end
|
||||
selection_binds = {}
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hl.bind("SUPER + CTRL + S", hl.dsp.exec_raw("omarchy-menu toggle share"), { description = "Share" })
|
||||
|
||||
hl.bind("SUPER + CTRL + PERIOD", hl.dsp.exec_raw("omarchy-transcode"), { description = "Transcode" })
|
||||
|
||||
hl.bind("SUPER + CTRL + R", hl.dsp.exec_raw("omarchy-menu toggle reminder-set"), { description = "Set reminder" })
|
||||
hl.bind("SUPER + CTRL + ALT + R", hl.dsp.exec_raw("omarchy-reminder show"), { description = "Show reminders" })
|
||||
hl.bind("SUPER + SHIFT + CTRL + R", hl.dsp.exec_raw("omarchy-reminder clear"), { description = "Clear reminders" })
|
||||
|
||||
hl.bind("SUPER + CTRL + ALT + T", hl.dsp.exec_raw("omarchy-notification-time"), { description = "Show time" })
|
||||
hl.bind("SUPER + CTRL + ALT + B", hl.dsp.exec_raw("omarchy-notification-battery"),
|
||||
{ description = "Show battery remaining" })
|
||||
hl.bind("SUPER + CTRL + ALT + W", hl.dsp.exec_raw("omarchy-notification-weather"), { description = "Toggle weather" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + CTRL + A", hl.dsp.exec_raw("omarchy-agent --pick"), { description = "Agent" })
|
||||
hl.bind("SUPER + CTRL + A", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.audio"), { description = "Audio" })
|
||||
hl.bind("SUPER + CTRL + B", hl.dsp.exec_raw("omarchy-shell shell tnoggle omarchy.bluetooth"),
|
||||
{ description = "Bluetooth" })
|
||||
hl.bind("SUPER + CTRL + D", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.monitor"), { description = "Display" })
|
||||
hl.bind("SUPER + CTRL + ALT + D", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.clock"),
|
||||
{ description = "Calendar" })
|
||||
hl.bind("SUPER + CTRL + W", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.network"), { description = "Network" })
|
||||
hl.bind("SUPER + CTRL + P", hl.dsp.exec_raw("omarchy-shell shell toggle omarchy.power"), { description = "Power" })
|
||||
|
||||
-- The letters above name a panel; the numbers count them. 1 is the leftmost
|
||||
-- panel in the bar's right section, and a widget with no panel of its own (the
|
||||
-- tray) is not counted, so the number matches the icon a user would point at.
|
||||
-- A bar with fewer panels than this leaves the tail of the range doing nothing.
|
||||
for panel = 1, 9 do
|
||||
hl.bind(
|
||||
"SUPER + CTRL + code:" .. tostring(panel + 9),
|
||||
hl.dsp.exec_raw("omarchy-shell -q shell togglePanelAt right " .. panel),
|
||||
{ description = "Bar panel " .. panel }
|
||||
)
|
||||
end
|
||||
hl.bind("SUPER + CTRL + Z", function()
|
||||
local zoom = hl.get_config("cursor.zoom_factor") or 1
|
||||
hl.config({ cursor = { zoom_factor = zoom + 1 } })
|
||||
end, { description = "Zoom in" })
|
||||
|
||||
hl.bind("SUPER + CTRL + ALT + Z", function()
|
||||
hl.config({ cursor = { zoom_factor = 1 } })
|
||||
end, { description = "Reset zoom" })
|
||||
@@ -1,4 +1,4 @@
|
||||
config_version = "0.0.25"
|
||||
config_version = "0.0.27"
|
||||
|
||||
[transcription]
|
||||
provider = "whisper"
|
||||
@@ -21,7 +21,7 @@ x = 630
|
||||
y = 790
|
||||
|
||||
[output.paste]
|
||||
paste_key = "ctrl+shift+v"
|
||||
#paste_key = "ctrl+shift+v"
|
||||
restore_clipboard = true
|
||||
restore_delay_ms = 750
|
||||
post_popup_delay_ms = 1000
|
||||
@@ -0,0 +1,75 @@
|
||||
engine = "whisper"
|
||||
[hotkey]
|
||||
enable = false
|
||||
key = "HOME"
|
||||
mode = "push_to_talk"
|
||||
enabled = true
|
||||
|
||||
[output]
|
||||
mode = "type"
|
||||
fallback_to_clipboard = true
|
||||
auto_submit = false
|
||||
shift_enter_newlines = false
|
||||
pre_type_delay_ms = 0
|
||||
|
||||
[output.notification]
|
||||
on_recording_start = false
|
||||
on_recording_stop = false
|
||||
on_transcription = true
|
||||
show_engine_icon = false
|
||||
|
||||
[osd]
|
||||
enabled = true
|
||||
frontend = "native"
|
||||
style = "aegis-hud"
|
||||
layout = "tile"
|
||||
position = "top-center"
|
||||
width_px = 400
|
||||
height_px = 48
|
||||
margin_px = 24
|
||||
top_margin = 0.85
|
||||
opacity = 0.95
|
||||
waveform_window_secs = 3.0
|
||||
peak_decay_db_per_sec = 6.0
|
||||
waveform_gain = 10.0
|
||||
|
||||
[audio]
|
||||
device = "default"
|
||||
max_duration_secs = 120
|
||||
pause_media = false
|
||||
duck_media = false
|
||||
duck_media_volume_percent = 34
|
||||
duck_media_fade_ms = 150
|
||||
|
||||
[audio.feedback]
|
||||
enabled = false
|
||||
theme = "default"
|
||||
volume = 0.699999988079071
|
||||
|
||||
[whisper]
|
||||
model = "base.en"
|
||||
mode = "local"
|
||||
language = "auto"
|
||||
translate = false
|
||||
flash_attention = false
|
||||
on_demand_loading = false
|
||||
gpu_isolation = false
|
||||
|
||||
[text]
|
||||
spoken_punctuation = false
|
||||
smart_auto_submit = false
|
||||
|
||||
[vad]
|
||||
enabled = true
|
||||
backend = "auto"
|
||||
threshold = 0.5
|
||||
|
||||
[meeting]
|
||||
enabled = false
|
||||
|
||||
[meeting.diarization]
|
||||
enabled = false
|
||||
|
||||
[meeting.audio]
|
||||
source = "mic"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user