mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 16:53:00 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
commit
5e26e71219
136 changed files with 4129 additions and 1449 deletions
2
.directory
Normal file
2
.directory
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Icon=configurator
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -23,8 +23,6 @@ xdg-ninja/
|
||||||
PowerToys/
|
PowerToys/
|
||||||
# Nushell
|
# Nushell
|
||||||
tools/nushell/
|
tools/nushell/
|
||||||
# fzf
|
|
||||||
common/fzfrc
|
|
||||||
|
|
||||||
# OS generated files
|
# OS generated files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
@ -41,3 +39,5 @@ lazy-lock.json
|
||||||
*.elc
|
*.elc
|
||||||
|
|
||||||
common/**/*current*
|
common/**/*current*
|
||||||
|
|
||||||
|
default.target.wants
|
||||||
|
|
|
||||||
45
.just.d/check.just
Normal file
45
.just.d/check.just
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
test:
|
||||||
|
echo "DOTFILES={{DOTFILES}}"
|
||||||
|
echo "XDG_CONFIG_HOME={{XDG_CONFIG_HOME}}"
|
||||||
|
echo "XDG_DATA_HOME={{XDG_DATA_HOME}}"
|
||||||
|
|
||||||
|
|
||||||
|
check:
|
||||||
|
@just check_shell
|
||||||
|
format:
|
||||||
|
@just format_shell
|
||||||
|
|
||||||
|
|
||||||
|
[private]
|
||||||
|
[unix]
|
||||||
|
check_shell:
|
||||||
|
shellcheck -x -s sh --severity=error **/*.sh platforms/mac/yabairc
|
||||||
|
shellcheck -x -s bash --severity=error **/*.bash tools/bash/* **/*.bashrc
|
||||||
|
|
||||||
|
[private]
|
||||||
|
[unix]
|
||||||
|
format_shell:
|
||||||
|
shfmt -w -i 2 -ci -bn -p **/*.sh
|
||||||
|
shfmt -w -i 2 -ci -bn -ln bash **/*.bash platforms/mac/sketchybar/sketchybarrc
|
||||||
|
# Ignore syntax errors in zsh files
|
||||||
|
shfmt -w -i 2 -ci -bn -ln bash **/*.zsh tools/zsh/**/* **/zshrc || true
|
||||||
|
|
||||||
|
[private]
|
||||||
|
check_info:
|
||||||
|
shellcheck -x -s sh **/*.sh platforms/mac/yabairc
|
||||||
|
shellcheck -x -s bash **/*.bash tools/bash/* scripts/*.{sh,zsh,bash} **/*.bashrc
|
||||||
|
|
||||||
|
[private]
|
||||||
|
init:
|
||||||
|
git remote add github git@github.com:js0ny/dotfiles.git
|
||||||
|
git remote add codeberg git@codeberg.org:js0ny/dotfiles.git
|
||||||
|
|
||||||
|
[private]
|
||||||
|
push:
|
||||||
|
git push github master
|
||||||
|
git push codeberg master
|
||||||
|
|
||||||
|
[private]
|
||||||
|
pull:
|
||||||
|
git pull github master
|
||||||
26
.just.d/cmds.just
Normal file
26
.just.d/cmds.just
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
# Sudo and coreutils are required
|
||||||
|
LN := \
|
||||||
|
if os_family() == "windows" {
|
||||||
|
"sudo ln -sf"
|
||||||
|
} else {
|
||||||
|
"ln -sf"
|
||||||
|
}
|
||||||
|
CLIP := \
|
||||||
|
if os() == "windows" { "clip.exe" } \
|
||||||
|
else if os() == "linux" { "wl-copy" } \
|
||||||
|
else if os() == "macos" { "pbcopy" } \
|
||||||
|
else { "" }
|
||||||
|
|
||||||
|
|
||||||
|
CURL := \
|
||||||
|
if os() == "windows" { "Invoke-WebRequest" } \
|
||||||
|
else if os() == "linux" { "curl" } \
|
||||||
|
else if os() == "macos" { "curl" } \
|
||||||
|
else { "" }
|
||||||
|
|
||||||
|
CURL_OUT := \
|
||||||
|
if os() == "windows" { "-OutFile" } \
|
||||||
|
else if os() == "linux" { "-o" } \
|
||||||
|
else if os() == "macos" { "-o" } \
|
||||||
|
else { "" }
|
||||||
34
.just.d/common.just
Normal file
34
.just.d/common.just
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
ideavim:
|
||||||
|
{{LN}} {{DOTFILES}}/common/ideavimrc {{XDG_CONFIG_HOME}}/ideavim/ideavimrc
|
||||||
|
git clone https://github.com/MarcoIeni/intellimacs {{join(home_directory(), ".local/share/intellimacs")}} --depth 1
|
||||||
|
|
||||||
|
lsd:
|
||||||
|
-mkdir {{XDG_CONFIG_HOME}}/lsd
|
||||||
|
{{LN}} {{DOTFILES}}/common/lsd.yaml {{XDG_CONFIG_HOME}}/lsd/config.yaml
|
||||||
|
|
||||||
|
|
||||||
|
[unix]
|
||||||
|
neovide:
|
||||||
|
which neovide
|
||||||
|
-mkdir -p {{XDG_CONFIG_HOME}}/neovide
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/{{OS}}/neovide.toml {{XDG_CONFIG_HOME}}/neovide/config.toml
|
||||||
|
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
readline:
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/readline
|
||||||
|
{{LN}} {{DOTFILES}}/common/inputrc {{XDG_CONFIG_HOME}}/readline/inputrc
|
||||||
|
|
||||||
|
|
||||||
|
[unix]
|
||||||
|
vim:
|
||||||
|
mkdir -p {{XDG_DATA_HOME}}/vim/after
|
||||||
|
mkdir -p {{XDG_STATE_HOME}}/vim/{backup,swap,undo,view}
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/vim/
|
||||||
|
ln -sf {{DOTFILES}}/common/vimrc {{XDG_CONFIG_HOME}}/vim/vimrc
|
||||||
|
|
||||||
|
|
||||||
|
[windows]
|
||||||
|
vim:
|
||||||
|
New-Item -ItemType SymbolicLink -Path $HOME/_vimrc -Value {{DOTFILES}}/common/vim.noxdg.vimrc
|
||||||
|
|
||||||
49
.just.d/linux.just
Normal file
49
.just.d/linux.just
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
systemd:
|
||||||
|
ln -sf {{DOTFILES}}/platforms/{{OS}}/systemd {{XDG_CONFIG_HOME}}/systemd/
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
keyd:
|
||||||
|
-which keyd || sudo pacman -S keyd --noconfirm || sudo apt install keyd --yes || @just build_keyd
|
||||||
|
sudo cp {{DOTFILES}}/platforms/linux/keyd/keyd.conf /etc/keyd/default.conf
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/keyd
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/linux/keyd/app.conf {{XDG_CONFIG_HOME}}/keyd/app.conf
|
||||||
|
sudo systemctl enable keyd
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
[private]
|
||||||
|
build_keyd:
|
||||||
|
git clone https://github.com/rvaiya/keyd $HOME/.local/build/keyd
|
||||||
|
cd $HOME/.local/build/keyd && make && sudo make install
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
flatpak:
|
||||||
|
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
swaylock:
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/swaylock
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/linux/swaylock {{XDG_CONFIG_HOME}}/swaylock/config
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
dunst:
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/dunst
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/linux/dunstrc {{XDG_CONFIG_HOME}}/dunst/dunstrc
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
hypr:
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/linux/hypr {{XDG_CONFIG_HOME}}/hypr
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
rofi:
|
||||||
|
{{LN}} {{DOTFILES}}/platforms/linux/rofi {{XDG_CONFIG_HOME}}/rofi
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
hyprland:
|
||||||
|
@just hypr
|
||||||
|
@just dunst
|
||||||
|
@just swaylock
|
||||||
|
@just rofi
|
||||||
|
|
||||||
|
|
||||||
15
.just.d/misc.just
Normal file
15
.just.d/misc.just
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
uv:
|
||||||
|
uv init {{XDG_DATA_HOME}}/uvenv
|
||||||
|
cd {{XDG_DATA_HOME}}/uvenv
|
||||||
|
uv venv
|
||||||
|
uv add -r {{DOTFILES}}/bootstrap/components/requirements.txt
|
||||||
|
|
||||||
|
vivaldi:
|
||||||
|
{{CURL}} https://github.com/SocietasEvanescentes/Vivaldi/files/12446831/Rose.Pine.Dawn.zip {{CURL_OUT}} "$HOME/Downloads/vivaldi-light.zip" # Rose Pine Dawn
|
||||||
|
{{CURL}} https://github.com/catppuccin/vivaldi/releases/download/1.0.0-ctpv2/Catppuccin.Mocha.Lavender.zip {{CURL_OUT}} "$HOME/Downloads/vivaldi-dark.zip" # Catppuccino Mocha Lavender
|
||||||
|
|
||||||
|
|
||||||
|
zotero:
|
||||||
|
{{CURL}} https://github.com/syt2/zotero-addons/releases/download/V1.8.1/zotero-addons.xpi {{CURL_OUT}} "$HOME/Downloads/zotero-addons.xpi"
|
||||||
|
|
||||||
|
|
||||||
55
.just.d/tools.just
Normal file
55
.just.d/tools.just
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
[unix]
|
||||||
|
kitty:
|
||||||
|
which kitty
|
||||||
|
{{LN}} {{DOTFILES}}/tools/kitty {{XDG_CONFIG_HOME}}/kitty
|
||||||
|
|
||||||
|
neovim:
|
||||||
|
which nvim
|
||||||
|
{{LN}} {{DOTFILES}}/tools/nvim {{XDG_CONFIG_HOME}}/nvim
|
||||||
|
nvim --headless +checkhealth +"w nvim-healthcheck.txt" +qall
|
||||||
|
|
||||||
|
nvim:
|
||||||
|
@just neovim
|
||||||
|
|
||||||
|
[linux]
|
||||||
|
bash:
|
||||||
|
{{LN}} {{DOTFILES}}/tools/bash {{XDG_CONFIG_HOME}}/bash
|
||||||
|
sudo cp {{DOTFILES}}/tools/bash/xdg-compat.sh /etc/profile.d/xdg-compat.sh
|
||||||
|
|
||||||
|
[unix]
|
||||||
|
fish:
|
||||||
|
{{LN}} {{DOTFILES}}/tools/fish {{XDG_CONFIG_HOME}}/fish
|
||||||
|
{{CURL}} https://raw.githubusercontent.com/SpaceAceMonkey/dotenv-for-fish/refs/heads/main/dotenv.fish {{CURL_OUT}} "{{DOTFILES}}/tools/fish/functions/dotenv.fish"
|
||||||
|
|
||||||
|
[unix]
|
||||||
|
screen:
|
||||||
|
{{LN}} {{DOTFILES}}/tools/screen {{XDG_CONFIG_HOME}}/screen
|
||||||
|
|
||||||
|
thunderbird:
|
||||||
|
{{CURL}} https://github.com/wshanks/tbkeys/releases/download/v2.4.0/tbkeys.xpi {{CURL_OUT}} "$HOME/Downloads/tbkeys.xpi"
|
||||||
|
{{CURL}} https://github.com/htyxyt/htyxyt-immersive-translate-Thunderbird/releases/download/thunderbird-v1.14.8/immersive-translate-Thunderbird.v1.14.8.xpi {{CURL_OUT}} "$HOME/Downloads/immersive-translate-Thunderbird.xpi"
|
||||||
|
cat {{DOTFILES}}/tools/thunderbird/tbkeys.json | {{CLIP}}
|
||||||
|
|
||||||
|
wezterm:
|
||||||
|
which wezterm
|
||||||
|
{{LN}} {{DOTFILES}}/tools/wezterm {{XDG_CONFIG_HOME}}/wezterm
|
||||||
|
|
||||||
|
|
||||||
|
yazi:
|
||||||
|
which yazi || cargo install --locked yazi-fm yazi-cli
|
||||||
|
-ya pack -a llanosrocas/yaziline
|
||||||
|
-ya pack -a yazi-rs/plugins:git
|
||||||
|
-ya pack -a Rolv-Apneseth/starship
|
||||||
|
|
||||||
|
[unix]
|
||||||
|
zsh:
|
||||||
|
-[[ -f /etc/zshenv ]] && sudo cp {{DOTFILES}}/tools/zsh/global.zshenv /etc/zshenv # or /etc/zsh/zshenv
|
||||||
|
-[[ -f /etc/zsh/zshenv ]] && sudo cp {{DOTFILES}}/tools/zsh/global.zshenv /etc/zsh/zshenv
|
||||||
|
mkdir -p {{XDG_CONFIG_HOME}}/zsh
|
||||||
|
{{LN}} {{DOTFILES}}/tools/zsh/zshenv {{XDG_CONFIG_HOME}}/zsh/.zshenv
|
||||||
|
{{LN}} {{DOTFILES}}/tools/zsh/zshrc {{XDG_CONFIG_HOME}}/zsh/.zshrc
|
||||||
|
{{LN}} {{DOTFILES}}/tools/zsh/zprofile {{XDG_CONFIG_HOME}}/zsh/.zprofile
|
||||||
|
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-autosuggestions || git clone --depth 1 https://github.com/zsh-users/zsh-autosuggestions.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-autosuggestions
|
||||||
|
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-syntax-highlighting || git clone --depth 1 https://github.com/zsh-users/zsh-syntax-highlighting.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-syntax-highlighting
|
||||||
|
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-history-substring-search || git clone --depth 1 https://github.com/zsh-users/zsh-history-substring-search.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-history-substring-search
|
||||||
|
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-completions || git clone --depth 1 https://github.com/zsh-users/zsh-completions.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-completions
|
||||||
42
.just.d/vars.just
Normal file
42
.just.d/vars.just
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
OS := \
|
||||||
|
if os() == "linux" {
|
||||||
|
if env("WSL_DISTRO_NAME","") != "" {
|
||||||
|
"wsl"
|
||||||
|
} else {
|
||||||
|
"linux"
|
||||||
|
}
|
||||||
|
} else if os() == "windows" {
|
||||||
|
"win"
|
||||||
|
} else if os() == "macos" {
|
||||||
|
"mac"
|
||||||
|
} else { "" }
|
||||||
|
DOTFILES := join(home_directory(), ".dotfiles")
|
||||||
|
XDG_CONFIG_HOME := \
|
||||||
|
if env("XDG_CONFIG_HOME", "") != "" {env("XDG_CONFIG_HOME", "")} \
|
||||||
|
else {
|
||||||
|
if os_family() == "windows" {
|
||||||
|
env("APPDATA")
|
||||||
|
} else {
|
||||||
|
join(home_directory(), ".config")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XDG_DATA_HOME := \
|
||||||
|
if env("XDG_DATA_HOME", "") != "" {env("XDG_DATA_HOME", "")} \
|
||||||
|
else {
|
||||||
|
if os_family() == "windows" {
|
||||||
|
env("LOCALAPPDATA", "")
|
||||||
|
} else {
|
||||||
|
join(home_directory(), ".local/share")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XDG_STATE_HOME := \
|
||||||
|
if env("XDG_STATE_HOME", "") != "" {env("XDG_STATE_HOME", "")} \
|
||||||
|
else {
|
||||||
|
if os_family() == "windows" {
|
||||||
|
join(env("LOCALAPPDATA", ""), "state")
|
||||||
|
} else {
|
||||||
|
join(home_directory(), ".local/state")
|
||||||
|
}
|
||||||
|
}
|
||||||
85
Justfile
85
Justfile
|
|
@ -1,76 +1,15 @@
|
||||||
set shell := ["fish", "-c"]
|
# set shell := ["fish", "-c"]
|
||||||
|
set shell := ["bash", "-c"]
|
||||||
set windows-shell := ["pwsh", "-c"]
|
set windows-shell := ["pwsh", "-c"]
|
||||||
|
|
||||||
DOTFILES := join(home_directory(), ".dotfiles")
|
import '.just.d/vars.just'
|
||||||
XDG_CONFIG_HOME := \
|
import '.just.d/cmds.just'
|
||||||
if env_var("XDG_CONFIG_HOME") != "" {env_var("XDG_CONFIG_HOME")} \
|
import '.just.d/common.just'
|
||||||
else {
|
import '.just.d/tools.just'
|
||||||
if os_family() == "windows" {
|
import '.just.d/misc.just'
|
||||||
env_var("APPDATA")
|
import '.just.d/linux.just'
|
||||||
} else {
|
import '.just.d/check.just'
|
||||||
join(home_directory(), ".config")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
XDG_DATA_HOME := \
|
_default:
|
||||||
if env_var("XDG_DATA_HOME") != "" {env_var("XDG_DATA_HOME")} \
|
@just test
|
||||||
else {
|
@just --list
|
||||||
if os_family() == "windows" {
|
|
||||||
env_var("LOCALAPPDATA")
|
|
||||||
} else {
|
|
||||||
join(home_directory(), ".local/share")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
test:
|
|
||||||
echo {{DOTFILES}}
|
|
||||||
echo {{XDG_CONFIG_HOME}}
|
|
||||||
echo {{XDG_DATA_HOME}}
|
|
||||||
|
|
||||||
init:
|
|
||||||
git remote remove origin
|
|
||||||
git remote add github git@github.com:js0ny/dotfiles.git
|
|
||||||
git remote add codeberg git@codeberg.org:js0ny/dotfiles.git
|
|
||||||
|
|
||||||
check:
|
|
||||||
@just check_shell
|
|
||||||
format:
|
|
||||||
@just format_shell
|
|
||||||
|
|
||||||
|
|
||||||
push:
|
|
||||||
git push github master
|
|
||||||
git push codeberg master
|
|
||||||
|
|
||||||
setup:
|
|
||||||
@just ideavim
|
|
||||||
|
|
||||||
ideavim:
|
|
||||||
ln -sf {{DOTFILES}}/common/ideavimrc $XDG_CONFIG_HOME/ideavim/ideavimrc
|
|
||||||
git clone https://github.com/MarcoIeni/intellimacs {{join(home_directory(), ".local/share/intellimacs")}}
|
|
||||||
|
|
||||||
[private]
|
|
||||||
pull:
|
|
||||||
git pull github master
|
|
||||||
git pull codeberg master
|
|
||||||
|
|
||||||
|
|
||||||
[private]
|
|
||||||
[unix]
|
|
||||||
check_shell:
|
|
||||||
shellcheck -x -s sh --severity=error **/*.sh platforms/mac/yabairc
|
|
||||||
shellcheck -x -s bash --severity=error **/*.bash tools/bash/* **/*.bashrc
|
|
||||||
|
|
||||||
[private]
|
|
||||||
[unix]
|
|
||||||
format_shell:
|
|
||||||
shfmt -w -i 2 -ci -bn -p **/*.sh
|
|
||||||
shfmt -w -i 2 -ci -bn -ln bash **/*.bash platforms/mac/sketchybar/sketchybarrc
|
|
||||||
# Ignore syntax errors in zsh files
|
|
||||||
shfmt -w -i 2 -ci -bn -ln bash **/*.zsh tools/zsh/**/* **/zshrc || true
|
|
||||||
|
|
||||||
[private]
|
|
||||||
check_info:
|
|
||||||
shellcheck -x -s sh **/*.sh platforms/mac/yabairc
|
|
||||||
shellcheck -x -s bash **/*.bash tools/bash/* scripts/*.{sh,zsh,bash} **/*.bashrc
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ if [ $(uname) = "Darwin" ]; then
|
||||||
else
|
else
|
||||||
echo "[INFO] Running on Linux"
|
echo "[INFO] Running on Linux"
|
||||||
linkDots+=(
|
linkDots+=(
|
||||||
["$DOTFILES/common/inputrc"]="$HOME/.inputrc"
|
["$DOTFILES/common/inputrc"]="$XDG_CONFIG_HOME/readline/inputrc"
|
||||||
)
|
)
|
||||||
# WSL1 : Microsoft
|
# WSL1 : Microsoft
|
||||||
# WSL2 : microsoft
|
# WSL2 : microsoft
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,31 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||||
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.conf
|
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.conf
|
||||||
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.conf
|
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.conf
|
||||||
|
|
||||||
|
|
||||||
|
parse_args() {
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case "$1" in
|
||||||
|
# --debug|-d)
|
||||||
|
# export LOG_LEVEL="DEBUG"
|
||||||
|
# log_debug "Debug mode enabled"
|
||||||
|
# shift
|
||||||
|
# ;;
|
||||||
|
--force|-f)
|
||||||
|
FORCE_FILE="true"
|
||||||
|
echo "Force update enabled"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1"
|
||||||
|
echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_args "$@"
|
||||||
|
|
||||||
# Browser Flags
|
# Browser Flags
|
||||||
|
|
||||||
browser_flags_path=(
|
browser_flags_path=(
|
||||||
|
|
@ -24,23 +49,23 @@ browser_flags_path=(
|
||||||
electron_flags_path=(
|
electron_flags_path=(
|
||||||
"$XDG_CONFIG_HOME/electron-flags.conf" # General
|
"$XDG_CONFIG_HOME/electron-flags.conf" # General
|
||||||
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
|
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
|
||||||
"$XDG_CONFIG_HOME/qq-electron-flags.conf" # Slack
|
"$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
|
||||||
)
|
)
|
||||||
|
|
||||||
for path in "${browser_flags_path[@]}"; do
|
for path in "${browser_flags_path[@]}"; do
|
||||||
if [ -f "$path" ]; then
|
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
||||||
echo "[INFO] Found Browser Flags: $path"
|
echo "[INFO] Found Browser Flags: $path"
|
||||||
else
|
else
|
||||||
echo "[INFO] Creating Browser Flags: $path"
|
echo "[INFO] Creating Browser Flags: $path"
|
||||||
ln -s "$BROWSER_FLAG" "$path"
|
ln -sf "$BROWSER_FLAG" "$path"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
for path in "${electron_flags_path[@]}"; do
|
for path in "${electron_flags_path[@]}"; do
|
||||||
if [ -f "$path" ]; then
|
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
||||||
echo "[INFO] Found Electron Flags: $path"
|
echo "[INFO] Found Electron Flags: $path"
|
||||||
else
|
else
|
||||||
echo "[INFO] Creating Electron Flags: $path"
|
echo "[INFO] Creating Electron Flags: $path"
|
||||||
ln -s "$ELECTRON_FLAG" "$path"
|
ln -sf "$ELECTRON_FLAG" "$path"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
||||||
71
bootstrap/linux/chromium-flags.hypr.bash
Executable file
71
bootstrap/linux/chromium-flags.hypr.bash
Executable file
|
|
@ -0,0 +1,71 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# vim:ft=bash
|
||||||
|
# chromium-flags.sh
|
||||||
|
# Set Chromium & Electron Flags
|
||||||
|
|
||||||
|
echo "[INFO] Set Chromium & Electron Flags"
|
||||||
|
|
||||||
|
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
||||||
|
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||||
|
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.hypr.conf
|
||||||
|
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.hypr.conf
|
||||||
|
|
||||||
|
|
||||||
|
parse_args() {
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case "$1" in
|
||||||
|
# --debug|-d)
|
||||||
|
# export LOG_LEVEL="DEBUG"
|
||||||
|
# log_debug "Debug mode enabled"
|
||||||
|
# shift
|
||||||
|
# ;;
|
||||||
|
--force|-f)
|
||||||
|
FORCE_FILE="true"
|
||||||
|
echo "Force update enabled"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1"
|
||||||
|
echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_args "$@"
|
||||||
|
|
||||||
|
# Browser Flags
|
||||||
|
|
||||||
|
browser_flags_path=(
|
||||||
|
"$XDG_CONFIG_HOME/chromium-flags.conf" # Chromium
|
||||||
|
"$XDG_CONFIG_HOME/chrome-flags.conf" # Google Chrome
|
||||||
|
"$XDG_CONFIG_HOME/thorium-flags.conf" # Thorium
|
||||||
|
"$XDG_CONFIG_HOME/vivaldi-flags.conf" # Vivaldi
|
||||||
|
"$XDG_CONFIG_HOME/vivaldi-stable.conf" # Vivaldi
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
electron_flags_path=(
|
||||||
|
"$XDG_CONFIG_HOME/electron-flags.conf" # General
|
||||||
|
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
|
||||||
|
"$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
|
||||||
|
)
|
||||||
|
|
||||||
|
for path in "${browser_flags_path[@]}"; do
|
||||||
|
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
||||||
|
echo "[INFO] Found Browser Flags: $path"
|
||||||
|
else
|
||||||
|
echo "[INFO] Creating Browser Flags: $path"
|
||||||
|
ln -sf "$BROWSER_FLAG" "$path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for path in "${electron_flags_path[@]}"; do
|
||||||
|
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
||||||
|
echo "[INFO] Found Electron Flags: $path"
|
||||||
|
else
|
||||||
|
echo "[INFO] Creating Electron Flags: $path"
|
||||||
|
ln -sf "$ELECTRON_FLAG" "$path"
|
||||||
|
fi
|
||||||
|
done
|
||||||
10
common/fzfrc
Normal file
10
common/fzfrc
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# --preview 'bat --color=always --style=numbers {}'
|
||||||
|
# --bind alt-n:preview-down,alt-e:preview-up
|
||||||
|
# --bind ctrl-e:up
|
||||||
|
# --bind alt-p:toggle-preview
|
||||||
|
# --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8
|
||||||
|
# --color=fg:#cdd6f4,header:#f38ba8,info:#f5c2e7,pointer:#f5e0dc
|
||||||
|
# --color=marker:#b4befe,fg+:#cdd6f4,prompt:#f5c2e7,hl+:#f38ba8
|
||||||
|
# --color=selected-bg:#45475a
|
||||||
|
# --color=border:#313244,label:#cdd6f4
|
||||||
|
#
|
||||||
60
common/vimrc+qwerty.vimrc
Normal file
60
common/vimrc+qwerty.vimrc
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
" $XDG_CONFIG_HOME/vim/vimrc
|
||||||
|
" This is a minimal setup of vimrc
|
||||||
|
" ln -sf $DOTFILES/.config/vim/vimrc $XDG_CONFIG_HOME/vim/vimrc
|
||||||
|
|
||||||
|
" Colemak Keys
|
||||||
|
|
||||||
|
" Arrow remap
|
||||||
|
nnoremap J 5j
|
||||||
|
nnoremap K 5k
|
||||||
|
vnoremap H ^
|
||||||
|
xnoremap H ^
|
||||||
|
onoremap H ^
|
||||||
|
vnoremap L $
|
||||||
|
xnoremap L $
|
||||||
|
onoremap L $
|
||||||
|
|
||||||
|
" Normal minimal setup
|
||||||
|
|
||||||
|
noremap Y y$
|
||||||
|
set expandtab
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set autoindent
|
||||||
|
set smartindent
|
||||||
|
set wrap
|
||||||
|
set scrolloff=3
|
||||||
|
set hlsearch
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
|
||||||
|
set laststatus=2
|
||||||
|
set showcmd
|
||||||
|
set statusline=%<%f\ %h%m%r\ %=\ [%l,%v]\ [%p%%]\ [\ %Y]\ [\ %{strftime('%H:%M:%S')}]
|
||||||
|
|
||||||
|
|
||||||
|
" XDG Directory Specifications
|
||||||
|
" Reference to https://jorenar.com/blog/vim-xdg
|
||||||
|
|
||||||
|
if empty($XDG_CACHE_HOME) | let $XDG_CACHE_HOME = $HOME."/.cache" | endif
|
||||||
|
if empty($XDG_CONFIG_HOME) | let $XDG_CONFIG_HOME = $HOME."/.config" | endif
|
||||||
|
if empty($XDG_DATA_HOME) | let $XDG_DATA_HOME = $HOME."/.local/share" | endif
|
||||||
|
if empty($XDG_STATE_HOME) | let $XDG_STATE_HOME = $HOME."/.local/state" | endif
|
||||||
|
|
||||||
|
set viminfo+=n$XDG_STATE_HOME/vim/viminfo
|
||||||
|
set packpath^=$XDG_DATA_HOME/vim
|
||||||
|
set packpath+=$XDG_DATA_HOME/vim/after
|
||||||
|
set backupdir=$XDG_STATE_HOME/vim/backup
|
||||||
|
set directory=$XDG_STATE_HOME/vim/swap
|
||||||
|
set undodir=$XDG_STATE_HOME/vim/undo
|
||||||
|
set viewdir=$XDG_STATE_HOME/vim/view
|
||||||
|
" set shada+=n$XDG_STATE_HOME/vim/shada
|
||||||
|
" Leader
|
||||||
|
let mapleader = "\<Space>"
|
||||||
|
nnoremap <leader><leader> :FZF<CR>
|
||||||
|
" Misc
|
||||||
|
syntax on
|
||||||
5
platforms/linux/chromium-flags.hypr.conf
Normal file
5
platforms/linux/chromium-flags.hypr.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
--UseOzonePlatform=wayland
|
||||||
|
--ozone-platform=wayland
|
||||||
|
--password-store=kwallet6
|
||||||
|
--enable-wayland-ime
|
||||||
|
--force-device-scale-factor=1.75
|
||||||
495
platforms/linux/dunstrc
Normal file
495
platforms/linux/dunstrc
Normal file
|
|
@ -0,0 +1,495 @@
|
||||||
|
# See dunst(5) for all configuration options
|
||||||
|
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = none
|
||||||
|
|
||||||
|
### Geometry ###
|
||||||
|
|
||||||
|
# The width of the window, excluding the frame.
|
||||||
|
# dynamic width from 0 to 300
|
||||||
|
# width = (0, 300)
|
||||||
|
# constant width of 300
|
||||||
|
width = 300
|
||||||
|
|
||||||
|
# The height of a single notification, excluding the frame.
|
||||||
|
# dynamic height from 0 to 300
|
||||||
|
height = (0, 300)
|
||||||
|
# constant height of 300
|
||||||
|
# height = 300
|
||||||
|
# NOTE: Dunst from version 1.11 and older don't support dynamic height
|
||||||
|
# and the given value is treated as the maximum height
|
||||||
|
|
||||||
|
# Position the notification in the top right corner
|
||||||
|
origin = top-right
|
||||||
|
|
||||||
|
# Offset from the origin
|
||||||
|
# NOTE: Dunst from version 1.11 and older use this alternative notation
|
||||||
|
# offset = 10x50
|
||||||
|
offset = (10, 50)
|
||||||
|
|
||||||
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
|
scale = 2
|
||||||
|
|
||||||
|
# Maximum number of notification (0 means no limit)
|
||||||
|
notification_limit = 20
|
||||||
|
|
||||||
|
### Progress bar ###
|
||||||
|
|
||||||
|
# Turn on the progress bar. It appears when a progress hint is passed with
|
||||||
|
# for example dunstify -h int:value:12
|
||||||
|
progress_bar = true
|
||||||
|
|
||||||
|
# Set the progress bar height. This includes the frame, so make sure
|
||||||
|
# it's at least twice as big as the frame width.
|
||||||
|
progress_bar_height = 10
|
||||||
|
|
||||||
|
# Set the frame width of the progress bar
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
|
||||||
|
# Set the minimum width for the progress bar
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
|
||||||
|
# Set the maximum width for the progress bar
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||||
|
progress_bar_corner_radius = 0
|
||||||
|
|
||||||
|
# Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
|
||||||
|
# is set to 0 this option will be ignored.
|
||||||
|
progress_bar_corners = all
|
||||||
|
|
||||||
|
# Corner radius for the icon image.
|
||||||
|
icon_corner_radius = 0
|
||||||
|
|
||||||
|
# Define which corners to round when drawing the icon image. If icon_corner_radius
|
||||||
|
# is set to 0 this option will be ignored.
|
||||||
|
icon_corners = all
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of
|
||||||
|
# notification_limit).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# If gap_size is greater than 0, this setting will be ignored.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Padding between text and icon.
|
||||||
|
text_icon_padding = 0
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 3
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#89b4fa"
|
||||||
|
highlight = "#89b4fa"
|
||||||
|
|
||||||
|
# Size of gap to display between notifications - requires a compositor.
|
||||||
|
# If value is greater than 0, separator_height will be ignored and a border
|
||||||
|
# of size frame_width will be drawn around each notification instead.
|
||||||
|
# Click events on gaps do not currently propagate to applications below.
|
||||||
|
gap_size = 0
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort type.
|
||||||
|
# possible values are:
|
||||||
|
# * id: sort by id
|
||||||
|
# * urgency_ascending: sort by urgency (low then normal then critical)
|
||||||
|
# * urgency_descending: sort by urgency (critical then normal then low)
|
||||||
|
# * update: sort by update (most recent always at the top)
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
# idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Maple Mono NF CN 8
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Vertical alignment of message text and icon.
|
||||||
|
# Possible values are "top", "center" and "bottom".
|
||||||
|
vertical_alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||||
|
# define all lookup paths.
|
||||||
|
enable_recursive_icon_lookup = true
|
||||||
|
|
||||||
|
# Set icon theme (only used for recursive icon lookup)
|
||||||
|
icon_theme = "Papirus-Dark, Papirus, breeze, Adwaita"
|
||||||
|
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||||
|
# icon_theme = "Adwaita, breeze"
|
||||||
|
|
||||||
|
# Align icons left/right/top/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 32
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 128
|
||||||
|
|
||||||
|
# Paths to default icons (only necessary when not using recursive icon lookup)
|
||||||
|
icon_path = /home/js0ny/.local/share/icons/ePapirus/16x16/:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/xdg-open
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst (X11 only)
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst (X11 only)
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
# Define which corners to round when drawing the window. If the corner radius
|
||||||
|
# is set to 0 this option will be ignored.
|
||||||
|
#
|
||||||
|
# Comma-separated list of the corners. The accepted corner values are bottom-right,
|
||||||
|
# bottom-left, top-right, top-left, top, bottom, left, right or all.
|
||||||
|
corners = all
|
||||||
|
|
||||||
|
# Ignore the dbus closeNotification message.
|
||||||
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
|
# parameter, an application may close the notification sent before the
|
||||||
|
# user defined timeout.
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
### Wayland ###
|
||||||
|
# These settings are Wayland-specific. They have no effect when using X11
|
||||||
|
|
||||||
|
# Uncomment this if you want to let notifications appear under fullscreen
|
||||||
|
# applications (default: overlay)
|
||||||
|
# layer = top
|
||||||
|
|
||||||
|
# Set this to true to use X11 output on Wayland.
|
||||||
|
force_xwayland = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines list of actions for each mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||||
|
# such action, open the context menu.
|
||||||
|
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||||
|
# ones, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# * context: Open context menu for the notification.
|
||||||
|
# * context_all: Open context menu for all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action, close_current
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#1e1e2e"
|
||||||
|
foreground = "#cdd6f4"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency
|
||||||
|
default_icon = dialog-information
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#1e1e2e"
|
||||||
|
foreground = "#cdd6f4"
|
||||||
|
timeout = 10
|
||||||
|
override_pause_level = 30
|
||||||
|
# Icon for notifications with normal urgency
|
||||||
|
default_icon = dialog-information
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#1e1e2e"
|
||||||
|
foreground = "#cdd6f4"
|
||||||
|
frame_color = "#fab387"
|
||||||
|
timeout = 0
|
||||||
|
override_pause_level = 60
|
||||||
|
# Icon for notifications with critical urgency
|
||||||
|
default_icon = dialog-warning
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
#
|
||||||
|
# Messages can be matched by
|
||||||
|
# appname (discouraged, see desktop_entry)
|
||||||
|
# body
|
||||||
|
# category
|
||||||
|
# desktop_entry
|
||||||
|
# icon
|
||||||
|
# match_transient
|
||||||
|
# msg_urgency
|
||||||
|
# stack_tag
|
||||||
|
# summary
|
||||||
|
#
|
||||||
|
# and you can override the
|
||||||
|
# background
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# set_category
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
# icon_position
|
||||||
|
# skip_display
|
||||||
|
# history_ignore
|
||||||
|
# action_name
|
||||||
|
# word_wrap
|
||||||
|
# ellipsize
|
||||||
|
# alignment
|
||||||
|
# hide_text
|
||||||
|
# override_pause_level
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
|
||||||
|
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
|
||||||
|
# override_pause_level = X
|
||||||
|
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# fullscreen values
|
||||||
|
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||||
|
# delay: displays the new notification, if there is no fullscreen window active
|
||||||
|
# If the notification is already drawn, it won't get undrawn.
|
||||||
|
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||||
|
# withdrawn from screen again and will get delayed like a new notification
|
||||||
|
#[fullscreen_delay_everything]
|
||||||
|
# fullscreen = delay
|
||||||
|
#[fullscreen_show_critical]
|
||||||
|
# msg_urgency = critical
|
||||||
|
# fullscreen = show
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = true
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[skip-display]
|
||||||
|
# # This notification will not be displayed, but will be included in the history
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
#[stack-volumes]
|
||||||
|
# appname = "some_volume_notifiers"
|
||||||
|
# set_stack_tag = "volume"
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
||||||
5
platforms/linux/electron-flags.hypr.conf
Normal file
5
platforms/linux/electron-flags.hypr.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
--enable-features=WaylandWindowDecorations
|
||||||
|
--enable-features=UseOzonePlatform
|
||||||
|
--ozone-platform-hint=auto
|
||||||
|
--enable-wayland-ime
|
||||||
|
--force-device-scale-factor=1.75
|
||||||
1
platforms/linux/hypr/.gitignore
vendored
Normal file
1
platforms/linux/hypr/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
.sass-cache
|
||||||
19
platforms/linux/hypr/hypridle.conf
Normal file
19
platforms/linux/hypr/hypridle.conf
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
general {
|
||||||
|
lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
|
||||||
|
unlock_cmd = notify-send "unlock!" # same as above, but unlock
|
||||||
|
before_sleep_cmd = notify-send "Zzz" # command ran before sleep
|
||||||
|
after_sleep_cmd = notify-send "Awake!" # command ran after sleep
|
||||||
|
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
|
||||||
|
ignore_systemd_inhibit = false # whether to ignore systemd-inhibit --what=idle inhibitors
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 600 # in seconds
|
||||||
|
on-timeout = swaylock # command to run when timeout has passed
|
||||||
|
on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 1800 # 30min
|
||||||
|
on-timeout = systemctl suspend # suspend pc
|
||||||
|
}
|
||||||
|
|
@ -14,7 +14,15 @@
|
||||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||||
# #######################################################################################
|
# #######################################################################################
|
||||||
|
|
||||||
source=~/.config/hypr/dark.conf
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
$terminal = kitty
|
||||||
|
$fileManager = dolphin
|
||||||
|
$menu = rofi
|
||||||
|
$iconTheme = Papirus
|
||||||
|
|
||||||
|
source=~/.config/hypr/hyprland/dark.conf
|
||||||
|
source=~/.config/hypr/hyprland/+colemak.conf
|
||||||
|
source=~/.config/hypr/hyprland/rules.conf
|
||||||
|
|
||||||
autogenerated = 0 # remove this line to remove the warning
|
autogenerated = 0 # remove this line to remove the warning
|
||||||
|
|
||||||
|
|
@ -25,11 +33,6 @@ autogenerated = 0 # remove this line to remove the warning
|
||||||
# Please note not all available settings / options are set here.
|
# Please note not all available settings / options are set here.
|
||||||
# For a full list, see the wiki
|
# For a full list, see the wiki
|
||||||
|
|
||||||
# You can split this configuration into multiple files
|
|
||||||
# Create your files separately and then link them to this file like this:
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
#
|
|
||||||
|
|
||||||
xwayland {
|
xwayland {
|
||||||
force_zero_scaling = true
|
force_zero_scaling = true
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +47,7 @@ xwayland {
|
||||||
# monitor=,preferred,auto,auto
|
# monitor=,preferred,auto,auto
|
||||||
# Format:
|
# Format:
|
||||||
# MONITOR_NAME,RESOLUTION@REFRESH_RATE,OFFSET_XxOFFSET_Y,SCALE
|
# MONITOR_NAME,RESOLUTION@REFRESH_RATE,OFFSET_XxOFFSET_Y,SCALE
|
||||||
monitor=DP-2,3840x2160@59,0x0,1.666667
|
monitor=DP-2,3840x2160@60,0x0,1.667
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
|
|
@ -54,9 +57,6 @@ monitor=DP-2,3840x2160@59,0x0,1.666667
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
|
||||||
# Set programs that you use
|
# Set programs that you use
|
||||||
$terminal = wezterm-gui
|
|
||||||
$fileManager = dolphin
|
|
||||||
$menu = wofi
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
|
|
@ -68,13 +68,14 @@ $menu = wofi
|
||||||
|
|
||||||
# exec-once = $terminal
|
# exec-once = $terminal
|
||||||
# exec-once = nm-applet &
|
# exec-once = nm-applet &
|
||||||
# exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent & fcitx5 & albert
|
|
||||||
# Top Bar
|
# Top Bar
|
||||||
exec-once = waybar &
|
exec-once = waybar &
|
||||||
# Notifications
|
# Notifications
|
||||||
exec-once = mako &
|
exec-once = dunst &
|
||||||
|
# exec-once = hyprpanel &
|
||||||
# wallpapers
|
# wallpapers
|
||||||
exec-once = hyprpaper &
|
exec-once = swww-daemon &
|
||||||
|
exec-once = hypridle &
|
||||||
# Authentication agent
|
# Authentication agent
|
||||||
exec-once = systemctl --user start hyprpolkitagent
|
exec-once = systemctl --user start hyprpolkitagent
|
||||||
# Input Method
|
# Input Method
|
||||||
|
|
@ -86,9 +87,6 @@ exec-once = wl-paste --watch cliphist store
|
||||||
exec-once = blueman-applet &
|
exec-once = blueman-applet &
|
||||||
# Time Tracker
|
# Time Tracker
|
||||||
exec-once = aw-qt &
|
exec-once = aw-qt &
|
||||||
# https://github.com/hyprwm/Hyprland/discussions/5867
|
|
||||||
exec = gsettings set org.gnome.desktop.interface gtk-theme "Breeze-Dark" # for GTK3 apps
|
|
||||||
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -103,11 +101,9 @@ exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" #
|
||||||
env = HYPRCURSOR_SIZE,24
|
env = HYPRCURSOR_SIZE,24
|
||||||
|
|
||||||
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
|
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
|
||||||
# https://discuss.kde.org/t/the-themes-i-use-with-qt6ct-are-not-applied-in-discover/17118
|
|
||||||
env = QT_QUICK_CONTROLS_STYLE,org.kde.desktop
|
env = QT_QUICK_CONTROLS_STYLE,org.kde.desktop
|
||||||
|
|
||||||
env = LC_CTYPE,zh_CN.UTF-8
|
env = LC_CTYPE,en_GB.UTF-8
|
||||||
env = LC_ALL,zh_CN.UTF-8
|
|
||||||
|
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
|
|
@ -124,9 +120,8 @@ general {
|
||||||
border_size = 3
|
border_size = 3
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
col.active_border = $lavender $pink 45deg
|
||||||
col.active_border = $mauve
|
col.inactive_border = $overlay1
|
||||||
col.inactive_border = $overlay2
|
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
resize_on_border = true
|
resize_on_border = true
|
||||||
|
|
@ -144,8 +139,8 @@ decoration {
|
||||||
rounding = 10
|
rounding = 10
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
# Change transparency of focused and unfocused windows
|
||||||
active_opacity = 1.0
|
active_opacity = 0.97
|
||||||
inactive_opacity = 1.0
|
inactive_opacity = 0.90
|
||||||
|
|
||||||
shadow {
|
shadow {
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
@ -231,7 +226,7 @@ input {
|
||||||
kb_layout = us
|
kb_layout = us
|
||||||
kb_variant =
|
kb_variant =
|
||||||
kb_model =
|
kb_model =
|
||||||
kb_options = caps:escape
|
kb_options =
|
||||||
kb_rules =
|
kb_rules =
|
||||||
|
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
|
|
@ -264,14 +259,22 @@ device {
|
||||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
|
||||||
|
|
||||||
|
## Open Applications
|
||||||
bind = $mainMod, R, exec, $terminal
|
bind = $mainMod, R, exec, $terminal
|
||||||
bind = $mainMod, Q, killactive,
|
bind = $mainMod, Q, killactive,
|
||||||
bind = $mainMod, M, exit,
|
# bind = $mainMod, M, exit
|
||||||
bind = $mainMod, F, exec, $fileManager
|
bind = $mainMod SHIFT, F, exec, hyprctl --batch "dispatch togglefloating ; dispatch resizeactive exact 1440 810 ; dispatch centerwindow 1;"
|
||||||
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
|
||||||
bind = $mainMod SHIFT, V, togglefloating
|
|
||||||
|
## Launcher
|
||||||
|
bind = $mainMod, W, exec, $menu -show window -icon-theme $iconTheme -show-icons
|
||||||
|
bind = $mainMod, V, exec, cliphist list | $menu -dmenu | cliphist decode | wl-copy
|
||||||
|
bind = $mainMod, D, exec, $HOME/.local/scripts/picker/sdcv.sh
|
||||||
|
bind = alt, space, exec, $menu -show drun -icon-theme $iconTheme -show-icons
|
||||||
|
bind = $mainMod, SLASH, exec, $HOME/.local/scripts/picker/baloo.sh
|
||||||
|
|
||||||
bind = $mainMod, space, exec, $menu
|
|
||||||
bind = $mainMod, P, pseudo, # dwindle
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
bind = $mainMod, X, togglesplit, # dwindle
|
bind = $mainMod, X, togglesplit, # dwindle
|
||||||
|
|
||||||
|
|
@ -280,12 +283,12 @@ bind = $mainMod, left, movefocus, l
|
||||||
bind = $mainMod, right, movefocus, r
|
bind = $mainMod, right, movefocus, r
|
||||||
bind = $mainMod, up, movefocus, u
|
bind = $mainMod, up, movefocus, u
|
||||||
bind = $mainMod, down, movefocus, d
|
bind = $mainMod, down, movefocus, d
|
||||||
bind = $mainMod, h, movefocus, l
|
|
||||||
bind = $mainMod, i, movefocus, r
|
|
||||||
bind = $mainMod, e, movefocus, u
|
|
||||||
bind = $mainMod, n, movefocus, d
|
|
||||||
|
|
||||||
bind = $mainMod, c, exec, grimblast copy area
|
bind = $mainMod SHIFT, l, exec, swaylock
|
||||||
|
|
||||||
|
|
||||||
|
bind = $mainMod, c, exec, grimblast copysave area $HOME/Pictures/Screenshots/"$(date +%Y%m%d-%H%M%S)"
|
||||||
|
bind = $mainMod SHIFT, c, exec, notify-send "Color: $(hyprpicker)"
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
# Switch workspaces with mainMod + [0-9]
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
|
@ -312,8 +315,8 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
# Example special workspace (scratchpad)
|
||||||
bind = $mainMod, S, togglespecialworkspace, magic
|
bind = $mainMod, GRAVE, togglespecialworkspace, magic
|
||||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
bind = $mainMod SHIFT, GRAVE, movetoworkspace, special:magic
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
|
@ -337,21 +340,3 @@ bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
##############################
|
|
||||||
### WINDOWS AND WORKSPACES ###
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
# windowrule = float, ^(kitty)$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
|
|
||||||
# Ignore maximize requests from apps. You'll probably like this.
|
|
||||||
windowrulev2 = suppressevent maximize, class:.*
|
|
||||||
|
|
||||||
# Fix some dragging issues with XWayland
|
|
||||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
|
||||||
|
|
|
||||||
10
platforms/linux/hypr/hyprland/+colemak.conf
Normal file
10
platforms/linux/hypr/hyprland/+colemak.conf
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
bind = $mainMod, H, movefocus, l
|
||||||
|
bind = $mainMod, I, movefocus, r
|
||||||
|
bind = $mainMod, E, movefocus, u
|
||||||
|
bind = $mainMod, N, movefocus, d
|
||||||
|
bind = $mainMod SHIFT, H, swapwindow, l
|
||||||
|
bind = $mainMod SHIFT, I, swapwindow, r
|
||||||
|
bind = $mainMod SHIFT, E, swapwindow, u
|
||||||
|
bind = $mainMod SHIFT, N, swapwindow, d
|
||||||
|
bind = $mainMod, F, exec, $fileManager
|
||||||
|
|
||||||
11
platforms/linux/hypr/hyprland/+qwerty.conf
Normal file
11
platforms/linux/hypr/hyprland/+qwerty.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
bind = $mainMod, H, movefocus, l
|
||||||
|
bind = $mainMod, L, movefocus, r
|
||||||
|
bind = $mainMod, K, movefocus, u
|
||||||
|
bind = $mainMod, J, movefocus, d
|
||||||
|
bind = $mainMod SHIFT, H, swapwindow, l
|
||||||
|
bind = $mainMod SHIFT, L, swapwindow, r
|
||||||
|
bind = $mainMod SHIFT, K, swapwindow, u
|
||||||
|
bind = $mainMod SHIFT, J, swapwindow, d
|
||||||
|
bind = $mainMod, E, exec, $fileManager
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -76,3 +76,9 @@ $mantleAlpha = 181825
|
||||||
|
|
||||||
$crust = rgb(11111b)
|
$crust = rgb(11111b)
|
||||||
$crustAlpha = 11111b
|
$crustAlpha = 11111b
|
||||||
|
|
||||||
|
# https://github.com/hyprwm/Hyprland/discussions/5867
|
||||||
|
exec = gsettings set org.gnome.desktop.interface gtk-theme "BreezeDark" # for GTK3 apps
|
||||||
|
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
||||||
|
exec = kwriteconfig5 --group "General" --key "ColorScheme" "BreezeDark"
|
||||||
|
exec = hyprsunset -t 6000 &
|
||||||
78
platforms/linux/hypr/hyprland/rules.conf
Normal file
78
platforms/linux/hypr/hyprland/rules.conf
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
##############################
|
||||||
|
### WINDOWS AND WORKSPACES ###
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Example windowrule v1
|
||||||
|
# windowrule = float, ^(kitty)$
|
||||||
|
|
||||||
|
# Example windowrule v2
|
||||||
|
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
windowrulev2 = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
|
|
||||||
|
windowrulev2 = float, class:qt6ct
|
||||||
|
windowrulev2 = float, size 2560 1440, class:^(org.kde.gwenview)$
|
||||||
|
windowrulev2 = float, size 50%, center, class:^(org.kde.konsole)$
|
||||||
|
|
||||||
|
|
||||||
|
windowrulev2 = float, class:^(steam)$
|
||||||
|
|
||||||
|
# Browser Extension Popup
|
||||||
|
windowrulev2 = float, title:^(Bitwarden - )(.*)$
|
||||||
|
|
||||||
|
# Picture-in-Picture
|
||||||
|
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = keepaspectratio, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = move 73% 72%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = size 25%, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = pin, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
|
||||||
|
windowrulev2 = float, title:^(画中画)(.*)$
|
||||||
|
windowrulev2 = keepaspectratio, title:^(画中画)(.*)$
|
||||||
|
windowrulev2 = move 73% 72%, title:^(画中画)(.*)$
|
||||||
|
windowrulev2 = size 25%, title:^(画中画)(.*)$
|
||||||
|
windowrulev2 = float, title:^(画中画)(.*)$
|
||||||
|
windowrulev2 = pin, title:^(画中画)(.*)$
|
||||||
|
|
||||||
|
# Dialog windows – float+center these windows.
|
||||||
|
windowrulev2 = center, title:^(Open File)(.*)$
|
||||||
|
windowrulev2 = center, title:^(打开文件)(.*)$
|
||||||
|
windowrulev2 = center, title:^(Select a File)(.*)$
|
||||||
|
windowrulev2 = center, title:^(选择文件)(.*)$
|
||||||
|
windowrulev2 = center, title:^(Choose wallpaper)(.*)$
|
||||||
|
windowrulev2 = center, title:^(Open Folder)(.*)$
|
||||||
|
windowrulev2 = center, title:^(Save As)(.*)$
|
||||||
|
windowrulev2 = center, title:^(保存)(.*)$
|
||||||
|
windowrulev2 = center, title:^(Library)(.*)$
|
||||||
|
windowrulev2 = center, title:^(File Upload)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Open File)(.*)$
|
||||||
|
windowrulev2 = center, title:^(打开文件)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Select a File)(.*)$
|
||||||
|
windowrulev2 = center, title:^(选择文件)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Choose wallpaper)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Open Folder)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Save As)(.*)$
|
||||||
|
windowrulev2 = center, title:^(保存)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Library)(.*)$
|
||||||
|
windowrulev2 = float, title:^(File Upload)(.*)$
|
||||||
|
|
||||||
|
# Centering pictures preview windows
|
||||||
|
# Telegram
|
||||||
|
windowrulev2 = center, title:^(Media viewer)(.*)$
|
||||||
|
windowrulev2 = float, title:^(Media viewer)(.*)$
|
||||||
|
windowrulev2 = size 50%, title:^(Media viewer)(.*)$
|
||||||
|
# WeChat
|
||||||
|
windowrulev2 = center, title:^(预览)(.*)$
|
||||||
|
windowrulev2 = float, title:^(预览)(.*)$
|
||||||
|
windowrulev2 = size 50%, title:^(预览)(.*)$
|
||||||
|
# QQ
|
||||||
|
windowrulev2 = center, title:^(图片查看器)(.*)$
|
||||||
|
windowrulev2 = float, title:^(图片查看器)(.*)$
|
||||||
|
windowrulev2 = size 50%, title:^(图片查看器)(.*)$
|
||||||
69
platforms/linux/hypr/hyprlock.conf
Normal file
69
platforms/linux/hypr/hyprlock.conf
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
# BACKGROUND
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = ~/.config/hypr/walls/1.png
|
||||||
|
# blur_passes = 0
|
||||||
|
# contrast = 1
|
||||||
|
# brightness = 1
|
||||||
|
# vibrancy = 0.2
|
||||||
|
# vibrancy_darkness = 0.2
|
||||||
|
}
|
||||||
|
|
||||||
|
# GENERAL
|
||||||
|
general {
|
||||||
|
no_fade_in = false
|
||||||
|
no_fade_out = false
|
||||||
|
hide_cursor = true
|
||||||
|
grace = 0
|
||||||
|
disable_loading_bar = true
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# INPUT FIELD
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 250, 60
|
||||||
|
outline_thickness = 2
|
||||||
|
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||||
|
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
|
dots_center = true
|
||||||
|
outer_color = rgba(0, 0, 0, 0)
|
||||||
|
inner_color = rgba(0, 0, 0, 0.2)
|
||||||
|
font_color = rgb(205, 214, 244)
|
||||||
|
fade_on_empty = false
|
||||||
|
rounding = -1
|
||||||
|
placeholder_text = <span foreground="##cdd6f4">Password</span>
|
||||||
|
hide_input = false
|
||||||
|
position = 0, -200
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
check_color = rgb(108, 112, 134)
|
||||||
|
fail_color = rgb(243, 139, 168) # if authentication failed, changes outer_color and fail message color
|
||||||
|
fail_text = <b>$ATTEMPTS</b> # can be set to empty
|
||||||
|
fail_timeout = 2000 # milliseconds before fail_text and fail_color disappears
|
||||||
|
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||||
|
}
|
||||||
|
|
||||||
|
# DATE
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] date +"%A, %B %d"
|
||||||
|
color = rgb(205, 214, 244)
|
||||||
|
font_size = 22
|
||||||
|
font_family = JetBrains Mono
|
||||||
|
position = 0, 300
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
# TIME
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] date +"%-I:%M"
|
||||||
|
color = rgb(205, 214, 244)
|
||||||
|
font_size = 95
|
||||||
|
font_family = JetBrains Mono Extrabold
|
||||||
|
position = 0, 200
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
@ -9,4 +9,5 @@
|
||||||
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
|
# ln -sf $DOTFILES/platforms/linux/hypr $XDG_CONFIG_HOME/hypr
|
||||||
|
|
||||||
preload = ~/Pictures/Wallpaper/current.jpg
|
preload = ~/Pictures/Wallpaper/current.jpg
|
||||||
wallpaper = DP-2, ~/Pictures/Wallpaper/current.jpg
|
preload = ~/Pictures/Wallpaper/current.png
|
||||||
|
wallpaper = DP-2, ~/Pictures/Wallpaper/current.png
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
[ElisaFileIndexer]
|
|
||||||
RootPath[$e]=$HOME/Music
|
|
||||||
|
|
||||||
[Views]
|
|
||||||
InitialFilesViewPath=/mnt/d/Media/Music
|
|
||||||
|
|
@ -1,13 +1,23 @@
|
||||||
[ActivityManager]
|
[ActivityManager]
|
||||||
_k_friendly_name=Activity Manager
|
_k_friendly_name=活动管理器
|
||||||
switch-to-activity-32e1f2d2-08d1-4a8b-886a-0a062f999068=none,none,Switch to activity "Default"
|
switch-to-activity-32e1f2d2-08d1-4a8b-886a-0a062f999068=none,none,Switch to activity "Default"
|
||||||
|
switch-to-activity-e1ebfdac-0f52-47a5-9e7a-d9eb5cc26845=none,none,切换到活动“默认”
|
||||||
|
|
||||||
|
[Clementine]
|
||||||
|
_k_friendly_name=Clementine
|
||||||
|
next_album=Shift+Media Next,none,Next album
|
||||||
|
next_track=none,none,下一个曲目
|
||||||
|
play_pause=none,none,播放/暂停
|
||||||
|
prev_track=none,none,上一个曲目
|
||||||
|
stop=none,none,停止
|
||||||
|
|
||||||
[KDE Keyboard Layout Switcher]
|
[KDE Keyboard Layout Switcher]
|
||||||
Switch keyboard layout to English (Colemak)=none,none,Switch keyboard layout to English (Colemak)
|
Switch keyboard layout to English (Colemak)=none,none,Switch keyboard layout to English (Colemak)
|
||||||
Switch keyboard layout to English (US)=none,none,Switch keyboard layout to English (US)
|
Switch keyboard layout to English (US)=none,none,Switch keyboard layout to English (US)
|
||||||
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Switch to Last-Used Keyboard Layout
|
Switch keyboard layout to 英语(美国)=none,none,切换键盘布局为 英语(美国)
|
||||||
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
|
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,切换到上次使用过的键盘布局
|
||||||
_k_friendly_name=Keyboard Layout Switcher
|
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,切换到下一个键盘布局
|
||||||
|
_k_friendly_name=键盘布局切换器
|
||||||
|
|
||||||
[Strawberry]
|
[Strawberry]
|
||||||
_k_friendly_name=Strawberry
|
_k_friendly_name=Strawberry
|
||||||
|
|
@ -17,54 +27,59 @@ prev_track=none,none,Previous track
|
||||||
stop=none,none,Stop
|
stop=none,none,Stop
|
||||||
|
|
||||||
[kaccess]
|
[kaccess]
|
||||||
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
|
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,切换屏幕阅读器开关
|
||||||
_k_friendly_name=Accessibility
|
_k_friendly_name=无障碍辅助
|
||||||
|
|
||||||
[kcm_touchpad]
|
[kcm_touchpad]
|
||||||
Disable Touchpad=Touchpad Off,Touchpad Off,
|
Disable Touchpad=Touchpad Off,Touchpad Off,
|
||||||
Enable Touchpad=Touchpad On,Touchpad On,
|
Enable Touchpad=Touchpad On,Touchpad On,
|
||||||
Toggle Touchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tTouchpad Toggle\tMeta+Ctrl+Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,
|
Toggle Touchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tTouchpad Toggle\tMeta+Ctrl+Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,
|
||||||
_k_friendly_name=Touchpad
|
_k_friendly_name=触摸板
|
||||||
|
|
||||||
[kmix]
|
[kmix]
|
||||||
_k_friendly_name=KMix
|
_k_friendly_name=音量
|
||||||
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
|
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,降低麦克风音量
|
||||||
decrease_volume=Volume Down,Volume Down,Decrease Volume
|
decrease_volume=Volume Down,Volume Down,降低音量
|
||||||
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
|
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,音量降低 1%
|
||||||
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
|
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,提高麦克风音量
|
||||||
increase_volume=Volume Up,Volume Up,Increase Volume
|
increase_volume=Volume Up,Volume Up,提高音量
|
||||||
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
|
increase_volume_small=Shift+Volume Up,Shift+Volume Up,音量提高 1%
|
||||||
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
|
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,麦克风静音
|
||||||
mute=Volume Mute,Volume Mute,Mute
|
mute=Volume Mute,Volume Mute,静音
|
||||||
|
|
||||||
[krusader]
|
[krusader]
|
||||||
_k_friendly_name=Krusader
|
_k_friendly_name=Krusader
|
||||||
bring_main_window_to_top=Meta+K,Meta+K,Bring Main Window to Top
|
bring_main_window_to_top=none,Meta+K,Bring Main Window to Top
|
||||||
|
|
||||||
[ksmserver]
|
[ksmserver]
|
||||||
Halt Without Confirmation=none,,Shut Down Without Confirmation
|
Halt Without Confirmation=none,,关机 (无需确认)
|
||||||
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,Lock Session
|
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,锁定会话
|
||||||
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
|
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,显示注销屏幕
|
||||||
Log Out Without Confirmation=none,,Log Out Without Confirmation
|
Log Out Without Confirmation=none,,注销 (无需确认)
|
||||||
LogOut=none,,Log Out
|
LogOut=none,,注销
|
||||||
Reboot=none,,Reboot
|
Reboot=none,,重启
|
||||||
Reboot Without Confirmation=none,,Reboot Without Confirmation
|
Reboot Without Confirmation=none,,重启 (无需确认)
|
||||||
Shut Down=none,,Shut Down
|
Shut Down=none,,关机
|
||||||
_k_friendly_name=Session Management
|
_k_friendly_name=会话管理
|
||||||
|
|
||||||
|
[ktorrent]
|
||||||
|
_k_friendly_name=KTorrent
|
||||||
|
queue_suspend=Alt+Shift+P,Alt+Shift+P,暂停种子
|
||||||
|
show_kt=Alt+Shift+T,Alt+Shift+T,显示/隐藏 KTorrent
|
||||||
|
|
||||||
[kwin]
|
[kwin]
|
||||||
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,Activate Window Demanding Attention
|
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,激活请求注意的窗口
|
||||||
Cycle Overview=none,none,Cycle through Overview and Grid View
|
Cycle Overview=none,none,循环显示桌面概览和网格视图
|
||||||
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
|
Cycle Overview Opposite=none,none,循环显示网格视图和桌面概览
|
||||||
Decrease Opacity=none,,Decrease Opacity of Active Window by 5%
|
Decrease Opacity=none,,降低活动窗口不透明度 5%
|
||||||
Edit Tiles=Meta+T,Meta+T,Toggle Tiles Editor
|
Edit Tiles=Meta+T,Meta+T,磁贴编辑器开关
|
||||||
Expose=Ctrl+F9,Ctrl+F9,Toggle Present Windows (Current desktop)
|
Expose=Ctrl+F9,Ctrl+F9,显示/隐藏窗口平铺 (当前桌面)
|
||||||
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),Toggle Present Windows (All desktops)
|
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),显示/隐藏窗口平铺 (全部桌面)
|
||||||
ExposeClass=Ctrl+F7,Ctrl+F7,Toggle Present Windows (Window class)
|
ExposeClass=Ctrl+F7,Ctrl+F7,显示/隐藏窗口平铺 (窗口类)
|
||||||
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
|
ExposeClassCurrentDesktop=none,none,显示/隐藏窗口平铺 (当前桌面的窗口类)
|
||||||
Grid View=Meta+G,Meta+G,Toggle Grid View
|
Grid View=Meta+G,Meta+G,切换网格视图
|
||||||
Increase Opacity=none,,Increase Opacity of Active Window by 5%
|
Increase Opacity=none,,提高活动窗口不透明度 5%
|
||||||
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,Kill Window
|
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,强制终止窗口
|
||||||
KrohnkiteBTreeLayout=Meta+X,none,Krohnkite: BTree Layout
|
KrohnkiteBTreeLayout=Meta+X,none,Krohnkite: BTree Layout
|
||||||
KrohnkiteColumnsLayout=none,none,Krohnkite: Columns Layout
|
KrohnkiteColumnsLayout=none,none,Krohnkite: Columns Layout
|
||||||
KrohnkiteDecrease=none,none,Krohnkite: Decrease
|
KrohnkiteDecrease=none,none,Krohnkite: Decrease
|
||||||
|
|
@ -99,210 +114,212 @@ KrohnkiteTileLayout=none,none,Krohnkite: Tile Layout
|
||||||
KrohnkiteToggleFloat=Meta+Shift+F,none,Krohnkite: Toggle Float
|
KrohnkiteToggleFloat=Meta+Shift+F,none,Krohnkite: Toggle Float
|
||||||
KrohnkiteTreeColumnLayout=none,none,Krohnkite: Tree Column Layout
|
KrohnkiteTreeColumnLayout=none,none,Krohnkite: Tree Column Layout
|
||||||
KrohnkitegrowWidth=Meta+Ctrl+I,none,Krohnkite: Grow Width
|
KrohnkitegrowWidth=Meta+Ctrl+I,none,Krohnkite: Grow Width
|
||||||
Move Tablet to Next Output=none,none,Move the tablet to the next output
|
Move Tablet to Next Output=none,none,移动数位板到下一个输出设备
|
||||||
MoveMouseToCenter=Meta+F6,Meta+F6,Move Mouse to Centre
|
MoveMouseToCenter=Meta+F6,Meta+F6,移动鼠标到中央
|
||||||
MoveMouseToFocus=Meta+F5,Meta+F5,Move Mouse to Focus
|
MoveMouseToFocus=Meta+F5,Meta+F5,移动鼠标到焦点
|
||||||
MoveZoomDown=none,none,Move Zoomed Area Downwards
|
MoveZoomDown=none,none,将缩放区域向下移动
|
||||||
MoveZoomLeft=none,none,Move Zoomed Area to Left
|
MoveZoomLeft=none,none,将缩放区域向左移动
|
||||||
MoveZoomRight=none,none,Move Zoomed Area to Right
|
MoveZoomRight=none,none,将缩放区域向右移动
|
||||||
MoveZoomUp=none,none,Move Zoomed Area Upwards
|
MoveZoomUp=none,none,将缩放区域向上移动
|
||||||
Overview=Meta+W\tMeta+Tab,Meta+W,Toggle Overview
|
Overview=Meta+W\tMeta+Tab,Meta+W,显示/隐藏桌面总览
|
||||||
Setup Window Shortcut=none,,Setup Window Shortcut
|
Setup Window Shortcut=none,,设置窗口快捷键
|
||||||
Show Desktop=Meta+D,Meta+D,Peek at Desktop
|
Show Desktop=Meta+D,Meta+D,暂时显示桌面
|
||||||
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Switch One Desktop Down
|
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,切换到下方桌面
|
||||||
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Switch One Desktop Up
|
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,切换到上方桌面
|
||||||
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Switch One Desktop to the Left
|
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,切换到左侧桌面
|
||||||
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Switch One Desktop to the Right
|
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,切换到右侧桌面
|
||||||
Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,Switch to Window Below
|
Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,切换到下面的窗口
|
||||||
Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,Switch to Window to the Left
|
Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,切换到左侧的窗口
|
||||||
Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,Switch to Window to the Right
|
Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,切换到右侧的窗口
|
||||||
Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,Switch to Window Above
|
Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,切换到上面的窗口
|
||||||
Switch to Desktop 1=Meta+1,Ctrl+F1,Switch to Desktop 1
|
Switch to Desktop 1=Meta+1,Ctrl+F1,切换到桌面 1
|
||||||
Switch to Desktop 10=none,,Switch to Desktop 10
|
Switch to Desktop 10=none,,切换到桌面 10
|
||||||
Switch to Desktop 11=none,,Switch to Desktop 11
|
Switch to Desktop 11=none,,切换到桌面 11
|
||||||
Switch to Desktop 12=none,,Switch to Desktop 12
|
Switch to Desktop 12=none,,切换到桌面 12
|
||||||
Switch to Desktop 13=none,,Switch to Desktop 13
|
Switch to Desktop 13=none,,切换到桌面 13
|
||||||
Switch to Desktop 14=none,,Switch to Desktop 14
|
Switch to Desktop 14=none,,切换到桌面 14
|
||||||
Switch to Desktop 15=none,,Switch to Desktop 15
|
Switch to Desktop 15=none,,切换到桌面 15
|
||||||
Switch to Desktop 16=none,,Switch to Desktop 16
|
Switch to Desktop 16=none,,切换到桌面 16
|
||||||
Switch to Desktop 17=none,,Switch to Desktop 17
|
Switch to Desktop 17=none,,切换到桌面 17
|
||||||
Switch to Desktop 18=none,,Switch to Desktop 18
|
Switch to Desktop 18=none,,切换到桌面 18
|
||||||
Switch to Desktop 19=none,,Switch to Desktop 19
|
Switch to Desktop 19=none,,切换到桌面 19
|
||||||
Switch to Desktop 2=Meta+2,Ctrl+F2,Switch to Desktop 2
|
Switch to Desktop 2=Meta+2,Ctrl+F2,切换到桌面 2
|
||||||
Switch to Desktop 20=none,,Switch to Desktop 20
|
Switch to Desktop 20=none,,切换到桌面 20
|
||||||
Switch to Desktop 3=Meta+3,Ctrl+F3,Switch to Desktop 3
|
Switch to Desktop 3=Meta+3,Ctrl+F3,切换到桌面 3
|
||||||
Switch to Desktop 4=Meta+4,Ctrl+F4,Switch to Desktop 4
|
Switch to Desktop 4=Meta+4,Ctrl+F4,切换到桌面 4
|
||||||
Switch to Desktop 5=Meta+5,,Switch to Desktop 5
|
Switch to Desktop 5=Meta+5,,切换到桌面 5
|
||||||
Switch to Desktop 6=Meta+6,,Switch to Desktop 6
|
Switch to Desktop 6=Meta+6,,切换到桌面 6
|
||||||
Switch to Desktop 7=Meta+7,,Switch to Desktop 7
|
Switch to Desktop 7=Meta+7,,切换到桌面 7
|
||||||
Switch to Desktop 8=Meta+8,,Switch to Desktop 8
|
Switch to Desktop 8=Meta+8,,切换到桌面 8
|
||||||
Switch to Desktop 9=Meta+9,,Switch to Desktop 9
|
Switch to Desktop 9=Meta+9,,切换到桌面 9
|
||||||
Switch to Next Desktop=none,,Switch to Next Desktop
|
Switch to Next Desktop=none,,切换到下一桌面
|
||||||
Switch to Next Screen=none,,Switch to Next Screen
|
Switch to Next Screen=none,,切换到下一屏幕
|
||||||
Switch to Previous Desktop=none,,Switch to Previous Desktop
|
Switch to Previous Desktop=none,,切换到上一桌面
|
||||||
Switch to Previous Screen=none,,Switch to Previous Screen
|
Switch to Previous Screen=none,,切换到上一屏幕
|
||||||
Switch to Screen 0=none,,Switch to Screen 0
|
Switch to Screen 0=none,,切换到屏幕 0
|
||||||
Switch to Screen 1=none,,Switch to Screen 1
|
Switch to Screen 1=none,,切换到屏幕 1
|
||||||
Switch to Screen 2=none,,Switch to Screen 2
|
Switch to Screen 2=none,,切换到屏幕 2
|
||||||
Switch to Screen 3=none,,Switch to Screen 3
|
Switch to Screen 3=none,,切换到屏幕 3
|
||||||
Switch to Screen 4=none,,Switch to Screen 4
|
Switch to Screen 4=none,,切换到屏幕 4
|
||||||
Switch to Screen 5=none,,Switch to Screen 5
|
Switch to Screen 5=none,,切换到屏幕 5
|
||||||
Switch to Screen 6=none,,Switch to Screen 6
|
Switch to Screen 6=none,,切换到屏幕 6
|
||||||
Switch to Screen 7=none,,Switch to Screen 7
|
Switch to Screen 7=none,,切换到屏幕 7
|
||||||
Switch to Screen Above=none,,Switch to Screen Above
|
Switch to Screen Above=none,,切换到上方屏幕
|
||||||
Switch to Screen Below=none,,Switch to Screen Below
|
Switch to Screen Below=none,,切换到下方屏幕
|
||||||
Switch to Screen to the Left=none,,Switch to Screen to the Left
|
Switch to Screen to the Left=none,,切换到左侧屏幕
|
||||||
Switch to Screen to the Right=none,,Switch to Screen to the Right
|
Switch to Screen to the Right=none,,切换到右侧屏幕
|
||||||
Toggle Night Color=none,none,Suspend/Resume Night Light
|
Toggle Night Color=none,none,暂停/继续夜间色温
|
||||||
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
|
Toggle Window Raise/Lower=none,,提升/降低窗口
|
||||||
Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
|
Walk Through Windows=Alt+Tab,Alt+Tab,遍历窗口
|
||||||
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,Walk Through Windows (Reverse)
|
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,遍历窗口 (反向)
|
||||||
Walk Through Windows Alternative=none,,Walk Through Windows Alternative
|
Walk Through Windows Alternative=none,,遍历窗口交替
|
||||||
Walk Through Windows Alternative (Reverse)=none,,Walk Through Windows Alternative (Reverse)
|
Walk Through Windows Alternative (Reverse)=none,,遍历窗口交替 (反向)
|
||||||
Walk Through Windows of Current Application=Alt+`,Alt+`,Walk Through Windows of Current Application
|
Walk Through Windows of Current Application=Alt+`,Alt+`,遍历当前应用程序窗口
|
||||||
Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,Walk Through Windows of Current Application (Reverse)
|
Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,遍历当前应用程序窗口 (反向)
|
||||||
Walk Through Windows of Current Application Alternative=none,,Walk Through Windows of Current Application Alternative
|
Walk Through Windows of Current Application Alternative=none,,遍历当前应用程序窗口交替
|
||||||
Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Through Windows of Current Application Alternative (Reverse)
|
Walk Through Windows of Current Application Alternative (Reverse)=none,,遍历当前应用程序窗口交替 (反向)
|
||||||
Window Above Other Windows=none,,Keep Window Above Others
|
Window Above Other Windows=none,,窗口置顶
|
||||||
Window Below Other Windows=none,,Keep Window Below Others
|
Window Below Other Windows=none,,窗口置底
|
||||||
Window Close=Alt+F4\tMeta+Q,Alt+F4,Close Window
|
Window Close=Alt+F4\tMeta+Q,Alt+F4,关闭窗口
|
||||||
Window Custom Quick Tile Bottom=none,,Custom Quick Tile Window to the Bottom
|
Window Custom Quick Tile Bottom=none,,自定义快速铺放窗口到下方
|
||||||
Window Custom Quick Tile Left=none,,Custom Quick Tile Window to the Left
|
Window Custom Quick Tile Left=none,,自定义快速铺放窗口到左侧
|
||||||
Window Custom Quick Tile Right=none,,Custom Quick Tile Window to the Right
|
Window Custom Quick Tile Right=none,,自定义快速铺放窗口到右侧
|
||||||
Window Custom Quick Tile Top=none,,Custom Quick Tile Window to the Top
|
Window Custom Quick Tile Top=none,,自定义快速铺放窗口到上方
|
||||||
Window Fullscreen=none,,Make Window Fullscreen
|
Window Fullscreen=Meta+F11,,全屏显示窗口
|
||||||
Window Grow Horizontal=none,,Expand Window Horizontally
|
Window Grow Horizontal=none,,水平扩展窗口
|
||||||
Window Grow Vertical=none,,Expand Window Vertically
|
Window Grow Vertical=none,,垂直扩展窗口
|
||||||
Window Lower=none,,Lower Window
|
Window Lower=none,,降低窗口
|
||||||
Window Maximize=Meta+PgUp,Meta+PgUp,Maximise Window
|
Window Maximize=Meta+PgUp,Meta+PgUp,最大化窗口
|
||||||
Window Maximize Horizontal=none,,Maximise Window Horizontally
|
Window Maximize Horizontal=none,,水平最大化窗口
|
||||||
Window Maximize Vertical=none,,Maximise Window Vertically
|
Window Maximize Vertical=none,,垂直最大化窗口
|
||||||
Window Minimize=Meta+PgDown,Meta+PgDown,Minimise Window
|
Window Minimize=Meta+PgDown\tMeta+M,Meta+PgDown,最小化窗口
|
||||||
Window Move=none,,Move Window
|
Window Move=none,,移动窗口
|
||||||
Window Move Center=none,,Move Window to the Centre
|
Window Move Center=none,,移动窗口到中央
|
||||||
Window No Border=none,,Toggle Window Titlebar and Frame
|
Window No Border=none,,显示/隐藏窗口标题栏和框架
|
||||||
Window On All Desktops=none,,Keep Window on All Desktops
|
Window On All Desktops=none,,在所有桌面上显示窗口
|
||||||
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,Window One Desktop Down
|
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,窗口下移一个桌面
|
||||||
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,Window One Desktop Up
|
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,窗口上移一个桌面
|
||||||
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
|
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,窗口左移一个桌面
|
||||||
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
|
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,窗口右移一个桌面
|
||||||
Window One Screen Down=none,,Move Window One Screen Down
|
Window One Screen Down=none,,移动窗口到下方屏幕
|
||||||
Window One Screen Up=none,,Move Window One Screen Up
|
Window One Screen Up=none,,移动窗口到上方屏幕
|
||||||
Window One Screen to the Left=none,,Move Window One Screen to the Left
|
Window One Screen to the Left=none,,移动窗口到左侧屏幕
|
||||||
Window One Screen to the Right=none,,Move Window One Screen to the Right
|
Window One Screen to the Right=none,,移动窗口到右侧屏幕
|
||||||
Window Operations Menu=Alt+F3,Alt+F3,Window Operations Menu
|
Window Operations Menu=Alt+F3,Alt+F3,窗口操作菜单
|
||||||
Window Pack Down=none,,Move Window Down
|
Window Pack Down=none,,下移窗口
|
||||||
Window Pack Left=none,,Move Window Left
|
Window Pack Left=none,,左移窗口
|
||||||
Window Pack Right=none,,Move Window Right
|
Window Pack Right=none,,右移窗口
|
||||||
Window Pack Up=none,,Move Window Up
|
Window Pack Up=none,,上移窗口
|
||||||
Window Quick Tile Bottom=Meta+Down,Meta+Down,Quick Tile Window to the Bottom
|
Window Quick Tile Bottom=Meta+Down,Meta+Down,快速铺放窗口到下方
|
||||||
Window Quick Tile Bottom Left=none,,Quick Tile Window to the Bottom Left
|
Window Quick Tile Bottom Left=none,,快速铺放窗口到左下方
|
||||||
Window Quick Tile Bottom Right=none,,Quick Tile Window to the Bottom Right
|
Window Quick Tile Bottom Right=none,,快速铺放窗口到右下方
|
||||||
Window Quick Tile Left=Meta+Left,Meta+Left,Quick Tile Window to the Left
|
Window Quick Tile Left=Meta+Left,Meta+Left,快速铺放窗口到左侧
|
||||||
Window Quick Tile Right=Meta+Right,Meta+Right,Quick Tile Window to the Right
|
Window Quick Tile Right=Meta+Right,Meta+Right,快速铺放窗口到右侧
|
||||||
Window Quick Tile Top=Meta+Up,Meta+Up,Quick Tile Window to the Top
|
Window Quick Tile Top=Meta+Up,Meta+Up,快速铺放窗口到上方
|
||||||
Window Quick Tile Top Left=none,,Quick Tile Window to the Top Left
|
Window Quick Tile Top Left=none,,快速铺放窗口到左上方
|
||||||
Window Quick Tile Top Right=none,,Quick Tile Window to the Top Right
|
Window Quick Tile Top Right=none,,快速铺放窗口到右上方
|
||||||
Window Raise=none,,Raise Window
|
Window Raise=none,,提升窗口
|
||||||
Window Resize=none,,Resize Window
|
Window Resize=none,,调整窗口大小
|
||||||
Window Shade=none,,Shade Window
|
Window Shade=none,,折叠窗口
|
||||||
Window Shrink Horizontal=none,,Shrink Window Horizontally
|
Window Shrink Horizontal=none,,水平缩小窗口
|
||||||
Window Shrink Vertical=none,,Shrink Window Vertically
|
Window Shrink Vertical=none,,垂直缩小窗口
|
||||||
Window to Desktop 1=Meta+!,,Window to Desktop 1
|
Window to Desktop 1=Meta+!,,窗口移动到桌面 1
|
||||||
Window to Desktop 10=none,,Window to Desktop 10
|
Window to Desktop 10=none,,窗口移动到桌面 10
|
||||||
Window to Desktop 11=none,,Window to Desktop 11
|
Window to Desktop 11=none,,窗口移动到桌面 11
|
||||||
Window to Desktop 12=none,,Window to Desktop 12
|
Window to Desktop 12=none,,窗口移动到桌面 12
|
||||||
Window to Desktop 13=none,,Window to Desktop 13
|
Window to Desktop 13=none,,窗口移动到桌面 13
|
||||||
Window to Desktop 14=none,,Window to Desktop 14
|
Window to Desktop 14=none,,窗口移动到桌面 14
|
||||||
Window to Desktop 15=none,,Window to Desktop 15
|
Window to Desktop 15=none,,窗口移动到桌面 15
|
||||||
Window to Desktop 16=none,,Window to Desktop 16
|
Window to Desktop 16=none,,窗口移动到桌面 16
|
||||||
Window to Desktop 17=none,,Window to Desktop 17
|
Window to Desktop 17=none,,窗口移动到桌面 17
|
||||||
Window to Desktop 18=none,,Window to Desktop 18
|
Window to Desktop 18=none,,窗口移动到桌面 18
|
||||||
Window to Desktop 19=none,,Window to Desktop 19
|
Window to Desktop 19=none,,窗口移动到桌面 19
|
||||||
Window to Desktop 2=Meta+@,,Window to Desktop 2
|
Window to Desktop 2=Meta+@,,窗口移动到桌面 2
|
||||||
Window to Desktop 20=none,,Window to Desktop 20
|
Window to Desktop 20=none,,窗口移动到桌面 20
|
||||||
Window to Desktop 3=Meta+#,,Window to Desktop 3
|
Window to Desktop 3=Meta+#,,窗口移动到桌面 3
|
||||||
Window to Desktop 4=Meta+$,,Window to Desktop 4
|
Window to Desktop 4=Meta+$,,窗口移动到桌面 4
|
||||||
Window to Desktop 5=Meta+%,,Window to Desktop 5
|
Window to Desktop 5=Meta+%,,窗口移动到桌面 5
|
||||||
Window to Desktop 6=Meta+^,,Window to Desktop 6
|
Window to Desktop 6=Meta+^,,窗口移动到桌面 6
|
||||||
Window to Desktop 7=Meta+&,,Window to Desktop 7
|
Window to Desktop 7=Meta+&,,窗口移动到桌面 7
|
||||||
Window to Desktop 8=Meta+*,,Window to Desktop 8
|
Window to Desktop 8=Meta+*,,窗口移动到桌面 8
|
||||||
Window to Desktop 9=none,,Window to Desktop 9
|
Window to Desktop 9=Meta+(,,窗口移动到桌面 9
|
||||||
Window to Next Desktop=none,,Window to Next Desktop
|
Window to Next Desktop=none,,窗口移动到下一桌面
|
||||||
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Move Window to Next Screen
|
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,移动窗口到下一屏幕
|
||||||
Window to Previous Desktop=none,,Window to Previous Desktop
|
Window to Previous Desktop=none,,窗口移动到上一桌面
|
||||||
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Move Window to Previous Screen
|
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,移动窗口到上一屏幕
|
||||||
Window to Screen 0=none,,Move Window to Screen 0
|
Window to Screen 0=none,,移动窗口到屏幕 0
|
||||||
Window to Screen 1=none,,Move Window to Screen 1
|
Window to Screen 1=none,,移动窗口到屏幕 1
|
||||||
Window to Screen 2=none,,Move Window to Screen 2
|
Window to Screen 2=none,,移动窗口到屏幕 2
|
||||||
Window to Screen 3=none,,Move Window to Screen 3
|
Window to Screen 3=none,,移动窗口到屏幕 3
|
||||||
Window to Screen 4=none,,Move Window to Screen 4
|
Window to Screen 4=none,,移动窗口到屏幕 4
|
||||||
Window to Screen 5=none,,Move Window to Screen 5
|
Window to Screen 5=none,,移动窗口到屏幕 5
|
||||||
Window to Screen 6=none,,Move Window to Screen 6
|
Window to Screen 6=none,,移动窗口到屏幕 6
|
||||||
Window to Screen 7=none,,Move Window to Screen 7
|
Window to Screen 7=none,,移动窗口到屏幕 7
|
||||||
_k_friendly_name=KWin
|
_k_friendly_name=KWin
|
||||||
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture
|
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,禁用活动输入捕获
|
||||||
view_actual_size=Meta+0,Meta+0,Zoom to Actual Size
|
view_actual_size=Meta+0,Meta+0,缩放为实际大小(A)
|
||||||
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Zoom In
|
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,放大(I)
|
||||||
view_zoom_out=Meta+-,Meta+-,Zoom Out
|
view_zoom_out=Meta+-,Meta+-,缩小(O)
|
||||||
|
|
||||||
[mediacontrol]
|
[mediacontrol]
|
||||||
_k_friendly_name=Media Controller
|
_k_friendly_name=媒体控制器
|
||||||
mediavolumedown=none,,Media volume down
|
mediavolumedown=none,,媒体音量降低
|
||||||
mediavolumeup=none,,Media volume up
|
mediavolumeup=none,,媒体音量提高
|
||||||
nextmedia=Media Next,Media Next,Media playback next
|
nextmedia=Media Next,Media Next,播放下一首媒体
|
||||||
pausemedia=Media Pause,Media Pause,Pause media playback
|
pausemedia=Media Pause,Media Pause,暂停媒体播放
|
||||||
playmedia=none,,Play media playback
|
playmedia=none,,播放媒体
|
||||||
playpausemedia=Media Play,Media Play,Play/Pause media playback
|
playpausemedia=Media Play,Media Play,播放/暂停媒体播放
|
||||||
previousmedia=Media Previous,Media Previous,Media playback previous
|
previousmedia=Media Previous,Media Previous,播放上一首媒体
|
||||||
stopmedia=Media Stop,Media Stop,Stop media playback
|
stopmedia=Media Stop,Media Stop,停止媒体播放
|
||||||
|
|
||||||
[org_kde_powerdevil]
|
[org_kde_powerdevil]
|
||||||
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
|
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,降低键盘亮度
|
||||||
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
|
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,降低屏幕亮度
|
||||||
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
|
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,降低屏幕亮度 1%
|
||||||
Hibernate=Hibernate,Hibernate,Hibernate
|
Hibernate=Hibernate,Hibernate,休眠
|
||||||
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
|
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,提高键盘亮度
|
||||||
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
|
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,提高屏幕亮度
|
||||||
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
|
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,提高屏幕亮度 1%
|
||||||
PowerDown=Power Down,Power Down,Power Down
|
PowerDown=Power Down,Power Down,断电
|
||||||
PowerOff=Power Off,Power Off,Power Off
|
PowerOff=Power Off,Power Off,关机
|
||||||
Sleep=Sleep,Sleep,Suspend
|
Sleep=Sleep,Sleep,挂起
|
||||||
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
|
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,开关键盘背光
|
||||||
Turn Off Screen=none,none,Turn Off Screen
|
Turn Off Screen=none,none,关闭屏幕
|
||||||
_k_friendly_name=Power Management
|
_k_friendly_name=电源管理
|
||||||
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
|
powerProfile=Battery\tMeta+B,Battery\tMeta+B,切换电源管理方案
|
||||||
|
|
||||||
[plasmashell]
|
[plasmashell]
|
||||||
_k_friendly_name=plasmashell
|
_k_friendly_name=plasmashell
|
||||||
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,Activate Application Launcher
|
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,激活应用程序启动器
|
||||||
activate task manager entry 1=none,Meta+1,Activate Task Manager Entry 1
|
activate task manager entry 1=none,Meta+1,激活任务管理器条目 1
|
||||||
activate task manager entry 10=none,,Activate Task Manager Entry 10
|
activate task manager entry 10=none,,激活任务管理器条目 10
|
||||||
activate task manager entry 2=none,Meta+2,Activate Task Manager Entry 2
|
activate task manager entry 2=none,Meta+2,激活任务管理器条目 2
|
||||||
activate task manager entry 3=none,Meta+3,Activate Task Manager Entry 3
|
activate task manager entry 3=none,Meta+3,激活任务管理器条目 3
|
||||||
activate task manager entry 4=none,Meta+4,Activate Task Manager Entry 4
|
activate task manager entry 4=none,Meta+4,激活任务管理器条目 4
|
||||||
activate task manager entry 5=none,Meta+5,Activate Task Manager Entry 5
|
activate task manager entry 5=none,Meta+5,激活任务管理器条目 5
|
||||||
activate task manager entry 6=none,Meta+6,Activate Task Manager Entry 6
|
activate task manager entry 6=none,Meta+6,激活任务管理器条目 6
|
||||||
activate task manager entry 7=none,Meta+7,Activate Task Manager Entry 7
|
activate task manager entry 7=none,Meta+7,激活任务管理器条目 7
|
||||||
activate task manager entry 8=none,Meta+8,Activate Task Manager Entry 8
|
activate task manager entry 8=none,Meta+8,激活任务管理器条目 8
|
||||||
activate task manager entry 9=none,Meta+9,Activate Task Manager Entry 9
|
activate task manager entry 9=none,Meta+9,激活任务管理器条目 9
|
||||||
|
activate widget 115=none,none,激活 应用程序启动器 挂件
|
||||||
|
activate widget 120=none,none,激活 数字时钟 挂件
|
||||||
activate widget 3=none,none,Activate Application Launcher Widget
|
activate widget 3=none,none,Activate Application Launcher Widget
|
||||||
clear-history=none,,Clear Clipboard History
|
clear-history=none,,清除剪贴板历史(L)
|
||||||
clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,Automatic Action Popup Menu
|
clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,自动弹出操作菜单
|
||||||
cycle-panels=Meta+Alt+P,Meta+Alt+P,Move keyboard focus between panels
|
cycle-panels=Meta+Alt+P,Meta+Alt+P,在面板之间移动键盘焦点
|
||||||
cycleNextAction=none,,Next History Item
|
cycleNextAction=none,,下一条历史记录
|
||||||
cyclePrevAction=none,,Previous History Item
|
cyclePrevAction=none,,上一条历史记录
|
||||||
manage activities=none,Meta+Q,Show Activity Switcher
|
manage activities=none,Meta+Q,显示活动切换器
|
||||||
next activity=Meta+A,none,Walk through activities
|
next activity=Meta+A,none,遍历活动
|
||||||
previous activity=Meta+Shift+A,none,Walk through activities (Reverse)
|
previous activity=Meta+Shift+A,none,遍历活动 (反向)
|
||||||
repeat_action=none,,Manually Invoke Action on Current Clipboard
|
repeat_action=none,,在当前剪贴板上手动执行操作
|
||||||
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
|
show dashboard=Ctrl+F12,Ctrl+F12,显示桌面
|
||||||
show-barcode=none,,Show Barcode…
|
show-barcode=none,,显示条形码(S)…
|
||||||
show-on-mouse-pos=Meta+V,Meta+V,Show Clipboard Items at Mouse Position
|
show-on-mouse-pos=Meta+V,Meta+V,在鼠标位置显示剪贴板项目
|
||||||
stop current activity=Meta+S,Meta+S,Stop Current Activity
|
stop current activity=Meta+S,Meta+S,停止当前活动
|
||||||
switch to next activity=none,,Switch to Next Activity
|
switch to next activity=none,,切换到下一个活动
|
||||||
switch to previous activity=none,,Switch to Previous Activity
|
switch to previous activity=none,,切换到上一个活动
|
||||||
toggle do not disturb=none,,Toggle do not disturb
|
toggle do not disturb=none,,切换勿扰模式
|
||||||
|
|
||||||
[services][kitty.desktop]
|
[services][kitty.desktop]
|
||||||
_launch=Meta+R
|
_launch=Meta+R
|
||||||
|
|
@ -314,8 +331,7 @@ _launch=Meta+F
|
||||||
_launch=none
|
_launch=none
|
||||||
|
|
||||||
[services][org.kde.krunner.desktop]
|
[services][org.kde.krunner.desktop]
|
||||||
RunClipboard=Alt+Shift+F2\tAlt+Space
|
_launch=Alt+F2\tMeta+K\tSearch\tAlt+Space
|
||||||
_launch=Alt+F2\tSearch
|
|
||||||
|
|
||||||
[services][org.kde.kscreen.desktop]
|
[services][org.kde.kscreen.desktop]
|
||||||
ShowOSD=Display
|
ShowOSD=Display
|
||||||
|
|
@ -336,5 +352,5 @@ Toggle touch tool=Meta+Ctrl+T,Meta+Ctrl+T,Enable/Disable the Touch Tool
|
||||||
_k_friendly_name=Wacom Tablet
|
_k_friendly_name=Wacom Tablet
|
||||||
|
|
||||||
[yakuake]
|
[yakuake]
|
||||||
_k_friendly_name=Yakuake
|
_k_friendly_name=Yakuake 下拉式终端
|
||||||
toggle-window-state=Meta+`,F12,Open/Retract Yakuake
|
toggle-window-state=Meta+`,F12,展开/折叠 Yakuake 窗口
|
||||||
|
|
|
||||||
19
platforms/linux/keyd/app.conf
Normal file
19
platforms/linux/keyd/app.conf
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[org-telegram-desktop]
|
||||||
|
|
||||||
|
alt.n = macro(C-tab)
|
||||||
|
alt.e = C-S-tab
|
||||||
|
|
||||||
|
[wechat]
|
||||||
|
|
||||||
|
alt.n = A-down
|
||||||
|
alt.e = A-up
|
||||||
|
|
||||||
|
[qq]
|
||||||
|
alt.n = C-down
|
||||||
|
alt.e = C-up
|
||||||
|
alt.h = C-left
|
||||||
|
alt.i = enter
|
||||||
|
|
||||||
|
[zotero]
|
||||||
|
alt.n = pagedown
|
||||||
|
alt.e = pageup
|
||||||
26
platforms/linux/neovide.toml
Normal file
26
platforms/linux/neovide.toml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
# $XDG_CONFIG_HOME/neovide/config.toml
|
||||||
|
# ln -sf $DOTFILES/mac/neovide.toml $XDG_CONFIG_HOME/neovide/config.toml
|
||||||
|
# New-Item -ItemType SymbolicLink -Path $Env:XDG_CONFIG_HOME/neovide/config.toml -Value $DOTFILES\mac\neovide.toml (Mac)
|
||||||
|
# https://neovide.dev/config-file.html?highlight=toml#config-file
|
||||||
|
# 设置为 fork 默认后台运行,不会占用终端
|
||||||
|
fork = true
|
||||||
|
# frame = "full"
|
||||||
|
idle = true
|
||||||
|
maximized = false
|
||||||
|
# neovim-bin = "/opt/homebrew/bin/nvim"
|
||||||
|
frame = "transparent"
|
||||||
|
no-multigrid = false
|
||||||
|
srgb = false
|
||||||
|
tabs = true
|
||||||
|
theme = "auto"
|
||||||
|
title-hidden = true
|
||||||
|
vsync = true
|
||||||
|
wsl = false
|
||||||
|
|
||||||
|
[font]
|
||||||
|
normal = [
|
||||||
|
"Maple Mono NF CN",
|
||||||
|
"Iosevka Nerd Font",
|
||||||
|
"霞鹜文楷等宽",
|
||||||
|
] # Will use the bundled Fira Code Nerd Font by default
|
||||||
|
size = 14.0
|
||||||
29
platforms/linux/rofi/catppuccin-mocha.rasi
Normal file
29
platforms/linux/rofi/catppuccin-mocha.rasi
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
* {
|
||||||
|
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;
|
||||||
|
text: #cdd6f4;
|
||||||
|
subtext1: #bac2de;
|
||||||
|
subtext0: #a6adc8;
|
||||||
|
overlay2: #9399b2;
|
||||||
|
overlay1: #7f849c;
|
||||||
|
overlay0: #6c7086;
|
||||||
|
surface2: #585b70;
|
||||||
|
surface1: #45475a;
|
||||||
|
surface0: #313244;
|
||||||
|
base: #1e1e2e;
|
||||||
|
mantle: #181825;
|
||||||
|
crust: #11111b;
|
||||||
|
accent: @lavender;
|
||||||
|
}
|
||||||
172
platforms/linux/rofi/config.rasi
Normal file
172
platforms/linux/rofi/config.rasi
Normal file
|
|
@ -0,0 +1,172 @@
|
||||||
|
@import "catppuccin-mocha"
|
||||||
|
|
||||||
|
* {
|
||||||
|
selected-active-foreground: @background;
|
||||||
|
lightfg: @text;
|
||||||
|
separatorcolor: @foreground;
|
||||||
|
urgent-foreground: @red;
|
||||||
|
alternate-urgent-background: @lightbg;
|
||||||
|
lightbg: @mantle;
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
selected-urgent-background: @red;
|
||||||
|
alternate-active-background: @lightbg;
|
||||||
|
spacing: 2;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
urgent-background: @background;
|
||||||
|
selected-normal-foreground: @lightbg;
|
||||||
|
active-foreground: @blue;
|
||||||
|
background: @base;
|
||||||
|
selected-active-background: @blue;
|
||||||
|
active-background: @background;
|
||||||
|
selected-normal-background: @pink;
|
||||||
|
alternate-normal-background: @lightbg;
|
||||||
|
foreground: @text;
|
||||||
|
selected-urgent-foreground: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
alternate-urgent-foreground: @red;
|
||||||
|
alternate-active-foreground: @blue;
|
||||||
|
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
padding: 1px ;
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 5px ;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
background-color: transparent;
|
||||||
|
cursor: inherit;
|
||||||
|
highlight: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
element-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
size: 1.0000em ;
|
||||||
|
cursor: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
location: center;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5;
|
||||||
|
background-color: @background;
|
||||||
|
border: 1;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
padding: 1px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
scrollbar: true;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 2px ;
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
width: 4px ;
|
||||||
|
padding: 0;
|
||||||
|
handle-width: 8px ;
|
||||||
|
border: 0;
|
||||||
|
handle-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
sidebar {
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
button selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
num-filtered-rows {
|
||||||
|
expand: false;
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
num-rows {
|
||||||
|
expand: false;
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
textbox-num-sep {
|
||||||
|
expand: false;
|
||||||
|
str: "/";
|
||||||
|
text-color: Gray;
|
||||||
|
}
|
||||||
|
inputbar {
|
||||||
|
padding: 1px ;
|
||||||
|
spacing: 0px ;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
|
||||||
|
}
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
cursor: text;
|
||||||
|
spacing: 0;
|
||||||
|
placeholder-color: Gray;
|
||||||
|
placeholder: "搜索...";
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @accent;
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||||
|
expand: false;
|
||||||
|
str: ">";
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
37
platforms/linux/rofi/rosepine-dawn.rasi
Normal file
37
platforms/linux/rofi/rosepine-dawn.rasi
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
* {
|
||||||
|
bg: #faf4ed;
|
||||||
|
cur: #fffaf3;
|
||||||
|
fgd: #575279;
|
||||||
|
cmt: #9893a5;
|
||||||
|
cya: #56949f;
|
||||||
|
grn: #286983;
|
||||||
|
ora: #d7827e;
|
||||||
|
pur: #907aa9;
|
||||||
|
red: #b4637a;
|
||||||
|
yel: #ea9d34;
|
||||||
|
|
||||||
|
alt-fgd: #faf4ed;
|
||||||
|
|
||||||
|
font: "Cartograph CF 12";
|
||||||
|
|
||||||
|
foreground: @fgd;
|
||||||
|
background: @bg;
|
||||||
|
|
||||||
|
active-background: @grn;
|
||||||
|
active-foreground: @alt-fgd;
|
||||||
|
|
||||||
|
urgent-background: @red;
|
||||||
|
urgent-foreground: @alt-fgd;
|
||||||
|
|
||||||
|
selected-background: @active-background;
|
||||||
|
selected-foreground: @active-foreground;
|
||||||
|
|
||||||
|
selected-urgent-background: @urgent-background;
|
||||||
|
selected-urgent-foreground: @urgent-foreground;
|
||||||
|
|
||||||
|
selected-active-background: @active-background;
|
||||||
|
selected-active-foreground: @active-foreground;
|
||||||
|
|
||||||
|
separatorcolor: @active-background;
|
||||||
|
bordercolor: @ora;
|
||||||
|
}
|
||||||
6
platforms/linux/swaylock
Normal file
6
platforms/linux/swaylock
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
image=~/Pictures/Wallpaper/lock.png
|
||||||
|
ignore-empty-password
|
||||||
|
show-failed-attempts
|
||||||
|
show-keyboard-layout
|
||||||
|
|
||||||
|
|
||||||
13
platforms/linux/systemd/user/emacs-daemon.service
Normal file
13
platforms/linux/systemd/user/emacs-daemon.service
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Emacs text editor
|
||||||
|
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/emacs --daemon
|
||||||
|
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
|
||||||
|
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
13
platforms/linux/systemd/user/keyd-app.service
Normal file
13
platforms/linux/systemd/user/keyd-app.service
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Keyd Application Specific Mapping
|
||||||
|
Documentation=man:keyd-application-mapper(1) https://github.com/rvaiya/keyd
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/keyd-application-mapper -d
|
||||||
|
ExecStop=pkill keyd-applicatio
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
|
||||||
9
platforms/linux/user-dirs.dirs
Normal file
9
platforms/linux/user-dirs.dirs
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# $DOTFILES/platforms/linux/user-dirs.dirs
|
||||||
|
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||||
|
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||||
|
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||||
|
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||||
|
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||||
|
XDG_MUSIC_DIR="$HOME/Music"
|
||||||
|
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||||
|
XDG_VIDEOS_DIR="$HOME/Videos"
|
||||||
1
platforms/linux/user-dirs.locale
Normal file
1
platforms/linux/user-dirs.locale
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
zh_CN
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
"include": "~/.config/waybar/modules",
|
|
||||||
"name": "main-bar",
|
|
||||||
"id": "main-bar",
|
|
||||||
"layer": "top",
|
|
||||||
"mode": "dock",
|
|
||||||
"exclusive": true,
|
|
||||||
"passthrough": false,
|
|
||||||
"position": "top",
|
|
||||||
"output": "DP-2",
|
|
||||||
"height": 32,
|
|
||||||
"width": "",
|
|
||||||
"spacing": 6,
|
|
||||||
"margin": 0,
|
|
||||||
"margin-top": 0,
|
|
||||||
"margin-bottom": 0,
|
|
||||||
"margin-left": 0,
|
|
||||||
"margin-right": 0,
|
|
||||||
"fixed-center": true,
|
|
||||||
"ipc": true,
|
|
||||||
"modules-left": [
|
|
||||||
"custom/menu",
|
|
||||||
"hyprland/workspaces"
|
|
||||||
],
|
|
||||||
// "modules-center": [
|
|
||||||
// "hyprland/window",
|
|
||||||
// "mpd"
|
|
||||||
// ],
|
|
||||||
"modules-right": [
|
|
||||||
"tray",
|
|
||||||
"pulseaudio",
|
|
||||||
"custom/weather",
|
|
||||||
"battery",
|
|
||||||
"clock",
|
|
||||||
"custom/power"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
35
platforms/linux/waybar/config.jsonc
Normal file
35
platforms/linux/waybar/config.jsonc
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
// -*- mode: jsonc -*-
|
||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||||
|
"include": [
|
||||||
|
"~/.config/waybar/modules/hyprland-workspace.jsonc",
|
||||||
|
"~/.config/waybar/modules/misc.jsonc"
|
||||||
|
],
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
// "width": 1280, // Waybar width
|
||||||
|
"spacing": 4, // Gaps between modules (4px)
|
||||||
|
// Choose the order of the modules
|
||||||
|
"modules-left": [
|
||||||
|
"hyprland/workspaces",
|
||||||
|
"sway/mode",
|
||||||
|
"sway/scratchpad"
|
||||||
|
],
|
||||||
|
// "modules-center": [
|
||||||
|
// "hyprland/window"
|
||||||
|
// ],
|
||||||
|
"modules-right": [
|
||||||
|
"tray",
|
||||||
|
// "idle_inhibitor",
|
||||||
|
"pulseaudio",
|
||||||
|
"network",
|
||||||
|
// "power-profiles-daemon",
|
||||||
|
"cpu",
|
||||||
|
"memory",
|
||||||
|
"temperature",
|
||||||
|
"backlight",
|
||||||
|
// "hyprland/language",
|
||||||
|
"battery",
|
||||||
|
"clock"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
@ -1,149 +0,0 @@
|
||||||
// Waybar modules configuration
|
|
||||||
{
|
|
||||||
// waybar-backlight
|
|
||||||
"backlight": {
|
|
||||||
"interval": 2,
|
|
||||||
"align": 0,
|
|
||||||
"rotate": 0,
|
|
||||||
//"device": "amdgpu_bl0",
|
|
||||||
"format": "{icon} {percent}%",
|
|
||||||
"format-icons": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
],
|
|
||||||
// Commands to execute on events
|
|
||||||
"on-click": "",
|
|
||||||
"on-click-middle": "",
|
|
||||||
"on-click-right": "",
|
|
||||||
"on-update": "",
|
|
||||||
"on-scroll-up": "light -A 5%",
|
|
||||||
"on-scroll-down": "light -U 5%",
|
|
||||||
"smooth-scrolling-threshold": 1
|
|
||||||
},
|
|
||||||
"hyprland/workspaces": {
|
|
||||||
"format": "{icon} {windows}",
|
|
||||||
"format-window-separator": " ",
|
|
||||||
"window-rewrite-default": "",
|
|
||||||
"window-rewrite": {
|
|
||||||
"title<.*youtube.*>": "",
|
|
||||||
"class<firefox>": "",
|
|
||||||
"class<.*wezterm>": "",
|
|
||||||
"class<kitty>": "",
|
|
||||||
"class<wofi>": "",
|
|
||||||
"class<firefox> title<.*github.*>": "",
|
|
||||||
"class<Vivaldi.*>": "",
|
|
||||||
"obsidian": "",
|
|
||||||
"foot": "",
|
|
||||||
"Cider": "",
|
|
||||||
"class<org.kde.dolphin>": "",
|
|
||||||
"code": "",
|
|
||||||
"class<.*telegram.*>": "",
|
|
||||||
"discord": "",
|
|
||||||
"neovide": "",
|
|
||||||
"class<org.kde.okular>": "",
|
|
||||||
"class<.*wechat.*>": "",
|
|
||||||
"QQ": "",
|
|
||||||
"class<Tor Browser>": "",
|
|
||||||
"Zotero": "",
|
|
||||||
"class<ticktick>": "",
|
|
||||||
"class<net.ankiweb.Anki>": "",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// waybar-battery
|
|
||||||
"battery": {
|
|
||||||
"interval": 60,
|
|
||||||
"align": 0,
|
|
||||||
"rotate": 0,
|
|
||||||
//"bat": "BAT1",
|
|
||||||
//"adapter": "ACAD",
|
|
||||||
"full-at": 100,
|
|
||||||
"design-capacity": false,
|
|
||||||
"states": {
|
|
||||||
"good": 95,
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 15
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-plugged": " {capacity}%",
|
|
||||||
"format-full": "{icon} Full",
|
|
||||||
//"format-good": "",
|
|
||||||
"format-alt": "{icon} {time}",
|
|
||||||
"format-icons": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
],
|
|
||||||
"format-time": "{H}h {M}min",
|
|
||||||
"tooltip": true
|
|
||||||
},
|
|
||||||
// waybar-clock
|
|
||||||
"clock": {
|
|
||||||
"interval": 1,
|
|
||||||
"align": 0,
|
|
||||||
"rotate": 0,
|
|
||||||
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
|
|
||||||
"format": " {:%H:%M:%S}",
|
|
||||||
"format-alt": " {:%a %b %d, %G}"
|
|
||||||
},
|
|
||||||
// waybar-cpu
|
|
||||||
"cpu": {
|
|
||||||
"interval": 5,
|
|
||||||
"format": " {usage}%"
|
|
||||||
},
|
|
||||||
// waybar-custom
|
|
||||||
"custom/menu": {
|
|
||||||
"format": " ",
|
|
||||||
"tooltip": false,
|
|
||||||
"on-click": "wofi"
|
|
||||||
},
|
|
||||||
"custom/power": {
|
|
||||||
"format": "⏻",
|
|
||||||
"tooltip": false,
|
|
||||||
"on-click": "wlogout"
|
|
||||||
},
|
|
||||||
// weather-custom
|
|
||||||
"custom/weather": {
|
|
||||||
"format": "{}",
|
|
||||||
"format-alt": "{alt}: {}",
|
|
||||||
"format-alt-click": "click-right",
|
|
||||||
"interval": 1800,
|
|
||||||
"return-type": "json",
|
|
||||||
"exec": "~/.config/hypr/scripts/weather.sh",
|
|
||||||
"exec-if": "ping wttr.in -c1"
|
|
||||||
},
|
|
||||||
// waybar-tray
|
|
||||||
"tray": {
|
|
||||||
"icon-size": 16,
|
|
||||||
"spacing": 10
|
|
||||||
},
|
|
||||||
"pulseaudio": {
|
|
||||||
"format": "{volume}% {icon}",
|
|
||||||
"format-bluetooth": "{volume}% {icon}",
|
|
||||||
"format-muted": "",
|
|
||||||
"format-icons": {
|
|
||||||
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
|
|
||||||
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
|
|
||||||
"headphone": "",
|
|
||||||
"hands-free": "",
|
|
||||||
"headset": "",
|
|
||||||
"phone": "",
|
|
||||||
"phone-muted": "",
|
|
||||||
"portable": "",
|
|
||||||
"car": "",
|
|
||||||
"default": [
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scroll-step": 1,
|
|
||||||
"on-click": "pavucontrol",
|
|
||||||
"ignored-sinks": [
|
|
||||||
"Easy Effects Sink"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
123
platforms/linux/waybar/modules/hyprland-workspace.jsonc
Normal file
123
platforms/linux/waybar/modules/hyprland-workspace.jsonc
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
|
||||||
|
{
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"warp-on-scroll": false,
|
||||||
|
"sort-by-number": true,
|
||||||
|
"show-special": false,
|
||||||
|
"on-click": "activate",
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"*": 5
|
||||||
|
},
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"1": "一",
|
||||||
|
"2": "二",
|
||||||
|
"3": "三",
|
||||||
|
"4": "四",
|
||||||
|
"5": "五",
|
||||||
|
"6": "六",
|
||||||
|
"7": "七",
|
||||||
|
"8": "八",
|
||||||
|
"9": "九",
|
||||||
|
"10": "十",
|
||||||
|
"active": "",
|
||||||
|
"default": "",
|
||||||
|
},
|
||||||
|
"format": "{icon} {windows}",
|
||||||
|
"format-window-separator": " ",
|
||||||
|
"window-rewrite-default": " ",
|
||||||
|
"window-rewrite": {
|
||||||
|
"title<.*amazon.*>": " ",
|
||||||
|
"title<.*reddit.*>": " ",
|
||||||
|
|
||||||
|
"class<firefox|org.mozilla.firefox|librewolf|floorp|mercury-browser|[Cc]achy-browser>": " ",
|
||||||
|
"class<zen>": " ",
|
||||||
|
"class<Vivaldi-stable>": " ",
|
||||||
|
"class<waterfox|waterfox-bin>": " ",
|
||||||
|
"class<microsoft-edge>": " ",
|
||||||
|
"class<Chromium|Thorium|[Cc]hrome>": " ",
|
||||||
|
"class<brave-browser>": "🦁 ",
|
||||||
|
"class<tor browser>": " ",
|
||||||
|
"class<firefox-developer-edition>": "🦊 ",
|
||||||
|
|
||||||
|
"class<kitty|konsole>": " ",
|
||||||
|
"class<kitty-dropterm>": " ",
|
||||||
|
"class<com.mitchellh.ghostty>": " ",
|
||||||
|
"class<org.wezfurlong.wezterm>": " ",
|
||||||
|
|
||||||
|
"class<[Tt]hunderbird|[Tt]hunderbird-esr>": " ",
|
||||||
|
"class<eu.betterbird.Betterbird>": " ",
|
||||||
|
"title<.*gmail.*>": " ",
|
||||||
|
|
||||||
|
"class<[Tt]elegram-desktop|org.telegram.desktop|io.github.tdesktop_x64.TDesktop>": " ",
|
||||||
|
"class<discord|[Ww]ebcord|Vesktop>": " ",
|
||||||
|
"title<.*whatsapp.*>": " ",
|
||||||
|
"title<.*zapzap.*>": " ",
|
||||||
|
"title<.*messenger.*>": " ",
|
||||||
|
"title<.*facebook.*>": " ",
|
||||||
|
"title<.*reddit.*>": " ",
|
||||||
|
|
||||||
|
|
||||||
|
"title<.*ChatGPT.*>": " ",
|
||||||
|
"title<.*deepseek.*>": " ",
|
||||||
|
"title<.*qwen.*>": " ",
|
||||||
|
"class<subl>": " ",
|
||||||
|
"class<slack>": " ",
|
||||||
|
|
||||||
|
"class<mpv>": " ",
|
||||||
|
"class<celluloid|Zoom>": " ",
|
||||||
|
"class<Cider>": " ",
|
||||||
|
"title<.*Picture-in-Picture.*>": " ",
|
||||||
|
"title<.*youtube.*>": " ",
|
||||||
|
"class<vlc>": " ",
|
||||||
|
"title<.*cmus.*>": " ",
|
||||||
|
"class<[Ss]potify>": " ",
|
||||||
|
|
||||||
|
"class<virt-manager>": " ",
|
||||||
|
"class<.virt-manager-wrapped>": " ",
|
||||||
|
"class<virtualbox manager>": "💽 ",
|
||||||
|
"title<virtualbox>": "💽 ",
|
||||||
|
"class<remmina>": "🖥️ ",
|
||||||
|
|
||||||
|
"class<Code|code-url-handler|code-oss|codium|codium-url-handler|VSCodium>": " ",
|
||||||
|
"class<dev.zed.Zed>": "",
|
||||||
|
"class<codeblocks>": " ",
|
||||||
|
"title<.*github.*>": " ",
|
||||||
|
"class<mousepad>": " ",
|
||||||
|
"class<libreoffice-writer>": " ",
|
||||||
|
"class<libreoffice-startcenter>": " ",
|
||||||
|
"class<libreoffice-calc>": " ",
|
||||||
|
// "title<.*nvim ~.*>": " ",
|
||||||
|
"title<.*vim.*>": " ",
|
||||||
|
"title<.*nvim.*>": " ",
|
||||||
|
"class<neovide>": " ",
|
||||||
|
"class<emacs>": " ",
|
||||||
|
"class<CherryStudio>": "🍒",
|
||||||
|
"title<.*figma.*>": " ",
|
||||||
|
"title<.*jira.*>": " ",
|
||||||
|
"class<jetbrains-idea>": " ",
|
||||||
|
|
||||||
|
"class<obsidian>": " ",
|
||||||
|
"class<Zotero>": " ",
|
||||||
|
|
||||||
|
"class<com.obsproject.Studio>": " ",
|
||||||
|
|
||||||
|
"class<polkit-gnome-authentication-agent-1>": " ",
|
||||||
|
"class<nwg-look>": " ",
|
||||||
|
"class<[Pp]avucontrol|org.pulseaudio.pavucontrol>": " ",
|
||||||
|
"class<steam>": " ",
|
||||||
|
"class<thunar|nemo|dolphin>": " ",
|
||||||
|
"class<Gparted>":"",
|
||||||
|
"class<gimp>": " ",
|
||||||
|
"class<emulator>": "📱 ",
|
||||||
|
"class<android-studio>": " ",
|
||||||
|
"class<org.pipewire.Helvum>": "",
|
||||||
|
"class<localsend>":"",
|
||||||
|
"class<PrusaSlicer|UltiMaker-Cura|OrcaSlicer>": "",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
187
platforms/linux/waybar/modules/misc.jsonc
Normal file
187
platforms/linux/waybar/modules/misc.jsonc
Normal file
|
|
@ -0,0 +1,187 @@
|
||||||
|
{
|
||||||
|
"keyboard-state": {
|
||||||
|
"numlock": true,
|
||||||
|
"capslock": true,
|
||||||
|
"format": "{name} {icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"locked": "",
|
||||||
|
"unlocked": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sway/mode": {
|
||||||
|
"format": "<span style=\"italic\">{}</span>"
|
||||||
|
},
|
||||||
|
"sway/scratchpad": {
|
||||||
|
"format": "{icon} {count}",
|
||||||
|
"show-empty": false,
|
||||||
|
"format-icons": [
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{app}: {title}"
|
||||||
|
},
|
||||||
|
"mpd": {
|
||||||
|
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
||||||
|
"format-disconnected": "Disconnected ",
|
||||||
|
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||||
|
"unknown-tag": "N/A",
|
||||||
|
"interval": 5,
|
||||||
|
"consume-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"random-icons": {
|
||||||
|
"off": "<span color=\"#f53c3c\"></span> ",
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"repeat-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"single-icons": {
|
||||||
|
"on": "1 "
|
||||||
|
},
|
||||||
|
"state-icons": {
|
||||||
|
"paused": "",
|
||||||
|
"playing": ""
|
||||||
|
},
|
||||||
|
"tooltip-format": "MPD (connected)",
|
||||||
|
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||||
|
},
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
// "icon-size": 21,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
// "timezone": "America/New_York",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"format-alt": "{:%Y-%m-%d}"
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": "{usage}% ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": "{}% "
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
// "thermal-zone": 2,
|
||||||
|
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||||
|
"critical-threshold": 80,
|
||||||
|
// "format-critical": "{temperatureC}°C {icon}",
|
||||||
|
"format": "{temperatureC}°C {icon}",
|
||||||
|
"format-icons": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
// "device": "acpi_video1",
|
||||||
|
"format": "{percent}% {icon}",
|
||||||
|
"format-icons": [
|
||||||
|
"🌑",
|
||||||
|
"🌘",
|
||||||
|
"🌗",
|
||||||
|
"🌖",
|
||||||
|
"🌕"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-full": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
// "format-full": "",
|
||||||
|
"format-icons": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"power-profiles-daemon": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||||
|
"tooltip": true,
|
||||||
|
"format-icons": {
|
||||||
|
"default": "",
|
||||||
|
"performance": "",
|
||||||
|
"balanced": "",
|
||||||
|
"power-saver": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"custom/media": {
|
||||||
|
"format": "{icon} {}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"format-icons": {
|
||||||
|
"spotify": "",
|
||||||
|
"default": "🎜"
|
||||||
|
},
|
||||||
|
"escape": true,
|
||||||
|
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||||
|
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format": "⏻ ",
|
||||||
|
"tooltip": false,
|
||||||
|
"menu": "on-click",
|
||||||
|
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||||
|
"menu-actions": {
|
||||||
|
"shutdown": "shutdown",
|
||||||
|
"reboot": "reboot",
|
||||||
|
"suspend": "systemctl suspend",
|
||||||
|
"hibernate": "systemctl hibernate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,184 +1,354 @@
|
||||||
/** ********** Fonts ********** **/
|
@define-color rosewater #f5e0dc;
|
||||||
|
@define-color flamingo #f2cdcd;
|
||||||
|
@define-color pink #f5c2e7;
|
||||||
|
@define-color mauve #cba6f7;
|
||||||
|
@define-color red #f38ba8;
|
||||||
|
@define-color maroon #eba0ac;
|
||||||
|
@define-color peach #fab387;
|
||||||
|
@define-color yellow #f9e2af;
|
||||||
|
@define-color green #a6e3a1;
|
||||||
|
@define-color teal #94e2d5;
|
||||||
|
@define-color sky #89dceb;
|
||||||
|
@define-color sapphire #74c7ec;
|
||||||
|
@define-color blue #89b4fa;
|
||||||
|
@define-color lavender #b4befe;
|
||||||
|
@define-color text #cdd6f4;
|
||||||
|
@define-color subtext1 #bac2de;
|
||||||
|
@define-color subtext0 #a6adc8;
|
||||||
|
@define-color overlay2 #9399b2;
|
||||||
|
@define-color overlay1 #7f849c;
|
||||||
|
@define-color overlay0 #6c7086;
|
||||||
|
@define-color surface2 #585b70;
|
||||||
|
@define-color surface1 #45475a;
|
||||||
|
@define-color surface0 #313244;
|
||||||
|
@define-color base #1e1e2e;
|
||||||
|
@define-color mantle #181825;
|
||||||
|
@define-color crust #11111b;*
|
||||||
|
|
||||||
* {
|
* {
|
||||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
|
font-family: 'Maple Mono NF SC', 'Noto Sans Mono', 'Font Awesome 6 Free', 'Font Awesome 6 Brands', monospace;
|
||||||
font-size: 12px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Waybar Window ********** **/
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background-color: #1e1e2e;
|
/* background-color: rgba(43, 48, 59, 0.5); */
|
||||||
color: #1e1e2e;
|
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
|
||||||
border-bottom: 2px solid #313244;
|
background-color: @base;
|
||||||
|
color: @text;
|
||||||
transition-property: background-color;
|
transition-property: background-color;
|
||||||
transition-duration: .5s;
|
transition-duration: .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar.hidden {
|
window#waybar.hidden {
|
||||||
opacity: 0.5;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Backlight ********** **/
|
/*
|
||||||
#backlight {
|
window#waybar.empty {
|
||||||
background-color: #cba6f7;
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
window#waybar.solo {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
window#waybar.termite {
|
||||||
|
background-color: #3F3F3F;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.chromium {
|
||||||
|
background-color: #000000;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* you can set a style on hover for any module like this */
|
||||||
|
#pulseaudio:hover {
|
||||||
|
background-color: @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: #64727D;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727D;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#scratchpad,
|
||||||
|
#power-profiles-daemon,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window,
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
|
.modules-left > widget:first-child > #workspaces {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
background-color: #64727D;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Battery ********** **/
|
|
||||||
#battery {
|
#battery {
|
||||||
background-color: #f9e2af;
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.charging {
|
#battery.charging, #battery.plugged {
|
||||||
}
|
color: #ffffff;
|
||||||
|
background-color: #26A65B;
|
||||||
#battery.plugged {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
to {
|
to {
|
||||||
|
background-color: #ffffff;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
#battery.critical:not(.charging) {
|
#battery.critical:not(.charging) {
|
||||||
background-color: #f38ba8;
|
background-color: #f53c3c;
|
||||||
color: #f38ba8;
|
color: #ffffff;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 0.5s;
|
animation-duration: 0.5s;
|
||||||
animation-timing-function: linear;
|
animation-timing-function: steps(12);
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Clock ********** **/
|
#power-profiles-daemon {
|
||||||
#clock {
|
padding-right: 15px;
|
||||||
background-color: #a6e3a1;
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.performance {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.balanced {
|
||||||
|
background-color: #2980b9;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.power-saver {
|
||||||
|
background-color: #2ecc71;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** CPU ********** **/
|
|
||||||
#cpu {
|
#cpu {
|
||||||
background-color: #89dceb;
|
background-color: @green;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Memory ********** **/
|
|
||||||
#memory {
|
#memory {
|
||||||
background-color: #eba0ac;
|
background-color: @mauve;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Disk ********** **/
|
|
||||||
#disk {
|
#disk {
|
||||||
background-color: #b4befe;
|
background-color: #964B00;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Tray ********** **/
|
#backlight {
|
||||||
#tray {
|
background-color: #90b1b1;
|
||||||
background-color: #cdd6f4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
background-color: @blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
background-color: @yellow;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber {
|
||||||
|
background-color: #fff0f5;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber.muted {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
background-color: @peach;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: @blue;
|
||||||
|
}
|
||||||
|
|
||||||
#tray > .passive {
|
#tray > .passive {
|
||||||
-gtk-icon-effect: dim;
|
-gtk-icon-effect: dim;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray > .needs-attention {
|
#tray > .needs-attention {
|
||||||
-gtk-icon-effect: highlight;
|
-gtk-icon-effect: highlight;
|
||||||
}
|
background-color: #eb4d4b;
|
||||||
#tray > .active {
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: #ecf0f1;
|
||||||
|
color: #2d3436;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** MPD ********** **/
|
|
||||||
#mpd {
|
#mpd {
|
||||||
background-color: #94e2d5;
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mpd.disconnected {
|
#mpd.disconnected {
|
||||||
background-color: #f38ba8;
|
background-color: #f53c3c;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mpd.stopped {
|
#mpd.stopped {
|
||||||
background-color: #f5c2e7;
|
background-color: #90b1b1;
|
||||||
}
|
|
||||||
|
|
||||||
#mpd.playing {
|
|
||||||
background-color: #74c7ec;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#mpd.paused {
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Pulseaudio ********** **/
|
#language {
|
||||||
#pulseaudio {
|
background: #00b093;
|
||||||
background-color: #fab387;
|
color: #740864;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio.bluetooth {
|
#keyboard-state {
|
||||||
background-color: #f5c2e7;
|
background: #97e1ad;
|
||||||
}
|
color: #000000;
|
||||||
#pulseaudio.muted {
|
padding: 0 0px;
|
||||||
background-color: #313244;
|
margin: 0 5px;
|
||||||
color: #cdd6f4;
|
min-width: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Network ********** **/
|
#keyboard-state > label {
|
||||||
#network {
|
padding: 0 5px;
|
||||||
background-color: #89b4fa;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#network.disconnected,#network.disabled {
|
#keyboard-state > label.locked {
|
||||||
background-color: #313244;
|
background: rgba(0, 0, 0, 0.2);
|
||||||
color: #cdd6f4;
|
|
||||||
}
|
|
||||||
#network.linked {
|
|
||||||
}
|
|
||||||
#network.ethernet {
|
|
||||||
}
|
|
||||||
#network.wifi {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ********** Custom ********** **/
|
#scratchpad {
|
||||||
#custom-menu, #custom-power, #custom-weather, #custom-updater {
|
background: rgba(0, 0, 0, 0.2);
|
||||||
border-radius: 4px;
|
|
||||||
margin: 6px 0px;
|
|
||||||
padding: 2px 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-menu {
|
#scratchpad.empty {
|
||||||
background-color: #f5c2e7;
|
background-color: transparent;
|
||||||
margin-left: 6px;
|
|
||||||
padding: 2px 6px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
#privacy {
|
||||||
background-color: #f38ba8;
|
padding: 0;
|
||||||
margin-right: 6px;
|
|
||||||
padding: 2px 8px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-updater {
|
#privacy-item {
|
||||||
background-color: #e6ed7b;
|
padding: 0 5px;
|
||||||
margin-right: 6px;
|
color: white;
|
||||||
padding: 2px 8px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-weather {
|
#privacy-item.screenshare {
|
||||||
background-color: #cba6f7;
|
background-color: #cf5700;
|
||||||
margin-right: 6px;
|
|
||||||
padding: 2px 8px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Common style **/
|
#privacy-item.audio-in {
|
||||||
#backlight,
|
background-color: #1ca000;
|
||||||
#battery,
|
}
|
||||||
#clock,
|
|
||||||
#cpu,
|
#privacy-item.audio-out {
|
||||||
#disk,
|
background-color: #0069d4;
|
||||||
#mode,
|
|
||||||
#memory,
|
|
||||||
#mpd,
|
|
||||||
#tray,
|
|
||||||
#pulseaudio,
|
|
||||||
#network {
|
|
||||||
border-radius: 4px;
|
|
||||||
margin: 6px 0px;
|
|
||||||
padding: 2px 8px;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
21
readme.org
21
readme.org
|
|
@ -8,12 +8,31 @@ Works for Windows, Linux and MacOS.
|
||||||
|
|
||||||
** Setup
|
** Setup
|
||||||
|
|
||||||
*** GNU/Linux and macOS
|
|
||||||
|
*** From Scratch (Linux/MacOS)
|
||||||
|
|
||||||
#+begin_src shell
|
#+begin_src shell
|
||||||
curl https://raw.githubusercontent.com/js0ny/dotfiles/refs/heads/master/bootstrap/setup.sh -o setup.sh && chmod u+x setup.sh && ./setup.sh
|
curl https://raw.githubusercontent.com/js0ny/dotfiles/refs/heads/master/bootstrap/setup.sh -o setup.sh && chmod u+x setup.sh && ./setup.sh
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Via =just= script
|
||||||
|
|
||||||
|
Make sure you have =just= installed
|
||||||
|
|
||||||
|
#+begin_src shell
|
||||||
|
which just
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Then run
|
||||||
|
|
||||||
|
#+begin_src shell
|
||||||
|
just
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
This will list all available tasks.
|
||||||
|
|
||||||
|
All the just scripts are in =Justfile= and under =.just.d/= directory.
|
||||||
|
|
||||||
** Structure
|
** Structure
|
||||||
|
|
||||||
#+begin_src shell
|
#+begin_src shell
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
# ln -sf $DOTFILES/tools/bash/bashrc ~/.bashrc
|
# ln -sf $DOTFILES/tools/bash/bashrc ~/.bashrc
|
||||||
|
|
||||||
export DOTFILES=$HOME/.dotfiles
|
export DOTFILES=$HOME/.dotfiles
|
||||||
|
# Force to choose English font name
|
||||||
|
export LC_CTYPE=en_GB.UTF-8
|
||||||
|
|
||||||
if [ -n "$WSL_DISTRO_NAME" ]; then
|
if [ -n "$WSL_DISTRO_NAME" ]; then
|
||||||
alias clip="clip.exe"
|
alias clip="clip.exe"
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,11 @@ minimal_path=(
|
||||||
"/usr/local/sbin"
|
"/usr/local/sbin"
|
||||||
"$HOME/.local/bin"
|
"$HOME/.local/bin"
|
||||||
"$HOME/.local/sbin"
|
"$HOME/.local/sbin"
|
||||||
|
"$HOME/.local/scripts"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
|
||||||
|
|
||||||
for p in "${minimal_path[@]}"; do
|
for p in "${minimal_path[@]}"; do
|
||||||
pathadd "$p"
|
pathadd "$p"
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@
|
||||||
|
|
||||||
# Set XDG Base Directory Path
|
# Set XDG Base Directory Path
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
export XDG_CACHE_HOME="~/.cache"
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
export XDG_DATA_HOME="~/.local/share"
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
export XDG_STATE_HOME="~/.local/state"
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
||||||
|
|
||||||
# Source user's XDG-compliant Bash configs
|
# Source user's XDG-compliant Bash configs
|
||||||
|
|
|
||||||
|
|
@ -341,6 +341,16 @@ mapkey("yY", "yank link without parameter", function () {
|
||||||
Clipboard.write(url.origin + url.pathname);
|
Clipboard.write(url.origin + url.pathname);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
unmap("yma")
|
||||||
|
unmap("ymc")
|
||||||
|
unmap("ymv")
|
||||||
|
|
||||||
|
map("ym", "yank link as markdown", function () {
|
||||||
|
const url = new URL(window.location.href);
|
||||||
|
const title = document.title;
|
||||||
|
Clipboard.write(`[${title}](${url.origin + url.pathname})`);
|
||||||
|
});
|
||||||
|
|
||||||
// #region bilibili.com
|
// #region bilibili.com
|
||||||
mapkey(
|
mapkey(
|
||||||
",n",
|
",n",
|
||||||
|
|
|
||||||
|
|
@ -22,20 +22,20 @@
|
||||||
;; accept. For example:
|
;; accept. For example:
|
||||||
;;
|
;;
|
||||||
;; https://emacs-china.org/t/doom-emacs/23513/13
|
;; https://emacs-china.org/t/doom-emacs/23513/13
|
||||||
(setq doom-font (font-spec :family "Iosevka Nerd Font Propo" :size 14)
|
(setq doom-font (font-spec :family "Sarasa Mono SC Nerd Font" :size 14)
|
||||||
doom-serif-font doom-font
|
doom-serif-font doom-font
|
||||||
doom-symbol-font (font-spec :family "LXGW WenKai Mono")
|
doom-symbol-font (font-spec :family "Sarasa Mono SC Nerd Font")
|
||||||
doom-variable-pitch-font (font-spec :family "LXGW WenKai Mono" :weight 'extra-bold))
|
doom-variable-pitch-font (font-spec :family "Sarasa Mono SC Nerd Font" :weight 'extra-bold))
|
||||||
|
|
||||||
;; 如果不把这玩意设置为 nil, 会默认去用 fontset-default 来展示, 配置无效
|
;; 如果不把这玩意设置为 nil, 会默认去用 fontset-default 来展示, 配置无效
|
||||||
(setq use-default-font-for-symbols nil)
|
(setq use-default-font-for-symbols nil)
|
||||||
|
|
||||||
;; Doom 的字体加载顺序问题, 如果不设定这个 hook, 配置会被覆盖失效
|
;; Doom 的字体加载顺序问题, 如果不设定这个 hook, 配置会被覆盖失效
|
||||||
(add-hook! 'after-setting-font-hook
|
;;(add-hook! 'after-setting-font-hook
|
||||||
(set-fontset-font t 'latin (font-spec :family "Iosevka Nerd Font Propo"))
|
;; (set-fontset-font t 'latin (font-spec :family "Iosevka Nerd Font Propo"))
|
||||||
(set-fontset-font t 'symbol (font-spec :family "Symbola"))
|
;; (set-fontset-font t 'symbol (font-spec :family "Symbola"))
|
||||||
(set-fontset-font t 'mathematical (font-spec :family "Symbola"))
|
;; (set-fontset-font t 'mathematical (font-spec :family "Symbola"))
|
||||||
(set-fontset-font t 'emoji (font-spec :family "Symbola")))
|
;; (set-fontset-font t 'emoji (font-spec :family "Symbola")))
|
||||||
|
|
||||||
;; (dolist (charset '(kana han cjk-misc bopomofo))
|
;; (dolist (charset '(kana han cjk-misc bopomofo))
|
||||||
;; (set-fontset-font t charset (font-spec :family "LXGW WenKai Mono" :size 16)))
|
;; (set-fontset-font t charset (font-spec :family "LXGW WenKai Mono" :size 16)))
|
||||||
|
|
@ -133,10 +133,12 @@
|
||||||
|
|
||||||
(if (eq system-type 'gnu/linux)
|
(if (eq system-type 'gnu/linux)
|
||||||
(use-package! rime
|
(use-package! rime
|
||||||
:config
|
:custom
|
||||||
(setq default-input-method "rime")
|
(rime-user-data-dir (expand-file-name "emacs-rime" (getenv "XDG_CONFIG_HOME")))
|
||||||
(add-hook! (org-mode markdown-mode) (activate-input-method default-input-method))
|
; (rime-share-data-dir "~/.local/share/fcitx5/rime")
|
||||||
(setq rime-user-data-dir (expand-file-name "emacs-rime" (getenv "XDG_CONFIG_HOME")))
|
(default-input-method "rime")
|
||||||
|
;; :config
|
||||||
|
;; (add-hook! (org-mode markdown-mode) (activate-input-method default-input-method))
|
||||||
))
|
))
|
||||||
|
|
||||||
(load! "calendar.el")
|
(load! "calendar.el")
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
(save-excursion (insert char ?\u200B)))
|
(save-excursion (insert char ?\u200B)))
|
||||||
|
|
||||||
;; Directory
|
;; Directory
|
||||||
(setq org-archive-location "~/OrgFiles/archive/%s_archive::")
|
(setq org-archive-location "~/OrgFiles/.archive/%s_archive::")
|
||||||
(setq org-default-notes-file "~/OrgFiles/tasks/inbox.org")
|
(setq org-default-notes-file "~/OrgFiles/tasks/inbox.org")
|
||||||
|
|
||||||
;; Initial Visibility
|
;; Initial Visibility
|
||||||
|
|
|
||||||
2
tools/emacs.d/.gitignore
vendored
2
tools/emacs.d/.gitignore
vendored
|
|
@ -26,3 +26,5 @@ bookmarks
|
||||||
.cache
|
.cache
|
||||||
eln-cache
|
eln-cache
|
||||||
org-persist
|
org-persist
|
||||||
|
|
||||||
|
local.el
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,10 @@
|
||||||
(global-evil-leader-mode)
|
(global-evil-leader-mode)
|
||||||
(evil-leader/set-leader "<SPC>")
|
(evil-leader/set-leader "<SPC>")
|
||||||
(evil-leader/set-key
|
(evil-leader/set-key
|
||||||
|
"ft" 'treemacs
|
||||||
|
"fc" '(dired user-emacs-directory)
|
||||||
"b" 'buffer-menu
|
"b" 'buffer-menu
|
||||||
"ft" 'treemacs))
|
))
|
||||||
|
|
||||||
;; Evil Commentary: Use gc<action> to toggle comments
|
;; Evil Commentary: Use gc<action> to toggle comments
|
||||||
(use-package evil-commentary
|
(use-package evil-commentary
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@
|
||||||
(org-directory "~/OrgFiles/")
|
(org-directory "~/OrgFiles/")
|
||||||
(org-agenda-files (list (concat org-directory "tasks/")))
|
(org-agenda-files (list (concat org-directory "tasks/")))
|
||||||
(org-persist-directory (expand-file-name "org-persist" user-emacs-data))
|
(org-persist-directory (expand-file-name "org-persist" user-emacs-data))
|
||||||
|
(org-archive-location "~/OrgFiles/.archive/%s_archive::")
|
||||||
|
(org-default-notes-file "~/OrgFiles/tasks/inbox.org")
|
||||||
|
(org-startup-folded "show2levels")
|
||||||
|
(org-log-into-drawer "LOGBOOK")
|
||||||
(org-pretty-entities t)
|
(org-pretty-entities t)
|
||||||
(org-src-fontify-natively t)
|
(org-src-fontify-natively t)
|
||||||
(org-src-tab-acts-natively t) ; Use TAB to indent inside source block
|
(org-src-tab-acts-natively t) ; Use TAB to indent inside source block
|
||||||
|
|
@ -94,13 +98,13 @@
|
||||||
;; For CJK users
|
;; For CJK users
|
||||||
;; Insert zero width space around the emphasis symbols, this might be useful for
|
;; Insert zero width space around the emphasis symbols, this might be useful for
|
||||||
;; languages that does not rely on space
|
;; languages that does not rely on space
|
||||||
(defun my/insert-emphasis-with-zws (char)
|
(defun js0ny/insert-emphasis-with-zws (char)
|
||||||
(interactive "c")
|
(interactive "c")
|
||||||
(insert ?\u200B char)
|
(insert ?\u200B char)
|
||||||
(save-excursion (insert char ?\u200B)))
|
(save-excursion (insert char ?\u200B)))
|
||||||
|
|
||||||
(global-set-key (kbd "C-c b") (lambda () (interactive) (my/insert-emphasis-with-zws ?*)))
|
(global-set-key (kbd "C-c b") (lambda () (interactive) (js0ny/insert-emphasis-with-zws ?*)))
|
||||||
(global-set-key (kbd "C-c i") (lambda () (interactive) (my/insert-emphasis-with-zws ?/)))
|
(global-set-key (kbd "C-c i") (lambda () (interactive) (js0ny/insert-emphasis-with-zws ?/)))
|
||||||
|
|
||||||
;; Pomodoro for org clock
|
;; Pomodoro for org clock
|
||||||
(use-package org-pomodoro)
|
(use-package org-pomodoro)
|
||||||
|
|
@ -209,7 +213,7 @@
|
||||||
|
|
||||||
;; Integrate Emacs Timer with System Notifications
|
;; Integrate Emacs Timer with System Notifications
|
||||||
;; 定义通知函数
|
;; 定义通知函数
|
||||||
(defun my/org-clock-notification (title message &optional icon)
|
(defun js0ny/org-clock-notification (title message &optional icon)
|
||||||
"发送一个系统通知"
|
"发送一个系统通知"
|
||||||
(alert message
|
(alert message
|
||||||
:title title
|
:title title
|
||||||
|
|
@ -217,7 +221,7 @@
|
||||||
:category 'org-clock))
|
:category 'org-clock))
|
||||||
|
|
||||||
;; 添加定时器检查函数
|
;; 添加定时器检查函数
|
||||||
(defun my/org-clock-check-timer ()
|
(defun js0ny/org-clock-check-timer ()
|
||||||
"检查当前正在运行的 clock 是否到期"
|
"检查当前正在运行的 clock 是否到期"
|
||||||
(when (org-clocking-p)
|
(when (org-clocking-p)
|
||||||
(let* ((clocked-time (org-clock-get-clocked-time))
|
(let* ((clocked-time (org-clock-get-clocked-time))
|
||||||
|
|
@ -226,45 +230,24 @@
|
||||||
"0")))
|
"0")))
|
||||||
(remaining (- effort clocked-time)))
|
(remaining (- effort clocked-time)))
|
||||||
(when (and (> effort 0) (<= remaining 0))
|
(when (and (> effort 0) (<= remaining 0))
|
||||||
(my/org-clock-notification
|
(js0ny/org-clock-notification
|
||||||
"Org Clock 提醒"
|
"Org Clock 提醒"
|
||||||
(format "任务 '%s' 的预计时间已到!"
|
(format "任务 '%s' 的预计时间已到!"
|
||||||
(org-clock-get-clock-string)))))))
|
(org-clock-get-clock-string)))))))
|
||||||
|
|
||||||
;; 设置定时器,每分钟检查一次
|
;; 设置定时器,每分钟检查一次
|
||||||
(run-with-timer 0 60 #'my/org-clock-check-timer)
|
(run-with-timer 0 60 #'js0ny/org-clock-check-timer)
|
||||||
|
|
||||||
;; 在 org-clock-in-hook 中添加检查
|
;; 在 org-clock-in-hook 中添加检查
|
||||||
(add-hook 'org-clock-in-hook
|
(add-hook 'org-clock-in-hook
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ((effort (org-entry-get (point) "Effort")))
|
(let ((effort (org-entry-get (point) "Effort")))
|
||||||
(when effort
|
(when effort
|
||||||
(my/org-clock-notification
|
(js0ny/org-clock-notification
|
||||||
"开始计时"
|
"开始计时"
|
||||||
(format "开始计时任务: %s\n预计用时: %s"
|
(format "开始计时任务: %s\n预计用时: %s"
|
||||||
(org-get-heading t t t t)
|
(org-get-heading t t t t)
|
||||||
effort))))))
|
effort))))))
|
||||||
|
|
||||||
(use-package org-roam
|
|
||||||
:ensure t
|
|
||||||
:custom
|
|
||||||
(org-roam-directory (file-truename (concat org-directory "roam")))
|
|
||||||
:bind (("C-c n l" . org-roam-buffer-toggle)
|
|
||||||
("C-c n f" . org-roam-node-find)
|
|
||||||
("C-c n g" . org-roam-graph)
|
|
||||||
("C-c n i" . org-roam-node-insert)
|
|
||||||
("C-c n c" . org-roam-capture)
|
|
||||||
;; Dailies
|
|
||||||
("C-c n j" . org-roam-dailies-capture-today))
|
|
||||||
:config
|
|
||||||
;; If you're using a vertical completion framework, you might want a more informative completion interface
|
|
||||||
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
|
|
||||||
(setq org-roam-db-location (expand-file-name "org-roam.db" user-emacs-data))
|
|
||||||
(org-roam-db-autosync-mode)
|
|
||||||
;; If using org-roam-protocol
|
|
||||||
(require 'org-roam-protocol))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-org)
|
(provide 'init-org)
|
||||||
|
|
||||||
|
|
|
||||||
1
tools/fish/.gitignore
vendored
1
tools/fish/.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
fish_variables
|
fish_variables
|
||||||
completions
|
completions
|
||||||
functions/br.fish
|
functions/br.fish
|
||||||
|
functions/dotenv.fish
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,14 @@ else
|
||||||
set -gx XDG_RUNTIME_DIR /run/user/(id -u)
|
set -gx XDG_RUNTIME_DIR /run/user/(id -u)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
set -gx GHCUP_USE_XDG_DIRS 1
|
||||||
|
|
||||||
set -gx PAGER "less -R"
|
set -gx PAGER "less -R"
|
||||||
set -gx EDITOR nvim
|
set -gx EDITOR nvim
|
||||||
set -gx VISUAL nvim
|
set -gx VISUAL nvim
|
||||||
|
|
||||||
# Minimal PATH for early commands
|
# Minimal PATH for early commands
|
||||||
for dir in /usr/local/bin /usr/bin /bin /usr/sbin /sbin "$HOME/.local/bin"
|
for dir in /usr/local/bin /usr/bin /bin /usr/sbin /sbin "$HOME/.local/bin" /opt/share/bin
|
||||||
if test -d "$dir" -a ! -L "$dir"
|
if test -d "$dir" -a ! -L "$dir"
|
||||||
fish_add_path "$dir"
|
fish_add_path "$dir"
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,16 @@ if command -v apt > /dev/null
|
||||||
abbr --add aptl "apt list --installed"
|
abbr --add aptl "apt list --installed"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if command -v dnf > /dev/null
|
||||||
|
abbr --add dnf "sudo dnf"
|
||||||
|
abbr --add dnfi "sudo dnf install"
|
||||||
|
abbr --add dnfr "sudo dnf remove"
|
||||||
|
abbr --add dnfu "sudo dnf update"
|
||||||
|
abbr --add dnfs "dnf search"
|
||||||
|
abbr --add dnfl "dnf list --installed"
|
||||||
|
end
|
||||||
|
|
||||||
if test "$TERM" = "xterm-ghostty" -o "$TERM" = "xterm-kitty"
|
if test "$TERM" = "xterm-ghostty" -o "$TERM" = "xterm-kitty"
|
||||||
abbr --add icat "kitten icat"
|
abbr --add icat "kitten icat"
|
||||||
else if test "$TERM_PROGRAM" = "WezTerm"
|
else if test "$TERM_PROGRAM" = "WezTerm"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
|
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
|
||||||
## blurb: Soothing pastel theme for the high-spirited!
|
## blurb: Soothing pastel theme for the high-spirited!
|
||||||
|
|
||||||
|
# Accent: Lavender #B4BEFE
|
||||||
|
|
||||||
|
|
||||||
# The basic colors
|
# The basic colors
|
||||||
|
|
@ -32,16 +33,16 @@ macos_titlebar_color system
|
||||||
|
|
||||||
# Tab bar colors
|
# Tab bar colors
|
||||||
active_tab_foreground #11111B
|
active_tab_foreground #11111B
|
||||||
active_tab_background #CBA6F7
|
active_tab_background #B4BEFE
|
||||||
inactive_tab_foreground #CDD6F4
|
inactive_tab_foreground #CDD6F4
|
||||||
inactive_tab_background #181825
|
inactive_tab_background #1E1E2E
|
||||||
tab_bar_background #11111B
|
tab_bar_background #181825
|
||||||
|
|
||||||
# Colors for marks (marked text in the terminal)
|
# Colors for marks (marked text in the terminal)
|
||||||
mark1_foreground #1E1E2E
|
mark1_foreground #1E1E2E
|
||||||
mark1_background #B4BEFE
|
mark1_background #B4BEFE
|
||||||
mark2_foreground #1E1E2E
|
mark2_foreground #1E1E2E
|
||||||
mark2_background #CBA6F7
|
mark2_background #B4BEFE
|
||||||
mark3_foreground #1E1E2E
|
mark3_foreground #1E1E2E
|
||||||
mark3_background #74C7EC
|
mark3_background #74C7EC
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# Fonts {{{
|
# Fonts {{{
|
||||||
|
|
||||||
# Family
|
# Family
|
||||||
font_family family="Iosevka Nerd Font"
|
font_family family="Maple Mono NF CN"
|
||||||
bold_font auto
|
bold_font auto
|
||||||
italic_font auto
|
italic_font auto
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
|
|
@ -77,3 +77,6 @@ map ctrl+q>shift+I kitten window.py -resize right
|
||||||
map cmd+enter toggle_layout stack
|
map cmd+enter toggle_layout stack
|
||||||
map ctrl+shift+enter toggle_layout stack
|
map ctrl+shift+enter toggle_layout stack
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
|
||||||
|
shell fish
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ else -- Vanilla neovim
|
||||||
end
|
end
|
||||||
require("config.keymaps")
|
require("config.keymaps")
|
||||||
require("config.diagnostics")
|
require("config.diagnostics")
|
||||||
|
require("config.migration")
|
||||||
|
|
||||||
-- If current session is spawn by neovide, do:
|
-- If current session is spawn by neovide, do:
|
||||||
if vim.g.neovide then
|
if vim.g.neovide then
|
||||||
|
|
|
||||||
15
tools/nvim/lsp/bashls.lua
Normal file
15
tools/nvim/lsp/bashls.lua
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
-- Bash
|
||||||
|
--[[ Installation
|
||||||
|
brew install bash-language-server
|
||||||
|
npm i -g bash-language-server
|
||||||
|
dnf install -y nodejs-bash-language-server # Fedora Linux
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "bash-language-server", "start" },
|
||||||
|
filetypes = { "bash", "sh" },
|
||||||
|
settings = {
|
||||||
|
bashIde = {
|
||||||
|
globPattern = vim.env.GLOB_PATTERN or "*@(.sh|.inc|.bash|.command)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
16
tools/nvim/lsp/beancount.lua
Normal file
16
tools/nvim/lsp/beancount.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
-- Beancount
|
||||||
|
--[[ Installation:
|
||||||
|
Dependency:
|
||||||
|
uv tool install beancount
|
||||||
|
LSP:
|
||||||
|
cargo install beancount-language-server
|
||||||
|
brew install beancount-language-server
|
||||||
|
--]]
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
cmd = { "beancount-language-server" },
|
||||||
|
filetypes = { "beancount" },
|
||||||
|
settings = {
|
||||||
|
},
|
||||||
|
}
|
||||||
30
tools/nvim/lsp/clangd.lua
Normal file
30
tools/nvim/lsp/clangd.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
-- C/C++
|
||||||
|
-- Clangd requires compile_commands.json to work and the easiest way to generate it is to use CMake.
|
||||||
|
-- How to use clangd C/C++ LSP in any project: https://gist.github.com/Strus/042a92a00070a943053006bf46912ae9
|
||||||
|
|
||||||
|
return {
|
||||||
|
cmd = {
|
||||||
|
"clangd",
|
||||||
|
"--clang-tidy",
|
||||||
|
"--header-insertion=iwyu",
|
||||||
|
"--completion-style=detailed",
|
||||||
|
"--function-arg-placeholders",
|
||||||
|
"--fallback-style=none",
|
||||||
|
},
|
||||||
|
filetypes = { "c", "cpp" },
|
||||||
|
root_markers = {
|
||||||
|
".clangd",
|
||||||
|
".clang-format",
|
||||||
|
"compile_commands.json",
|
||||||
|
"compile_flags.txt",
|
||||||
|
".git",
|
||||||
|
},
|
||||||
|
capabilities = {
|
||||||
|
textDocument = {
|
||||||
|
completion = {
|
||||||
|
editsNearCursor = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
offsetEncoding = { "utf-8", "utf-16" },
|
||||||
|
},
|
||||||
|
}
|
||||||
19
tools/nvim/lsp/gopls.lua
Normal file
19
tools/nvim/lsp/gopls.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
-- Golang
|
||||||
|
--[[ Installation
|
||||||
|
go install golang.org/x/tools/gopls@latest
|
||||||
|
brew install gopls
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "gopls" },
|
||||||
|
filetypes = { "go", "gomod", "gowork", "gotmpl" },
|
||||||
|
root_markers = { "go.work", "go.mod", ".git" },
|
||||||
|
settings = {
|
||||||
|
gopls = {
|
||||||
|
analyses = {
|
||||||
|
unusedparams = true,
|
||||||
|
},
|
||||||
|
staticcheck = true,
|
||||||
|
-- semanticTokens = true, -- go's semantic token highlight is not accurate so far
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
18
tools/nvim/lsp/jsonls.lua
Normal file
18
tools/nvim/lsp/jsonls.lua
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-- JSON
|
||||||
|
--[[
|
||||||
|
npm i vscode-json-languageserver
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "vscode-json-language-server", "--stdio" },
|
||||||
|
filetypes = { "json", "jsonc" },
|
||||||
|
root_markers = { ".git" },
|
||||||
|
init_options = {
|
||||||
|
provideFormatter = true,
|
||||||
|
},
|
||||||
|
settings = {
|
||||||
|
-- See setting options
|
||||||
|
-- https://github.com/microsoft/vscode/tree/main/extensions/json-language-features/server#settings
|
||||||
|
json = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
37
tools/nvim/lsp/luals.lua
Normal file
37
tools/nvim/lsp/luals.lua
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
-- Lua
|
||||||
|
--[[ Installation
|
||||||
|
scoop install lua-language-server
|
||||||
|
brew install lua-language-server
|
||||||
|
sudo port install lua-language-server
|
||||||
|
--]]
|
||||||
|
--[[ Build: Ninja & C++17 Required
|
||||||
|
git clone https://github.com/LuaLS/lua-language-server --depth 1
|
||||||
|
cd lua-language-server
|
||||||
|
./make.sh
|
||||||
|
--]]
|
||||||
|
--[[ Note: For building from source, wrapper script is required
|
||||||
|
Accompanied with a wrapper script
|
||||||
|
#!/bin/bash
|
||||||
|
exec "$HOME/.local/build/lua-language-server/bin/lua-language-server" "$@"
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "lua-language-server" },
|
||||||
|
root_markers = {
|
||||||
|
".luarc.json",
|
||||||
|
".luarc.jsonc",
|
||||||
|
".luacheckrc",
|
||||||
|
".stylua.toml",
|
||||||
|
"stylua.toml",
|
||||||
|
"selene.toml",
|
||||||
|
"selene.yml",
|
||||||
|
},
|
||||||
|
filetypes = { "lua" },
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
hint = {
|
||||||
|
enable = true,
|
||||||
|
setType = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
15
tools/nvim/lsp/markdown_oxide.lua
Normal file
15
tools/nvim/lsp/markdown_oxide.lua
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
-- Markdown PKM
|
||||||
|
--[[ Installation:
|
||||||
|
cargo install --locked --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "markdown-oxide" },
|
||||||
|
root_markers = {
|
||||||
|
".obsidian",
|
||||||
|
},
|
||||||
|
filetypes = { "markdown" },
|
||||||
|
settings = {
|
||||||
|
Markdown = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
27
tools/nvim/lsp/pyright.lua
Normal file
27
tools/nvim/lsp/pyright.lua
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
-- Python
|
||||||
|
--[[ Installation
|
||||||
|
uv tool install pyright
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "pyright-langserver", "--stdio" },
|
||||||
|
filetypes = { "python" },
|
||||||
|
root_markers = {
|
||||||
|
".python_version",
|
||||||
|
"pyproject.toml",
|
||||||
|
"setup.py",
|
||||||
|
"setup.cfg",
|
||||||
|
"requirements.txt",
|
||||||
|
"Pipfile",
|
||||||
|
"pyrightconfig.json",
|
||||||
|
".git",
|
||||||
|
},
|
||||||
|
settings = {
|
||||||
|
python = {
|
||||||
|
analysis = {
|
||||||
|
autoSearchPaths = true,
|
||||||
|
useLibraryCodeForTypes = true,
|
||||||
|
diagnosticMode = "openFilesOnly",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
33
tools/nvim/lsp/rust_analyzer.lua
Normal file
33
tools/nvim/lsp/rust_analyzer.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
-- Rust
|
||||||
|
--[[ Installation
|
||||||
|
rustup component add rust-src
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "rust-analyzer" },
|
||||||
|
filetypes = { "rust" },
|
||||||
|
root_dir = function(bufnr, cb)
|
||||||
|
local root = vim.fs.root(bufnr, { "Cargo.toml" })
|
||||||
|
if root then
|
||||||
|
vim.system({ "cargo", "metadata", "--no-depts", "--format-version", "1" }, { cwd = root }, function(obj)
|
||||||
|
if obj.code ~= 0 then
|
||||||
|
cb(root)
|
||||||
|
else
|
||||||
|
local success, result = pcall(vim.json.decode, obj.stdout)
|
||||||
|
if success and result.workspace_root then
|
||||||
|
cb(result.workspace_root)
|
||||||
|
else
|
||||||
|
cb(root)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
cb(vim.fs.root(bufnr, { "rust-project.json", ".git" }))
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
before_init = function(init_params, config)
|
||||||
|
-- See https://github.com/rust-lang/rust-analyzer/blob/eb5da56d839ae0a9e9f50774fa3eb78eb0964550/docs/dev/lsp-extensions.md?plain=1#L26
|
||||||
|
if config.settings and config.settings["rust-analyzer"] then
|
||||||
|
init_params.initializationOptions = config.settings["rust-analyzer"]
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
32
tools/nvim/lsp/taplo.lua
Normal file
32
tools/nvim/lsp/taplo.lua
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
-- TOML
|
||||||
|
--[[ Installation
|
||||||
|
cargo install taplo-cli --locked
|
||||||
|
brew install taplo
|
||||||
|
pnpm install -g @taplo/cli
|
||||||
|
--]]
|
||||||
|
return {
|
||||||
|
cmd = { "taplo", "lsp", "stdio" },
|
||||||
|
filetypes = { "toml" },
|
||||||
|
root_markers = { ".git" },
|
||||||
|
settings = {
|
||||||
|
-- See all the setting options
|
||||||
|
-- https://github.com/tamasfe/taplo/blob/master/editors/vscode/package.json
|
||||||
|
evenBetterToml = {
|
||||||
|
taplo = {
|
||||||
|
configFile = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
schema = {
|
||||||
|
enabled = true,
|
||||||
|
catalogs = {
|
||||||
|
"https://www.schemastore.org/api/json/catalog.json",
|
||||||
|
},
|
||||||
|
cache = {
|
||||||
|
memoryExpiration = 60,
|
||||||
|
diskExpiration = 600,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
19
tools/nvim/lsp/vimls.lua
Normal file
19
tools/nvim/lsp/vimls.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
return {
|
||||||
|
cmd = { "vim-language-server", "--stdio" },
|
||||||
|
filetypes = { "vim" },
|
||||||
|
root_markers = { ".git" },
|
||||||
|
init_options = {
|
||||||
|
isNeovim = true,
|
||||||
|
iskeyword = "@,48-57,_,192-255,-#",
|
||||||
|
vimruntime = "",
|
||||||
|
runtimepath = "",
|
||||||
|
diagnostic = { enable = true },
|
||||||
|
indexes = {
|
||||||
|
runtimepath = true,
|
||||||
|
gap = 100,
|
||||||
|
count = 3,
|
||||||
|
projectRootPatterns = { "runtime", "nvim", ".git", "autoload", "plugin" },
|
||||||
|
},
|
||||||
|
suggest = { fromVimruntime = true, fromRuntimepath = true },
|
||||||
|
},
|
||||||
|
}
|
||||||
9
tools/nvim/lsp/yamlls.lua
Normal file
9
tools/nvim/lsp/yamlls.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
return {
|
||||||
|
cmd = { "yaml-language-server", "--stdio" },
|
||||||
|
filetypes = { "yaml", "yaml.docker-compose", "yaml.gitlab" },
|
||||||
|
root_markers = { ".git" },
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
-- Change the colorscheme here, use SPACE u i or :Telescope colorscheme to change colorscheme
|
-- Change the colorscheme here, use SPACE u i or :FzfLua colorscheme to change colorscheme
|
||||||
vim.cmd.colorscheme("catppuccin")
|
vim.cmd.colorscheme("catppuccin")
|
||||||
|
|
|
||||||
31
tools/nvim/lua/config/migration.lua
Normal file
31
tools/nvim/lua/config/migration.lua
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
local nvim_version = vim.version()
|
||||||
|
|
||||||
|
|
||||||
|
if nvim_version.minor ~= 11 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_lines = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- vim.lsp.enable({
|
||||||
|
-- "clangd",
|
||||||
|
-- "luals",
|
||||||
|
-- })
|
||||||
|
|
||||||
|
local lsp_configs = {}
|
||||||
|
for _, v in ipairs(vim.api.nvim_get_runtime_file('lsp/*', true)) do
|
||||||
|
local name = vim.fn.fnamemodify(v, ':t:r')
|
||||||
|
lsp_configs[name] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.lsp.enable(vim.tbl_keys(lsp_configs))
|
||||||
|
|
||||||
|
-- Delete 0.11 new gr- keymaps
|
||||||
|
vim.keymap.del({ "n" }, "grn")
|
||||||
|
vim.keymap.del({ "n", "x" }, "gra")
|
||||||
|
vim.keymap.del({ "n" }, "gri")
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -7,20 +7,13 @@ local M = {}
|
||||||
M.servers = {
|
M.servers = {
|
||||||
"bashls", -- Bash
|
"bashls", -- Bash
|
||||||
"clangd", -- C/C++
|
"clangd", -- C/C++
|
||||||
"cssls", -- CSS
|
"gopls", -- Go
|
||||||
-- "cmake", -- CMake
|
|
||||||
"eslint", -- JavaScript
|
|
||||||
"html", -- HTML
|
"html", -- HTML
|
||||||
"jsonls", -- JSON
|
"jsonls", -- JSON
|
||||||
"lua_ls", -- Lua
|
"lua_ls", -- Lua
|
||||||
"markdown_oxide", -- Markdown
|
-- "markdown_oxide", -- Markdown
|
||||||
"omnisharp", -- C# & F#
|
|
||||||
"powershell_es", -- PowerShell
|
|
||||||
"pyright", -- Python
|
"pyright", -- Python
|
||||||
"rust_analyzer", -- Rust
|
"rust_analyzer", -- Rust
|
||||||
"svelte", -- Svelte
|
|
||||||
"svlangserver", -- SystemVerilog
|
|
||||||
"tailwindcss", -- TailwindCSS
|
|
||||||
"taplo", -- TOML
|
"taplo", -- TOML
|
||||||
"ts_ls", -- TypeScript
|
"ts_ls", -- TypeScript
|
||||||
"vimls", -- vimscript
|
"vimls", -- vimscript
|
||||||
|
|
|
||||||
|
|
@ -90,8 +90,8 @@ local leader_mappings = {
|
||||||
{ keys = "s", cmd = ":write<CR>", opts = { desc = "Save File" } },
|
{ keys = "s", cmd = ":write<CR>", opts = { desc = "Save File" } },
|
||||||
{ keys = "S", cmd = ":wall<CR>", opts = { desc = "Save All Files" } },
|
{ keys = "S", cmd = ":wall<CR>", opts = { desc = "Save All Files" } },
|
||||||
{ keys = "D", cmd = "!trash-rm %<CR>", opts = { desc = "Delete current file" } },
|
{ keys = "D", cmd = "!trash-rm %<CR>", opts = { desc = "Delete current file" } },
|
||||||
{ keys = "t", cmd = ":NvimTreeFindFileToggle<CR>", opts = { desc = "Toggle File Tree" } },
|
-- { keys = "t", cmd = ":NvimTreeFindFileToggle<CR>", opts = { desc = "Toggle File Tree" } },
|
||||||
{ keys = "o", cmd = ":!open %<CR>", opts = { desc = "Open file in default program" } },
|
-- { keys = "o", cmd = ":!open %<CR>", opts = { desc = "Open file in default program" } },
|
||||||
{ keys = "R", cmd = renameCurrentBuffer, opts = { desc = "Rename current file" } },
|
{ keys = "R", cmd = renameCurrentBuffer, opts = { desc = "Rename current file" } },
|
||||||
{ keys = "x", cmd = ":Lazy<CR>", opts = { desc = "Open extension view" } },
|
{ keys = "x", cmd = ":Lazy<CR>", opts = { desc = "Open extension view" } },
|
||||||
{ keys = "yy", cmd = ":let @+ = expand('%:p')<CR>", opts = { desc = "Copy file path" } },
|
{ keys = "yy", cmd = ":let @+ = expand('%:p')<CR>", opts = { desc = "Copy file path" } },
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,37 @@ local M = {
|
||||||
{ keys = "<leader>,", cmd = vim.lsp.buf.code_action, opts = { desc = "Code Action" } },
|
{ keys = "<leader>,", cmd = vim.lsp.buf.code_action, opts = { desc = "Code Action" } },
|
||||||
{ keys = "ga", cmd = vim.lsp.buf.code_action, opts = { desc = "Code Action" } },
|
{ keys = "ga", cmd = vim.lsp.buf.code_action, opts = { desc = "Code Action" } },
|
||||||
{ keys = "gh", cmd = vim.lsp.buf.hover, opts = { desc = "Show hover" } },
|
{ keys = "gh", cmd = vim.lsp.buf.hover, opts = { desc = "Show hover" } },
|
||||||
|
-- [c]hange [d]efinition
|
||||||
|
{ keys = "cd", cmd = vim.lsp.buf.rename, opts = { desc = "Rename symbol under cursor" } },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- local function smart_split_definition()
|
||||||
|
-- local width = vim.api.nvim_win_get_width(0)
|
||||||
|
-- if width > 80 then -- Adjust 80 to your preference
|
||||||
|
-- vim.api.nvim_command("vsp")
|
||||||
|
-- else
|
||||||
|
-- vim.api.nvim_command("sp")
|
||||||
|
-- end
|
||||||
|
-- vim.lsp.buf.definition()
|
||||||
|
-- end
|
||||||
|
-- vim.keymap.set("n", "<C-w>d", smart_split_definition, { desc = "Go to Definition (Smart Split)" })
|
||||||
|
|
||||||
|
local function smart_split(func)
|
||||||
|
local width = vim.api.nvim_win_get_width(0)
|
||||||
|
if width > 80 then
|
||||||
|
vim.api.nvim_command("vsp")
|
||||||
|
else
|
||||||
|
vim.api.nvim_command("sp")
|
||||||
|
end
|
||||||
|
func()
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-w>d", function()
|
||||||
|
smart_split(vim.lsp.buf.definition)
|
||||||
|
end, { desc = "Go to Definition (Smart Split)" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<C-w>D", function()
|
||||||
|
smart_split(vim.lsp.buf.declaration)
|
||||||
|
end, { desc = "Go to Declaration (Smart Split)" })
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ local keymaps_modifier = {
|
||||||
{ keys = "<C-w>n", cmd = "<C-w>j", opts = { desc = "Down Window" } },
|
{ keys = "<C-w>n", cmd = "<C-w>j", opts = { desc = "Down Window" } },
|
||||||
{ keys = "<C-w>e", cmd = "<C-w>k", opts = { desc = "Up Window" } },
|
{ keys = "<C-w>e", cmd = "<C-w>k", opts = { desc = "Up Window" } },
|
||||||
{ keys = "<C-w>i", cmd = "<C-w>l", opts = { desc = "Right Window" } },
|
{ keys = "<C-w>i", cmd = "<C-w>l", opts = { desc = "Right Window" } },
|
||||||
{ keys = "<A-x>", cmd = "<Cmd>Telescope commands<CR>", opts = { desc = "Commands" } },
|
{ keys = "<A-x>", cmd = "<Cmd>FzfLua commands<CR>", opts = { desc = "Commands" } },
|
||||||
}
|
}
|
||||||
|
|
||||||
return keymaps_modifier
|
return keymaps_modifier
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
M.event = "BufEnter"
|
||||||
|
|
||||||
M.global = {
|
M.global = {
|
||||||
{ mode = "n", keys = "<leader>E", cmd = ":NvimTreeToggle<CR>" },
|
{ mode = "n", keys = "<leader>E", cmd = ":NvimTreeToggle<CR>" },
|
||||||
{ mode = "n", keys = "<A-0>", cmd = ":NvimTreeFindFileToggle<CR>" },
|
{ mode = "n", keys = "<A-0>", cmd = ":NvimTreeFindFileToggle<CR>" },
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,19 @@
|
||||||
|
-- https://stackoverflow.com/a/73365602
|
||||||
|
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||||
|
group = vim.api.nvim_create_augroup("highlight_yank", {}),
|
||||||
|
desc = "Hightlight selection on yank",
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
vim.highlight.on_yank({ higroup = "IncSearch", timeout = 500 })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- Colorschemes
|
-- Colorschemes
|
||||||
{
|
{
|
||||||
"catppuccin/nvim",
|
"catppuccin/nvim",
|
||||||
name = "catppuccin",
|
name = "catppuccin",
|
||||||
|
lazy = true,
|
||||||
opts = {
|
opts = {
|
||||||
flavor = "auto",
|
flavor = "auto",
|
||||||
background = {
|
background = {
|
||||||
|
|
@ -10,6 +21,7 @@ return {
|
||||||
dark = "mocha",
|
dark = "mocha",
|
||||||
},
|
},
|
||||||
integrations = {
|
integrations = {
|
||||||
|
-- lualine = true,
|
||||||
"lualine",
|
"lualine",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -20,90 +32,66 @@ return {
|
||||||
opts = {
|
opts = {
|
||||||
variant = "dawn",
|
variant = "dawn",
|
||||||
},
|
},
|
||||||
|
cmd = "FzfLua colorschemes",
|
||||||
},
|
},
|
||||||
{ "olimorris/onedarkpro.nvim", cmd = "Telescope colorscheme" },
|
{ "rebelot/kanagawa.nvim", cmd = "FzfLua colorschemes" },
|
||||||
{ "rebelot/kanagawa.nvim", cmd = "Telescope colorscheme" },
|
|
||||||
-- Highlight objects under the cursor
|
|
||||||
{ "RRethy/vim-illuminate" },
|
|
||||||
{ -- Modern Status Line
|
{ -- Modern Status Line
|
||||||
"nvim-lualine/lualine.nvim",
|
"nvim-lualine/lualine.nvim",
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
event = "VeryLazy",
|
||||||
config = function()
|
config = function()
|
||||||
require("plugins.mod.lualine")
|
require("plugins.mod.lualine")
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ -- Highlight yanked text
|
-- { -- Breadcrumb
|
||||||
"gbprod/yanky.nvim",
|
-- "Bekaboo/dropbar.nvim",
|
||||||
opts = {
|
-- dependencies = {
|
||||||
highlight = {
|
-- "nvim-telescope/telescope-fzf-native.nvim",
|
||||||
on_put = true,
|
-- build = "make",
|
||||||
on_yank = true,
|
-- },
|
||||||
timer = 500,
|
-- opts = {},
|
||||||
},
|
-- keys = {
|
||||||
},
|
-- {
|
||||||
},
|
-- "<Leader>+",
|
||||||
{ import = "plugins.mod.alpha-nvim" }, -- Dashboard
|
-- function()
|
||||||
{ -- Breadcrumb
|
-- require("dropbar.api").pick()
|
||||||
"Bekaboo/dropbar.nvim",
|
-- end,
|
||||||
dependencies = {
|
-- desc = "Pick symbols in winbar",
|
||||||
"nvim-telescope/telescope-fzf-native.nvim",
|
-- },
|
||||||
build = "make",
|
-- {
|
||||||
},
|
-- "[;",
|
||||||
opts = {},
|
-- function()
|
||||||
keys = {
|
-- require("dropbar.api").goto_context_start()
|
||||||
{
|
-- end,
|
||||||
"<Leader>+",
|
-- desc = "Go to start of current context",
|
||||||
function()
|
-- },
|
||||||
require("dropbar.api").pick()
|
-- {
|
||||||
end,
|
-- "];",
|
||||||
desc = "Pick symbols in winbar",
|
-- function()
|
||||||
},
|
-- require("dropbar.api").select_next_context()
|
||||||
{
|
-- end,
|
||||||
"[;",
|
-- desc = "Select next context",
|
||||||
function()
|
-- },
|
||||||
require("dropbar.api").goto_context_start()
|
-- },
|
||||||
end,
|
-- },
|
||||||
desc = "Go to start of current context",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"];",
|
|
||||||
function()
|
|
||||||
require("dropbar.api").select_next_context()
|
|
||||||
end,
|
|
||||||
desc = "Select next context",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ import = "plugins.mod.bufferline" }, -- Buffer Top Bar
|
{ import = "plugins.mod.bufferline" }, -- Buffer Top Bar
|
||||||
{ -- Git Blames, Changes
|
{ -- Git Blames, Changes
|
||||||
"lewis6991/gitsigns.nvim",
|
"lewis6991/gitsigns.nvim",
|
||||||
opts = {
|
opts = {
|
||||||
current_line_blame = true,
|
current_line_blame = true,
|
||||||
},
|
},
|
||||||
|
event = "BufReadPre",
|
||||||
keys = {
|
keys = {
|
||||||
{ "<leader>gb", "<cmd>Gitsigns blame<CR>", desc = "Blame file" },
|
{ "<leader>gb", "<cmd>Gitsigns blame<CR>", desc = "Blame file" },
|
||||||
{ "<leader>gd", "<cmd>Gitsigns diffthis<CR>", desc = "Diff file" },
|
{ "<leader>gd", "<cmd>Gitsigns diffthis<CR>", desc = "Diff file" },
|
||||||
{ "<leader>gB", "<cmd>Gitsigns toggle_current_line_blame<CR>", desc = "Toggle line blame" },
|
{ "<leader>gB", "<cmd>Gitsigns toggle_current_line_blame<CR>", desc = "Toggle line blame" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ -- Highlight and navigate between TODOs
|
-- { -- Highlight and navigate between TODOs
|
||||||
"folke/todo-comments.nvim",
|
-- "folke/todo-comments.nvim",
|
||||||
opts = {},
|
-- cmd = { "TodoTelescope" },
|
||||||
dependencies = { "nvim-lua/plenary.nvim" },
|
-- event = "BufRead",
|
||||||
},
|
-- opts = {},
|
||||||
{
|
-- dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
"folke/noice.nvim",
|
-- },
|
||||||
event = "VeryLazy",
|
|
||||||
opts = {
|
|
||||||
-- add any options here
|
|
||||||
},
|
|
||||||
dependencies = {
|
|
||||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
-- OPTIONAL:
|
|
||||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
|
||||||
-- If not available, we use `mini` as the fallback
|
|
||||||
"rcarriga/nvim-notify",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,11 @@
|
||||||
return {
|
return {
|
||||||
{ import = "plugins.mod.nvim-cmp" },
|
{ import = "plugins.mod.blink-cmp" },
|
||||||
{
|
|
||||||
"saadparwaiz1/cmp_luasnip",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"L3MON4D3/LuaSnip",
|
"L3MON4D3/LuaSnip",
|
||||||
build = "make install_jsregexp",
|
build = "make install_jsregexp",
|
||||||
event = "InsertEnter",
|
event = "InsertEnter",
|
||||||
config = function()
|
config = function()
|
||||||
require("luasnip.loaders.from_vscode").lazy_load({ paths = "~/.config/lsp-snippets" })
|
require("luasnip.loaders.from_vscode").lazy_load({ paths = "~/.config/lsp-snippets" })
|
||||||
-- require("luasnip.loaders.from_vscode").lazy_load()
|
|
||||||
end,
|
end,
|
||||||
-- TODO: Remove this, simply delete this will let nvim-cmp not work
|
|
||||||
-- dependencies = { "rafamadriz/friendly-snippets" },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"zbirenbaum/copilot-cmp",
|
|
||||||
opts = {},
|
|
||||||
-- config = function()
|
|
||||||
-- require("copilot_cmp").setup()
|
|
||||||
-- end,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"mfussenegger/nvim-dap",
|
"mfussenegger/nvim-dap",
|
||||||
|
event = "BufReadPre",
|
||||||
config = function()
|
config = function()
|
||||||
local dap = require("dap")
|
local dap = require("dap")
|
||||||
dap.adapters.codelldb = {
|
dap.adapters.codelldb = {
|
||||||
|
|
@ -28,10 +29,13 @@ return {
|
||||||
"rcarriga/nvim-dap-ui",
|
"rcarriga/nvim-dap-ui",
|
||||||
opts = {},
|
opts = {},
|
||||||
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
|
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
|
||||||
|
cmd = "DapNew",
|
||||||
},
|
},
|
||||||
{ "theHamsta/nvim-dap-virtual-text", opts = {} },
|
{ "theHamsta/nvim-dap-virtual-text", opts = {}, cmd = "DapNew" },
|
||||||
{
|
{
|
||||||
"mfussenegger/nvim-dap-python",
|
"mfussenegger/nvim-dap-python",
|
||||||
|
event = "BufReadPost",
|
||||||
|
ft = "python",
|
||||||
config = function()
|
config = function()
|
||||||
require("dap-python").setup("uv")
|
require("dap-python").setup("uv")
|
||||||
end,
|
end,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"folke/flash.nvim",
|
"folke/flash.nvim",
|
||||||
event = "VeryLazy",
|
event = "BufEnter",
|
||||||
opts = {},
|
opts = {},
|
||||||
-- stylua: ignore
|
-- stylua: ignore
|
||||||
keys = {
|
keys = {
|
||||||
|
|
@ -12,15 +12,12 @@ return {
|
||||||
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
|
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{ import = "plugins.mod.mc" }, -- Multiple-cursors
|
||||||
"js0ny/vim-visual-multi-colemak-hnei",
|
|
||||||
-- "mg979/vim-visual-multi",
|
|
||||||
},
|
|
||||||
{ import = "plugins.mod.autopairs" },
|
{ import = "plugins.mod.autopairs" },
|
||||||
{
|
{
|
||||||
"kylechui/nvim-surround",
|
"kylechui/nvim-surround",
|
||||||
version = "*", -- Use for stability; omit to use `main` branch for the latest features
|
version = "*", -- Use for stability; omit to use `main` branch for the latest features
|
||||||
event = "VeryLazy",
|
event = "BufEnter",
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,50 +1,39 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"rmagatti/auto-session",
|
"rmagatti/auto-session",
|
||||||
lazy = false,
|
event = "BufReadPre",
|
||||||
|
cmd = {
|
||||||
|
"SessionSearch",
|
||||||
|
"SessionSave",
|
||||||
|
},
|
||||||
opts = {
|
opts = {
|
||||||
suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" },
|
suppressed_dirs = { "~/", "~/Projects", "~/Downloads", "/" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ import = "plugins.mod.nvim-tree" },
|
-- { import = "plugins.mod.nvim-tree" },
|
||||||
{ import = "plugins.mod.telescope" },
|
-- { import = "plugins.mod.telescope" },
|
||||||
-- { import = "plugins.mod.fzf" },
|
{ import = "plugins.mod.fzf" },
|
||||||
{
|
|
||||||
"ahmedkhalf/project.nvim",
|
|
||||||
opts = {
|
|
||||||
detection_methods = { "lsp", "pattern" },
|
|
||||||
patterns = { ".git", "Makefile", "package.json" },
|
|
||||||
sync_root_with_cwd = true,
|
|
||||||
silent_chdir = true,
|
|
||||||
scope_chdir = "global",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
require("telescope").load_extension("projects")
|
|
||||||
end,
|
|
||||||
dependencies = { "nvim-telescope/telescope.nvim" },
|
|
||||||
},
|
|
||||||
-- {
|
-- {
|
||||||
-- "kdheepak/lazygit.nvim",
|
-- "ahmedkhalf/project.nvim",
|
||||||
-- lazy = true,
|
-- event = "VeryLazy",
|
||||||
|
-- opts = {
|
||||||
|
-- detection_methods = { "lsp", "pattern" },
|
||||||
|
-- patterns = { ".git", "Makefile", "package.json" },
|
||||||
|
-- sync_root_with_cwd = true,
|
||||||
|
-- silent_chdir = true,
|
||||||
|
-- scope_chdir = "global",
|
||||||
|
-- },
|
||||||
|
-- config = function()
|
||||||
|
-- require("telescope").load_extension("projects")
|
||||||
|
-- end,
|
||||||
|
-- dependencies = { "nvim-telescope/telescope.nvim" },
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- "NeogitOrg/neogit",
|
||||||
|
-- config = true,
|
||||||
-- cmd = {
|
-- cmd = {
|
||||||
-- "LazyGit",
|
-- "Neogit",
|
||||||
-- "LazyGitConfig",
|
|
||||||
-- "LazyGitCurrentFile",
|
|
||||||
-- "LazyGitFilter",
|
|
||||||
-- "LazyGitFilterCurrentFile",
|
|
||||||
-- },
|
|
||||||
-- -- optional for floating window border decoration
|
|
||||||
-- dependencies = {
|
|
||||||
-- "nvim-lua/plenary.nvim",
|
|
||||||
-- },
|
|
||||||
-- -- setting the keybinding for LazyGit with 'keys' is recommended in
|
|
||||||
-- -- order to load the plugin when the command is run for the first time
|
|
||||||
-- keys = {
|
|
||||||
-- { "<leader>gg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
|
|
||||||
-- },
|
-- },
|
||||||
-- },
|
-- },
|
||||||
{
|
{ import = "plugins.mod.neo-tree" }
|
||||||
"NeogitOrg/neogit",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,17 +3,13 @@ require("plugins.lazy-nvim")
|
||||||
-- Setup lazy.nvim
|
-- Setup lazy.nvim
|
||||||
require("lazy").setup({
|
require("lazy").setup({
|
||||||
spec = {
|
spec = {
|
||||||
-- import your plugins
|
|
||||||
{ import = "plugins.appearance" },
|
{ import = "plugins.appearance" },
|
||||||
{ import = "plugins.completion" },
|
{ import = "plugins.completion" },
|
||||||
{ import = "plugins.fileutils" },
|
{ import = "plugins.fileutils" },
|
||||||
{ import = "plugins.lsp" },
|
{ import = "plugins.lang" },
|
||||||
{ import = "plugins.dap" },
|
{ import = "plugins.dap" },
|
||||||
{ import = "plugins.edit" },
|
{ import = "plugins.edit" },
|
||||||
{ import = "plugins.misc" },
|
{ import = "plugins.misc" },
|
||||||
},
|
},
|
||||||
-- Configure any other settings here. See the documentation for more details.
|
checker = { enabled = false },
|
||||||
-- colorscheme that will be used when installing plugins.
|
|
||||||
-- automatically check for plugin updates
|
|
||||||
checker = { enabled = true },
|
|
||||||
})
|
})
|
||||||
|
|
|
||||||
13
tools/nvim/lua/plugins/lang/beancount.lua
Normal file
13
tools/nvim/lua/plugins/lang/beancount.lua
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
-- 在 init.lua 或者你的配置文件中添加
|
||||||
|
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||||
|
pattern = "*.bean",
|
||||||
|
callback = function()
|
||||||
|
vim.bo.filetype = "beancount"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
"nathangrigg/vim-beancount",
|
||||||
|
ft = "beancount",
|
||||||
|
}
|
||||||
33
tools/nvim/lua/plugins/lang/init.lua
Normal file
33
tools/nvim/lua/plugins/lang/init.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
return {
|
||||||
|
{ import = "plugins.lang.org" },
|
||||||
|
{ import = "plugins.lang.markdown" },
|
||||||
|
{ import = "plugins.lang.just" },
|
||||||
|
{ import = "plugins.lang.typst" },
|
||||||
|
{ import = "plugins.lang.beancount" },
|
||||||
|
{ import = "plugins.lang.tex" },
|
||||||
|
{ import = "plugins.lang.lua" },
|
||||||
|
{ import = "plugins.lang.treesitter" },
|
||||||
|
{ import = "plugins.mod.trouble-nvim" },
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
cmd = "Mason",
|
||||||
|
build = ":MasonUpdate",
|
||||||
|
-- opts_extend = { "ensure_installed" },
|
||||||
|
opts = {
|
||||||
|
-- ensure_installed = require("config.servers").servers,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- {
|
||||||
|
-- "williamboman/mason-lspconfig.nvim",
|
||||||
|
-- event = "BufReadPre",
|
||||||
|
-- dependencies = {
|
||||||
|
-- { "williamboman/mason.nvim" },
|
||||||
|
-- { "neovim/nvim-lspconfig" },
|
||||||
|
-- },
|
||||||
|
-- opts = {
|
||||||
|
-- -- ensure_installed = require("config.servers").servers,
|
||||||
|
-- -- automatic_installation = false,
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
{ import = "plugins.mod.conform-nvim" },
|
||||||
|
}
|
||||||
4
tools/nvim/lua/plugins/lang/just.lua
Normal file
4
tools/nvim/lua/plugins/lang/just.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
return {
|
||||||
|
"NoahTheDuke/vim-just",
|
||||||
|
ft = { "just" },
|
||||||
|
}
|
||||||
9
tools/nvim/lua/plugins/lang/lua.lua
Normal file
9
tools/nvim/lua/plugins/lang/lua.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
return {
|
||||||
|
"folke/lazydev.nvim",
|
||||||
|
ft = "lua", -- only load on lua files
|
||||||
|
opts = {
|
||||||
|
library = {
|
||||||
|
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
6
tools/nvim/lua/plugins/lang/markdown/init.lua
Normal file
6
tools/nvim/lua/plugins/lang/markdown/init.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
return {
|
||||||
|
{ import = "plugins.lang.markdown.render-markdown" },
|
||||||
|
-- { import = "plugins.mod.lang.markdown.markview" },
|
||||||
|
{ import = "plugins.lang.markdown.obsidian-nvim" },
|
||||||
|
{ "bullets-vim/bullets.vim", ft = "markdown" },
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
return {
|
return {
|
||||||
"epwalsh/obsidian.nvim",
|
"obsidian-nvim/obsidian.nvim",
|
||||||
version = "*", -- recommended, use latest release instead of latest commit
|
version = "*", -- recommended, use latest release instead of latest commit
|
||||||
-- lazy = false,
|
-- lazy = false,
|
||||||
ft = "markdown",
|
ft = "markdown",
|
||||||
|
|
@ -38,11 +38,15 @@ return {
|
||||||
-- "BufReadPre path/to/my-vault/*.md",
|
-- "BufReadPre path/to/my-vault/*.md",
|
||||||
-- "BufNewFile path/to/my-vault/*.md",
|
-- "BufNewFile path/to/my-vault/*.md",
|
||||||
-- },
|
-- },
|
||||||
|
keys = {
|
||||||
|
{ "<leader>fo", "<cmd>ObsidianQuickSwitch<CR>", desc = "Obsidian: Quick Switch" },
|
||||||
|
},
|
||||||
dependencies = {
|
dependencies = {
|
||||||
-- Required.
|
-- Required.
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
-- see below for full list of optional dependencies 👇
|
-- see below for full list of optional dependencies 👇
|
||||||
|
"ibhagwan/fzf-lua",
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
workspaces = {
|
workspaces = {
|
||||||
|
|
@ -52,12 +56,19 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
completion = {
|
completion = {
|
||||||
nvim_cmp = true,
|
nvim_cmp = false,
|
||||||
|
blink = true,
|
||||||
min_chars = 2,
|
min_chars = 2,
|
||||||
},
|
},
|
||||||
ui = {
|
ui = {
|
||||||
enable = false,
|
enable = false,
|
||||||
},
|
},
|
||||||
|
daily_notes = {
|
||||||
|
folder = "_Global/Periodic",
|
||||||
|
date_format = "%Y-%m-%d",
|
||||||
|
default_tags = { "daily" },
|
||||||
|
template = nil,
|
||||||
|
},
|
||||||
-- see below for full list of options 👇
|
-- see below for full list of options 👇
|
||||||
attachments = {
|
attachments = {
|
||||||
img_folder = "_Global/Assets",
|
img_folder = "_Global/Assets",
|
||||||
|
|
@ -65,5 +76,14 @@ return {
|
||||||
return string.format("%s-", os.time())
|
return string.format("%s-", os.time())
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
mappings = {
|
||||||
|
["<cr>"] = {
|
||||||
|
action = function()
|
||||||
|
require("obsidian").util.smart_action()
|
||||||
|
end,
|
||||||
|
opts = { buffer = true, expr = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
new_notes_location = "current_dir",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"MeanderingProgrammer/render-markdown.nvim",
|
"MeanderingProgrammer/render-markdown.nvim",
|
||||||
lazy = false,
|
event = "BufRead",
|
||||||
ft = { "markdown", "Avante" },
|
ft = { "markdown", "Avante" },
|
||||||
opts = {
|
opts = {
|
||||||
file_types = { "markdown", "Avante" },
|
file_types = { "markdown", "Avante" },
|
||||||
|
|
@ -14,14 +14,13 @@ return {
|
||||||
top_pad = 0,
|
top_pad = 0,
|
||||||
bottom_pad = 0,
|
bottom_pad = 0,
|
||||||
},
|
},
|
||||||
heading = {
|
-- heading = {
|
||||||
sign = false,
|
-- position = "overlay",
|
||||||
position = "inline",
|
-- width = "block",
|
||||||
width = "block",
|
-- left_margin = 0.5,
|
||||||
left_margin = 0.5,
|
-- left_pad = 0.2,
|
||||||
left_pad = 0.2,
|
-- right_pad = 0.2,
|
||||||
right_pad = 0.2,
|
-- },
|
||||||
},
|
|
||||||
link = {
|
link = {
|
||||||
custom = {
|
custom = {
|
||||||
python = { pattern = "%.py", icon = " " },
|
python = { pattern = "%.py", icon = " " },
|
||||||
88
tools/nvim/lua/plugins/lang/org.lua
Normal file
88
tools/nvim/lua/plugins/lang/org.lua
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-orgmode/orgmode",
|
||||||
|
dependencies = {
|
||||||
|
-- "nvim-telescope/telescope.nvim",
|
||||||
|
-- "nvim-orgmode/telescope-orgmode.nvim",
|
||||||
|
"nvim-orgmode/org-bullets.nvim",
|
||||||
|
"Saghen/blink.cmp",
|
||||||
|
},
|
||||||
|
cmd = {
|
||||||
|
"Org",
|
||||||
|
},
|
||||||
|
ft = {
|
||||||
|
"org",
|
||||||
|
"orgagenda",
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>A", "<cmd>Org agenda<CR>", desc = "Org Agenda" },
|
||||||
|
},
|
||||||
|
event = "BufEnter *.org",
|
||||||
|
config = function()
|
||||||
|
require("orgmode").setup({
|
||||||
|
org_agenda_files = "~/OrgFiles/tasks/*",
|
||||||
|
org_default_notes_file = "~/OrgFiles/tasks/inbox.org",
|
||||||
|
org_archive_location = "~/OrgFiles/.archive/%s_archive::",
|
||||||
|
org_todo_keywords = { "TODO(t)", "NEXT(n)", "WAIT(w)", "|", "DONE(d)", "CANCELLED(c)" },
|
||||||
|
org_hide_leading_stars = true,
|
||||||
|
org_hide_emphasis_markers = true,
|
||||||
|
org_log_into_drawer = "LOGBOOK",
|
||||||
|
org_highlight_latex_and_related = "native",
|
||||||
|
org_startup_indented = true,
|
||||||
|
org_deadline_warning_days = 10,
|
||||||
|
mappings = {
|
||||||
|
agenda = {
|
||||||
|
org_agenda_schedule = "<C-c><C-s>",
|
||||||
|
org_agenda_deadline = "<C-c><C-d>",
|
||||||
|
org_agenda_todo = "<C-c><C-t>",
|
||||||
|
org_agenda_set_tags = "<C-c><C-c>",
|
||||||
|
org_agenda_earlier = { "[[", "<" },
|
||||||
|
org_agenda_later = { "]]", ">" },
|
||||||
|
org_agenda_archive = "$",
|
||||||
|
},
|
||||||
|
org = {
|
||||||
|
org_deadline = "<C-c><C-d>",
|
||||||
|
org_schedule = "<C-c><C-s>",
|
||||||
|
org_todo = "<C-c><C-t>",
|
||||||
|
org_set_tags_command = "<C-c><C-c>",
|
||||||
|
org_archive_subtree = "<C-c>$",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
require("org-bullets").setup()
|
||||||
|
require("blink.cmp").setup({
|
||||||
|
sources = {
|
||||||
|
per_filetype = {
|
||||||
|
org = { "orgmode" },
|
||||||
|
},
|
||||||
|
providers = {
|
||||||
|
orgmode = {
|
||||||
|
name = "Orgmode",
|
||||||
|
module = "orgmode.org.autocompletion.blink",
|
||||||
|
fallbacks = { "buffer" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- require("telescope").setup()
|
||||||
|
-- require("telescope").load_extension("orgmode")
|
||||||
|
-- vim.keymap.set("n", "<leader>r", require("telescope").extensions.orgmode.refile_heading)
|
||||||
|
-- vim.keymap.set("n", "<leader>oP", require("telescope").extensions.orgmode.search_headings)
|
||||||
|
vim.keymap.set("n", "<leader>op", "<cmd>FzfLua files cwd=~/OrgFiles<CR>")
|
||||||
|
-- vim.keymap.set("n", "<leader>li", require("telescope").extensions.orgmode.insert_link)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- {
|
||||||
|
-- dir = "~/Source/org-pomodoro.nvim",
|
||||||
|
-- name = "org-pomodoro.nvim",
|
||||||
|
-- lazy = false,
|
||||||
|
-- opts = {},
|
||||||
|
-- dependencies = {
|
||||||
|
-- "nvim-orgmode/orgmode",
|
||||||
|
-- },
|
||||||
|
-- cmd = {
|
||||||
|
-- "OrgPomodoro",
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
}
|
||||||
7
tools/nvim/lua/plugins/lang/tex.lua
Normal file
7
tools/nvim/lua/plugins/lang/tex.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
return {
|
||||||
|
"lervag/vimtex",
|
||||||
|
ft = { "tex", "bib" },
|
||||||
|
init = function()
|
||||||
|
vim.g.vimtex_view_method = "okular"
|
||||||
|
end,
|
||||||
|
}
|
||||||
20
tools/nvim/lua/plugins/lang/treesitter.lua
Normal file
20
tools/nvim/lua/plugins/lang/treesitter.lua
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
return {
|
||||||
|
{ "nvim-treesitter/nvim-treesitter-context", lazy = true },
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
run = ":TSUpdate",
|
||||||
|
cmd = {
|
||||||
|
"TSInstall",
|
||||||
|
"TSUpdate",
|
||||||
|
"TSUpdateSync",
|
||||||
|
},
|
||||||
|
event = {
|
||||||
|
"BufReadPre",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown", "markdown_inline" },
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
6
tools/nvim/lua/plugins/lang/typst.lua
Normal file
6
tools/nvim/lua/plugins/lang/typst.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
return {
|
||||||
|
'chomosuke/typst-preview.nvim',
|
||||||
|
ft = { 'typst' },
|
||||||
|
version = '1.*',
|
||||||
|
opts = {}, -- lazy.nvim will implicitly calls `setup {}`
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue