Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93b4f695ce | ||
|
|
2fa113cd15 | ||
|
|
9fc7854751 | ||
|
|
e65d8e597a | ||
|
|
4f5054ed0d | ||
|
|
d8f6b30e2c | ||
|
|
ed7e34552d | ||
|
|
3ec2503f38 | ||
|
|
1e39e0cb4b |
No files matched your search
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fzf="fzf --preview color='always {}'"
|
||||
alias pacs="sudo pacman -Syu"
|
||||
alias nmaps="sudo nmap -sn 192.168.0.0/24"
|
||||
alias mem="df -H --output=source,size,used,avail | grep 480G | sort -u"
|
||||
alias kittyimg="kitten icat"
|
||||
alias vpn="sudo wg-quick up wg0"
|
||||
alias vpnoff="sudo wg-quick down wg0"
|
||||
alias xremaps="sudo xremap ~/.config/xremap/config.yml"
|
||||
alias llama="~/projects/llama.cpp/build/bin/llama-server -m /home/anon/projects/llama.cpp/models/Llama-3.2-3B-Instruct-F16.gguf"
|
||||
alias dots="cd ~/.dotfiles/.config/ && nvim"
|
||||
alias aliases="bat ~/.config/fish/config.fish"
|
||||
|
||||
# List Directory
|
||||
alias ls="lsd"
|
||||
alias l="ls -l"
|
||||
alias la="ls -a"
|
||||
alias lla="ls -la"
|
||||
alias lt="ls --tree"
|
||||
|
||||
# Git
|
||||
alias gs='git status'
|
||||
alias gca='git add -p . && git commit'
|
||||
alias gd="git diff --word-diff"
|
||||
alias gl='git log --graph --show-signature'
|
||||
alias gla="git log --all --decorate --oneline --graph"
|
||||
alias gm='git merge'
|
||||
alias gis='git status'
|
||||
|
||||
PS1='[\u@\h \W]\$'
|
||||
set -o vi
|
||||
|
||||
eval "$(zoxide init --cmd cd bash)"
|
||||
@@ -1,3 +0,0 @@
|
||||
greet.txt
|
||||
fish_variables
|
||||
secrets.fish
|
||||
@@ -1,27 +0,0 @@
|
||||
# see https://github.com/sigoden/aichat/blob/main/config.example.yaml
|
||||
keybindings: vi
|
||||
editor: nvim
|
||||
model: duskadiy:Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
clients:
|
||||
- type: openai-compatible
|
||||
name: local
|
||||
api_base: http://192.168.0.204:11343/v1
|
||||
models:
|
||||
- name: Qwen3.5-27B-UD-Q3_K_XL
|
||||
- name: Qwen3.5-9B-Q8_0
|
||||
- name: Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
- name: GLM-4.7-Flash-UD-Q3_K_XL
|
||||
- name: DeepSeek-Coder-V2-Lite-Instruct-Q8_0
|
||||
- name: gemma-4-E4B-it-UD-Q8_K_XL
|
||||
- name: gemma-4-26B-A4B-it-UD-IQ4_XS
|
||||
- type: openai-compatible
|
||||
name: duskadiy
|
||||
api_base: https://llm.duskadiy.com/api/v1
|
||||
models:
|
||||
- name: Qwen3.5-27B-UD-Q3_K_XL
|
||||
- name: Qwen3.5-9B-Q8_0
|
||||
- name: Qwen3-Coder-30B-Instruct-IQ4_XS
|
||||
- name: GLM-4.7-Flash-UD-Q3_K_XL
|
||||
- name: DeepSeek-Coder-V2-Lite-Instruct-Q8_0
|
||||
- name: gemma-4-E4B-it-UD-Q8_K_XL
|
||||
- name: gemma-4-26B-A4B-it-UD-IQ4_XS
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,40 +0,0 @@
|
||||
|
||||
2024/11/19 (20:36:51) | ===> btop++ v.1.4.0
|
||||
2024/11/19 (20:36:51) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
2024/11/19 (20:37:28) | INFO: Logger set to INFO
|
||||
|
||||
2024/11/26 (00:47:27) | ===> btop++ v.1.4.0
|
||||
2024/11/26 (00:47:27) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2024/11/26 (00:47:32) | ===> btop++ v.1.4.0
|
||||
2024/11/26 (00:47:32) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2024/12/16 (20:32:28) | ===> btop++ v.1.4.0
|
||||
2024/12/16 (20:32:28) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/01/06 (01:34:00) | ===> btop++ v.1.4.0
|
||||
2025/01/06 (01:34:00) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/02/23 (01:19:32) | ===> btop++ v.1.4.0
|
||||
2025/02/23 (01:19:32) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/12 (19:08:38) | ===> btop++ v.1.4.0
|
||||
2025/03/12 (19:08:38) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/13 (00:34:24) | ===> btop++ v.1.4.0
|
||||
2025/03/13 (00:34:24) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/19 (17:51:06) | ===> btop++ v.1.4.0
|
||||
2025/03/19 (17:51:06) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/22 (05:43:25) | ===> btop++ v.1.4.0
|
||||
2025/03/22 (05:43:25) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/22 (05:43:39) | ===> btop++ v.1.4.0
|
||||
2025/03/22 (05:43:39) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/24 (02:13:29) | ===> btop++ v.1.4.0
|
||||
2025/03/24 (02:13:29) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
|
||||
2025/03/25 (22:21:48) | ===> btop++ v.1.4.0
|
||||
2025/03/25 (22:21:48) | WARNING: Intel GPU: Failed to initialize PMU
|
||||
@@ -1,13 +0,0 @@
|
||||
|
||||
[color]
|
||||
|
||||
gradient = 1
|
||||
gradient_count = 8
|
||||
gradient_color_1 = '#332952'
|
||||
gradient_color_2 = '#463A6B'
|
||||
gradient_color_3 = '#7D4B5F'
|
||||
gradient_color_4 = '#8F576D'
|
||||
gradient_color_5 = '#A36578'
|
||||
gradient_color_6 = '#C27A90'
|
||||
gradient_color_7 = '#E69A9D'
|
||||
gradient_color_8 = '#F0AAAD'
|
||||
@@ -1,11 +0,0 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#81c8be'
|
||||
gradient_color_2 = '#99d1db'
|
||||
gradient_color_3 = '#85c1dc'
|
||||
gradient_color_4 = '#8caaee'
|
||||
gradient_color_5 = '#ca9ee6'
|
||||
gradient_color_6 = '#f4b8e4'
|
||||
gradient_color_7 = '#ea999c'
|
||||
gradient_color_8 = '#e78284'
|
||||
@@ -1,13 +0,0 @@
|
||||
[color]
|
||||
background = '#303446'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#81c8be'
|
||||
gradient_color_2 = '#99d1db'
|
||||
gradient_color_3 = '#85c1dc'
|
||||
gradient_color_4 = '#8caaee'
|
||||
gradient_color_5 = '#ca9ee6'
|
||||
gradient_color_6 = '#f4b8e4'
|
||||
gradient_color_7 = '#ea999c'
|
||||
gradient_color_8 = '#e78284'
|
||||
@@ -1,11 +0,0 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#179299'
|
||||
gradient_color_2 = '#04a5e5'
|
||||
gradient_color_3 = '#209fb5'
|
||||
gradient_color_4 = '#1e66f5'
|
||||
gradient_color_5 = '#8839ef'
|
||||
gradient_color_6 = '#ea76cb'
|
||||
gradient_color_7 = '#e64553'
|
||||
gradient_color_8 = '#d20f39'
|
||||
@@ -1,13 +0,0 @@
|
||||
[color]
|
||||
background = '#eff1f5'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#179299'
|
||||
gradient_color_2 = '#04a5e5'
|
||||
gradient_color_3 = '#209fb5'
|
||||
gradient_color_4 = '#1e66f5'
|
||||
gradient_color_5 = '#8839ef'
|
||||
gradient_color_6 = '#ea76cb'
|
||||
gradient_color_7 = '#e64553'
|
||||
gradient_color_8 = '#d20f39'
|
||||
@@ -1,11 +0,0 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#8bd5ca'
|
||||
gradient_color_2 = '#91d7e3'
|
||||
gradient_color_3 = '#7dc4e4'
|
||||
gradient_color_4 = '#8aadf4'
|
||||
gradient_color_5 = '#c6a0f6'
|
||||
gradient_color_6 = '#f5bde6'
|
||||
gradient_color_7 = '#ee99a0'
|
||||
gradient_color_8 = '#ed8796'
|
||||
@@ -1,13 +0,0 @@
|
||||
[color]
|
||||
background = '#24273a'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#8bd5ca'
|
||||
gradient_color_2 = '#91d7e3'
|
||||
gradient_color_3 = '#7dc4e4'
|
||||
gradient_color_4 = '#8aadf4'
|
||||
gradient_color_5 = '#c6a0f6'
|
||||
gradient_color_6 = '#f5bde6'
|
||||
gradient_color_7 = '#ee99a0'
|
||||
gradient_color_8 = '#ed8796'
|
||||
@@ -1,11 +0,0 @@
|
||||
[color]
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -1,13 +0,0 @@
|
||||
[color]
|
||||
background = '#1e1e2e'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#94e2d5'
|
||||
gradient_color_2 = '#89dceb'
|
||||
gradient_color_3 = '#74c7ec'
|
||||
gradient_color_4 = '#89b4fa'
|
||||
gradient_color_5 = '#cba6f7'
|
||||
gradient_color_6 = '#f5c2e7'
|
||||
gradient_color_7 = '#eba0ac'
|
||||
gradient_color_8 = '#f38ba8'
|
||||
@@ -1 +0,0 @@
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
@@ -1,93 +0,0 @@
|
||||
set -gx QT_FONT_DPI 96
|
||||
set -gx EDITOR nvim
|
||||
set -gx PAGER less
|
||||
set -gx PATH "/run/user/1000/fnm_multishells/14287_1763490645306/bin" $PATH;
|
||||
set -gx FNM_MULTISHELL_PATH "/run/user/1000/fnm_multishells/14287_1763490645306";
|
||||
set -gx FNM_VERSION_FILE_STRATEGY "local";
|
||||
set -gx FNM_DIR "/home/anon/.local/share/fnm";
|
||||
set -gx FNM_LOGLEVEL "info";
|
||||
set -gx FNM_NODE_DIST_MIRROR "https://nodejs.org/dist";
|
||||
set -gx FNM_COREPACK_ENABLED "false";
|
||||
set -gx FNM_RESOLVE_ENGINES "true";
|
||||
set -gx FNM_ARCH "x64";
|
||||
set -Ux MANPAGER "nvim +Man!"
|
||||
# set -gx DUSKADIY_API_KEY "*****"
|
||||
set -x NEWT_COLORS 'root=black,black;window=black,black;border=white,black;listbox=white,black;label=blue,black;checkbox=red,black;title=green,black;button=white,red;actsellistbox=white,red;actlistbox=white,gray;compactbutton=white,gray;actcheckbox=white,blue;entry=lightgray,black;textbox=blue,black' nmtui
|
||||
# set -gx BAT_THEME "Catppuccin Mocha"
|
||||
|
||||
alias dmz="cat ~/.config/fish/dmz.txt"
|
||||
alias matrix="~/projects/random-clones/matrix/matrix"
|
||||
alias nmatrix="neo-matrix -DS 3"
|
||||
|
||||
# LLMs
|
||||
alias llamasrv="~/projects/pkgs/llama.cpp/build/bin/llama-server"
|
||||
abbr llamastart "llamasrv --host 0.0.0.0 --port 11343 --models-max 3 --models-preset ~/Documents/models/config.ini"
|
||||
|
||||
# Shorts
|
||||
alias fzf="fzf --multi --preview 'bat --style=numbers --color=always {}' | xargs -n 1 nvim"
|
||||
alias grep="grep --color=auto"
|
||||
|
||||
# Git
|
||||
alias gs="git status --short"
|
||||
alias gca="git add -p . && git commit"
|
||||
alias gd="git diff --word-diff"
|
||||
alias gl="git log --graph --show-signature"
|
||||
alias gla="git log --all --decorate --oneline --graph"
|
||||
alias gls="serie"
|
||||
alias gm="git merge"
|
||||
alias gm="git merge"
|
||||
|
||||
# List Directory
|
||||
alias ls="lsd"
|
||||
alias l="ls -l"
|
||||
alias la="ls -a"
|
||||
alias lla="ls -la"
|
||||
alias lt="ls --tree"
|
||||
|
||||
alias cdots="cd ~/.dotfiles/.config/"
|
||||
alias cpnotes="cd ~/sync/PersonalNotes/"
|
||||
abbr dots "cdots && nvim"
|
||||
abbr pnotes "cpnotes && nvim"
|
||||
abbr todo "cpnotes && nvim ToDoNext.md"
|
||||
|
||||
abbr cat "bat -p"
|
||||
abbr copy "wl-copy"
|
||||
abbr img "kitten icat"
|
||||
abbr fm "yazi" ## file manager
|
||||
abbr lg "lazygit"
|
||||
abbr mkdir "mkdir -p"
|
||||
abbr faillock "sudo faillock --reset"
|
||||
abbr ipadd "sudo ip route add 192.168.0.234 dev wg0"
|
||||
abbr xremaps "sudo xremap --watch ~/.config/xremap/config.yml"
|
||||
abbr pacs "sudo pacman -Syu --noconfirm"
|
||||
abbr yays "yay --noconfirm --sudoloop"
|
||||
abbr nmaps "sudo nmap -sn 192.168.0.0/24"
|
||||
abbr scrcpyc 'scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close'
|
||||
abbr scrcpys 'scrcpy -wS --power-off-on-close'
|
||||
abbr aliases "bat ~/.config/fish/config.fish"
|
||||
abbr tts "tt -notheme -bold -showwpm -json"
|
||||
|
||||
# Handy change dir shortcuts
|
||||
abbr .. "cd .."
|
||||
abbr ... "cd ../.."
|
||||
abbr .3 "cd ../../.."
|
||||
abbr .4 "cd ../../../.."
|
||||
abbr .5 "cd ../../../../.."
|
||||
|
||||
|
||||
zoxide init --cmd cd fish | source
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
thefuck --alias | source
|
||||
|
||||
# Created by `pipx` on 2025-05-31 20:14:06
|
||||
set PATH $PATH /home/anon/.local/bin
|
||||
|
||||
# pnpm
|
||||
set -gx PNPM_HOME "/home/anon/.local/share/pnpm"
|
||||
if not string match -q -- $PNPM_HOME $PATH
|
||||
set -gx PATH "$PNPM_HOME" $PATH
|
||||
end
|
||||
# pnpm end
|
||||
|
||||
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
@@ -1,7 +0,0 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR --export EDITOR:nvim
|
||||
SETUVAR --export MANPAGER:nvim\x20\x2bMan\x21
|
||||
SETUVAR --export MANROFFOPT:\x2dP\x20\x2dc
|
||||
SETUVAR TMP:/tmp/tmp\x2eYYqSsNsses
|
||||
SETUVAR __fish_initialized:4300
|
||||
@@ -1,3 +0,0 @@
|
||||
function ask --description 'answer from cht.sh'
|
||||
curl -s https://cht.sh/$(string join '+' $argv[1..])
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
function askllama --description 'answer from llama'
|
||||
~/projects/pkgs/llama.cpp/build/bin/llama-simple -m ~/Documents/models/Qwen3-4B-Instruct-2507.Q4_K_M.gguf $(string join '+' $argv[1..])
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
function clis --description 'fzf select cli'
|
||||
eval (string split "\n" (cat $HOME/.config/misc/clis.txt) | bashs "fzf --multi")
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
function fish_greeting
|
||||
#curl "wttr.in/Belgrade?format=%l:+%c+%t+|+%h+|+%w+|+(%%M+%m)\n"
|
||||
cat ~/.config/fish/greet.txt ## populated by cronjob
|
||||
date +"📅 %d. %b 🕗 %H:%M - %A"
|
||||
end
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
function opencodes --description 'bubblewraped opencode'
|
||||
bwrap --unshare-all \
|
||||
--new-session \
|
||||
--clearenv \
|
||||
--die-with-parent \
|
||||
--share-net \
|
||||
--dev /dev \
|
||||
--proc /proc \
|
||||
--ro-bind /usr /usr \
|
||||
--ro-bind /lib /lib \
|
||||
--ro-bind /lib64 /lib64 \
|
||||
--ro-bind /bin /bin \
|
||||
--ro-bind /etc /etc \
|
||||
--ro-bind ~/.config/opencode ~/.config/opencode \
|
||||
--tmpfs /tmp/node-compile-cache \
|
||||
--bind ~/.local/state/opencode ~/.local/state/opencode \
|
||||
--bind ~/.local/share/opencode ~/.local/share/opencode \
|
||||
--bind "$(pwd)" "$(pwd)" \
|
||||
opencode
|
||||
end
|
||||
# strace -f -e trace=%file opencode
|
||||
@@ -1,3 +0,0 @@
|
||||
function sshf --description 'fzf select for ssh hosts'
|
||||
ssh $(grep Host -w ~/.ssh/config | awk '{print $2}' | bashs "fzf --multi")
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
function tuis --description 'fzf select tui'
|
||||
eval (string split "\n" (cat $HOME/.config/misc/tuis.txt) | bashs "fzf --multi")
|
||||
end
|
||||
@@ -1,23 +0,0 @@
|
||||
# This file is generated by wallbash:animations.dcol
|
||||
|
||||
# // ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||
# // █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Animations/
|
||||
# credits: https://github.com/prasanthrangan/hyprdots
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||
bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||
bezier = winOut, 0.3, -0.3, 0, 1
|
||||
bezier = liner, 1, 1, 1, 1
|
||||
animation = windows, 1, 6, wind, slide
|
||||
animation = windowsIn, 1, 6, winIn, slide
|
||||
animation = windowsOut, 1, 5, winOut, slide
|
||||
animation = windowsMove, 1, 5, wind, slide
|
||||
animation = border, 1, 1, liner
|
||||
animation = borderangle, 1, 30, liner, once
|
||||
animation = fade, 1, 10, default
|
||||
animation = workspaces, 1, 5, wind
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get the current battery percentage
|
||||
battery_percentage=$(cat /sys/class/power_supply/BAT0/capacity)
|
||||
|
||||
# Get the battery status (Charging or Discharging)
|
||||
battery_status=$(cat /sys/class/power_supply/BAT0/status)
|
||||
|
||||
# Define the battery icons for each 10% segment
|
||||
battery_icons=("" "" "" "" "" "" "" "" "" "")
|
||||
|
||||
# Define the charging icon
|
||||
charging_icon=""
|
||||
|
||||
# Calculate the index for the icon array
|
||||
icon_index=$((battery_percentage / 10))
|
||||
|
||||
# Get the corresponding icon
|
||||
battery_icon=${battery_icons[icon_index]}
|
||||
|
||||
# Check if the battery is charging
|
||||
if [ "$battery_status" = "Charging" ]; then
|
||||
battery_icon="$charging_icon"
|
||||
fi
|
||||
|
||||
# Output the battery percentage and icon
|
||||
echo "$battery_percentage% $battery_icon"
|
||||
@@ -1,42 +0,0 @@
|
||||
#! ░▒▒▒░░░▓▓ ___________
|
||||
#! ░░▒▒▒░░░░░▓▓ //___________/
|
||||
#! ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
|
||||
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
|
||||
#! ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
|
||||
#! ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
|
||||
#! ░▒▓▓ ▓▓ //____/
|
||||
|
||||
# $LOCKSCREEN = hyprlock # preferred LOCKSCREEN e.g swaylock
|
||||
$LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland
|
||||
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
on_unlock_cmd = bash -c 'notify-send "Welcome back!"'
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 180
|
||||
on-timeout = bash -c 'brightnessctl -s set 50'
|
||||
on-resume = bash -c 'brightnessctl -r'
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 250 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 350 # 3.6 minutes
|
||||
on-timeout = bash -c 'brightnessctl -r; brightnessctl -s set 10; brightnessctl -d tpacpi::kbd_backlight set 0; hyprctl dispatch dpms off'
|
||||
on-resume = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
|
||||
}
|
||||
|
||||
|
||||
listener {
|
||||
timeout = 550 # 5.5min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
#! █░█ █▄█ █▀█ █▀█ █░░ █▀█ █▀▀ █▄▀
|
||||
#! █▀█ ░█░ █▀▀ █▀▄ █▄▄ █▄█ █▄▄ █░█
|
||||
|
||||
#* Hyprlock Configuration File
|
||||
|
||||
$fontColor = rgba(255,255,255,0.5)
|
||||
$fontFamily = SourceCodeVF ExtraBold
|
||||
$timeFontFamily = Cantarell ExtraBold
|
||||
|
||||
general {
|
||||
no_fade_in = true
|
||||
grade = 1
|
||||
ignore_empty_input = true
|
||||
text_trim = true
|
||||
fade_in_time = 0.8
|
||||
disable_loading_bar = 0
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = ~/sync/Drive/pics/foss-world-crop.png
|
||||
blur_passes = 2
|
||||
blur_size = 4
|
||||
contrast = 0.7
|
||||
brightness = 0.3
|
||||
vibrancy = 0.15
|
||||
vibrancy_darkness = 0.5
|
||||
}
|
||||
|
||||
image {
|
||||
monitor =
|
||||
path = ~/sync/Drive/pics/matrixom-crop.png
|
||||
position = 0, 80
|
||||
reload_time = -1
|
||||
reload_cmd =
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
position = 0, -60
|
||||
outline_thickness = 3
|
||||
dots_size = 0.08
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = rgba(0,0,0,0.1)
|
||||
inner_color = $fontColor
|
||||
fade_on_empty = true
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] echo "<span alpha='40%'>$(uptime -p)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 15
|
||||
position = 0, 350
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:300000] echo "<span alpha='50%'>$(cat ~/.config/fish/greet.txt)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 14
|
||||
position = 0, 310
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span alpha='50%'>$(date +"%H:%M")</span>"
|
||||
color = $fontColor
|
||||
font_family = $timeFontFamily
|
||||
font_size = 120
|
||||
position = 0, -180
|
||||
animation = pulse 2s infinite
|
||||
opacity = 0.5
|
||||
shadow_passes = 1
|
||||
shadow_size = 1
|
||||
shadow_color = rgba(0, 0, 0, 0.5)
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span alpha='50%'>$(LC_TIME=en_US.UF-8 date +'%A, %B %d')</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 25
|
||||
position = 0, -300
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "<span alpha='50%'>$(~/.config/hypr/battery.sh)</span>"
|
||||
color = $fontColor
|
||||
font_family = $fontFamily
|
||||
font_size = 14
|
||||
position = -50, 30
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
color = $fontColor
|
||||
text = cmd[] echo "<span alpha='50%'>⏻ </span>"
|
||||
font-size=24
|
||||
onclick = systemctl poweroff
|
||||
position = 50, 30
|
||||
halign = left
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
# ░▒▒▒░░░░░▓▓ ___________
|
||||
# ░░▒▒▒░░░░░▓▓ //___________/
|
||||
# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
|
||||
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
|
||||
# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
|
||||
# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
|
||||
# ░▒▓▓ ▓▓ //____/
|
||||
|
||||
$fontFamily = JetBrainsMono Nerd Font # We already have this font installed
|
||||
|
||||
# Resolving custom fonts
|
||||
# Provide the font name and the download link separated by a pipe |
|
||||
# Run font.sh resolve $LAYOUT_PATH to install the font
|
||||
$resolve.font=Anurati|https://font.download/dl/font/anurati.zip
|
||||
$resolve.font=Inter|https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip
|
||||
|
||||
background {
|
||||
monitor =
|
||||
color = $wallbash_pry1_rgba
|
||||
path = $BACKGROUND_PATH
|
||||
blur_size = 4
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
noise = 0.0117
|
||||
contrast = 1.3000 # Vibrant!!!
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# DAY
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%A" | sed 's/./& /g' | tr '[:lower:]' '[:upper:]')" # Add a thin space between each character
|
||||
color = $wallbash_1xa9_rgba
|
||||
font_size = 110 # Wednesday is too long
|
||||
font_family = Anurati
|
||||
position = 0, 100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%B %d")"
|
||||
color = $wallbash_2xa9_rgba
|
||||
font_size = 35
|
||||
font_family = $font_family Thin
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%-I:%M %p")"
|
||||
#text = $TIME
|
||||
color = $wallbash_txt1_rgba
|
||||
font_size = 20 #!
|
||||
font_family = $font_family
|
||||
position = 0, 150
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 200, 50 #!
|
||||
outline_thickness = 3
|
||||
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||
outer_color = $wallbash_pry4_rgba
|
||||
inner_color = $wallbash_pry2_rgba
|
||||
font_color = $wallbash_3xa9_rgba
|
||||
fade_on_empty = true
|
||||
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||
check_color = $wallbash_pry4_rgba
|
||||
fail_color = rgba(FF0000FF) # if authentication failed, changes outer_color and fail message color
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||
capslock_color = -1
|
||||
numlock_color = -1
|
||||
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||
invert_numlock = false # change color if numlock is off
|
||||
swap_font_color = true # see below
|
||||
position = 0, 80
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
#User tag
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = Inter Display Medium
|
||||
position = 0, 30
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
# Battery Status if present
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] $BATTERY_ICON
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
position = -1%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Keyboard Layout
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $KEYBOARD_LAYOUT
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = Inter Display Medium
|
||||
position = -2%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
@@ -1,158 +0,0 @@
|
||||
# Hyprclouds from Arfan on Clouds
|
||||
# By: Arfan on Clouds https://github.com/arfan-on-clouds/hyprclouds
|
||||
# Modified by: The HyDE Project
|
||||
|
||||
$resolve.font=SF Pro Display|https://font.download/dl/font/sf-pro-display.zip
|
||||
$resolve.font=AlfaSlabOne|https://font.download/dl/font/alfa-slab-one.zip
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
color = $wallbash_pry1_rgba
|
||||
path = $BACKGROUND_PATH
|
||||
blur_size = 4
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
noise = 0.0117
|
||||
contrast = 1.3000 # Vibrant!!!
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 190, 50
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
fade_on_empty = true
|
||||
font_family = SF Pro Display Bold
|
||||
placeholder_text = <i><span foreground="##ffffff99"></span></i>
|
||||
hide_input = false
|
||||
position = 0, -170
|
||||
halign = center
|
||||
valign = center
|
||||
outer_color = $wallbash_pry4_rgba
|
||||
inner_color = $wallbash_pry2_rgba
|
||||
font_color = $wallbash_3xa9_rgba
|
||||
check_color = $wallbash_pry4_rgba
|
||||
|
||||
}
|
||||
|
||||
# Hour-Time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(date +"%I")"
|
||||
color = $wallbash_1xa8_rgba
|
||||
shadow_passes = 3
|
||||
shadow_size = 2
|
||||
font_size = 100
|
||||
font_family = AlfaSlabOne
|
||||
position = 0, 100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Minute-Time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(date +"%M")"
|
||||
color = $wallbash_3xa9_rgba
|
||||
font_size = 100
|
||||
font_family = AlfaSlabOne
|
||||
shadow_passes = 3
|
||||
shadow_size = 2
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Day-Date-Month
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(date +"%d %b %A")"
|
||||
color = $wallbash_3xa9_rgba
|
||||
shadow_passes = 3
|
||||
shadow_size = 1
|
||||
font_size = 12
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 1%, -1%
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
|
||||
|
||||
# CURRENT SONG
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $MPRIS_TEXT # Outputs the song title when mpris is available, otherwise, it will output the splash command.
|
||||
color = $wallbash_3xa9_rgba
|
||||
shadow_passes = 3
|
||||
shadow_size = 1
|
||||
font_size = 14
|
||||
font_family = JetBrains Mono Nerd, SF Pro Display Bold
|
||||
position = 0, 20
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
image {
|
||||
monitor =
|
||||
path = $MPRIS_IMAGE
|
||||
size = 80 # lesser side if not 1:1 ratio
|
||||
rounding = -1 # negative values mean circle
|
||||
border_size = 0
|
||||
shadow_passes = 3
|
||||
shadow_size = 3
|
||||
border_color = rgb(221, 221, 221)
|
||||
rotate = 0 # degrees, counter-clockwise
|
||||
reload_time = 0 # seconds between reloading, 0 to reload with SIGUSR2
|
||||
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
|
||||
position = 0, 10%
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Battery Status if present
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] $BATTERY_ICON
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
position = -1%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Keyboard Layout
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $KEYBOARD_LAYOUT
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrains Mono Nerd, SF Pro Display Bold
|
||||
position = -2%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
# Weather
|
||||
#! Put the weather command last to lessen the load time of other modules
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] $WEATHER_CMD
|
||||
color = $wallbash_3xa9_rgba
|
||||
font_size = 16
|
||||
shadow_passes = 3
|
||||
shadow_size = 1
|
||||
font_family = JetBrains Mono Nerd, SF Pro Display Bold
|
||||
position = -1%, -1%
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
|
||||
# ░▒▒▒░░░░░▓▓ ___________
|
||||
# ░░▒▒▒░░░░░▓▓ //___________/
|
||||
# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
|
||||
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
|
||||
# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
|
||||
# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
|
||||
# ░▒▓▓ ▓▓ //____/
|
||||
|
||||
$fontFamily = IBM Plex Sans
|
||||
$resolve.font=IBM Plex Sans|https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-sans%401.1.0/ibm-plex-sans.zip
|
||||
|
||||
# GENERAL
|
||||
background {
|
||||
monitor =
|
||||
path = $BACKGROUND_PATH
|
||||
blur_size = 5
|
||||
blur_passes = 0
|
||||
noise = 0.0117
|
||||
contrast = 1.3000 # Vibrant!
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# Current time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"
|
||||
color = $wallbash_2xa7_rgba
|
||||
font_size = 180
|
||||
font_family = $fontFamily Medium 10
|
||||
position = 0, 80
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"
|
||||
color = $wallbash_2xa9_rgba
|
||||
font_size = 180
|
||||
font_family = $fontFamily Medium 10
|
||||
position = 0, -120
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>"
|
||||
color = $wallbash_2xa8_rgba
|
||||
font_size = 20
|
||||
font_family = $fontFamily Medium 10
|
||||
position = 0, -230
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>"
|
||||
color = $wallbash_2xa8_rgba
|
||||
|
||||
font_size = 20
|
||||
font_family = $fontFamily Medium 10
|
||||
position = 0, -250
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
#INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
# size = 15%, 5% # hyprlock-git
|
||||
size = 200, 50
|
||||
outline_thickness = 3
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = $wallbash_pry2_rgba
|
||||
inner_color = $wallbash_pry3_rgba
|
||||
font_color = $color7
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
position = 0, 60
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
# Battery Status if present
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] $BATTERY_ICON
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
position = -1%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Keyboard Layout
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $KEYBOARD_LAYOUT
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = $fontFamily
|
||||
position = -2%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
@@ -1,161 +0,0 @@
|
||||
# Hyprlock style-4
|
||||
# By: Vivek Rajan https://github.com/MrVivekRajan/Hyprlock-Styles/tree/main/Style-4
|
||||
# Modified by: The HyDE Project
|
||||
|
||||
$resolve.font=SF Pro Display|https://font.download/dl/font/sf-pro-display.zip
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $BACKGROUND_PATH
|
||||
blur_passes = 0
|
||||
contrast = 0.8916
|
||||
brightness = 0.8916
|
||||
vibrancy = 0.8916
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
no_fade_in = false
|
||||
grace = 0
|
||||
disable_loading_bar = false
|
||||
}
|
||||
|
||||
# Profile-Photo
|
||||
image {
|
||||
monitor =
|
||||
path = $PROFILE_IMAGE
|
||||
border_size = 2
|
||||
border_color = $wallbash_pry4_rgba
|
||||
size = 100
|
||||
rounding = -1
|
||||
rotate = 0
|
||||
reload_time = -1
|
||||
reload_cmd =
|
||||
position = 25, 200
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# NAME
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] $GREET_TEXT
|
||||
color = $wallbash_txt1_rgba
|
||||
outline_thickness = 0
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
font_size = 20
|
||||
font_family = SF Pro Display Bold
|
||||
position = 25, 110
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"
|
||||
color = $wallbash_txt1_rgba
|
||||
font_size = 60
|
||||
font_family = SF Pro Display Bold
|
||||
position = 30, -8
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Day-Month-Date
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(date +"%A, %B %d")"
|
||||
color = $wallbash_txt1_rgba
|
||||
font_size = 19
|
||||
font_family = SF Pro Display Bold
|
||||
position = 35, -60
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# USER-BOX
|
||||
shape {
|
||||
monitor =
|
||||
size = 320, 55
|
||||
color = rgba(255, 255, 255, 0.1)
|
||||
rounding = -1
|
||||
border_size = 0
|
||||
border_color = $wallbash_txt3_rgba
|
||||
rotate = 0
|
||||
xray = false # if true, make a "hole" in the background (rectangle of specified size, no rotation)
|
||||
|
||||
position = 34, -190
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# USER
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
color = $wallbash_1xa9_rgba
|
||||
outline_thickness = 0
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
font_size = 16
|
||||
font_family = SF Pro Display Bold
|
||||
position = 38, -190
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 320, 55
|
||||
outline_thickness = 0
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgba(255, 255, 255, 0)
|
||||
inner_color = rgba(255, 255, 255, 0.1)
|
||||
font_color = $wallbash_2xa6_rgba
|
||||
fade_on_empty = false
|
||||
font_family = SF Pro Display Bold
|
||||
placeholder_text = <i><span foreground="##ffffff99">🔒 Enter Pass</span></i>
|
||||
hide_input = false
|
||||
position = 34, -268
|
||||
halign = center
|
||||
valign = center
|
||||
check_color = $wallbash_txt4_rgba
|
||||
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Battery Status if present
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] $BATTERY_ICON
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
position = -1%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Keyboard Layout
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $KEYBOARD_LAYOUT
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = SF Pro Display Bold
|
||||
position = -2%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
@@ -1,138 +0,0 @@
|
||||
# HyDE default layout
|
||||
# Wallbash generated layout
|
||||
|
||||
# Local Variables
|
||||
$fontFamily = JetBrainsMono Nerd Font
|
||||
$fn_greet=echo "Good $(date +%H | awk '{if ($1 < 12) print "Morning"; else if ($1 < 18) print "Afternoon"; else print "Evening"}'), ${USER}"
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
no_fade_in = false
|
||||
grace = 0
|
||||
disable_loading_bar = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $BACKGROUND_PATH
|
||||
blur_passes = 2
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $wallbash_txt1_rgba
|
||||
font_size = 90
|
||||
font_family = $fontFamily
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $wallbash_txt2_rgba
|
||||
font_size = 25
|
||||
font_family = $fontFamily
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $MPRIS_IMAGE
|
||||
size = 150 # lesser side if not 1:1 ratio
|
||||
reload_time = 0 # seconds between reloading, 0 to reload with SIGUSR2
|
||||
reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 200, 50 #!
|
||||
outline_thickness = 3
|
||||
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||
outer_color = $wallbash_pry4_rgba
|
||||
inner_color = $wallbash_pry2_rgba
|
||||
font_color = $wallbash_3xa9_rgba
|
||||
fade_on_empty = true
|
||||
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||
check_color = $wallbash_pry4_rgba
|
||||
fail_color = rgba(FF0000FF) # if authentication failed, changes outer_color and fail message color
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||
capslock_color = -1
|
||||
numlock_color = -1
|
||||
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||
invert_numlock = false # change color if numlock is off
|
||||
swap_font_color = true # see below
|
||||
position = 0, 80
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
# USER Greeting
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] $fn_greet
|
||||
color = $text
|
||||
font_size = 20
|
||||
font_family = $fontFamily Bold
|
||||
position = 0, -190
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Mpris and SPLASH
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $SPLASH_CMD # Outputs the song title when mpris is available, otherwise, it will output the splash command.
|
||||
color = $wallbash_txt2_rgba
|
||||
font_family = $fontFamily
|
||||
font_size = 15
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Battery Status if present
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:5000] $BATTERY_ICON
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
position = -1%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Keyboard Layout
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] $KEYBOARD_LAYOUT
|
||||
color = $wallbash_4xa9_rgba
|
||||
font_size = 20
|
||||
font_family = $fontFamily
|
||||
position = -2%, 1%
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
Whitespace-only changes.
@@ -1,28 +0,0 @@
|
||||
|
||||
# █▀▀ █░█ █▀█ █▀ █▀█ █▀█
|
||||
# █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄
|
||||
|
||||
exec = hyprctl setcursor Bibata-Modern-Ice 20
|
||||
exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice'
|
||||
exec = gsettings set org.gnome.desktop.interface cursor-size 20
|
||||
|
||||
|
||||
# █▀▀ █▀█ █▄░█ ▀█▀
|
||||
# █▀░ █▄█ █░▀█ ░█░
|
||||
|
||||
exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10'
|
||||
exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10'
|
||||
exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9'
|
||||
exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba'
|
||||
exec = gsettings set org.gnome.desktop.interface font-hinting 'full'
|
||||
|
||||
|
||||
# █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░
|
||||
# ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄
|
||||
|
||||
decoration {
|
||||
dim_special = 0.3
|
||||
blur {
|
||||
special = true
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-dracula'
|
||||
exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha'
|
||||
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
|
||||
general {
|
||||
gaps_in = 2 #3
|
||||
gaps_out = 4 #8
|
||||
border_size = 1 #2
|
||||
col.active_border = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
|
||||
col.inactive_border = rgba(b4befecc) rgba(6c7086cc) 45deg
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
|
||||
col.border_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg
|
||||
col.border_locked_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
|
||||
col.border_locked_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 4 #10
|
||||
# drop_shadow = true #false
|
||||
blur {
|
||||
enabled = yes
|
||||
size = 6
|
||||
passes = 3
|
||||
new_optimizations = on
|
||||
ignore_opacity = on
|
||||
xray = false
|
||||
}
|
||||
}
|
||||
|
||||
# layerrule = blur,waybar
|
||||
@@ -1,50 +0,0 @@
|
||||
# Auto-generated by HyDE // Read-only
|
||||
# // ----------------------------
|
||||
# HyDE Theme: Catppuccin Mocha
|
||||
# Configuration File: "/home/coja/.config/hyde/themes/Catppuccin Mocha/hypr.theme"
|
||||
# Wallbash Mode : theme
|
||||
# // ----------------------------
|
||||
|
||||
$HYDE_THEME=Catppuccin Mocha
|
||||
$GTK_THEME=Catppuccin-Mocha
|
||||
$COLOR-SCHEME=prefer-dark
|
||||
$ICON_THEME=Tela-circle-dracula
|
||||
|
||||
$CURSOR_THEME=Bibata-Modern-Ice
|
||||
$CURSOR_SIZE=24
|
||||
|
||||
$FONT=Cantarell
|
||||
$FONT_SIZE=10
|
||||
$DOCUMENT_FONT=Cantarell
|
||||
$DOCUMENT_FONT_SIZE=10
|
||||
$MONOSPACE_FONT=CaskaydiaCove Nerd Font Mono
|
||||
$MONOSPACE_FONT_SIZE=9
|
||||
|
||||
|
||||
$CODE_THEME=Wallbash
|
||||
$SDDM_THEME=
|
||||
|
||||
# // ----------------------------
|
||||
# README:
|
||||
# Values above are derived and sanitized from the theme.conf file,
|
||||
# This is to ensure themes won't have any 'exec' or 'source'
|
||||
# commands that could potentially harm the system
|
||||
# or undesired behavior.
|
||||
#
|
||||
# Dear Theme Owner:
|
||||
# You can still add your own custom 'exec' or 'source' commands
|
||||
# by adding it as variable, examples (you can name the variable anything):
|
||||
# Note that you should indicate it in your README.md
|
||||
#
|
||||
#
|
||||
# -- ⌨️ theme.conf --
|
||||
# $RUN_CMD="some_command"
|
||||
# $SOURCE_FILE="/some/files"
|
||||
#
|
||||
#
|
||||
# -- ⌨️ userprefs.conf --
|
||||
# exec = ${RUN_CMD}"
|
||||
# source = ${SOURCE_FILE}
|
||||
# exec = hyde-shell walbash code $CODE_THEME # Setting the code theme
|
||||
|
||||
# // ----------------------------
|
||||
@@ -1,72 +0,0 @@
|
||||
|
||||
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/
|
||||
# hyprctl clients to get names
|
||||
|
||||
windowrule = opacity 0.80 0.80, match:class ^(code-url-handler)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(code-insiders-url-handler)$
|
||||
windowrule = opacity 0.80 0.80, match:class ^(org.kde.dolphin)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(org.kde.ark)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(nwg-look)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(qt5ct)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(qt6ct)$
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(kvantummanager)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(org.pulseaudio.pavucontrol)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(lagrange)$
|
||||
windowrule = opacity 0.60 0.60, match:class ^(com.github.wwmm.easyeffects)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(blueman-manager)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(nm-applet)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(nm-connection-editor)$
|
||||
windowrule = opacity 0.80 0.70, float on, match:class ^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(polkit-gnome-authentication-agent-1)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.gtk)$
|
||||
windowrule = opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.hyprland)$
|
||||
windowrule = opacity 0.70 0.70, match:class ^([Ss]team)$
|
||||
|
||||
windowrule = opacity 0.90 0.90, float on, match:class ^(com.github.rafostar.Clapper)$ # Clapper-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(hu.kramo.Cartridges)$ # Cartridges-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.obsproject.Studio)$ # Obs-Qt
|
||||
windowrule = opacity 0.80 0.80, match:class ^(gnome-boxes)$ # Boxes-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(discord)$ # Discord-Electron
|
||||
windowrule = opacity 0.80 0.80, match:class ^(WebCord)$ # WebCord-Electron
|
||||
windowrule = opacity 0.80 0.80, match:class ^(ArmCord)$ # ArmCord-Electron
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(app.drey.Warp)$ # Warp-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(net.davidotek.pupgui2)$ # ProtonUp-Qt
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(yad)$ # Protontricks-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(Signal)$ # Signal-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.github.alainm23.planify)$ # planify-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
|
||||
windowrule = opacity 0.80 0.80, float on, match:class ^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
|
||||
windowrule = opacity 0.80 0.80, match:class ^(io.github.flattool.Warehouse)$ # Warehouse-Gtk
|
||||
|
||||
windowrule = float on, match:class ^(org.kde.dolphin)$, match:title ^(Progress Dialog — Dolphin)$
|
||||
windowrule = float on, match:class ^(org.kde.dolphin)$, match:title ^(Copying — Dolphin)$
|
||||
windowrule = float on, match:title ^(About Mozilla Firefox)$
|
||||
windowrule = float on, match:class ^(firefox)$, match:title ^(Picture-in-Picture)$
|
||||
windowrule = float on, match:class ^(firefox)$, match:title ^(Library)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(top)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(btop)$
|
||||
windowrule = float on, match:class ^(kitty)$, match:title ^(htop)$
|
||||
windowrule = float on, match:class ^(vlc)$
|
||||
|
||||
windowrule = float on, match:class ^(eog)$ # Imageviewer-Gtk
|
||||
windowrule = float on, match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
|
||||
|
||||
|
||||
# █░░ ▄▀█ █▄█ █▀▀ █▀█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# █▄▄ █▀█ ░█░ ██▄ █▀▄ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
|
||||
# layerrule = blur,rofi
|
||||
# layerrule = ignorezero,rofi
|
||||
# layerrule = blur,notifications
|
||||
# layerrule = ignorezero,notifications
|
||||
# layerrule = blur,swaync-notification-window
|
||||
# layerrule = ignorezero,swaync-notification-window
|
||||
# layerrule = blur,swaync-control-center
|
||||
# layerrule = ignorezero,swaync-control-center
|
||||
# layerrule = blur,logout_dialog
|
||||
Whitespace-only changes.
@@ -1,17 +0,0 @@
|
||||
# run with `kitty --session ~/.config/kitty/c2.conf`
|
||||
layout tall
|
||||
|
||||
# create a new tab
|
||||
new_tab c2
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
launch --var window=first nvim
|
||||
|
||||
new_tab git
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
launch --var window=second lazygit
|
||||
|
||||
# focus neovim
|
||||
# focus first
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# run with `kitty --session ~/.config/kitty/music.conf`
|
||||
layout tall
|
||||
|
||||
# os_window_size 220c 64c
|
||||
# create a new tab
|
||||
new_tab music
|
||||
|
||||
# set the working directory for windows in the current tab
|
||||
cd
|
||||
|
||||
launch --var window=first cava
|
||||
# create additional terminals
|
||||
launch --location=hsplit pyradio
|
||||
resize_window taller 10
|
||||
focus pyradio
|
||||
launch --location=vsplit pipes-rs
|
||||
resize_window wider 20
|
||||
@@ -1,20 +0,0 @@
|
||||
# run with `kitty --session ~/.config/kitty/runners.conf`
|
||||
layout stack
|
||||
|
||||
# create a new tab
|
||||
new_tab runners
|
||||
|
||||
cd ~/projects/wingman/c2/
|
||||
|
||||
launch --var window=first pnpm dev
|
||||
|
||||
launch --location=hsplit react-devtools
|
||||
resize_window narrower 20
|
||||
|
||||
launch --location=hsplit lazydocker
|
||||
resize_window wider 120
|
||||
|
||||
# new_tab simulator
|
||||
# cd ~/wmclient
|
||||
# launch --var window=first wmsimulator.sh
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
|
||||
# The basic colors
|
||||
foreground #ffffff
|
||||
background #262335
|
||||
selection_foreground #262335
|
||||
selection_background #f97e72
|
||||
|
||||
# Cursor colors
|
||||
cursor #f97e72
|
||||
cursor_text_color #262335
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color #f97e72
|
||||
|
||||
# OS Window titlebar colors
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground #262335
|
||||
mark1_background #614D85
|
||||
mark2_foreground #262335
|
||||
mark2_background #614D85
|
||||
mark3_foreground #262335
|
||||
mark3_background #614D85
|
||||
|
||||
# The 16 terminal colors
|
||||
|
||||
# black
|
||||
color0 #232530
|
||||
color8 #232530
|
||||
|
||||
# red
|
||||
color1 #fe4450
|
||||
color9 #fe4450
|
||||
|
||||
# green
|
||||
color2 #72f1b8
|
||||
color10 #72f1b8
|
||||
|
||||
# yellow
|
||||
color3 #ff7edb
|
||||
color11 #ff7edb
|
||||
|
||||
# blue
|
||||
color4 #03edf9
|
||||
color12 #03edf9
|
||||
|
||||
# magenta
|
||||
color5 #fede5d
|
||||
color13 #f3e70f
|
||||
|
||||
# cyan
|
||||
color6 #03edf9
|
||||
color14 #03edf9
|
||||
|
||||
# white
|
||||
color7 #ffffff
|
||||
color15 #ffffff
|
||||
@@ -1,29 +0,0 @@
|
||||
cal
|
||||
calc
|
||||
speedtest
|
||||
aichat -e
|
||||
askllama
|
||||
ask
|
||||
tldr
|
||||
man
|
||||
info
|
||||
rsync -avkP
|
||||
lsd
|
||||
zioxide
|
||||
httpie
|
||||
bat
|
||||
xxd
|
||||
mpv
|
||||
nix
|
||||
distrobox
|
||||
scrcpy
|
||||
adb
|
||||
watch
|
||||
unzip
|
||||
open
|
||||
nmcli
|
||||
iwctl
|
||||
lsusb
|
||||
thefuck
|
||||
fastfetch
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
browsh
|
||||
wiki-tui
|
||||
wikiman
|
||||
yazi
|
||||
tdf
|
||||
dysk
|
||||
dust
|
||||
ncdu
|
||||
systemctl-tui
|
||||
btop
|
||||
bandwhich
|
||||
mtr
|
||||
gping
|
||||
bmon
|
||||
profanity
|
||||
nmtui
|
||||
bluetui
|
||||
drawterm
|
||||
hunk
|
||||
lazygit
|
||||
lazydocker
|
||||
lazyjorunal
|
||||
pastel
|
||||
hexyl
|
||||
pyradio
|
||||
kew
|
||||
tt
|
||||
gittype
|
||||
matrix
|
||||
cava
|
||||
tetrigo
|
||||
tui-mines
|
||||
nyaa
|
||||
stig
|
||||
tmux
|
||||
zellij
|
||||
nvim
|
||||
vim
|
||||
tuios
|
||||
llmfit
|
||||
battop
|
||||
subtui
|
||||
@@ -1,21 +0,0 @@
|
||||
# Volume
|
||||
9 add volume -5
|
||||
0 add volume 5
|
||||
|
||||
UP add volume 2
|
||||
DOWN add volume -2
|
||||
|
||||
k add volume 2
|
||||
j add volume -2
|
||||
|
||||
# Seek backward / forward
|
||||
LEFT seek -5
|
||||
RIGHT seek 5
|
||||
|
||||
l seek 5
|
||||
h seek -5
|
||||
|
||||
# Bigger jumps
|
||||
Shift+LEFT seek -30
|
||||
Shift+RIGHT seek 30
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" },
|
||||
"NvChad": { "branch": "v2.5", "commit": "d042cc975247c2aa55fcb228e5d146dc1dc6c648" },
|
||||
"base46": { "branch": "v2.5", "commit": "fde7a2cd54599e148d376f82980407c2d24b0fa2" },
|
||||
"cmp-async-path": { "branch": "main", "commit": "f8af3f726e07f2e9d37672eaa9102581aefce149" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"codecompanion.nvim": { "branch": "main", "commit": "680c445eb357c72129d175ea5d481aa9e92ae6a5" },
|
||||
"conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "6d808f99bd63303646794406e270bd553ad7792e" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"mason.nvim": { "branch": "main", "commit": "12ddd182d9efbdc848b540f16484a583d52da0fb" },
|
||||
"menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" },
|
||||
"minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e146efacbafed3789ac568abcc5a981c5decaa58" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "d277467fc0d1d0e2bca88165a1de6b526f9f6fe8" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "c72328a5494b4502947a022fe69c0c47e53b6aa6" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "d67113f11384c0dad96fced2f7b91f1fc811e97f" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "028d9a0695a0cc4cfa893889f8c408ed7ccc8adc" },
|
||||
"ui": { "branch": "v3.0", "commit": "cb75908a86720172594b30de147272c1b3a7f452" },
|
||||
"volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
local model = "Qwen3-Coder-30B-Instruct-IQ4_XS"
|
||||
|
||||
return {
|
||||
adapters = {
|
||||
http = {
|
||||
llama_cpp = function()
|
||||
return require("codecompanion.adapters").extend("openai_compatible", {
|
||||
env = {
|
||||
url = "http://localhost:11343",
|
||||
chat_url = "/v1/chat/completions",
|
||||
models_endpoint = "/v1/models",
|
||||
api_key = "dummy",
|
||||
},
|
||||
schema = {
|
||||
model = {
|
||||
default = model,
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
interactions = {
|
||||
chat = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
inline = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
cmd = {
|
||||
adapter = "llama_cpp",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
|
||||
local servers = { "html", "cssls", "ts_ls", "eslint", "yamlls" }
|
||||
vim.lsp.enable(servers)
|
||||
|
||||
-- local lspconfig = require "lspconfig"
|
||||
-- local nvlsp = require "nvchad.configs.lspconfig"
|
||||
--
|
||||
-- -- lsps with default config
|
||||
-- for _, lsp in ipairs(servers) do
|
||||
-- lspconfig[lsp].setup {
|
||||
-- on_attach = nvlsp.on_attach,
|
||||
-- on_init = nvlsp.on_init,
|
||||
-- capabilities = nvlsp.capabilities,
|
||||
-- }
|
||||
-- end
|
||||
--
|
||||
-- -- configuring single server, example: typescript
|
||||
-- lspconfig.ts_ls.setup {
|
||||
-- filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'markdown' },
|
||||
-- }
|
||||
--
|
||||
-- -- configuring single server, example: typescript
|
||||
-- -- lspconfig.ts_ls.setup {
|
||||
-- -- on_attach = nvlsp.on_attach,
|
||||
-- -- on_init = nvlsp.on_init,
|
||||
-- -- capabilities = nvlsp.capabilities,
|
||||
-- -- }
|
||||
@@ -1,89 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
event = "BufWritePre",
|
||||
opts = require "configs.conform",
|
||||
},
|
||||
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require "configs.lspconfig"
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"olimorris/codecompanion.nvim",
|
||||
version = "^19.0.0",
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
opts = function()
|
||||
return require "configs.codecompanion"
|
||||
end,
|
||||
},
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
ft = { "markdown", "gitcommit", "codecompanion" },
|
||||
opts = function()
|
||||
return require "configs.render-markdown"
|
||||
end,
|
||||
},
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
bigfile = { enabled = false },
|
||||
dashboard = { enabled = false },
|
||||
explorer = { enabled = true },
|
||||
indent = { enabled = true },
|
||||
input = { enabled = true },
|
||||
picker = { enabled = false },
|
||||
notifier = { enabled = true },
|
||||
quickfile = { enabled = true },
|
||||
scope = { enabled = true },
|
||||
scroll = { enabled = true },
|
||||
statuscolumn = { enabled = true },
|
||||
words = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- {
|
||||
-- "jacob411/Ollama-Copilot",
|
||||
-- opts = {
|
||||
-- model_name = "llama3:3b",
|
||||
-- stream_suggestion = false,
|
||||
-- python_command = "python3",
|
||||
-- filetypes = { "python", "lua", "vim", "markdown", "javascript", "typescript" },
|
||||
-- ollama_model_opts = {
|
||||
-- num_predict = 40,
|
||||
-- temperature = 0.1,
|
||||
-- },
|
||||
-- keymaps = {
|
||||
-- suggestion = "<leader>os",
|
||||
-- reject = "<leader>or",
|
||||
-- insert_accept = "<Tab>",
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
|
||||
-- These are some examples, uncomment them if you want to see them work!
|
||||
--
|
||||
-- {
|
||||
-- "nvim-treesitter/nvim-treesitter",
|
||||
-- opts = {
|
||||
-- ensure_installed = {
|
||||
-- "vim", "lua", "vimdoc",
|
||||
-- "html", "css"
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
--
|
||||
}
|
||||
@@ -1,278 +0,0 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"model": "duskadiy/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"small_model": "duskadiy/gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"instructions": ["CLAUDE.md", "AGENTS.md"],
|
||||
"share": "disabled",
|
||||
"autoupdate": "notify",
|
||||
"disabled_providers": [
|
||||
"gemini",
|
||||
"anthropic",
|
||||
"groq",
|
||||
"openrouter",
|
||||
"opencode"
|
||||
],
|
||||
"permission": {
|
||||
"edit": "deny",
|
||||
"webfetch": "ask",
|
||||
"websearch": "ask",
|
||||
"external_directory": "ask",
|
||||
"read": {
|
||||
"*": "allow",
|
||||
"**/.env*": "deny",
|
||||
"**/*.env": "deny",
|
||||
"**/*.pem": "deny",
|
||||
"**/*.key": "deny",
|
||||
"**/*.p12": "deny",
|
||||
"**/*.pfx": "deny",
|
||||
"**/*.keystore": "deny",
|
||||
"**/id_rsa*": "deny",
|
||||
"**/.ssh/**": "deny",
|
||||
"**/.aws/**": "deny",
|
||||
"**/.npmrc": "deny",
|
||||
"**/.netrc": "deny"
|
||||
},
|
||||
"bash": {
|
||||
"*": "ask",
|
||||
|
||||
"ls *": "allow",
|
||||
"cat *": "allow",
|
||||
"grep *": "allow",
|
||||
"rg *": "allow",
|
||||
"find *": "allow",
|
||||
"fd *": "allow",
|
||||
"which *": "allow",
|
||||
"file *": "allow",
|
||||
"stat *": "allow",
|
||||
"wc *": "allow",
|
||||
"tree *": "allow",
|
||||
"diff *": "allow",
|
||||
"sort *": "allow",
|
||||
"uniq *": "allow",
|
||||
"echo *": "allow",
|
||||
"pwd": "allow",
|
||||
"date": "allow",
|
||||
"whoami": "allow",
|
||||
"jq *": "allow",
|
||||
"tsc *": "allow",
|
||||
"mkdir *": "allow",
|
||||
"touch *": "allow",
|
||||
|
||||
"git *": "ask",
|
||||
"git status": "allow",
|
||||
"git status *": "allow",
|
||||
"git diff": "allow",
|
||||
"git diff *": "allow",
|
||||
"git log": "allow",
|
||||
"git log *": "allow",
|
||||
"git show *": "allow",
|
||||
"git branch": "allow",
|
||||
"git remote -v": "allow",
|
||||
|
||||
"npm *": "ask",
|
||||
"pnpm *": "ask",
|
||||
"npx *": "ask",
|
||||
"npm list": "allow",
|
||||
"npm help": "allow",
|
||||
"npm version": "allow",
|
||||
"pnpm list": "allow",
|
||||
"pnpm help": "allow",
|
||||
"npx --version": "allow",
|
||||
|
||||
"curl *": "ask",
|
||||
"wget *": "ask",
|
||||
|
||||
"rm *": "deny",
|
||||
"rmdir *": "deny",
|
||||
"dd *": "deny",
|
||||
"mkfs*": "deny",
|
||||
"shred *": "deny",
|
||||
"chmod -R *": "deny",
|
||||
"sudo *": "deny",
|
||||
"doas *": "deny",
|
||||
|
||||
"npm install*": "deny",
|
||||
"npm i": "deny",
|
||||
"npm i *": "deny",
|
||||
"npm ci*": "deny",
|
||||
"pnpm install*": "deny",
|
||||
"pnpm i": "deny",
|
||||
"pnpm i *": "deny",
|
||||
"pnpm add*": "deny",
|
||||
"yarn add*": "deny",
|
||||
"yarn install*": "deny",
|
||||
"pip install*": "deny",
|
||||
"pip3 install*": "deny",
|
||||
"pipx install*": "deny",
|
||||
"cargo install*": "deny",
|
||||
"go install*": "deny",
|
||||
"gem install*": "deny",
|
||||
"brew install*": "deny",
|
||||
|
||||
"pacman *": "deny",
|
||||
"yay *": "deny",
|
||||
"apt *": "deny",
|
||||
"apt-get *": "deny",
|
||||
"dnf *": "deny",
|
||||
|
||||
"cat .env*": "deny",
|
||||
"cat *.env": "deny",
|
||||
"cat *.pem": "deny",
|
||||
"cat *.key": "deny",
|
||||
"cat *id_rsa*": "deny",
|
||||
"cat *secret*": "deny",
|
||||
"cat *credential*": "deny",
|
||||
"cat ~/.ssh/*": "deny",
|
||||
"cat ~/.aws/*": "deny",
|
||||
"grep .env*": "deny",
|
||||
"grep * .env*": "deny"
|
||||
}
|
||||
},
|
||||
"provider": {
|
||||
"duskadiy": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "DuskaDIY",
|
||||
"options": {
|
||||
"baseURL": "https://llm.duskadiy.com/api/v1"
|
||||
},
|
||||
"models": {
|
||||
"gemma-4-26B-A4B-it-UD-IQ4_XS": {
|
||||
"name": "Gemma 4 26B (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"DeepSeek-Coder-V2-Lite-Instruct-Q8_0": {
|
||||
"name": "DeepSeek Coder V2 (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3-Coder-30B-Instruct-IQ4_XS": {
|
||||
"name": "Qwen3 Coder A3B (remote)",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"llama.cpp": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "llamacpp",
|
||||
"options": {
|
||||
"baseURL": "http://192.168.0.204:11343/v1"
|
||||
},
|
||||
"models": {
|
||||
"DeepSeek-Coder-V2-Lite-Instruct-Q8_0": {
|
||||
"name": "DeepSeek Coder V2",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"gemma-4-E4B-it-UD-Q8_K_XL": {
|
||||
"name": "Gemma 4 E4B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"gemma-4-26B-A4B-it-UD-IQ4_XS": {
|
||||
"name": "Gemma 4 26B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3-Coder-30B-Instruct-IQ4_XS": {
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
},
|
||||
"Qwen3.6-27B-UD-IQ3_XXS.gguf": {
|
||||
"name": "Qwen3.6 27B",
|
||||
"limit": {
|
||||
"context": 81920,
|
||||
"output": 8192
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"agent": {
|
||||
"plan": {
|
||||
"mode": "primary",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"build": {
|
||||
"mode": "primary",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": {
|
||||
"*": "allow",
|
||||
"**/.env*": "deny",
|
||||
"**/*.env": "deny",
|
||||
"**/*.pem": "deny",
|
||||
"**/*.key": "deny",
|
||||
"**/id_rsa*": "deny",
|
||||
"**/.ssh/**": "deny",
|
||||
"**/.aws/**": "deny",
|
||||
"**/.git/**": "deny",
|
||||
"**/.npmrc": "deny",
|
||||
"**/.netrc": "deny"
|
||||
}
|
||||
}
|
||||
},
|
||||
"code-reviewer": {
|
||||
"description": "Reviews code for best practices and potential issues",
|
||||
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"test-runner": {
|
||||
"description": "Runs and interprets test suites",
|
||||
"prompt": "You are a test runner. Focus on identifying failing tests and providing clear reproduction steps.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
},
|
||||
"doc-writer": {
|
||||
"description": "Maintains project documentation and docstrings",
|
||||
"prompt": "You are a technical writer. Focus on clarity, accuracy, and keeping documentation in sync with code changes.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"permission": {
|
||||
"edit": {
|
||||
"*": "deny",
|
||||
"**/*.md": "allow",
|
||||
"**/*.mdx": "allow",
|
||||
"**/*.markdown": "allow",
|
||||
"**/*.txt": "allow",
|
||||
"**/*.rst": "allow"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security-auditor": {
|
||||
"description": "Scans for security vulnerabilities and hardcoded secrets",
|
||||
"prompt": "You are a security auditor. Focus on OWASP principles, secret detection, and dependency vulnerabilities.",
|
||||
"mode": "subagent",
|
||||
"model": "llama.cpp/DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"permission": {
|
||||
"edit": "deny"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|28|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock )|( hyprland/workspaces hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|28|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|28|top|( cpu memory custom/cpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( hyprland/window )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0||bottom|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0||top|( hyprland/workspaces hyprland/window )|( idle_inhibitor clock )|( cpu memory custom/cpuinfo custom/gpuinfo ) ( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|31|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/notifications custom/keybindhint )
|
||||
0|31|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
|
||||
0|31|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
|
||||
0|31|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( wlr/taskbar custom/spotify ) |( idle_inhibitor clock )|( tray battery ) ( backlight network pulseaudio pulseaudio#microphone custom/keybindhint )
|
||||
0|32|bottom||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
|
||||
0|32|left||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
|
||||
1|32|top||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
|
||||
0|32|right||( custom/power ) ( tray battery ) ( wlr/taskbar idle_inhibitor clock ) ( custom/cliphist ) ( custom/wbar ) ( custom/wallchange ) ( custom/theme )|
|
||||
0|31|bottom|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|31|top|( cpu memory custom/cpuinfo custom/gpuinfo ) ( idle_inhibitor clock ) ( hyprland/workspaces )|( wlr/taskbar )|( backlight network pulseaudio pulseaudio#microphone custom/updates custom/keybindhint ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|29|bottom|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|29|left|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|29|top|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|29|right|( wlr/taskbar mpris )|( idle_inhibitor clock )|( backlight network pulseaudio pulseaudio#microphone custom/updates ) ( tray battery ) ( custom/wallchange custom/theme custom/wbar custom/cliphist custom/power )
|
||||
0|28|bottom|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone )
|
||||
0|28|left|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone )
|
||||
0|28|top|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone )
|
||||
0|28|right|( custom/power custom/cliphist custom/wbar custom/theme custom/wallchange ) ( idle_inhibitor clock custom/spotify )|( wlr/taskbar )|( tray ) ( backlight network pulseaudio pulseaudio#microphone )
|
||||
@@ -1,10 +0,0 @@
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"rotate": ${r_deg},
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"on-scroll-up": "brightnessctl set 1%+",
|
||||
"on-scroll-down": "brightnessctl set 1%-",
|
||||
"min-length": 6
|
||||
},
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"rotate": ${r_deg},
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"rotate": ${r_deg},
|
||||
"format-disabled": "",
|
||||
"format-connected": " {num_connections}",
|
||||
"format-connected-battery": "{icon} {num_connections}",
|
||||
// "format-connected-battery": "{icon} {device_alias}-{device_battery_percentage}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""],
|
||||
// "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device If this config option is not defined or none of the devices in the list are connected, it will fall back to showing the last connected device.
|
||||
"tooltip-format": "{controller_alias}\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{icon} {device_battery_percentage}%"
|
||||
},
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
"custom/cliphist": {
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"exec": "echo ; echo clipboard history",
|
||||
"on-click": "sleep 0.1 && cliphist.sh c",
|
||||
"on-click-right": "sleep 0.1 && cliphist.sh d",
|
||||
"on-click-middle": "sleep 0.1 && cliphist.sh w",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"rotate": ${r_deg},
|
||||
"format-alt": "{:%R %d·%m·%y}",
|
||||
"tooltip-format": "<span>{calendar}</span>",
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 3,
|
||||
"on-scroll": 1,
|
||||
"on-click-right": "mode",
|
||||
"format": {
|
||||
"months": "<span color='#ffead3'><b>{}</b></span>",
|
||||
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
|
||||
"today": "<span color='#ff6699'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
"on-click-forward": "tz_up",
|
||||
"on-click-backward": "tz_down",
|
||||
"on-scroll-up": "shift_up",
|
||||
"on-scroll-down": "shift_down"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": " {usage}%",
|
||||
"rotate": ${r_deg},
|
||||
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
|
||||
},
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
"custom/cpuinfo": {
|
||||
"exec": " cpuinfo.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000
|
||||
},
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
// modules for padding //
|
||||
|
||||
"custom/l_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/r_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/padd": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
"custom/gpuinfo": {
|
||||
"exec": " gpuinfo.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000,
|
||||
"on-click": "gpuinfo.sh --toggle",
|
||||
},
|
||||
|
||||
"custom/gpuinfo#nvidia": {
|
||||
"exec": " gpuinfo.sh --use nvidia ",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000,
|
||||
},
|
||||
|
||||
"custom/gpuinfo#amd": {
|
||||
"exec": " gpuinfo.sh --use amd ",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000,
|
||||
},
|
||||
|
||||
"custom/gpuinfo#intel": {
|
||||
"exec": " gpuinfo.sh --use intel ",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000,
|
||||
},
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
// --// waybar config generated by wbarconfgen.sh //-- //
|
||||
|
||||
{
|
||||
// sourced from header module //
|
||||
|
||||
"layer": "top",
|
||||
"position": "${w_position}",
|
||||
"mod": "dock",
|
||||
"${hv_pos}": ${w_height},
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"gtk-layer-shell": true,
|
||||
"reload_style_on_change": true,
|
||||
@@ -1,9 +0,0 @@
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"rotate": ${r_deg},
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
"custom/keybindhint": {
|
||||
"format": " ",
|
||||
"rotate": ${r_deg},
|
||||
"on-click": "keybinds_hint.sh"
|
||||
},
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
"hyprland/language": {
|
||||
"format": "{short} {variant}",
|
||||
"rotate": ${r_deg},
|
||||
"on-click": "keyboardswitch.sh",
|
||||
},
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
"memory": {
|
||||
"states": {
|
||||
"c": 90, // critical
|
||||
"h": 60, // high
|
||||
"m": 30, // medium
|
||||
},
|
||||
"interval": 30,
|
||||
"format": " {used}GB",
|
||||
"rotate": ${r_deg},
|
||||
"format-m": " {used}GB",
|
||||
"format-h": " {used}GB",
|
||||
"format-c": " {used}GB",
|
||||
"format-alt": " {percentage}%",
|
||||
"max-length": 10,
|
||||
"tooltip": true,
|
||||
"tooltip-format": " {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
|
||||
},
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
"mpris": {
|
||||
"format": "{player_icon} {dynamic}",
|
||||
"rotate": ${r_deg},
|
||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||
"player-icons": {
|
||||
"default": "▶",
|
||||
"mpv": "🎵"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": ""
|
||||
},
|
||||
// "ignored-players": ["firefox"]
|
||||
"max-length": 1000,
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
"network": {
|
||||
"tooltip": true,
|
||||
"format-wifi": " ",
|
||||
"rotate": ${r_deg},
|
||||
"format-ethernet": " ",
|
||||
"tooltip-format": "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>",
|
||||
"format-linked": " {ifname} (No IP)",
|
||||
"format-disconnected": " ",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"format-alt": "<span foreground='#99ffdd'> {bandwidthDownBytes}</span> <span foreground='#ffcc66'> {bandwidthUpBytes}</span>",
|
||||
"interval": 2
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
"custom/notifications": {
|
||||
"format": "{icon} {}",
|
||||
"rotate": ${r_deg},
|
||||
"format-icons": {
|
||||
"email-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"chat-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"warning-notification": "<span foreground='yellow'><sup></sup></span>",
|
||||
"error-notification": "<span foreground='red'><sup></sup></span>",
|
||||
"network-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"battery-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"update-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"music-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"volume-notification": "<span foreground='white'><sup></sup></span>",
|
||||
"notification": "<span foreground='white'><sup></sup></span>",
|
||||
"dnd": "",
|
||||
"none": ""
|
||||
},
|
||||
"return-type": "json",
|
||||
"exec-if": "which dunstctl",
|
||||
"exec": "notifications.py",
|
||||
"on-scroll-down": "sleep 0.1 && dunstctl history-pop",
|
||||
"on-click": "dunstctl set-paused toggle",
|
||||
"on-click-middle": "dunstctl history-clear",
|
||||
"on-click-right": "dunstctl close-all",
|
||||
"interval": 1,
|
||||
"tooltip": true,
|
||||
"escape": true
|
||||
},
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
"custom/power": {
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"exec": "echo ; echo logout",
|
||||
"on-click": "logoutlaunch.sh 2",
|
||||
"on-click-right": "logoutlaunch.sh 1",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}",
|
||||
"rotate": ${r_deg},
|
||||
"format-muted": "婢",
|
||||
"on-click": "pavucontrol -t 3",
|
||||
"on-click-right": "volumecontrol.sh -s ''",
|
||||
"on-click-middle": "volumecontrol.sh -o m",
|
||||
"on-scroll-up": "volumecontrol.sh -o i",
|
||||
"on-scroll-down": "volumecontrol.sh -o d",
|
||||
"tooltip-format": "{icon} {desc} // {volume}%",
|
||||
"scroll-step": 5,
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
|
||||
"pulseaudio#microphone": {
|
||||
"format": "{format_source}",
|
||||
"rotate": ${r_deg},
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"on-click": "pavucontrol -t 4",
|
||||
"on-click-middle": "volumecontrol.sh -i m",
|
||||
"on-scroll-up": "volumecontrol.sh -i i",
|
||||
"on-scroll-down": "volumecontrol.sh -i d",
|
||||
"tooltip-format": "{format_source} {source_desc} // {source_volume}%",
|
||||
"scroll-step": 5
|
||||
},
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
"custom/spotify": {
|
||||
"exec": "mediaplayer.py --player spotify",
|
||||
"format": " {}",
|
||||
"rotate": ${r_deg},
|
||||
"return-type": "json",
|
||||
"on-click": "playerctl play-pause --player spotify",
|
||||
"on-click-right": "playerctl next --player spotify",
|
||||
"on-click-middle": "playerctl previous --player spotify",
|
||||
"on-scroll-up": "volumecontrol.sh -p spotify i",
|
||||
"on-scroll-down": "volumecontrol.sh -p spotify d",
|
||||
"max-length": 25,
|
||||
"escape": true,
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
@@ -1,151 +0,0 @@
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-weight: bold;
|
||||
font-size: ${s_fontpx}px;
|
||||
min-height: 10px;
|
||||
}
|
||||
|
||||
@import "theme.css";
|
||||
|
||||
window#waybar {
|
||||
background: @bar-bg;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @main-bg;
|
||||
color: @main-fg;
|
||||
border-radius: ${t_radius}px;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: ${w_radius}px;
|
||||
margin-${x1}: ${w_margin}px;
|
||||
margin-${x2}: ${w_margin}px;
|
||||
margin-${x3}: 0px;
|
||||
padding-${x3}: ${w_paddin}px;
|
||||
padding-${x4}: ${w_paddin}px;
|
||||
margin-${x4}: 0px;
|
||||
color: @main-fg;
|
||||
animation: ws_normal 20s ease-in-out 1;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-fg;
|
||||
margin-${x3}: ${w_margin}px;
|
||||
padding-${x3}: ${w_padact}px;
|
||||
padding-${x4}: ${w_padact}px;
|
||||
margin-${x4}: ${w_margin}px;
|
||||
animation: ws_active 20s ease-in-out 1;
|
||||
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-fg;
|
||||
animation: ws_hover 20s ease-in-out 1;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: ${w_radius}px;
|
||||
margin-${x1}: ${w_margin}px;
|
||||
margin-${x2}: ${w_margin}px;
|
||||
margin-${x3}: 0px;
|
||||
padding-${x3}: ${w_paddin}px;
|
||||
padding-${x4}: ${w_paddin}px;
|
||||
margin-${x4}: 0px;
|
||||
color: @wb-color;
|
||||
animation: tb_normal 20s ease-in-out 1;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-color;
|
||||
margin-${x3}: ${w_margin}px;
|
||||
padding-${x3}: ${w_padact}px;
|
||||
padding-${x4}: ${w_padact}px;
|
||||
margin-${x4}: ${w_margin}px;
|
||||
animation: tb_active 20s ease-in-out 1;
|
||||
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-color;
|
||||
animation: tb_hover 20s ease-in-out 1;
|
||||
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
#tray menu * {
|
||||
min-height: 16px
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
min-height: 10px
|
||||
}
|
||||
|
||||
${modules_ls}
|
||||
#custom-l_end,
|
||||
#custom-r_end,
|
||||
#custom-sl_end,
|
||||
#custom-sr_end,
|
||||
#custom-rl_end,
|
||||
#custom-rr_end {
|
||||
color: @main-fg;
|
||||
background: @main-bg;
|
||||
opacity: 1;
|
||||
margin: ${x1g_margin}px ${x2g_margin}px ${x3g_margin}px ${x4g_margin}px;
|
||||
padding-${x3}: ${g_paddin}px;
|
||||
padding-${x4}: ${g_paddin}px;
|
||||
}
|
||||
|
||||
#workspaces,
|
||||
#taskbar {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#custom-r_end {
|
||||
border-radius: ${x1rb_radius}px ${x2rb_radius}px ${x3rb_radius}px ${x4rb_radius}px;
|
||||
margin-${x4}: ${e_margin}px;
|
||||
padding-${x4}: ${e_paddin}px;
|
||||
}
|
||||
|
||||
#custom-l_end {
|
||||
border-radius: ${x1lb_radius}px ${x2lb_radius}px ${x3lb_radius}px ${x4lb_radius}px;
|
||||
margin-${x3}: ${e_margin}px;
|
||||
padding-${x3}: ${e_paddin}px;
|
||||
}
|
||||
|
||||
#custom-sr_end {
|
||||
border-radius: 0px;
|
||||
margin-${x4}: ${e_margin}px;
|
||||
padding-${x4}: ${e_paddin}px;
|
||||
}
|
||||
|
||||
#custom-sl_end {
|
||||
border-radius: 0px;
|
||||
margin-${x3}: ${e_margin}px;
|
||||
padding-${x3}: ${e_paddin}px;
|
||||
}
|
||||
|
||||
#custom-rr_end {
|
||||
border-radius: ${x1rc_radius}px ${x2rc_radius}px ${x3rc_radius}px ${x4rc_radius}px;
|
||||
margin-${x4}: ${e_margin}px;
|
||||
padding-${x4}: ${e_paddin}px;
|
||||
}
|
||||
|
||||
#custom-rl_end {
|
||||
border-radius: ${x1lc_radius}px ${x2lc_radius}px ${x3lc_radius}px ${x4lc_radius}px;
|
||||
margin-${x3}: ${e_margin}px;
|
||||
padding-${x3}: ${e_paddin}px;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"rotate": ${r_deg},
|
||||
"icon-size": ${i_task},
|
||||
"icon-theme": "${i_theme}",
|
||||
"spacing": 0,
|
||||
"tooltip-format": "{title}",
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
"ignore-list": [
|
||||
"Alacritty"
|
||||
],
|
||||
"app_ids-mapping": {
|
||||
"firefoxdeveloperedition": "firefox-developer-edition"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
"custom/theme": {
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"exec": "echo ; echo switch theme",
|
||||
"on-click": "themeswitch.sh -n",
|
||||
"on-click-right": "themeswitch.sh -p",
|
||||
"on-click-middle": "sleep 0.1 && themeselect.sh",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
"tray": {
|
||||
"icon-size": ${i_size},
|
||||
"rotate": ${r_deg},
|
||||
"spacing": 5
|
||||
},
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
"custom/updates": {
|
||||
"exec": "systemupdate.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"on-click": "hyprctl dispatch exec 'systemupdate.sh up'",
|
||||
"interval": 86400, // once every day
|
||||
"tooltip": true,
|
||||
"signal": 20
|
||||
},
|
||||
@@ -1,11 +0,0 @@
|
||||
"custom/wallchange": {
|
||||
"format": "{}",
|
||||
"rotate": ${r_deg},
|
||||
"exec": "echo ; echo switch wallpaper",
|
||||
"on-click": "swwwallpaper.sh -n",
|
||||
"on-click-right": "swwwallpaper.sh -p",
|
||||
"on-click-middle": "sleep 0.1 && swwwallselect.sh",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
"hyprland/window": {
|
||||
"format": " {}",
|
||||
"rotate": ${r_deg},
|
||||
"separate-outputs": true,
|
||||
"rewrite": {
|
||||
"${USER}@${set_sysname}:(.*)": "$1 ",
|
||||
"(.*) — Mozilla Firefox": "$1 ",
|
||||
"(.*)Mozilla Firefox": "Firefox ",
|
||||
"(.*) - Visual Studio Code": "$1 ",
|
||||
"(.*)Visual Studio Code": "Code ",
|
||||
"(.*) — Dolphin": "$1 ",
|
||||
"(.*)Spotify": "Spotify ",
|
||||
"(.*)Steam": "Steam "
|
||||
},
|
||||
"max-length": 1000
|
||||
},
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"rotate": ${r_deg},
|
||||
"all-outputs": true,
|
||||
"active-only": false,
|
||||
"on-click": "activate",
|
||||
"disable-scroll": false,
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
@define-color bar-bg rgba(0, 0, 0, 0);
|
||||
|
||||
@define-color main-bg rgba(0,0,0,0.4);
|
||||
@define-color main-fg #cdd6f4;
|
||||
|
||||
@define-color wb-act-bg #a6adc8;
|
||||
@define-color wb-act-fg #313244;
|
||||
|
||||
@define-color wb-hvr-bg #f5c2e7;
|
||||
@define-color wb-hvr-fg #313244;
|
||||
@@ -1,26 +0,0 @@
|
||||
modmap:
|
||||
- name: CapsLock to LeftCtrl/Esc
|
||||
remap:
|
||||
CapsLock:
|
||||
held: leftctrl
|
||||
alone: esc
|
||||
alone_timeout_millis: 150
|
||||
# keymap:
|
||||
# - name: Alt+hjkl to Arrows
|
||||
# remap:
|
||||
# # Alt-H: Alt+left #back
|
||||
# Alt-h: left
|
||||
# Alt-l: right
|
||||
# Alt-j: down
|
||||
# Alt-k: up
|
||||
# Alt-u: pageup
|
||||
# Alt-d: pagedown
|
||||
# keymap:
|
||||
# - name: Freetube remap
|
||||
# application:
|
||||
# only: FreeTube
|
||||
# remap:
|
||||
# Alt-h: Left
|
||||
# Alt-l: Right
|
||||
# Alt-j: Down
|
||||
# Alt-k: Up
|
||||
@@ -1,452 +0,0 @@
|
||||
keybinds clear-defaults=true {
|
||||
locked {
|
||||
bind "Ctrl g" { SwitchToMode "normal"; }
|
||||
}
|
||||
pane {
|
||||
bind "left" { MoveFocus "left"; }
|
||||
bind "down" { MoveFocus "down"; }
|
||||
bind "up" { MoveFocus "up"; }
|
||||
bind "right" { MoveFocus "right"; }
|
||||
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
|
||||
bind "d" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
|
||||
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; }
|
||||
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; }
|
||||
bind "k" { MoveFocus "up"; }
|
||||
bind "l" { MoveFocus "right"; }
|
||||
bind "n" { NewPane; SwitchToMode "normal"; }
|
||||
bind "p" { SwitchFocus; }
|
||||
bind "Ctrl p" { SwitchToMode "normal"; }
|
||||
bind "r" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
||||
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
|
||||
}
|
||||
tab {
|
||||
bind "left" { GoToPreviousTab; }
|
||||
bind "down" { GoToNextTab; }
|
||||
bind "up" { GoToPreviousTab; }
|
||||
bind "right" { GoToNextTab; }
|
||||
bind "1" { GoToTab 1; SwitchToMode "normal"; }
|
||||
bind "2" { GoToTab 2; SwitchToMode "normal"; }
|
||||
bind "3" { GoToTab 3; SwitchToMode "normal"; }
|
||||
bind "4" { GoToTab 4; SwitchToMode "normal"; }
|
||||
bind "5" { GoToTab 5; SwitchToMode "normal"; }
|
||||
bind "6" { GoToTab 6; SwitchToMode "normal"; }
|
||||
bind "7" { GoToTab 7; SwitchToMode "normal"; }
|
||||
bind "8" { GoToTab 8; SwitchToMode "normal"; }
|
||||
bind "9" { GoToTab 9; SwitchToMode "normal"; }
|
||||
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
|
||||
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
|
||||
bind "b" { BreakPane; SwitchToMode "normal"; }
|
||||
bind "h" { GoToPreviousTab; }
|
||||
bind "j" { GoToNextTab; }
|
||||
bind "k" { GoToPreviousTab; }
|
||||
bind "l" { GoToNextTab; }
|
||||
bind "n" { NewTab; SwitchToMode "normal"; }
|
||||
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
|
||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
|
||||
bind "Ctrl t" { SwitchToMode "normal"; }
|
||||
bind "x" { CloseTab; SwitchToMode "normal"; }
|
||||
bind "tab" { ToggleTab; }
|
||||
}
|
||||
resize {
|
||||
bind "left" { Resize "Increase left"; }
|
||||
bind "down" { Resize "Increase down"; }
|
||||
bind "up" { Resize "Increase up"; }
|
||||
bind "right" { Resize "Increase right"; }
|
||||
bind "+" { Resize "Increase"; }
|
||||
bind "-" { Resize "Decrease"; }
|
||||
bind "=" { Resize "Increase"; }
|
||||
bind "H" { Resize "Decrease left"; }
|
||||
bind "J" { Resize "Decrease down"; }
|
||||
bind "K" { Resize "Decrease up"; }
|
||||
bind "L" { Resize "Decrease right"; }
|
||||
bind "h" { Resize "Increase left"; }
|
||||
bind "j" { Resize "Increase down"; }
|
||||
bind "k" { Resize "Increase up"; }
|
||||
bind "l" { Resize "Increase right"; }
|
||||
bind "Ctrl n" { SwitchToMode "normal"; }
|
||||
}
|
||||
move {
|
||||
bind "left" { MovePane "left"; }
|
||||
bind "down" { MovePane "down"; }
|
||||
bind "up" { MovePane "up"; }
|
||||
bind "right" { MovePane "right"; }
|
||||
bind "h" { MovePane "left"; }
|
||||
bind "Ctrl h" { SwitchToMode "normal"; }
|
||||
bind "j" { MovePane "down"; }
|
||||
bind "k" { MovePane "up"; }
|
||||
bind "l" { MovePane "right"; }
|
||||
bind "n" { MovePane; }
|
||||
bind "p" { MovePaneBackwards; }
|
||||
bind "tab" { MovePane; }
|
||||
}
|
||||
scroll {
|
||||
bind "e" { EditScrollback; SwitchToMode "normal"; }
|
||||
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
|
||||
}
|
||||
search {
|
||||
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
||||
bind "n" { Search "down"; }
|
||||
bind "o" { SearchToggleOption "WholeWord"; }
|
||||
bind "p" { Search "up"; }
|
||||
bind "w" { SearchToggleOption "Wrap"; }
|
||||
}
|
||||
session {
|
||||
bind "a" {
|
||||
LaunchOrFocusPlugin "zellij:about" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "c" {
|
||||
LaunchOrFocusPlugin "configuration" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "Ctrl o" { SwitchToMode "normal"; }
|
||||
bind "p" {
|
||||
LaunchOrFocusPlugin "plugin-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
bind "w" {
|
||||
LaunchOrFocusPlugin "session-manager" {
|
||||
floating true
|
||||
move_to_focused_tab true
|
||||
}
|
||||
SwitchToMode "normal"
|
||||
}
|
||||
}
|
||||
shared_except "locked" {
|
||||
bind "Alt left" { MoveFocusOrTab "left"; }
|
||||
bind "Alt down" { MoveFocus "down"; }
|
||||
bind "Alt up" { MoveFocus "up"; }
|
||||
bind "Alt right" { MoveFocusOrTab "right"; }
|
||||
bind "Alt +" { Resize "Increase"; }
|
||||
bind "Alt -" { Resize "Decrease"; }
|
||||
bind "Alt =" { Resize "Increase"; }
|
||||
bind "Alt [" { PreviousSwapLayout; }
|
||||
bind "Alt ]" { NextSwapLayout; }
|
||||
bind "Alt f" { ToggleFloatingPanes; }
|
||||
bind "Ctrl g" { SwitchToMode "locked"; }
|
||||
bind "Alt h" { MoveFocusOrTab "left"; }
|
||||
bind "Alt i" { MoveTab "left"; }
|
||||
bind "Alt j" { MoveFocus "down"; }
|
||||
bind "Alt k" { MoveFocus "up"; }
|
||||
bind "Alt l" { MoveFocusOrTab "right"; }
|
||||
bind "Alt n" { NewPane; }
|
||||
bind "Alt o" { MoveTab "right"; }
|
||||
bind "Ctrl q" { Quit; }
|
||||
}
|
||||
shared_except "locked" "move" {
|
||||
bind "Ctrl h" { SwitchToMode "move"; }
|
||||
}
|
||||
shared_except "locked" "session" {
|
||||
bind "Ctrl o" { SwitchToMode "session"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "search" "tmux" {
|
||||
bind "Ctrl b" { SwitchToMode "tmux"; }
|
||||
}
|
||||
shared_except "locked" "scroll" "search" {
|
||||
bind "Ctrl s" { SwitchToMode "scroll"; }
|
||||
}
|
||||
shared_except "locked" "tab" {
|
||||
bind "Ctrl t" { SwitchToMode "tab"; }
|
||||
}
|
||||
shared_except "locked" "pane" {
|
||||
bind "Ctrl p" { SwitchToMode "pane"; }
|
||||
}
|
||||
shared_except "locked" "resize" {
|
||||
bind "Ctrl n" { SwitchToMode "resize"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" {
|
||||
bind "enter" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
|
||||
bind "esc" { SwitchToMode "normal"; }
|
||||
}
|
||||
shared_among "pane" "tmux" {
|
||||
bind "x" { CloseFocus; SwitchToMode "normal"; }
|
||||
}
|
||||
shared_among "scroll" "search" {
|
||||
bind "PageDown" { PageScrollDown; }
|
||||
bind "PageUp" { PageScrollUp; }
|
||||
bind "left" { PageScrollUp; }
|
||||
bind "down" { ScrollDown; }
|
||||
bind "up" { ScrollUp; }
|
||||
bind "right" { PageScrollDown; }
|
||||
bind "Ctrl b" { PageScrollUp; }
|
||||
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
|
||||
bind "d" { HalfPageScrollDown; }
|
||||
bind "Ctrl f" { PageScrollDown; }
|
||||
bind "h" { PageScrollUp; }
|
||||
bind "j" { ScrollDown; }
|
||||
bind "k" { ScrollUp; }
|
||||
bind "l" { PageScrollDown; }
|
||||
bind "Ctrl s" { SwitchToMode "normal"; }
|
||||
bind "u" { HalfPageScrollUp; }
|
||||
}
|
||||
entersearch {
|
||||
bind "Ctrl c" { SwitchToMode "scroll"; }
|
||||
bind "esc" { SwitchToMode "scroll"; }
|
||||
bind "enter" { SwitchToMode "search"; }
|
||||
}
|
||||
renametab {
|
||||
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
|
||||
}
|
||||
shared_among "renametab" "renamepane" {
|
||||
bind "Ctrl c" { SwitchToMode "normal"; }
|
||||
}
|
||||
renamepane {
|
||||
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
|
||||
}
|
||||
shared_among "session" "tmux" {
|
||||
bind "d" { Detach; }
|
||||
}
|
||||
tmux {
|
||||
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "space" { NextSwapLayout; }
|
||||
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
|
||||
bind "%" { NewPane "right"; SwitchToMode "normal"; }
|
||||
bind "," { SwitchToMode "renametab"; }
|
||||
bind "[" { SwitchToMode "scroll"; }
|
||||
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
|
||||
bind "c" { NewTab; SwitchToMode "normal"; }
|
||||
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
|
||||
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
|
||||
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
|
||||
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
|
||||
bind "n" { GoToNextTab; SwitchToMode "normal"; }
|
||||
bind "o" { FocusNextPane; }
|
||||
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
|
||||
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
||||
}
|
||||
}
|
||||
|
||||
// Plugin aliases - can be used to change the implementation of Zellij
|
||||
// changing these requires a restart to take effect
|
||||
plugins {
|
||||
about location="zellij:about"
|
||||
compact-bar location="zellij:compact-bar"
|
||||
configuration location="zellij:configuration"
|
||||
filepicker location="zellij:strider" {
|
||||
cwd "/"
|
||||
}
|
||||
plugin-manager location="zellij:plugin-manager"
|
||||
session-manager location="zellij:session-manager"
|
||||
status-bar location="zellij:status-bar"
|
||||
strider location="zellij:strider"
|
||||
tab-bar location="zellij:tab-bar"
|
||||
welcome-screen location="zellij:session-manager" {
|
||||
welcome_screen true
|
||||
}
|
||||
}
|
||||
|
||||
// Plugins to load in the background when a new session starts
|
||||
// eg. "file:/path/to/my-plugin.wasm"
|
||||
// eg. "https://example.com/my-plugin.wasm"
|
||||
load_plugins {
|
||||
}
|
||||
|
||||
// Use a simplified UI without special fonts (arrow glyphs)
|
||||
// Options:
|
||||
// - true
|
||||
// - false (Default)
|
||||
//
|
||||
// simplified_ui true
|
||||
|
||||
// Choose the theme that is specified in the themes section.
|
||||
// Default: default
|
||||
//
|
||||
// theme "dracula"
|
||||
|
||||
// Choose the base input mode of zellij.
|
||||
// Default: normal
|
||||
//
|
||||
// default_mode "locked"
|
||||
|
||||
// Choose the path to the default shell that zellij will use for opening new panes
|
||||
// Default: $SHELL
|
||||
//
|
||||
// default_shell "fish"
|
||||
|
||||
// Choose the path to override cwd that zellij will use for opening new panes
|
||||
//
|
||||
// default_cwd "/tmp"
|
||||
|
||||
// The name of the default layout to load on startup
|
||||
// Default: "default"
|
||||
//
|
||||
// default_layout "compact"
|
||||
|
||||
// The folder in which Zellij will look for layouts
|
||||
// (Requires restart)
|
||||
//
|
||||
// layout_dir "/tmp"
|
||||
|
||||
// The folder in which Zellij will look for themes
|
||||
// (Requires restart)
|
||||
//
|
||||
// theme_dir "/tmp"
|
||||
|
||||
// Toggle enabling the mouse mode.
|
||||
// On certain configurations, or terminals this could
|
||||
// potentially interfere with copying text.
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// mouse_mode false
|
||||
|
||||
// Toggle having pane frames around the panes
|
||||
// Options:
|
||||
// - true (default, enabled)
|
||||
// - false
|
||||
//
|
||||
// pane_frames false
|
||||
|
||||
// When attaching to an existing session with other users,
|
||||
// should the session be mirrored (true)
|
||||
// or should each user have their own cursor (false)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// mirror_session true
|
||||
|
||||
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
|
||||
// eg. when terminal window with an active zellij session is closed
|
||||
// (Requires restart)
|
||||
// Options:
|
||||
// - detach (Default)
|
||||
// - quit
|
||||
//
|
||||
// on_force_close "quit"
|
||||
|
||||
// Configure the scroll back buffer size
|
||||
// This is the number of lines zellij stores for each pane in the scroll back
|
||||
// buffer. Excess number of lines are discarded in a FIFO fashion.
|
||||
// (Requires restart)
|
||||
// Valid values: positive integers
|
||||
// Default value: 10000
|
||||
//
|
||||
// scroll_buffer_size 10000
|
||||
|
||||
// Provide a command to execute when copying text. The text will be piped to
|
||||
// the stdin of the program to perform the copy. This can be used with
|
||||
// terminal emulators which do not support the OSC 52 ANSI control sequence
|
||||
// that will be used by default if this option is not set.
|
||||
// Examples:
|
||||
//
|
||||
// copy_command "xclip -selection clipboard" // x11
|
||||
// copy_command "wl-copy" // wayland
|
||||
// copy_command "pbcopy" // osx
|
||||
//
|
||||
// copy_command "pbcopy"
|
||||
|
||||
// Choose the destination for copied text
|
||||
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
|
||||
// Does not apply when using copy_command.
|
||||
// Options:
|
||||
// - system (default)
|
||||
// - primary
|
||||
//
|
||||
// copy_clipboard "primary"
|
||||
|
||||
// Enable automatic copying (and clearing) of selection when releasing mouse
|
||||
// Default: true
|
||||
//
|
||||
// copy_on_select true
|
||||
|
||||
// Path to the default editor to use to edit pane scrollbuffer
|
||||
// Default: $EDITOR or $VISUAL
|
||||
// scrollback_editor "/usr/bin/vim"
|
||||
|
||||
// A fixed name to always give the Zellij session.
|
||||
// Consider also setting `attach_to_session true,`
|
||||
// otherwise this will error if such a session exists.
|
||||
// Default: <RANDOM>
|
||||
//
|
||||
// session_name "My singleton session"
|
||||
|
||||
// When `session_name` is provided, attaches to that session
|
||||
// if it is already running or creates it otherwise.
|
||||
// Default: false
|
||||
//
|
||||
// attach_to_session true
|
||||
|
||||
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// auto_layout false
|
||||
|
||||
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
|
||||
// Options:
|
||||
// - true (default)
|
||||
// - false
|
||||
//
|
||||
// session_serialization false
|
||||
|
||||
// Whether pane viewports are serialized along with the session, default is false
|
||||
// Options:
|
||||
// - true
|
||||
// - false (default)
|
||||
//
|
||||
// serialize_pane_viewport false
|
||||
|
||||
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
|
||||
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
|
||||
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
|
||||
//
|
||||
// scrollback_lines_to_serialize 10000
|
||||
|
||||
// Enable or disable the rendering of styled and colored underlines (undercurl).
|
||||
// May need to be disabled for certain unsupported terminals
|
||||
// (Requires restart)
|
||||
// Default: true
|
||||
//
|
||||
// styled_underlines false
|
||||
|
||||
// How often in seconds sessions are serialized
|
||||
//
|
||||
// serialization_interval 10000
|
||||
|
||||
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
|
||||
// metadata info on this session)
|
||||
// (Requires restart)
|
||||
// Default: false
|
||||
//
|
||||
// disable_session_metadata false
|
||||
|
||||
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
|
||||
// (Requires restart)
|
||||
// Default: true (if the host terminal supports it)
|
||||
//
|
||||
// support_kitty_keyboard_protocol false
|
||||
|
||||
// Whether to stack panes when resizing beyond a certain size
|
||||
// Default: true
|
||||
//
|
||||
// stacked_resize false
|
||||
|
||||
// Whether to show tips on startup
|
||||
// Default: true
|
||||
//
|
||||
// show_startup_tips false
|
||||
|
||||
// Whether to show release notes on first version run
|
||||
// Default: true
|
||||
//
|
||||
// show_release_notes false
|
||||
@@ -0,0 +1,28 @@
|
||||
# Shell formatting for this repo.
|
||||
#
|
||||
# Both `shfmt` and the Claude format hook (common/.config/claude/hooks/format.py, which only
|
||||
# runs shfmt/fish_indent where an .editorconfig opts in) read this file, so the policy and the
|
||||
# tool that enforces it live in one place. Neovim reads it natively too.
|
||||
#
|
||||
# The settings were picked to stay as close as possible to how these scripts were already
|
||||
# written by hand: 2-space indent, `case` arms indented under `case`, and `&&`/`||` starting
|
||||
# the wrapped line rather than trailing the one before it (binary_next_line, which reproduces
|
||||
# the existing `\` continuations exactly). shfmt still rewrites
|
||||
# a few things no option controls — one-line `case x) a; b ;;` arms and `{ a; b; }` guards
|
||||
# are split across lines, and `> file` loses its space — which is the one-time cost of
|
||||
# having a formatter own the layout instead of maintaining it by hand.
|
||||
#
|
||||
# `keep_padding` is deliberately NOT set: it is deprecated in shfmt, and it indents the
|
||||
# statements it splits by the padding column, producing a cascading staircase.
|
||||
#
|
||||
# Scoped to shell on purpose — there is no [*] section, so the repo's other filetypes are
|
||||
# untouched (a [*] block would retune all of them in any editorconfig-aware editor, and
|
||||
# would also switch on the hook's fish_indent for every fish file).
|
||||
|
||||
root = true
|
||||
|
||||
[{*.sh,dotsync,dotpub}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
switch_case_indent = true
|
||||
binary_next_line = true
|
||||
+38
-3
@@ -1,3 +1,38 @@
|
||||
!.gitignore
|
||||
.config/hyde/themes/
|
||||
.config/fish/greet.txt
|
||||
# Secrets / local-only (matched at any depth)
|
||||
secrets.fish
|
||||
fish_variables
|
||||
greet.txt
|
||||
settings.local.json
|
||||
|
||||
# pi agent runtime + machine-local auth/state
|
||||
**/.pi/agent/auth.json
|
||||
**/.pi/agent/sessions/
|
||||
**/.pi/agent/bin/
|
||||
**/.pi/agent/git/
|
||||
**/.pi/agent/npm/
|
||||
**/.pi/agent/trust.json
|
||||
|
||||
# tmux plugins (tpm-managed, not vendored)
|
||||
**/tmux/plugins/
|
||||
|
||||
# HyDE generated theme + wallpaper assets (per-machine, huge — bloated the old repo to 255MB)
|
||||
**/hyde/themes/
|
||||
**/wallpapers/
|
||||
|
||||
# Claude Code project dir (worktrees, local settings, history) — never part of the dotfiles
|
||||
.claude/
|
||||
|
||||
# backups / logs / package noise / os
|
||||
*.bak
|
||||
*.bak.*
|
||||
*.log
|
||||
package-lock.json
|
||||
__pycache__/
|
||||
**/hypr/themes/
|
||||
# HyDE writes these at theme-apply time (sourced by animations/theme.conf & hyprlock/theme.conf)
|
||||
**/hypr/animations/HyDE.conf
|
||||
**/hypr/hyprlock/HyDE.conf
|
||||
|
||||
# HyDE generates waybar's include list per machine, with ABSOLUTE $HOME paths — the committed copy
|
||||
# carried fl's /home/anon into every gui host, where it resolved to nothing. Let each box write it.
|
||||
**/waybar/includes/includes.json
|
||||
@@ -0,0 +1,12 @@
|
||||
# Search config for THIS repo only (ripgrep / fd / telescope read .ignore).
|
||||
#
|
||||
# Everything this repo holds lives in dotfiles and dotdirs — common/.config, gui/.config,
|
||||
# common/.pi, common/.bashrc — which rg and fd skip by default, so an unqualified search
|
||||
# here returned nothing at all. Un-hide them, then put back the two dirs that would swamp
|
||||
# every result: negating .* alone drags in the whole of .git, and .claude/worktrees holds
|
||||
# entire checkouts of this same repo (background sessions create them), so every hit would
|
||||
# appear several times over. Scoped to this directory tree; searches elsewhere on the
|
||||
# machine are unaffected.
|
||||
!.*
|
||||
.git/
|
||||
.claude/
|
||||
@@ -1,21 +0,0 @@
|
||||
# Vi mode
|
||||
set editing-mode vi
|
||||
set keymap vi
|
||||
set show-mode-in-prompt on
|
||||
set vi-ins-mode-string "\1\e[32m\2[I] \1\e[0m\2"
|
||||
set vi-cmd-mode-string "\1\e[31m\2[N] \1\e[0m\2"
|
||||
|
||||
# exclude .dotfles
|
||||
set match-hidden-files off
|
||||
|
||||
set show-all-if-ambiguous on
|
||||
set show-all-if-unmodified on
|
||||
set colored-stats on
|
||||
set colored-completion-prefix on
|
||||
set mark-symlinked-directories on
|
||||
set completion-ignore-case on
|
||||
|
||||
# Ignore duplicates in history where supported
|
||||
set skip-completed-text on
|
||||
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
{
|
||||
"providers": {
|
||||
"duskadiy": {
|
||||
"baseUrl": "https://llm.duskadiy.com/api/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
"localcpp": {
|
||||
"baseUrl": "http://192.168.0.204:11343/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"defaultProvider": "duskadiy",
|
||||
"defaultModel": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"defaultThinkingLevel": "off",
|
||||
"theme": "catppuccin-mocha",
|
||||
"quietStartup": false,
|
||||
"defaultProjectTrust": "ask",
|
||||
"enableInstallTelemetry": false,
|
||||
"enabledModels": [
|
||||
"localcpp/*",
|
||||
"duskadiy/*"
|
||||
],
|
||||
"compaction": {
|
||||
"enabled": true,
|
||||
"reserveTokens": 16384,
|
||||
"keepRecentTokens": 20000
|
||||
},
|
||||
"retry": {
|
||||
"enabled": true,
|
||||
"maxRetries": 3,
|
||||
"baseDelayMs": 2000,
|
||||
"provider": {
|
||||
"timeoutMs": 3600000
|
||||
}
|
||||
},
|
||||
"httpIdleTimeoutMs": 600000,
|
||||
"npmCommand": [
|
||||
"fnm",
|
||||
"exec",
|
||||
"--using=22",
|
||||
"--",
|
||||
"npm"
|
||||
],
|
||||
"showHardwareCursor": true,
|
||||
"lastChangelogVersion": "0.80.2"
|
||||
}
|
||||
-190
@@ -1,190 +0,0 @@
|
||||
{
|
||||
"providers": {
|
||||
"duskadiy": {
|
||||
"baseUrl": "https://llm.duskadiy.com/api/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "$DUSKADIY_API_KEY",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
},
|
||||
"localcpp": {
|
||||
"baseUrl": "http://192.168.0.204:11343/v1",
|
||||
"api": "openai-completions",
|
||||
"apiKey": "no-key-required",
|
||||
"compat": {
|
||||
"supportsDeveloperRole": false,
|
||||
"supportsReasoningEffort": false,
|
||||
"maxTokensField": "max_tokens"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "DeepSeek-Coder-V2-Lite-Instruct-Q8_0",
|
||||
"name": "DeepSeek Coder V2",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-E4B-it-UD-Q8_K_XL",
|
||||
"name": "Gemma 4 E4B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"name": "Gemma 4 26B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3-Coder-30B-Instruct-IQ4_XS",
|
||||
"name": "Qwen3 Coder A3B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 8192,
|
||||
"maxTokens": 4096,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-UD-IQ3_XXS",
|
||||
"name": "Qwen3.6 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-27B-UD-Q3_K_XL",
|
||||
"name": "Qwen3.5 27B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.5-9B-Q8_0",
|
||||
"name": "Qwen3.5 9B",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ3_M",
|
||||
"name": "Qwen3.6 27B Uncensored",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
},
|
||||
{
|
||||
"id": "GLM-4.7-Flash-UD-Q3_K_XL",
|
||||
"name": "GLM-4.7 Flash",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"contextWindow": 81920,
|
||||
"maxTokens": 16384,
|
||||
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"defaultProvider": "duskadiy",
|
||||
"defaultModel": "gemma-4-26B-A4B-it-UD-IQ4_XS",
|
||||
"defaultThinkingLevel": "on",
|
||||
"theme": "catppuccin-mocha",
|
||||
"quietStartup": false,
|
||||
"defaultProjectTrust": "ask",
|
||||
"enableInstallTelemetry": false,
|
||||
"enabledModels": [
|
||||
"localcpp/*",
|
||||
"duskadiy/*"
|
||||
],
|
||||
"compaction": {
|
||||
"enabled": true,
|
||||
"reserveTokens": 16384,
|
||||
"keepRecentTokens": 20000
|
||||
},
|
||||
"retry": {
|
||||
"enabled": true,
|
||||
"maxRetries": 3,
|
||||
"baseDelayMs": 2000,
|
||||
"provider": {
|
||||
"timeoutMs": 3600000
|
||||
}
|
||||
},
|
||||
"httpIdleTimeoutMs": 600000,
|
||||
"npmCommand": ["fnm", "exec", "--using=22", "--", "npm"],
|
||||
"showHardwareCursor": true,
|
||||
"lastChangelogVersion": "0.80.1"
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
||||
"name": "catppuccin-mocha",
|
||||
"vars": {
|
||||
"rosewater": "#f5e0dc",
|
||||
"flamingo": "#f2cdcd",
|
||||
"pink": "#f5c2e7",
|
||||
"mauve": "#cba6f7",
|
||||
"red": "#f38ba8",
|
||||
"maroon": "#eba0ac",
|
||||
"peach": "#fab387",
|
||||
"yellow": "#f9e2af",
|
||||
"green": "#a6e3a1",
|
||||
"teal": "#94e2d5",
|
||||
"sky": "#89dceb",
|
||||
"sapphire": "#74c7ec",
|
||||
"blue": "#89b4fa",
|
||||
"lavender": "#b4befe",
|
||||
"fg": "#cdd6f4",
|
||||
"subtext1": "#bac2de",
|
||||
"subtext0": "#a6adc8",
|
||||
"overlay2": "#9399b2",
|
||||
"overlay1": "#7f849c",
|
||||
"overlay0": "#6c7086",
|
||||
"surface2": "#585b70",
|
||||
"surface1": "#45475a",
|
||||
"surface0": "#313244",
|
||||
"base": "#1e1e2e",
|
||||
"mantle": "#181825",
|
||||
"crust": "#11111b"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "mauve",
|
||||
"border": "surface1",
|
||||
"borderAccent": "mauve",
|
||||
"borderMuted": "surface0",
|
||||
"success": "green",
|
||||
"error": "red",
|
||||
"warning": "yellow",
|
||||
"muted": "subtext0",
|
||||
"dim": "overlay0",
|
||||
"text": "fg",
|
||||
"thinkingText": "overlay1",
|
||||
"selectedBg": "surface0",
|
||||
"userMessageBg": "surface0",
|
||||
"userMessageText": "fg",
|
||||
"customMessageBg": "surface0",
|
||||
"customMessageText": "fg",
|
||||
"customMessageLabel": "mauve",
|
||||
"toolPendingBg": "mantle",
|
||||
"toolSuccessBg": "#1e2b22",
|
||||
"toolErrorBg": "#2b1e22",
|
||||
"toolTitle": "mauve",
|
||||
"toolOutput": "fg",
|
||||
"mdHeading": "mauve",
|
||||
"mdLink": "blue",
|
||||
"mdLinkUrl": "sapphire",
|
||||
"mdCode": "green",
|
||||
"mdCodeBlock": "fg",
|
||||
"mdCodeBlockBorder": "surface1",
|
||||
"mdQuote": "subtext0",
|
||||
"mdQuoteBorder": "surface2",
|
||||
"mdHr": "surface1",
|
||||
"mdListBullet": "mauve",
|
||||
"toolDiffAdded": "green",
|
||||
"toolDiffRemoved": "red",
|
||||
"toolDiffContext": "overlay0",
|
||||
"syntaxComment": "overlay0",
|
||||
"syntaxKeyword": "mauve",
|
||||
"syntaxFunction": "blue",
|
||||
"syntaxVariable": "fg",
|
||||
"syntaxString": "green",
|
||||
"syntaxNumber": "peach",
|
||||
"syntaxType": "yellow",
|
||||
"syntaxOperator": "sky",
|
||||
"syntaxPunctuation": "overlay2",
|
||||
"thinkingOff": "surface1",
|
||||
"thinkingMinimal": "overlay0",
|
||||
"thinkingLow": "blue",
|
||||
"thinkingMedium": "teal",
|
||||
"thinkingHigh": "peach",
|
||||
"thinkingXhigh": "red",
|
||||
"bashMode": "peach"
|
||||
},
|
||||
"export": {
|
||||
"pageBg": "#11111b",
|
||||
"cardBg": "#1e1e2e",
|
||||
"infoBg": "#313244"
|
||||
}
|
||||
}
|
||||
@@ -209,7 +209,7 @@ If you develop a new program, and you want it to be of the greatest possible use
|
||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
|
||||
|
||||
dots
|
||||
Copyright (C) 2025 coja
|
||||
Copyright (C) 2026 coja
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||
|
||||
@@ -221,7 +221,7 @@ Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
|
||||
|
||||
dots Copyright (C) 2025 coja
|
||||
dots Copyright (C) 2026 coja
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
|
||||
|
||||
|
||||
@@ -1,13 +1,235 @@
|
||||
# dots
|
||||
|
||||
using `gnu stow`
|
||||
Unified dotfiles for all machines: one shared base + per-host overlays, deployed with
|
||||
[GNU Stow](https://www.gnu.org/software/stow/).
|
||||
|
||||
Customized [Hyde](https://github.com/HyDE-Project/HyDE)
|
||||
## Layout
|
||||
|
||||
`hyde`, `waybar` and `fish` are from hyprdots with customizations
|
||||
Every top-level directory is a Stow *package* (they all share one stow dir, which `--override`
|
||||
requires). `bin/` holds repo tooling and is **not** a package (never stowed):
|
||||
|
||||
`nvim` is [nvchad](https://nvchad.com/) custom conf
|
||||
```
|
||||
common/ # shared everywhere (mirrors $HOME): fish, nvim, bat, btop, tmux, pi, claude, presenterm, ...
|
||||
gui/ # GUI configs shared by graphical hosts: hypr, waybar, kitty, alacritty, mpv, zellij
|
||||
wm/ # desktop: 4K monitors, NVIDIA, cloud LLM (duskadiy), work aliases
|
||||
lw/ # laptop: no NVIDIA, roaming VPNs, network/LLM tools
|
||||
fl/ # KDE Plasma box: a few Hyprland overrides + llamacpp, evremap
|
||||
bin/ # tooling (not a stow package): install.sh companions
|
||||
install.sh
|
||||
```
|
||||
|
||||
A **headless** (terminal-only) machine has no overlay package — it runs `common` only. Mark any box
|
||||
headless with `touch ~/.config/dots-headless` (a machine-local, hostname-independent marker); it then
|
||||
skips `gui` too, so the same terminal-only setup replicates across any number of machines. In other
|
||||
words `common` *is* the headless baseline; `gui` and the host packages layer graphical machines on top.
|
||||
|
||||
### How it deploys
|
||||
|
||||
Deploy order is `common → gui → <host>`; later layers win (the host package is stowed last with
|
||||
`--override`, so a host file replaces the common/gui file at the same path). Stow runs with
|
||||
`--no-folding`, so each *file* is symlinked individually (directories stay real) — this is what lets
|
||||
a host override a single file in a shared dir without shadowing the rest.
|
||||
|
||||
**Editing a config edits the repo copy directly** (it's a symlink) — no deploy step. You only re-run
|
||||
`install.sh` when files are **added or removed** (to create/prune symlinks). See **Syncing** below.
|
||||
|
||||
The repo must be cloned to **`~/.dots`** (the relative `../.dots` symlink convention).
|
||||
|
||||
### Which host package a machine deploys
|
||||
|
||||
**Hostname is not the authority** — the machine remembers its own choice, so several boxes can deploy
|
||||
the same overlay without sharing a hostname. `install.sh` resolves the host as:
|
||||
|
||||
1. the explicit argument (`./install.sh wm`),
|
||||
2. else the name in **`~/.config/dots-host`** — written by `install.sh` itself on every run that
|
||||
resolved a real package, so a one-time `./install.sh <host>` is all the setup there is,
|
||||
3. else `hostname -s`, purely as a convenience guess for boxes where the two happen to agree.
|
||||
|
||||
`~/.config/dots-host` is a machine-local, hand-editable one-word file — the sibling of the
|
||||
`dots-headless` marker above. It is what makes **`bin/dotsync` correct**: dotsync re-links
|
||||
automatically and has no argument to pass, so without a recorded host it could only guess. Switching
|
||||
a machine to another overlay is just `./install.sh <other>` — the previously recorded host is
|
||||
unstowed first, so the base layers don't collide with its leftover links.
|
||||
|
||||
Mismatched hostnames used to fail in a way worth recognizing: `./install.sh` on a box whose hostname
|
||||
matches no package deploys `common`, aborts `gui` on every file the real overlay owns
|
||||
(`existing target is stowed to a different package`) and skips the overlay entirely — a loud
|
||||
`exit 1`, but a half-applied one, where newly added files silently get no symlink.
|
||||
|
||||
## Install (new machine)
|
||||
|
||||
```fish
|
||||
sudo pacman -S stow
|
||||
git clone <remote> ~/.dots
|
||||
cd ~/.dots
|
||||
./install.sh wm # name the host package once — it is remembered (see above)
|
||||
```
|
||||
|
||||
`./install.sh -h` lists all options: `-n` dry-run, `-a` adopt (first run), `-D` unstow (revert),
|
||||
`-h` help. GUI hosts also need **HyDE installed** first — see *HyDE dependency* below.
|
||||
|
||||
Once per machine afterwards: `bat cache --build` (registers the repo's custom bat themes —
|
||||
without it every `bat` run warns `Unknown theme 'onedark'`), and `:Lazy restore` inside nvim
|
||||
(`restore` obeys the shared `lazy-lock.json` pins; `sync`/`update` would rewrite them).
|
||||
nvim's treesitter (`main` branch) builds parsers via the `tree-sitter` CLI — `pacman -S
|
||||
tree-sitter-cli` first, or `:TSInstallAll` fails with `ENOENT ... 'tree-sitter'`.
|
||||
|
||||
### First run on a machine that still has real config files
|
||||
|
||||
Stow **aborts the whole package on the first conflict** (one real file blocks *everything* in
|
||||
`common`), and refuses to clobber real files without `--adopt` — you'll see
|
||||
`cannot stow … since neither a link nor a directory`. Adopt them, review, then keep the repo's
|
||||
versions:
|
||||
|
||||
```fish
|
||||
cd ~/.dots
|
||||
git status # make sure the repo is clean first (see the restore caveat)
|
||||
./install.sh -a <host> # --adopt: pull existing files into the repo, symlink them back
|
||||
git diff --stat # what this machine had vs the repo (review the drift!)
|
||||
git restore . # discard adopted content, keep the repo versions
|
||||
```
|
||||
|
||||
`--adopt` overwrites the repo copies with the machine's files, so `git restore .` is what keeps the
|
||||
repo versions. Cautions: adopted changes can land under `common/`/`gui/` even when host-specific, and
|
||||
`git restore .` drops **all** uncommitted edits — so commit/stash anything you want first. To keep a
|
||||
genuine machine change (e.g. custom pyradio `stations.csv`), hand-copy it into the right package
|
||||
instead of restoring that path.
|
||||
|
||||
## Syncing (day-to-day)
|
||||
|
||||
Because configs are symlinks into the repo, **you almost never run `install.sh` to sync**:
|
||||
|
||||
- **Pull/propagate edits:** `cd ~/.dots && git pull` — changes are live in place instantly. No
|
||||
re-stow, so **no symlink churn and no app reloads** (kitty etc. keep runtime state).
|
||||
- **`bin/dotsync`** does this safely: `git pull`, then re-link via `install.sh` **only if** the pull
|
||||
added/removed/renamed files (pure edits skip the re-stow). `dotsync -n` previews incoming changes.
|
||||
- **`install.sh` is a (re)deploy tool, not a sync tool** — its `stow -R` deletes+recreates every
|
||||
symlink, which is what makes apps reload. Only needed for the initial link or when files are
|
||||
added/removed.
|
||||
- **Never `stow` the repo root** (`stow .dots`, `stow */`) — it folds package dirs into `~` as stray
|
||||
`~/common`, `~/gui`, … symlinks. `install.sh` only ever links package *contents*.
|
||||
- **New host:** create a top-level `<name>/` package (at least a `host.fish`), commit, then
|
||||
`./install.sh <name>` (naming it once records it — later runs and dotsync need no argument).
|
||||
If it's terminal-only, skip the package and just `touch ~/.config/dots-headless` (it runs
|
||||
`common` only).
|
||||
|
||||
## Tooling (`bin/`)
|
||||
|
||||
| Command | What it does |
|
||||
|---|---|
|
||||
| `./install.sh [host]` | Deploy `common → gui → <host>`. Host = arg, else `~/.config/dots-host`, else `hostname -s`; the resolved host is recorded there. Flags: `-n` dry-run, `-a` adopt (first run), `-D`/`--unstow` revert (remove this host's symlinks; repo + real files kept), `-h` help. Self-heals: headless hosts get any stray `gui` unstowed, a previously recorded host is released before re-deploying; fails loudly (exit 1) if a package couldn't stow. |
|
||||
| `./bin/dotsync [-n\|host]` | Sync with least churn: `git pull`, re-stow only if files were added/removed (via `install.sh`, using the recorded host). |
|
||||
| `./bin/reconcile-hyde.sh [-i\|--relink] [host]` | After a HyDE update overwrote `~/.config/hypr`, reconcile HyDE's new files against your dots versions (report / `-i` keep·take·merge each / `--relink` re-symlink). |
|
||||
|
||||
## How per-host differences are expressed
|
||||
|
||||
| Difference | Mechanism |
|
||||
|---|---|
|
||||
| Monitors | `<h>/.config/hypr/monitors.conf` (sourced by the shared `hyprland.conf`) |
|
||||
| NVIDIA | `wm/.config/hypr/nvidia.conf`, pulled in by wm's `host.conf` (fl/lw have no NVIDIA) |
|
||||
| Shell aliases | shared `config.fish` sources `~/.config/fish/host.fish` (per host) |
|
||||
| Bash extras | shared `.bashrc` sources `~/.bashrc.host` (optional, per host) |
|
||||
| fl's Hyprland | overrides ~9 hypr files (`hyprland.conf`, keybinds, windowrules, theme colors, monitors); inherits the rest from `gui` |
|
||||
| Unique apps | in the owning host overlay (fl: llamacpp/evremap; lw: xremap) |
|
||||
|
||||
`aichat`, `pi`, and `opencode` share one config in `common` (LAN-first, with the cloud provider also
|
||||
listed so any host can switch). `lw` carries a host overlay of all three that adds its local CPU
|
||||
llama.cpp models — mirror edits between the common and `lw` copies. The opencode tree is documented
|
||||
in `common/.config/opencode/README.md`.
|
||||
|
||||
## HyDE dependency (important for GUI hosts)
|
||||
|
||||
The Hyprland config is [HyDE](https://github.com/HyDE-Project/HyDE)-based. `gui/.config/hypr/*` is
|
||||
your customization layer, but it **sources HyDE's framework**:
|
||||
`source = ~/.local/share/hyde/hyprland.conf` — which defines `$mainMod` and other variables. So a GUI
|
||||
host must have **HyDE installed**, or Hyprland fails to start (`source globbing error` +
|
||||
`invalid mod $mainMod`).
|
||||
|
||||
That file used to be generated-and-untracked, but **HyDE 26.x deploys neither it nor `hyde.conf`**,
|
||||
so since the 2026-08-14 audit both are **tracked pins** in `gui/.local/share/hyde/` — the one
|
||||
deliberate exception to the generated-files-are-never-tracked rule below, interim until the Lua port.
|
||||
After pulling that audit, a machine must run **`./bin/hyde-materialize.sh` before `./install.sh`**:
|
||||
the newly-untracked files leave dangling stow symlinks otherwise, and hypr/hyprlock treat a missing
|
||||
`source =` as a hard parse error.
|
||||
|
||||
- Install/update HyDE with its own installer (`~/HyDE/Scripts/install.sh`); it also pulls the
|
||||
required apps (`xdg-desktop-portal-hyprland`, `xdg-desktop-portal-gtk`, `hyprpolkitagent`).
|
||||
- HyDE's `-r`/restore overwrites `~/.config/hypr` — use **`bin/reconcile-hyde.sh`** afterward to fold
|
||||
its new defaults back against your dots configs.
|
||||
- **Wallpapers and generated themes are HyDE-owned, never in dots** (`**/hyde/themes/` and
|
||||
`**/wallpapers/` are gitignored — they once bloated a source repo to 255 MB). A fresh machine gets
|
||||
them from HyDE, not from this repo.
|
||||
|
||||
## Waybar (two worlds: HyDE-generated vs the standalone rig)
|
||||
|
||||
**HyDE owns `~/.config/waybar/config.jsonc` AND `style.css`** — its `waybar.py` *writes* both on
|
||||
any `--set`/`--update`, **through the stow symlinks, i.e. into this repo's checkout**. So dots
|
||||
track neither. HyDE-managed customization goes via:
|
||||
|
||||
- `gui/.config/waybar/layouts/*.jsonc` — dots-tracked layouts; switch with `hyde-shell waybar --set <name>`.
|
||||
- `gui/.config/waybar/modules/*.jsonc` — module defs, globbed into the generated config.
|
||||
|
||||
**The custom cava rig is NOT HyDE-managed**: `layouts/custom.jsonc` + `layouts/custom.css` form a
|
||||
self-contained two-bar config run by `wbar` (`gui/.local/bin/wbar`) as the supervised systemd
|
||||
user unit `dots-waybar.service` (`Restart=always` — waybar 0.15.0 dies on every DP-2 link
|
||||
drop/return, and as a bare process nothing relaunched it). The `exec-once` in `userprefs.conf`,
|
||||
the Ctrl+Alt+W / Super+Shift+R binds and the `wbar` command all go through it; **never `killall
|
||||
waybar`** — systemd brings it back in seconds and a raw relaunch beside it means two bars
|
||||
(`wbar toggle|restart|reload|stop`). **Never route it through `hyde-shell waybar --set`** — waybar.py would clobber the repo's files as above. HyDE only reads
|
||||
from `layouts/`, which is what makes them safe to track. On a rig host, HyDE's own bar must be
|
||||
disabled once, or **two bars appear at every login** — and the launcher differs by HyDE vintage:
|
||||
|
||||
- current HyDE: systemd user unit `hyde-<XDG_SESSION_DESKTOP>-bar.service` (auto-restarting) —
|
||||
`systemctl --user stop <unit>; systemctl --user mask <unit>`.
|
||||
- older (pre-unit) HyDE, e.g. wm's: `exec-once = $start.BAR` in HyDE's generated `hyprland.conf`
|
||||
— neutralized by `$start.BAR=` in `gui/.config/hypr/hyde.conf` (empty = unset; hyde.conf is
|
||||
sourced before that exec-once). Current HyDE's `variables.conf` re-sets `$start.BAR`, so that
|
||||
line stops working after an update — see HYDE-UPDATE.md step 4.
|
||||
|
||||
Note: the Arch `waybar` build has **no native `cava`** module — the rig uses the script module
|
||||
`custom/cava` running `cava-waybar.sh` (self-contained, no HyDE dependency).
|
||||
|
||||
## Secrets
|
||||
|
||||
Never committed. Put `DUSKADIY_API_KEY` etc. in `~/.config/fish/conf.d/secrets.fish` (gitignored).
|
||||
`pi`'s `auth.json` is **not** tracked — it only ever holds `$VAR` references, but pi's `/login`
|
||||
rewrites it with the literal key, so one stray `/login` would commit a real token. A new host
|
||||
bootstraps it with `cp common/.pi/agent/auth.json.example common/.pi/agent/auth.json`, then
|
||||
`./install.sh`. Also gitignored: `fish_variables`,
|
||||
`greet.txt`, pi agent runtime/state, `tmux/plugins/`, `.claude/` (Claude Code project dir/worktrees),
|
||||
`*.bak`/`*.log`.
|
||||
|
||||
## Merge notes (history — the one-time unification)
|
||||
|
||||
The four former per-machine repos had drifted; the merge made some judgment calls:
|
||||
|
||||
- **`config.fish` / `.bashrc`** were hand-reconciled into a neutral shared base + per-host
|
||||
`host.fish` / `.bashrc.host` (removed a committed `fnm_multishells` runtime PATH, stray
|
||||
absolute home-dir paths, duplicate git aliases).
|
||||
- **`pi` lives at `~/.pi`** (repo `.pi/`); **`tmux` at `~/.config/tmux/`** (delete a legacy
|
||||
`~/.tmux.conf` if present after migrating).
|
||||
- **Appearance drift was unified to one canonical** (mostly wm): bat, btop, cava, fastfetch, lazygit,
|
||||
mpv, pyradio, waybar, zellij, most of nvim.
|
||||
- **nvim** is shared entirely (no host overrides); plugin set / `lazy-lock.json` are shared — run
|
||||
`:Lazy restore` per machine once (obeys the lockfile pins — `:Lazy update` on one machine +
|
||||
commit is how versions move forward; other machines converge with `restore`).
|
||||
- **`zellij`** is one shared config with **vim keybinds** (h/j/k/l) + the `guvbox-dark` theme.
|
||||
- **`misc/{clis,tuis}.txt`** launcher inventories use wm's lists in `common`; a machine needing its
|
||||
own can override in its overlay.
|
||||
|
||||
## Third-party content and licensing
|
||||
|
||||
The repo is GPL-3.0 (`LICENSE`). What that does and doesn't cover:
|
||||
|
||||
- **`hypr/`, `waybar/` and the other desktop configs are derived from
|
||||
[HyDE](https://github.com/HyDE-Project/HyDE)** (and, further back, legacy Hyprdots). HyDE is
|
||||
itself GPL-3.0, so the derivation and this repo's licence agree — no conflict, and the
|
||||
Hyprdots-era ASCII banners in those files are left in place as attribution.
|
||||
- **`common/.config/aichat/dark.tmTheme`** is *One Half Dark* by Son A. Pham, **MIT**. The
|
||||
licence header at the top of that file is the attribution — don't strip it.
|
||||
- **`common/.config/fastfetch/pngs/`** holds project and distro marks (Arch, the Open Source
|
||||
Initiative and Open Source Hardware logos, …). Trademarks aren't relicensable, so GPL-3 does
|
||||
not extend to them; they are bundled as nominative use, the way most dotfiles repos do.
|
||||
- **`gui/.config/hypr/hyprlock/assets/`** — the lock screen background and logo. EXIF is
|
||||
stripped, so the files carry no provenance; confirm these are yours to redistribute before
|
||||
publishing, or swap them for something you know the origin of.
|
||||
Executable
+98
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
# dotsync — sync dotfiles with the least churn.
|
||||
#
|
||||
# Deployed configs are symlinks into this repo, so `git pull` makes edits LIVE instantly
|
||||
# with no re-stow — meaning no symlink churn and no app reloads (kitty etc. keep their
|
||||
# runtime state). Re-stowing (install.sh) is only needed when files are ADDED / REMOVED,
|
||||
# to create or prune symlinks. dotsync does the minimum: pull, and re-link ONLY if the
|
||||
# pull added/removed/renamed files.
|
||||
#
|
||||
# dotsync pull, then relink only if the file set changed
|
||||
# dotsync -n preview incoming changes (fetch only; no pull, no relink)
|
||||
# dotsync <host> as above, forcing the host package (normally unnecessary: install.sh
|
||||
# reuses the host recorded in ~/.config/dots-host)
|
||||
set -uo pipefail
|
||||
DOTS="$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")/.." && pwd)"
|
||||
cd "$DOTS" || exit 1
|
||||
|
||||
if [ "${1:-}" = "-n" ] || [ "${1:-}" = "--dry-run" ]; then
|
||||
git fetch -q 2>/dev/null || {
|
||||
echo "fetch failed (offline?)"
|
||||
exit 1
|
||||
}
|
||||
up="$(git rev-parse --abbrev-ref '@{u}' 2>/dev/null)" || {
|
||||
echo "no upstream set"
|
||||
exit 1
|
||||
}
|
||||
# rev-list, not diff: a plain diff also fires when the LOCAL side is ahead, mislabelling
|
||||
# your own unpushed commits as incoming. Count commits that exist only on the upstream.
|
||||
n="$(git rev-list --count "HEAD..$up")"
|
||||
if [ "$n" -eq 0 ]; then echo "already up to date with $up."; else
|
||||
echo "incoming from $up ($n commit(s)):"
|
||||
git --no-pager diff --stat "HEAD...$up"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
before="$(git rev-parse HEAD)"
|
||||
if ! git pull --ff-only; then
|
||||
echo "pull not fast-forward (local commits or conflicts) — commit/stash, then retry." >&2
|
||||
exit 1
|
||||
fi
|
||||
after="$(git rev-parse HEAD)"
|
||||
|
||||
if [ "$before" = "$after" ]; then
|
||||
echo "already up to date — nothing to sync."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Services that read config ONCE at startup don't pick up pulled edits — nudge loudly.
|
||||
# (Symlinked edits are live for everything else; these are the exceptions that bit us.)
|
||||
if git diff --name-only "$before" "$after" | grep -q '\.config/llamacpp/' \
|
||||
&& systemctl cat llama.service &>/dev/null; then
|
||||
echo ""
|
||||
echo "⚠⚠ llamacpp presets changed — the router reads them only at startup. Apply with:"
|
||||
echo " sudo systemctl restart llama.service"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# A unit file is read from /etc, not through the stow symlink — needs daemon-reload as well.
|
||||
if git diff --name-only "$before" "$after" | grep -q '\.config/whisper/' \
|
||||
&& systemctl cat whisper.service &>/dev/null; then
|
||||
echo ""
|
||||
echo "⚠⚠ whisper unit changed — apply with:"
|
||||
echo " sudo systemctl daemon-reload && sudo systemctl restart whisper.service"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Modified files (M) are live only through INTACT symlinks — a live file severed by an
|
||||
# atomic rewrite (the recurring claude/settings.json class) swallows pulled edits silently,
|
||||
# so verify that premise per modified file instead of assuming it. Added/Deleted/Renamed
|
||||
# always need (un)linking. The diff is captured once, not piped into `grep -q`: its early
|
||||
# exit can SIGPIPE git under pipefail and turn the whole condition falsely negative.
|
||||
changes="$(git diff --name-status "$before" "$after")"
|
||||
need_restow=""
|
||||
if printf '%s\n' "$changes" | grep -qE '^(A|D|R)'; then
|
||||
need_restow="files added/removed/renamed"
|
||||
else
|
||||
# map each modified repo path (package/.dotpath) to its live counterpart; a real file
|
||||
# (not a symlink) sitting there means the pulled edit did NOT land
|
||||
while IFS= read -r rel; do
|
||||
live="$HOME/$rel"
|
||||
if [ -e "$live" ] && [ ! -L "$live" ]; then
|
||||
echo "note: ~/$rel is a real file, not a symlink into the repo — the pulled edit has NOT landed there."
|
||||
need_restow="severed symlink(s)"
|
||||
fi
|
||||
done < <(printf '%s\n' "$changes" | awk -F'\t' '$1 ~ /^M/ && $2 ~ /^[^\/]+\/\./ { sub(/^[^\/]+\//, "", $2); print $2 }')
|
||||
fi
|
||||
|
||||
if [ -n "$need_restow" ]; then
|
||||
echo "$need_restow — re-linking via install.sh (this may reload some apps)…"
|
||||
# Normally called with no argument, so install.sh resolves the host from ~/.config/dots-host —
|
||||
# the one recorded by the last install.sh run here. That is exactly why the host must not be
|
||||
# derived from `hostname -s`: this path is automatic and has nothing to pass. An explicit
|
||||
# `dotsync <host>` is forwarded through for the rare override.
|
||||
exec "$DOTS/install.sh" "$@"
|
||||
else
|
||||
echo "edits only — already live through the symlinks; no re-stow, no reload needed."
|
||||
fi
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
#
|
||||
# ~/.bashrc (shared; host-specific bits in ~/.bashrc.host)
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# fzf's built-in walker ignores .ignore files; fd honours them. Mirrors config.fish.
|
||||
export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fzf="fzf --preview 'bat --color=always {}'"
|
||||
alias copy="wl-copy"
|
||||
alias img="kitten icat"
|
||||
alias fm="yazi"
|
||||
alias lg="lazygit"
|
||||
alias mkdir="mkdir -p"
|
||||
alias pacs="sudo pacman -Syu --noconfirm"
|
||||
alias yays="yay --noconfirm --sudoloop"
|
||||
alias nmaps="sudo nmap -sn 192.168.0.0/24"
|
||||
alias faillock="sudo faillock --reset"
|
||||
alias xremaps="sudo xremap ~/.config/xremap/config.yml"
|
||||
alias dots="cd ~/.dots/ && nvim"
|
||||
alias aliases="bat ~/.config/fish/config.fish"
|
||||
alias ipadd="sudo ip route add 192.168.0.234 dev wg0"
|
||||
|
||||
# List directory
|
||||
alias l="ls -l"
|
||||
alias la="ls -a"
|
||||
alias lla="ls -la"
|
||||
alias lt="ls --tree"
|
||||
|
||||
# Git
|
||||
alias gs='git status'
|
||||
alias gca='git add -p . && git commit'
|
||||
alias gd="git diff --word-diff"
|
||||
alias gl='git log --graph --show-signature'
|
||||
alias gla="git log --all --decorate --oneline --graph"
|
||||
alias gm='git merge'
|
||||
|
||||
alias exti=exit
|
||||
alias cat="bat -p"
|
||||
alias untar="tar -xf"
|
||||
alias keybinds="cd ~/.dots/ && nvim gui/.config/hypr/keybindings.conf"
|
||||
alias dmz="cat ~/.config/fish/dmz.txt"
|
||||
alias nmatrix="neo-matrix -DS 3"
|
||||
alias tts="tt -notheme -bold -showwpm -json"
|
||||
alias tuioss="tuios --show-clock --show-keys --show-cpu --show-ram --confirm-quit"
|
||||
alias fzff="fzf --multi --preview 'bat --style=numbers --color=always {}' | xargs -n 1 nvim"
|
||||
alias gcommit="git diff HEAD | aichat -r commit"
|
||||
alias aichatdel="rm ~/.config/aichat/sessions/*.yaml"
|
||||
|
||||
# Network
|
||||
alias vpnhome="sudo wg-quick up wg0"
|
||||
alias vpnkralizec="sudo wg-quick up kralizec-wg0"
|
||||
alias vpnsumadija="sudo wg-quick up sumadija-wg0"
|
||||
|
||||
# scrcpy
|
||||
alias scrcpyc='scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close'
|
||||
alias scrcpys='scrcpy -wS --power-off-on-close'
|
||||
alias scrcpyz='scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close --no-audio'
|
||||
|
||||
# `ls` must be aliased to eza or `lt` (above) falls through to coreutils ls, which has
|
||||
# no --tree. bash re-expands the first word of an alias, so l/la/lla/lt all pick up eza.
|
||||
alias ls='eza --icons --group-directories-first'
|
||||
|
||||
# Git extras
|
||||
alias gti="git"
|
||||
alias glog="git log --all --decorate --oneline --color --graph"
|
||||
alias gls="serie"
|
||||
|
||||
# Up N directories
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias .3="cd ../../.."
|
||||
alias .4="cd ../../../.."
|
||||
alias .5="cd ../../../../.."
|
||||
|
||||
# Powerline prompt, synthwave palette (needs a Nerd Font for the glyphs)
|
||||
PROMPT_DIRTRIM=3
|
||||
__pl_sep=$'\ue0b0' # powerline triangle
|
||||
__pl_branch=$'\ue0a0' # branch glyph
|
||||
__pl_seg() { # $1=bg $2=fg $3=text (colors as "R;G;B")
|
||||
[[ -n $__pl_bg ]] && PS1+="\[\e[38;2;${__pl_bg};48;2;${1}m\]${__pl_sep}\[\e[0m\]"
|
||||
PS1+="\[\e[48;2;${1};38;2;${2}m\] ${3} \[\e[0m\]"
|
||||
__pl_bg=$1
|
||||
}
|
||||
__pl_end() {
|
||||
PS1+="\[\e[38;2;${__pl_bg}m\]${__pl_sep}\[\e[0m\] "
|
||||
__pl_bg=''
|
||||
}
|
||||
__prompt() {
|
||||
local s=$?
|
||||
# muted synthwave: segment colors pre-blended ~40% onto the terminal bg
|
||||
# (#262335) so they read as semi-transparent overlays
|
||||
local fg='205;200;220'
|
||||
local purple='67;56;93' green='65;107;99' yellow='114;100;67'
|
||||
local red='124;39;52' pink='122;71;77'
|
||||
PS1="\[\e]0;\w\a\]"
|
||||
__pl_bg=''
|
||||
[[ -n $SSH_TTY ]] && __pl_seg "$pink" "$fg" '\u@\h'
|
||||
__pl_seg "$purple" "$fg" '\w'
|
||||
local b
|
||||
if b=$(git symbolic-ref --short HEAD 2>/dev/null || git describe --contains --all HEAD 2>/dev/null); then
|
||||
if [[ -n $(git status --porcelain 2>/dev/null | head -n1) ]]; then
|
||||
__pl_seg "$yellow" "$fg" "${__pl_branch} ${b} ✱"
|
||||
else
|
||||
__pl_seg "$green" "$fg" "${__pl_branch} ${b}"
|
||||
fi
|
||||
fi
|
||||
((s != 0)) && __pl_seg "$red" "$fg" "✘ ${s}"
|
||||
[[ $EUID == 0 ]] && __pl_seg "$red" "$fg" '#'
|
||||
__pl_end
|
||||
}
|
||||
PROMPT_COMMAND=__prompt
|
||||
|
||||
set -o vi
|
||||
# eval "$(zoxide init --cmd cd bash)"
|
||||
|
||||
# colorized --help
|
||||
h() { "$@" --help 2>&1 | bat --plain --language=help; }
|
||||
|
||||
# Record lookup against the local dmz db (adjust the db path to this machine)
|
||||
lk(){
|
||||
local DB="$HOME/projects/dmz/soft/lk/db.rec"
|
||||
passes=0 count=0; until [ "$count" -eq "1" ] || [ "$passes" -gt 2 ] ; do \
|
||||
query="$(recsel "$DB" -p aim,tag | recsel -iq "$query" -CP aim,tag | sort -u | fzf --preview="recsel \"$DB\" -e \"aim~{}\"")" \
|
||||
&& count="$(recsel "$DB" -q "$query" -c )" ;\
|
||||
passes=$(( passes + 1 )) ;\
|
||||
done \
|
||||
&& recsel "$DB" -q "$query" | recfmt -f "$HOME/projects/dmz/soft/lk/lists.fmt" | less
|
||||
}
|
||||
|
||||
# Keepassxc search
|
||||
kp() {
|
||||
local DB="${KP_DB:?Error: KP_DB environment variable is not set. Check .bash_profile.}"
|
||||
read -sp "Enter db password: " pass; echo ""; printf '%s\n' "$pass" | keepassxc-cli ls -q -R "$DB" | fzf | (read -r entry; printf '%s\n' "$pass" | keepassxc-cli clip -q "$DB" "$entry" 0)
|
||||
}
|
||||
|
||||
# Per-host extras
|
||||
[ -f ~/.bashrc.host ] && . ~/.bashrc.host
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# NOTE: the lw/ and wm/ host overlays carry full-file copies of this config — mirror changes there.
|
||||
# see https://github.com/sigoden/aichat/blob/main/config.example.yaml
|
||||
keybindings: vi
|
||||
editor: nvim
|
||||
model: local:Qwen3.6-35B-A3B-Thinking
|
||||
|
||||
# Sessions: persist REPL sessions and keep more history before summarizing.
|
||||
# The default compress_threshold (4000) summarizes far too early for 24k+ windows.
|
||||
save_session: true
|
||||
compress_threshold: 16000
|
||||
|
||||
# REPL prompts show live context usage (needs max_input_tokens, set per model below)
|
||||
left_prompt: '{color.green}{?session {session}{?role /}}{role}{color.cyan}{?rag @{rag}}{color.reset}> '
|
||||
right_prompt: '{color.purple}{?session {consume_tokens}/{max_input_tokens} }{color.reset}'
|
||||
|
||||
# NOTE: temperature/top_p are intentionally unset — the LAN server applies tuned
|
||||
# per-model sampling via --jinja (e.g. GLM 0.6/0.95); a global value would clobber it.
|
||||
|
||||
# max_input_tokens = real ctx-size (from the router) minus output headroom.
|
||||
clients:
|
||||
# LAN access (fast; only reachable on the home network)
|
||||
- type: openai-compatible
|
||||
name: local
|
||||
api_base: http://192.168.0.204:11343/v1
|
||||
models: &lan_models
|
||||
# Speeds are benched decode t/s (clean-night sweeps) — see fl/.config/llamacpp/README.md roster.
|
||||
- name: Qwen3-Coder-30B-Instruct-UD-Q3_K_XL
|
||||
max_input_tokens: 30000 # ctx 32768 · ~30 t/s — main agent coder
|
||||
- name: Qwen3-Coder-Next-UD-IQ3_XXS
|
||||
max_input_tokens: 128000 # ctx 131072 · ~16 t/s — long sessions (128k)
|
||||
- name: Qwen3.6-35B-A3B-MTP-UD-IQ3_XXS
|
||||
max_input_tokens: 22000 # ctx 24576 · ~36 t/s — daily driver
|
||||
supports_vision: true
|
||||
- name: Qwen3.6-35B-A3B-Thinking
|
||||
max_input_tokens: 22000 # ctx 24576 · ~39 t/s — hard problems
|
||||
supports_vision: true
|
||||
- name: Qwen3.5-9B-UD-Q6_K_XL
|
||||
max_input_tokens: 30000 # ctx 32768 · ~32 t/s — quick tasks
|
||||
supports_vision: true
|
||||
- name: Qwen3.8-27B-UD-IQ3_XXS
|
||||
max_input_tokens: 22000 # ctx 24576 · ~15 t/s — hybrid reasoner, quiet desktop only
|
||||
supports_vision: true
|
||||
- name: gemma-4-26B-A4B-it-UD-IQ4_XS
|
||||
max_input_tokens: 22000 # ctx 24576 · ~34 t/s — quality generalist, best vision
|
||||
supports_vision: true
|
||||
- name: gemma-4-E4B-it-UD-Q8_K_XL
|
||||
max_input_tokens: 62000 # ctx 65536 · ~57 t/s — fast generalist, long docs
|
||||
supports_vision: true
|
||||
- name: GLM-4.7-Flash-UD-Q4_K_XL
|
||||
max_input_tokens: 22000 # ctx 24576 · ~21 t/s — quality coder
|
||||
- name: GLM-4.7-Flash-UD-Q3_K_XL
|
||||
max_input_tokens: 22000 # ctx 24576 · ~28 t/s — fast coder (3-bit)
|
||||
- name: Ornith-1.5-35B-A3B-IQ3_XXS
|
||||
max_input_tokens: 22000 # ctx 24576 · ~32 t/s — agentic coder, thinking
|
||||
supports_vision: true
|
||||
- name: gpt-oss-20b
|
||||
max_input_tokens: 62000 # ctx 65536 · ~38 t/s — fast reasoning + tools
|
||||
- name: gpt-oss-20b-low
|
||||
max_input_tokens: 62000 # ctx 65536 · ~37 t/s — snappy answers
|
||||
# Remote access via duskadiy.com (reachable from anywhere; requires an API key —
|
||||
# $DUSKADIY_API_KEY, from the gitignored conf.d/secrets.fish). The LAN endpoint above is keyless.
|
||||
# Same server, same model ids — reuse the list above via a YAML anchor.
|
||||
- type: openai-compatible
|
||||
name: duskadiy
|
||||
api_base: https://llm.duskadiy.com/api/v1
|
||||
models: *lan_models
|
||||
Loaded 100 of 386 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user