Compare commits

..

No commits in common. "main" and "manager-migration" have entirely different histories.

78 changed files with 1204 additions and 3432 deletions

View file

@ -1,7 +1,33 @@
includes = [ ]
packages = [ "default", "niri", "dev" ]
includes = []
packages = ["default"]
[files]
"configs/niri/work-laptop/local.kdl" = "~/.config/niri/include/local.kdl"
"configs/hypr/work-laptop/hyprland.conf" = "~/.config/hypr/include/work-laptop.conf"
[files."configs/niri/config.kdl"]
target = "~/.config/niri/config.kdl"
type = "template"
append = """
window-rule {
match app-id="brave-work"
open-on-workspace "1"
open-focused true
default-column-width {
proportion 0.5
}
}
window-rule {
match app-id="brave-personal"
open-on-workspace "2"
open-focused false
default-column-width {
proportion 0.5
}
}
"""
[variables]

View file

@ -1,72 +1,42 @@
[settings]
default_target_type = "symbolic"
default_target_type = "symbolic"
[helpers]
[default]
depends = [ "cli-utils" ]
depends = ["niri"]
[default.files]
"configs/just" = "~/.config/just"
"configs/just/dots.just" = { target = "~/.config/just/dots.just", type = "template" }
[default.variables]
[desktop]
depends = [ "default" ]
[desktop.files]
"configs/mpv" = "~/.config/mpv"
"configs/swappy" = "~/.config/swappy"
[wm.files]
"configs/uwsm" = "~/.config/uwsm"
"configs/vimiv" = "~/.config/vimiv"
[niri]
depends = [ "wm", "terminals" ]
[niri.files]
"configs/hypr/base/hypridle.conf" = "~/.config/hypr/hypridle.conf"
"configs/niri/base" = "~/.config/niri"
"configs/noctalia" = "~/.config/noctalia"
"configs/systemd/user/niri.service.wants" = "~/.config/systemd/user/niri.service.wants"
[hyprland.files]
"configs/hypr/base" = "~/.config/hypr"
"configs/systemd/waybar.service.d/hyprland-override.conf" = "~/.config/systemd/waybar.service.d/override.conf"
[wayland-composed.files]
"configs/mako" = "~/.config/mako"
"configs/rofi" = "~/.config/rofi"
"configs/swaync" = "~/.config/swaync"
"configs/waybar" = "~/.config/waybar"
"configs/wlogout" = "~/.config/wlogout"
"configs/wpaperd" = "~/.config/wpaperd"
[default.files]
"configs/fish" = "~/.config/fish"
"configs/alacritty" = "~/.config/alacritty"
"configs/atuin" = "~/.config/atuin"
"configs/bat" = "~/.config/bat"
"configs/containers" = "~/.config/containers"
"configs/fzf" = "~/.config/fzf"
"configs/ghostty" = "~/.config/ghostty"
"configs/git" = "~/.config/git"
"configs/hypr/base" = "~/.config/hypr"
"configs/kitty" = "~/.config/kitty"
"configs/lazygit" = "~/.config/lazygit"
"configs/mako" = "~/.config/mako"
"configs/mise" = "~/.config/mise"
"configs/mpv" = "~/.config/mpv"
"configs/nvim" = "~/.config/nvim"
"configs/rofi" = "~/.config/rofi"
"configs/swappy" = "~/.config/swappy"
"configs/swaync" = "~/.config/swaync"
"configs/uwsm" = "~/.config/uwsm"
"configs/vimiv" = "~/.config/vimiv"
"configs/waybar" = "~/.config/waybar"
"configs/wezterm" = "~/.config/wezterm"
"configs/wlogout" = "~/.config/wlogout"
"configs/wpaperd" = "~/.config/wpaperd"
"configs/yazi" = "~/.config/yazi"
"configs/systemd" = "~/.config/systemd"
"configs/zed" = "~/.config/zed"
[terminals.files]
"configs/alacritty" = "~/.config/alacritty"
"configs/ghostty" = "~/.config/ghostty"
"configs/kitty" = "~/.config/kitty"
"configs/wezterm" = "~/.config/wezterm"
[default.variables]
[cli-utils.files]
"configs/atuin" = "~/.config/atuin"
"configs/bat" = "~/.config/bat"
"configs/fish" = "~/.config/fish"
"configs/fzf" = "~/.config/fzf"
"configs/yazi" = "~/.config/yazi"
[dev]
depends = [ "cli-utils", "terminals" ]
[dev.files]
"configs/containers" = "~/.config/containers"
"configs/git" = "~/.config/git"
"configs/lazygit" = "~/.config/lazygit"
"configs/mise" = "~/.config/mise"
"configs/nvim" = "~/.config/nvim"
"configs/rumdl" = "~/.config/rumdl"
"configs/zed" = "~/.config/zed"
[nvim-min.files]
"configs/nvim-min" = "~/.config/nvim"
[niri.files]
"configs/niri" = "~/.config/niri"

View file

@ -1,6 +0,0 @@
includes = [ ]
packages = [ "default" ]
[files]
[variables]

View file

@ -1,7 +1,7 @@
syntax = "All"
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_type = "indent_type"
indent_width = 2
quote_style = "AutoPreferDouble"
call_parentheses = "Always"

View file

@ -1,12 +1,3 @@
[formatting]
inline_table_expand = false
array_auto_expand = false
align_entries = true
align_comments = true
array_auto_collapse = false
compact_arrays = false
compact_inline_tables = false
indent_tables = true
indent_entries = true
reorder_keys = true
reorder_inline_tables = true

View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
systemctl --user daemon-reload

29
bootstrap/bootstrap.sh Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -eou pipefail
export ANSIBLE_STDOUT_CALLBACK=minimal
if ! command -v uv >/dev/null 2>&1; then
echo -e "Installing UV...\n"
curl -LsSf https://astral.sh/uv/install.sh | sh
fi
echo -e "Executing playbook...\n"
if [[ -d ~/.config/dotfiles ]]; then
pushd ~/.config/dotfiles/bootstrap/ || exit
# dotfiles are cloned, executed localy
uvx --from ansible ansible-playbook --ask-become-pass bootstrap.yaml
else
# dotfiles are not cloned, executed remotly
uvx --from ansible ansible-pull --ask-become-pass --url ssh://git@git.alecodes.page:24062/alecodes/dots.git bootstrap/bootstrap.yaml
fi
popd || exit
echo -e "Done!\n"

69
bootstrap/bootstrap.yaml Normal file
View file

@ -0,0 +1,69 @@
- name: Bootstrap system installation
hosts: localhost
vars_files:
- ./variables.yaml
tasks:
- name: Fedora setup
when: ansible_facts['distribution'] == "Fedora"
block:
- name: Enable copr repos
become: true
loop: "{{ distros.fedora.copr }}"
community.general.copr:
state: enabled
name: "{{ item }}"
- name: Install packages
become: true
ansible.builtin.package:
state: present
name: "{{ distros.Global.packages }}"
- name: 'Ensure rustup is setup'
ansible.builtin.command: "{{ (ansible_facts['pkg_mgr'] in ['dnf5']) | ternary('rustup-init -y --no-modify-path', 'rustup --no-modify-path -y') }}"
args:
creates: ~/.cargo/env
- name: "Installing Cargo Binstall"
ansible.builtin.unarchive:
remote_src: true
src: https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
dest: "{{ ansible_env.HOME }}/.cargo/bin/"
keep_newer: true
extra_opts:
- "--no-anchored"
- "cargo-binstall"
- name: 'Install cargo packages'
loop: "{{ distros[ansible_facts['distribution']].cargo }}"
register: cargo_log
notify:
- Deploy dots
- Install yazi packages
ansible.builtin.command:
cmd: "cargo binstall --no-confirm --locked {{ item.pkg }}"
creates: "{{ ansible_env.HOME }}/.cargo/bin/{{ item.bin }}"
- name: Generate an OpenSSH keypair
community.crypto.openssh_keypair:
path: ~/.ssh/id_ed25519
type: ed25519
- name: Clone dotfiles
ignore_errors: true
notify:
- Deploy dots
- Install yazi packages
ansible.builtin.git:
accept_newhostkey: true
repo: ssh://git@git.alecodes.page:24062/alecodes/dots.git
dest: ~/.config/dotfiles
update: true
version: main
handlers:
- name: Deploy dots
ansible.builtin.command: tuckr add *
- name: Install yazi packages
ansible.builtin.command: ya pkg install

View file

@ -1,88 +0,0 @@
age
arch-update
atuin
base
base-devel
bat
bluetui
bluez
bluez-utils
brave-bin
bun-bin
catppuccin-cursors-macchiato
catppuccin-gtk-theme-macchiato
cava
celluloid
cliphist
composer
deno
dotter-rs-bin
dunst
eza
fish
flatpak
fzf
git
gitleaks
gnome-disk-utility
gnome-keyring
hypridle
just
kitty
kvantum
kvantum-theme-catppuccin-git
lazygit
lostfiles
lxappearance
ly
nautilus
nautilus-admin-gtk4
nautilus-image-converter
nautilus-open-any-terminal
neovim
niri
noctalia-shell
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
paccache-hook
paru
plymouth-theme-catppuccin-macchiato-git
podman
power-profiles-daemon
pre-commit
pwvucontrol
qt5-wayland
qt6-wayland
rsync
seahorse
sops
swappy
tailscale
tealdeer
trash-cli
ttf-dejavu
ttf-fira-code
ttf-fira-mono
ttf-fira-sans
ttf-firacode-nerd
ttf-jetbrains-mono-nerd
ttf-ms-win11-auto
ttf-nerd-fonts-symbols-mono
ttf-nunito
ttf-opensans
ttf-roboto
ttf-roboto-mono-nerd
udiskie
unrar
vim
wget
wlsunset
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
xdg-terminal-exec
xwayland-satellite
yazi
zed
zip
zoxide

View file

@ -1,216 +0,0 @@
age
arch-update
arm-none-eabi-binutils
arm-none-eabi-gcc
arm-none-eabi-newlib
atuin
avr-binutils
avr-gcc
avr-libc
avrdude
base
base-devel
bat
beekeeper-studio-bin
bitwarden
blueman
bluetui
bluez
bluez-utils
brave-bin
btrfs-progs
bun-bin
catppuccin-cursors-macchiato
catppuccin-gtk-theme-macchiato
catppuccin-sddm-theme-macchiato
cava
celluloid
cliphist
composer
cpio
cronie
cups
deno
dfu-programmer
dfu-util
dolphin
dotter-rs-bin
dunst
efibootmgr
egl-wayland
evince
eza
fd
feishin-bin
fgj
firefox
fish
flatpak
font-manager
fzf
gedit
git
gitleaks
gnome-disk-utility
gnome-keyring
gnome-shell-extension-appindicator
gnome-system-monitor
goimapnotify
grim
gst-plugin-pipewire
hoppscotch-bin
htop
hypridle
hyprland
hyprlock
hyprpaper
hyprpolkitagent
hyprshot
intel-media-driver
intel-ucode
iwd
just
kitty
kvantum
kvantum-theme-catppuccin-git
kwallet-pam
kwalletmanager
lazygit
lib32-nvidia-580xx-utils
libcurl-compat
libfido2
libre-menu-editor
libreoffice-still
libva-intel-driver
limine
limine-mkinitcpio-hook
limine-snapper-sync
linux-firmware
linux-headers
linux-lts
linux-lts-headers
linux-zen
linux-zen-headers
lostfiles
lxappearance
ly
man-db
mutt-wizard
nano
nautilus
nautilus-admin-gtk4
nautilus-image-converter
nautilus-open-any-terminal
neomutt
neovim
network-manager-applet
networkmanager
niri
noctalia-shell
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
nss-mdns
nvidia-580xx-dkms
nvidia-580xx-settings
nvtop
obs-studio
obsidian
ouch
paccache-hook
paru
paru-debug
perl-image-exiftool
php-pear
picard
pipewire-alsa
pipewire-jack
pipewire-pulse
plymouth-theme-catppuccin-macchiato-git
pnpm
podman
polkit-kde-agent
power-profiles-daemon
pre-commit
pwvucontrol
python-pip
qt5-wayland
qt6-wayland
resvg
riscv64-elf-binutils
riscv64-elf-gcc
riscv64-elf-newlib
rofi
rofi-rbw
rofimoji
rsync
rtl8821ce-dkms-git
rust-analyzer
seahorse
selectdefaultapplication-fork-git
slimbookbattery
slurp
smartmontools
snap-pac
snp
sof-firmware
sops
stylepak-git
swappy
swaync
swayosd-git
system-config-printer
tailscale
tealdeer
texlive-fontsextra
toml-bombadil
trash-cli
tsukimi-bin
ttf-dejavu
ttf-fira-code
ttf-fira-mono
ttf-fira-sans
ttf-firacode-nerd
ttf-jetbrains-mono-nerd
ttf-ms-win11-auto
ttf-nerd-fonts-symbols-mono
ttf-nunito
ttf-opensans
ttf-roboto
ttf-roboto-mono-nerd
tuckr
udiskie
ueberzugpp
unrar
uwsm
vim
vulkan-intel
vulkan-nouveau
vulkan-radeon
waybar
waypaper
webkit2gtk-4.1
wev
wezterm
wget
wireless_tools
wlogout
wlsunset
wofi
wpaperd
wtype
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
xdg-terminal-exec
xf86-video-amdgpu
xf86-video-ati
xf86-video-nouveau
xorg-server
xorg-xinit
xwayland-satellite
yadm
yazi
zed
zip
zoxide
zram-generator

View file

@ -1,23 +0,0 @@
bat
curl
du-dust
duf
eza
fd-find
fish
fuse3
fzf
grep
jq
just
megatools
ncdu
neovim
rclone
ripgrep
rsync
sed
sudo
vim
wget
zoxide

81
bootstrap/variables.yaml Normal file
View file

@ -0,0 +1,81 @@
distros:
Fedora:
copr:
- atim/lazygit
- the4runner/firefox-dev
packages: {}
cargo:
- pkg: yazi-fm
bin: yazi
- pkg: yazi-cli
bin: yazi
- pkg: tuckr
bin: tuckr
Arch:
packages:
- tuckr-git
cargo: {}
Global:
packages:
- adwaita-cursor-theme
- adwaita-icon-theme
- adwaita-icon-theme-legacy
- adwaita-mono-fonts
- adwaita-sans-fonts
- bat
- breeze-icon-theme
- breeze-icon-theme-fedora
- curl
- duf
- eza
- fd-find
- firefox-dev
- fish
- flatpak
- fzf
- git
- grim
- kitty
- lazygit
- neovim
- nodejs
- openssh
- openssh-askpass
- openssh-clients
- openssh-server
- openssl
- openssl-devel
- openssl-libs
- php-cli
- php-common
- php-intl
- php-mbstring
- php-pecl-zip
- php-process
- php-soap
- php-xml
- rhythmbox
- ripgrep
- rofi-themes
- rofi-wayland
- rofimoji
- rootfiles
- rsync
- rustup
- sd
- sed
- sushi
- swappy
- tailscale
- tealdeer
- trash-cli
- tree
- tree-sitter-cli
- udisks2
- unrar
- unrar-free
- unzip
- zip
- zoxide

View file

@ -1,3 +1,4 @@
[Pod]
PodName=databases
PublishPort=9090:3000
PublishPort=5432:5432

View file

@ -1,11 +1,14 @@
[Container]
Image=docker.io/adminneoorg/adminneo
Image=docker.io/dbgate/dbgate
AutoUpdate=registry
Network=host
Environment=NEO_THEME=default
Environment=NEO_COLOR_VARIANT=green
Environment=NEO_JSON_VALUES_DETECTION=true
Environment=NEO_JSON_VALUES_AUTO_FORMAT=true
Environment=NEO_NAVIGATION_MODE=dual
Environment=NEO_PREFER_SELECTION=true
Environment=NEO_RELATION_LINKS=true
Pod=dev-databases.pod
Environment=CONNECTIONS=POSTGRES
Environment=LABEL_POSTGRES="Localhost Postgres"
Environment=ENGINE_POSTGRES=postgres@dbgate-plugin-postgres
Environment=SERVER_POSTGRES=localhost
Environment=PORT_POSTGRES=5432
Environment=USER_POSTGRES=postgres
Environment=PASSWORD_POSTGRES=1234
[Service]
ExecStartPost=/usr/bin/xdg-open http://localhost:9090

View file

@ -1,8 +1,8 @@
fish_config theme choose "Catppuccin Macchiato"
if status is-interactive
# Commands to run in interactive sessions can go here
zoxide init --cmd cd fish | source
atuin init fish | source
mise activate fish | source
end

View file

@ -1,13 +1,52 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:4300
SETUVAR __fish_initialized:3800
SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme
SETUVAR _fisher_jorgebucaran_2F_autopair_2E_fish_files:\x7e/\x2econfig/fish/functions/_autopair_backspace\x2efish\x1e\x7e/\x2econfig/fish/functions/_autopair_insert_left\x2efish\x1e\x7e/\x2econfig/fish/functions/_autopair_insert_right\x2efish\x1e\x7e/\x2econfig/fish/functions/_autopair_insert_same\x2efish\x1e\x7e/\x2econfig/fish/functions/_autopair_tab\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/autopair\x2efish
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ecatppuccin/fish\x1epure\x2dfish/pure\x1ejorgebucaran/autopair\x2efish
SETUVAR _fisher_pure_2D_fish_2F_pure_files:\x7e/\x2econfig/fish/functions/_pure_check_availability\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_check_for_new_release\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_cgroup_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_pid_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_format_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_get_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_inside_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_single_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_namespace\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_place_iterm2_prompt_mark\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prefix_root_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt_rows\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_aws_profile\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_beginning\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_command_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_current_folder\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ending\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_first_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_dirty\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_pending_commits\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_stash\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_k8s\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_new_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_nixdevshell\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ssh\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_system_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_vimode\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_virtualenv\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_color\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_default\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_string_width\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_user_at_host\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_greeting\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_title\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_pure_init\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/pure\x2efish
SETUVAR _fisher_upgraded_to_4_4:\x1d
SETUVAR fish_color_autosuggestion:6e738d
SETUVAR fish_color_cancel:ed8796
SETUVAR fish_color_command:8aadf4
SETUVAR fish_color_comment:8087a2
SETUVAR fish_color_cwd:eed49f
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:f5a97f
SETUVAR fish_color_error:ed8796
SETUVAR fish_color_escape:ee99a0
SETUVAR fish_color_gray:6e738d
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:8aadf4
SETUVAR fish_color_host_remote:a6da95
SETUVAR fish_color_keyword:ed8796
SETUVAR fish_color_normal:cad3f5
SETUVAR fish_color_operator:f5bde6
SETUVAR fish_color_option:a6da95
SETUVAR fish_color_param:f0c6c6
SETUVAR fish_color_quote:a6da95
SETUVAR fish_color_redirection:f5bde6
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d363a4f
SETUVAR fish_color_selection:\x2d\x2dbackground\x3d363a4f
SETUVAR fish_color_status:ed8796
SETUVAR fish_color_user:8bd5ca
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:\x1d
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_background:\x1d
SETUVAR fish_pager_color_completion:cad3f5
SETUVAR fish_pager_color_description:6e738d
SETUVAR fish_pager_color_prefix:f5bde6
SETUVAR fish_pager_color_progress:6e738d
SETUVAR fish_pager_color_secondary_background:\x1d
SETUVAR fish_pager_color_secondary_completion:\x1d
SETUVAR fish_pager_color_secondary_description:\x1d
SETUVAR fish_pager_color_secondary_prefix:\x1d
SETUVAR fish_pager_color_selected_background:\x1d
SETUVAR fish_pager_color_selected_completion:\x1d
SETUVAR fish_pager_color_selected_description:\x1d
SETUVAR fish_pager_color_selected_prefix:\x1d
SETUVAR fish_user_paths:/home/aleidk/\x2ecargo/bin\x1e/usr/local/sbin\x1e/usr/local/bin\x1e/usr/bin\x1e/var/lib/flatpak/exports/bin\x1e/home/aleidk/\x2elocal/bin
SETUVAR pure_begin_prompt_with_current_directory:true
SETUVAR pure_check_for_new_release:false

View file

@ -1,3 +0,0 @@
function dots --wraps='just -g' --description 'alias dots just -g'
just -g $argv
end

View file

@ -1,7 +0,0 @@
function envsource
for line in (cat $argv[1] | grep -v -e '^\([[:space:]]\|#.*\)*$')
set item (string split -m 1 '=' $line)
set -gx $item[1] $item[2]
echo "Exported key $item[1]"
end
end

View file

@ -1,31 +0,0 @@
function mega-dl --argument-names link
set server "t-800"
if test -z $link
echo "No arguments provided!"
return
end
# rotate vpn proxy exit node to get new ip
echo "Requesting new public ip to VPN provider"
curl -s -X PUT $server:8000/v1/vpn/status --json '{"status": "stopped"}' > /dev/null
curl -s -X PUT $server:8000/v1/vpn/status --json '{"status": "running"}' > /dev/null
while true
set -l response (curl -s $server:8000/v1/publicip/ip)
set -l public_ip (echo $response | jq -r ".public_ip")
set -l country (echo $response | jq -r ".country")
set -l city (echo $response | jq -r ".city")
# wait for the connection to be stablished
if test -z $public_ip
sleep 0.2
else
echo -e "New IP is $public_ip from $country/$city\n"
break
end
end
# use vpn as proxy
megatools dl --proxy http://$server:8888 $link
end

View file

@ -1,28 +0,0 @@
function ssh-tunnel
set -l label "Select SSH tunnel to activate:"
set -l tunnel (fd . ~/.ssh/tunnels.d/ | fzf -d / --with-nth=6 --accept-nth=6 --nth=6 --preview='bat {}' --input-label=foo --input-label-pos=bottom | cut -d "." -f 1)
if test -z $tunnel
return
end
envsource "$HOME/.ssh/tunnels.d/$tunnel.conf" > /dev/null
echo "Activating connection $tunnel..."
if not systemctl --user is-active "database-ssh-tunnel@$tunnel.service" -q
systemctl --user start "database-ssh-tunnel@$tunnel.service"
end
if test (string lower $DB_START_EXPLORER) = "true"
echo "Opening Databse in browser, password will be copied to the clipboard..."
if not systemctl --user is-active "dev-dbui.service" -q
systemctl --user start "dev-dbui.service"
end
wl-copy "$DB_PASSWORD"
xdg-open "http://localhost:8080?$DB_DRIVER=$TUNNEL_LOCAL_ADDRESS:$TUNNEL_LOCAL_PORT&username=$DB_USER&db=$DB_NAME&ns=public"
end
end

View file

@ -1,10 +1,7 @@
theme = Catppuccin Macchiato
font-family = JetBrainsMono Nerd Font
theme = catppuccin-macchiato
# Common
keybind = global:ctrl+shift+x=toggle_quick_terminal
keybind = ctrl+space>o=write_selection_file:open
keybind = ctrl+space>shift+o=write_selection_file:paste

View file

@ -1,7 +1,7 @@
general {
lock_cmd = qs -c noctalia-shell ipc call lockScreen lock # avoid starting multiple hyprlock instances.
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = niri msg action power-on-monitors # to avoid having to press a key twice to turn on the display.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
listener {
@ -23,9 +23,9 @@ listener {
}
listener {
timeout = 600 # 5.5min
on-timeout = niri msg action power-off-monitors # screen off when timeout has passed
on-resume = niri msg action power-on-monitors && brightnessctl -r # screen on when activity is detected after timeout has fired.
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
}
listener {

View file

@ -1,49 +0,0 @@
packages_file := quote(justfile_directory() / "bootstrap/pkgs_arch.txt")
bootstrap: setup_pacman setup_paru install_packages
install_packages: update
paru -S --needed --noconfirm - < {{ packages_file }}
update:
paru -Syu --noconfirm
clean_orphans:
-sudo pacman -Qdtq | sudo pacman -Rns -
@echo "\n\n{{ BLUE }}The following files are not owned by any package anymore:{{ NORMAL }}"
# setup sudo:
# sudo loop
# show asterisk on password
setup_pacman:
# add automatic updates
sudo sed -i \
-e 's/#\?ParallelDownloads = [0-9]\+/ParallelDownloads = {{ num_cpus() }}/' \
-e 's/#\?Color\+/Color/' \
-e 's/#\?ILoveCandy\+/ILoveCandy/' \
-e 's/#\?VerbosePkgLists\+/VerbosePkgLists/' \
/etc/pacman.conf
setup_paru:
#!/usr/bin/env bash
set -euxo pipefail
if ! command -v paru &> /dev/null ; then
tmp=$(mktemp -d)
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git "$tmp"
cd "$tmp"
makepkg -si
cd -
rm -rf "$tmp"
fi
sudo sed -i \
-e 's/#\?BottomUp\+/BottomUp/' \
-e 's/#\?SudoLoop\+/SudoLoop/' \
-e 's/#\?CombinedUpgrade\+/CombinedUpgrade/' \
-e 's/#\?CleanAfter\+/CleanAfter/' \
-e 's/#\?NewsOnUpgrade\+/NewsOnUpgrade/' \
/etc/paru.conf

View file

@ -1,10 +0,0 @@
set working-directory := "{{ dotter.current_dir }}"
deploy:
dotter deploy
enable_tailscale:
sudo tailscale set --operator=$USER
tailscale configure systray --enable-startup=systemd
systemctl --user daemon-reload
systemctl --user enable --now tailscale-systray

View file

@ -1,2 +0,0 @@
mod dots
mod arch

View file

@ -1,120 +0,0 @@
lines 30
#: The number of lines shown in the panel. Ignored for background,
#: centered, and vertical panels. If it has the suffix px then it sets
#: the height of the panel in pixels instead of lines.
columns 200
#: The number of columns shown in the panel. Ignored for background,
#: centered, and horizontal panels. If it has the suffix px then it
#: sets the width of the panel in pixels instead of columns.
edge top
#: Which edge of the screen to place the panel on. Note that some
#: window managers (such as i3) do not support placing docked windows
#: on the left and right edges. The value background means make the
#: panel the "desktop wallpaper". Note that when using sway if you set
#: a background in your sway config it will cover the background drawn
#: using this kitten. Additionally, there are three more values:
#: center, center-sized and none. The value center anchors the panel
#: to all sides and covers the entire display (on macOS the part of
#: the display not covered by titlebar and dock). The panel can be
#: shrunk and placed using the margin parameters. The value none
#: anchors the panel to the top left corner and should be placed using
#: the margin parameters. Its size is set by lines and columns. The
#: value center-sized is just like none except that the panel is
#: centered instead of in the top left corner and the margins have no
#: effect.
background_opacity 1
#: The background opacity of the window. This works the same as the
#: kitty option of the same name, it is present here as it has a
#: different default value for the quick access terminal.
# hide_on_focus_loss no
#: Hide the window when it loses keyboard focus automatically. Using
#: this option will force focus_policy to on-demand.
# grab_keyboard no
#: Grab the keyboard. This means global shortcuts defined in the OS
#: will be passed to kitty instead. Useful if you want to create an OS
#: modal window. How well this works depends on the OS/window
#: manager/desktop environment. On Wayland it works only if the
#: compositor implements the inhibit-keyboard-shortcuts protocol
#: <https://wayland.app/protocols/keyboard-shortcuts-inhibit-
#: unstable-v1>. On macOS Apple doesn't allow applications to grab the
#: keyboard without special permissions, so it doesn't work.
margin_left 50
#: Set the left margin for the panel, in pixels. Has no effect for
#: right edge panels. Only works on macOS and Wayland compositors that
#: supports the wlr layer shell protocol.
margin_right 50
#: Set the right margin for the panel, in pixels. Has no effect for
#: left edge panels. Only works on macOS and Wayland compositors that
#: supports the wlr layer shell protocol.
margin_top 10
#: Set the top margin for the panel, in pixels. Has no effect for
#: bottom edge panels. Only works on macOS and Wayland compositors
#: that supports the wlr layer shell protocol.
# margin_bottom 0
#: Set the bottom margin for the panel, in pixels. Has no effect for
#: top edge panels. Only works on macOS and Wayland compositors that
#: supports the wlr layer shell protocol.
# kitty_conf
#: Path to config file to use for kitty when drawing the window. Can
#: be specified multiple times. By default, the normal kitty.conf is
#: used. Relative paths are resolved with respect to the kitty config
#: directory.
kitty_override window_padding_width=0 8
#: Override individual kitty configuration options, can be specified
#: multiple times. Syntax: kitty_override name=value. For example:
#: kitty_override font_size=20.
app_id kitty-quick-access
#: On Wayland set the namespace of the layer shell surface. On X11 set
#: the WM_CLASS assigned to the quick access window. (Linux only)
# output_name
#: The panel can only be displayed on a single monitor (output) at a
#: time. This allows you to specify which output is used, by name. If
#: not specified the compositor will choose an output automatically,
#: typically the last output the user interacted with or the primary
#: monitor. Run kitten panel --output-name list to get a list of
#: available outputs. Use listjson for a json encoded output. Note
#: that on Wayland the output can only be set at panel creation time,
#: it cannot be changed after creation, nor is there anyway to display
#: a single panel on all outputs. Please complain to the Wayland
#: developers about this.
# start_as_hidden no
#: Whether to start the quick access terminal hidden. Useful if you
#: are starting it as part of system startup.
# focus_policy exclusive
#: On a Wayland compositor that supports the wlr layer shell protocol,
#: specify the focus policy for keyboard interactivity with the panel.
#: Please refer to the wlr layer shell protocol documentation for more
#: details. Note that different Wayland compositors behave very
#: differently with exclusive, your mileage may vary. On macOS,
#: exclusive and on-demand are currently the same.

View file

@ -155,8 +155,8 @@ gui:
# Config relating to git
git:
# See https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md
pagers:
- # Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never'
paging:
# Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never'
colorArg: always
# e.g.
# diff-so-fancy
@ -406,7 +406,7 @@ keybinding:
viewResetOptions: D
fetch: f
toggleTreeView: '`'
openMergeOptions: M
openMergeTool: M
openStatusFilter: <c-b>
copyFileInfoToClipboard: "y"
branches:

View file

@ -1,8 +0,0 @@
include "noctalia-shell.kdl"
include "keys.kdl"
include "options.kdl"
spawn-at-startup "./fix_float.py"
spawn-at-startup "udieskie"
include "include/local.kdl"

View file

@ -1,291 +0,0 @@
binds {
Mod+Shift+Slash {
show-hotkey-overlay
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Launchers │
// ╰─────────────────────────────────────────────────────────╯
//
Mod+Return hotkey-overlay-title="Open Terminal" {
spawn "kitty"
}
Mod+Shift+Return hotkey-overlay-title="Open Quick Terminal" {
spawn "kitten" "quick_access_terminal"
}
Mod+D hotkey-overlay-title="Launcher" {
spawn "qs" "ipc" "-c" "noctalia-shell" "call" "launcher" "toggle"
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Layout │
// ╰─────────────────────────────────────────────────────────╯
//
Mod+R {
switch-preset-column-width
}
Mod+Shift+R {
expand-column-to-available-width
}
Mod+F {
maximize-column
}
Mod+Shift+F {
fullscreen-window
}
Mod+C {
center-column
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Window Management │
// ╰─────────────────────────────────────────────────────────╯
//
Mod+W repeat=false {
toggle-overview
}
Mod+Shift+Q repeat=false {
close-window
}
//
// ── Change focus ────────────────────────────────────────────────────
//
Mod+Tab {
focus-column-right-or-first
}
Mod+shift+Tab {
focus-column-left-or-last
}
Mod+Left {
focus-column-left
}
Mod+Down {
focus-window-or-workspace-down
}
Mod+Up {
focus-window-or-workspace-up
}
Mod+Right {
focus-column-or-monitor-right
}
Mod+Ctrl+Left {
consume-or-expel-window-left
}
Mod+Ctrl+Right {
consume-or-expel-window-right
}
Mod+Alt+Left {
consume-window-into-column
}
Mod+Alt+Right {
expel-window-from-column
}
Mod+H {
focus-column-or-monitor-left
}
Mod+J {
focus-window-or-workspace-down
}
Mod+K {
focus-window-or-workspace-up
}
Mod+L {
focus-column-or-monitor-right
}
Mod+Ctrl+H {
consume-or-expel-window-left
}
Mod+Ctrl+L {
consume-or-expel-window-right
}
Mod+Alt+H {
consume-window-into-column
}
Mod+Alt+L {
expel-window-from-column
}
Mod+WheelScrollDown cooldown-ms=150 {
focus-column-right
}
Mod+WheelScrollUp cooldown-ms=150 {
focus-column-left
}
Mod+Space {
switch-focus-between-floating-and-tiling
}
//
// ── Move windows ────────────────────────────────────────────────────
//
Mod+Shift+Left {
move-column-left
}
Mod+Shift+Down {
move-window-down-or-to-workspace-down
}
Mod+Shift+Up {
move-window-up-or-to-workspace-up
}
Mod+Shift+Right {
move-column-right
}
Mod+Shift+H {
move-column-left
}
Mod+Shift+J {
move-window-down-or-to-workspace-down
}
Mod+Shift+K {
move-window-up-or-to-workspace-up
}
Mod+Shift+L {
move-column-right
}
Mod+Ctrl+WheelScrollDown cooldown-ms=150 {
move-column-to-workspace-down
}
Mod+Ctrl+WheelScrollUp cooldown-ms=150 {
move-column-to-workspace-up
}
Mod+WheelScrollRight {
focus-column-right
}
Mod+WheelScrollLeft {
focus-column-left
}
Mod+Ctrl+WheelScrollRight {
move-column-right
}
Mod+Ctrl+WheelScrollLeft {
move-column-left
}
Mod+Ctrl+Shift+WheelScrollDown {
move-column-right
}
Mod+Ctrl+Shift+WheelScrollUp {
move-column-left
}
Mod+Shift+Space {
toggle-window-floating
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Workspaces │
// ╰─────────────────────────────────────────────────────────╯
//
Mod+Bar {
// Switches focus between the current and the previous workspace.
focus-workspace-previous
}
Mod+1 {
focus-workspace 1
}
Mod+2 {
focus-workspace 2
}
Mod+3 {
focus-workspace 3
}
Mod+4 {
focus-workspace 4
}
Mod+5 {
focus-workspace 5
}
Mod+6 {
focus-workspace 6
}
Mod+7 {
focus-workspace 7
}
Mod+8 {
focus-workspace 8
}
Mod+9 {
focus-workspace 9
}
Mod+Shift+1 {
move-window-to-workspace 1
}
Mod+Shift+2 {
move-window-to-workspace 2
}
Mod+Shift+3 {
move-window-to-workspace 3
}
Mod+Shift+4 {
move-window-to-workspace 4
}
Mod+Shift+5 {
move-window-to-workspace 5
}
Mod+Shift+6 {
move-window-to-workspace 6
}
Mod+Shift+7 {
move-window-to-workspace 7
}
Mod+Shift+8 {
move-window-to-workspace 8
}
Mod+Shift+9 {
move-window-to-workspace 9
}
Mod+Shift+WheelScrollDown cooldown-ms=150 {
focus-workspace-down
}
Mod+Shift+WheelScrollUp cooldown-ms=150 {
focus-workspace-up
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Volume │
// ╰─────────────────────────────────────────────────────────╯
//
XF86AudioRaiseVolume allow-when-locked=true {
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.025+"
}
XF86AudioLowerVolume allow-when-locked=true {
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.025-"
}
XF86AudioMute allow-when-locked=true {
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
}
XF86AudioMicMute allow-when-locked=true {
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
}
//
// ╭─────────────────────────────────────────────────────────╮
// │ Brightness │
// ╰─────────────────────────────────────────────────────────╯
//
XF86MonBrightnessUp allow-when-locked=true {
spawn "brightnessctl" "--class=backlight" "set" "+10%"
}
XF86MonBrightnessDown allow-when-locked=true {
spawn "brightnessctl" "--class=backlight" "set" "10%-"
}
Print {
screenshot
}
Shift+Print {
screenshot-window
}
Shift+Ctrl+Print hotkey-overlay-title="Edit image in Clipboard" {
spawn-sh "wl-paste | swappy -f -"
}
// Applications such as remote-desktop clients and software KVM switches may
// request that niri stops processing the keyboard shortcuts defined here
// so they may, for example, forward the key presses as-is to a remote machine.
// It's a good idea to bind an escape hatch to toggle the inhibitor,
// so a buggy application can't hold your session hostage.
//
// The allow-inhibiting=false property can be applied to other binds as well,
// which ensures niri always processes them, even when an inhibitor is active.
Mod+Escape allow-inhibiting=false {
toggle-keyboard-shortcuts-inhibit
}
Ctrl+Alt+Delete {
quit
}
}

View file

@ -1,16 +0,0 @@
window-rule {
// Rounded corners for a modern look.
geometry-corner-radius 20
// Clips window contents to the rounded corner boundaries.
clip-to-geometry true
}
debug {
// Allows notification actions and window activation from Noctalia.
honor-xdg-activation-with-invalid-serial
}
// Set the overview wallpaper on the backdrop.
layer-rule {
match namespace="^noctalia-overview*"
place-within-backdrop true
}

View file

@ -1,67 +0,0 @@
// ── Layout Config ───────────────────────────────────────────────────
layout {
gaps 10
always-center-single-column
center-focused-column "never"
preset-column-widths {
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.33333
proportion 0.5
proportion 0.66667
}
preset-window-heights {
}
default-column-width {
proportion 0.5
}
focus-ring {
// Uncomment this line to disable the focus ring.
// off
// How many logical pixels the ring extends out from the windows.
width 2
active-color "#7fc8ff"
inactive-color "#505050"
}
}
// ── Environment Variables ───────────────────────────────────────────
environment {
ELECTRON_OZONE_PLATFORM_HINT "auto"
QT_STYLE_OVERRIDE "kvantum"
QT_AUTO_SCREEN_SCALE_FACTOR "1"
QT_QPA_PLATFORM "wayland;xcb"
QT_WAYLAND_DISABLE_WINDOWDECORATION "1"
QT_QPA_PLATFORMTHEME "qt5ct"
MOZ_ENABLE_WAYLAND "1"
XCURSOR_SIZE "24"
GTK_THEME "catppuccin-macchiato-teal-standard-default"
SSH_AUTH_SOCK "$XDG_RUNTIME_DIR/rbw/ssh-agent-socket"
EDITOR "nvim"
VISUAL "nvim"
TERMINAL "/usr/bin/kitty"
}
// ── Input Options ───────────────────────────────────────────────────
input {
keyboard {
xkb {
layout "latam"
options "caps:escape,compose:lctrl-altgr"
}
numlock
}
touchpad {
tap
natural-scroll
}
focus-follows-mouse
}
// ── Misc ────────────────────────────────────────────────────────────
cursor {
xcursor-theme "catppuccin-macchiato-lavender-cursors"
xcursor-size 24
}
hotkey-overlay {
skip-at-startup
}
screenshot-path null

View file

@ -1,53 +0,0 @@
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" f you want.
match app-id="^org\\.wezfurlong\\.wezterm$"
default-column-width {
}
}
// Floatin Windows
window-rule {
match app-id="firefox$" title="^Picture-in-Picture$"
match app-id="^brave-.*-Default$"
// Extensions popup open-floating true
}
// Full width window
window-rule {
match app-id="beekeeper-studio"
open-maximized true
}
window-rule {
match app-id="^org\\.keepassxc\\.KeePassXC$"
match app-id="^org\\.gnome\\.World\\.Secrets$"
// block-out-from "screen-capture"
// Use this instead if you want them visible on third-party screenshot tools.
block-out-from "screencast"
}
window-rule {
match app-id="brave-browser"
match at-startup=true
default-column-width {
proportion 0.5
}
}
window-rule {
match title="^Meet: .*" app-id="brave-browser"
open-floating true
}
window-rule {
geometry-corner-radius 4
clip-to-geometry true
}
layer-rule {
match namespace="kitty-quick-access"
geometry-corner-radius 12
shadow {
on
spread 10
softness 20
offset x=-10 y=10
}
}

490
configs/niri/config.kdl Normal file
View file

@ -0,0 +1,490 @@
// ╭─────────────────────────────────────────────────────────╮
// │ Windows Rules │
// ╰─────────────────────────────────────────────────────────╯
window-rule {
// This regular expression is intentionally made as specific as possible,
// since this is the default config, and we want no false positives.
// You can get away with just app-id="wezterm" if you want.
match app-id="^org\\.wezfurlong\\.wezterm$"
default-column-width {
}
}
// Floatin Windows
window-rule {
match app-id="firefox$" title="^Picture-in-Picture$"
match app-id="^brave-.*-Default$"
// Extensions popup open-floating true
}
window-rule {
match app-id="^org\\.keepassxc\\.KeePassXC$"
match app-id="^org\\.gnome\\.World\\.Secrets$"
// block-out-from "screen-capture"
// Use this instead if you want them visible on third-party screenshot tools.
block-out-from "screencast"
}
window-rule {
match app-id="brave-browser"
match at-startup=true
default-column-width {
proportion 0.75
}
}
window-rule {
match title="^Meet: .*" app-id="brave-browser"
open-floating true
}
window-rule {
geometry-corner-radius 4
clip-to-geometry true
}
// ╭─────────────────────────────────────────────────────────╮
// │ Auto Start Apps │
// ╰─────────────────────────────────────────────────────────╯
spawn-at-startup "/usr/lib/pam_kwallet_init"
spawn-at-startup "udieskie"
spawn-at-startup "brave"
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
// ╭─────────────────────────────────────────────────────────╮
// │ System Config │
// ╰─────────────────────────────────────────────────────────╯
// ── Layout Config ───────────────────────────────────────────────────
layout {
gaps 10
always-center-single-column
center-focused-column "never"
preset-column-widths {
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
proportion 0.33333
proportion 0.5
proportion 0.66667
}
preset-window-heights {
}
default-column-width {
proportion 0.5
}
focus-ring {
// Uncomment this line to disable the focus ring.
// off
// How many logical pixels the ring extends out from the windows.
width 2
active-color "#7fc8ff"
inactive-color "#505050"
}
}
// ── Keybindings ─────────────────────────────────────────────────────
binds {
Mod+Shift+Slash {
show-hotkey-overlay
}
Mod+Return hotkey-overlay-title="Open a Terminal: kitty" {
spawn "kitty"
}
Mod+D hotkey-overlay-title="Run an Application: Rofi" {
spawn "rofi" "-show" "drun" "-run-command" "uwsm app -- {cmd}"
}
XF86AudioRaiseVolume allow-when-locked=true {
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"
}
XF86AudioLowerVolume allow-when-locked=true {
spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"
}
XF86AudioMute allow-when-locked=true {
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
}
XF86AudioMicMute allow-when-locked=true {
spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
}
XF86MonBrightnessUp allow-when-locked=true {
spawn "brightnessctl" "--class=backlight" "set" "+10%"
}
XF86MonBrightnessDown allow-when-locked=true {
spawn "brightnessctl" "--class=backlight" "set" "10%-"
}
// Open/close the Overview: a zoomed-out view of workspaces and windows.
// You can also move the mouse into the top-left hot corner,
// or do a four-finger swipe up on a touchpad.
Mod+A repeat=false {
toggle-overview
}
Mod+Shift+Q repeat=false {
close-window
}
Mod+Tab {
focus-column-right-or-first
}
Mod+shift+Tab {
focus-column-left-or-last
}
Mod+Left {
focus-column-left
}
Mod+Down {
focus-window-or-workspace-down
}
Mod+Up {
focus-window-or-workspace-up
}
Mod+Right {
focus-column-right
}
Mod+H {
focus-column-left
}
Mod+J {
focus-window-or-workspace-down
}
Mod+K {
focus-window-or-workspace-up
}
Mod+L {
focus-column-right
}
Mod+Shift+Left {
move-column-left
}
Mod+Shift+Down {
move-window-down-or-to-workspace-down
}
Mod+Shift+Up {
move-window-up-or-to-workspace-up
}
Mod+Shift+Right {
move-column-right
}
Mod+Shift+H {
move-column-left
}
Mod+Shift+J {
move-window-down-or-to-workspace-down
}
Mod+Shift+K {
move-window-up-or-to-workspace-up
}
Mod+Shift+L {
move-column-right
}
Mod+Home {
focus-column-first
}
Mod+End {
focus-column-last
}
Mod+Ctrl+Home {
move-column-to-first
}
Mod+Ctrl+End {
move-column-to-last
}
Mod+WheelScrollDown cooldown-ms=150 {
focus-column-right
}
Mod+WheelScrollUp cooldown-ms=150 {
focus-column-left
}
Mod+Ctrl+WheelScrollDown cooldown-ms=150 {
move-column-to-workspace-down
}
Mod+Ctrl+WheelScrollUp cooldown-ms=150 {
move-column-to-workspace-up
}
Mod+WheelScrollRight {
focus-column-right
}
Mod+WheelScrollLeft {
focus-column-left
}
Mod+Ctrl+WheelScrollRight {
move-column-right
}
Mod+Ctrl+WheelScrollLeft {
move-column-left
}
Mod+Shift+WheelScrollDown cooldown-ms=150 {
focus-workspace-down
}
Mod+Shift+WheelScrollUp cooldown-ms=150 {
focus-workspace-up
}
Mod+Ctrl+Shift+WheelScrollDown {
move-column-right
}
Mod+Ctrl+Shift+WheelScrollUp {
move-column-left
}
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
// discrete intervals.
// These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default.
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
Mod+1 {
focus-workspace 1
}
Mod+2 {
focus-workspace 2
}
Mod+3 {
focus-workspace 3
}
Mod+4 {
focus-workspace 4
}
Mod+5 {
focus-workspace 5
}
Mod+6 {
focus-workspace 6
}
Mod+7 {
focus-workspace 7
}
Mod+8 {
focus-workspace 8
}
Mod+9 {
focus-workspace 9
}
Mod+Shift+1 {
move-window-to-workspace 1
}
Mod+Shift+2 {
move-window-to-workspace 2
}
Mod+Shift+3 {
move-window-to-workspace 3
}
Mod+Shift+4 {
move-window-to-workspace 4
}
Mod+Shift+5 {
move-window-to-workspace 5
}
Mod+Shift+6 {
move-window-to-workspace 6
}
Mod+Shift+7 {
move-window-to-workspace 7
}
Mod+Shift+8 {
move-window-to-workspace 8
}
Mod+Shift+9 {
move-window-to-workspace 9
}
// Switches focus between the current and the previous workspace.
Mod+Bar {
focus-workspace-previous
}
// The following binds move the focused window in and out of a column.
// If the window is alone, they will consume it into the nearby column to the side.
// If the window is already in a column, they will expel it out.
Mod+BraceLeft {
consume-or-expel-window-left
}
Mod+BraceRight {
consume-or-expel-window-right
}
// Consume one window from the right to the bottom of the focused column.
Mod+Comma {
consume-window-into-column
}
// Expel the bottom window from the focused column to the right.
Mod+Period {
expel-window-from-column
}
Mod+R {
switch-preset-column-width
}
// Cycling through the presets in reverse order is also possible.
// Mod+R { switch-preset-column-width-back; }
Mod+Shift+R {
switch-preset-window-height
}
Mod+Ctrl+R {
reset-window-height
}
Mod+F {
maximize-column
}
Mod+Shift+F {
fullscreen-window
}
// Expand the focused column to space not taken up by other fully visible columns.
// Makes the column "fill the rest of the space".
Mod+Ctrl+F {
expand-column-to-available-width
}
Mod+C {
center-column
}
// Center all fully visible columns on screen.
Mod+Ctrl+C {
center-visible-columns
}
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus {
set-column-width "-10%"
}
Mod+Plus {
set-column-width "+10%"
}
// Finer height adjustments when in column with other windows.
Mod+Shift+Minus {
set-window-height "-10%"
}
Mod+Shift+Equal {
set-window-height "+10%"
}
// Move the focused window between the floating and the tiling layout.
Mod+Shift+Space {
toggle-window-floating
}
Mod+Space {
switch-focus-between-floating-and-tiling
}
// Toggle tabbed column display mode.
// Windows in this column will appear as vertical tabs,
// rather than stacked on top of each other.
Mod+W {
toggle-column-tabbed-display
}
Print {
screenshot
}
Shift+Print {
screenshot-window
}
Shift+Ctrl+Print hotkey-overlay-title="Edit image in Clipboard" {
spawn-sh "wl-paste | swappy -f -"
}
// Applications such as remote-desktop clients and software KVM switches may
// request that niri stops processing the keyboard shortcuts defined here
// so they may, for example, forward the key presses as-is to a remote machine.
// It's a good idea to bind an escape hatch to toggle the inhibitor,
// so a buggy application can't hold your session hostage.
//
// The allow-inhibiting=false property can be applied to other binds as well,
// which ensures niri always processes them, even when an inhibitor is active.
Mod+Escape allow-inhibiting=false {
toggle-keyboard-shortcuts-inhibit
}
// The quit action will show a confirmation dialog to avoid accidental exits.
Mod+Shift+E {
quit
}
Ctrl+Alt+Delete {
quit
}
}
// ── Environment Variables ───────────────────────────────────────────
environment {
QT_STYLE_OVERRIDE "kvantum"
QT_AUTO_SCREEN_SCALE_FACTOR "1"
QT_QPA_PLATFORM "wayland;xcb"
QT_WAYLAND_DISABLE_WINDOWDECORATION "1"
QT_QPA_PLATFORMTHEME "qt5ct"
MOZ_ENABLE_WAYLAND "1"
XCURSOR_SIZE "24"
GTK_THEME "catppuccin-macchiato-teal-standard-default"
SSH_AUTH_SOCK "$XDG_RUNTIME_DIR/rbw/ssh-agent-socket"
EDITOR "nvim"
VISUAL "nvim"
TERMINAL "/usr/bin/kitty"
}
// ── Display Options ─────────────────────────────────────────────────
output "eDP-1" {
off
}
output "HDMI-A-1" {
scale 1
mode "3440x1440"
}
output "DP-1" {
variable-refresh-rate on-demand=true
}
// ── Input Options ───────────────────────────────────────────────────
input {
keyboard {
xkb {
layout "latam"
options "caps:escape"
}
// Enable numlock on startup, omitting this setting disables it.
numlock
}
// Next sections include libinput settings.
// Omitting settings disables them, or leaves them at their default values.
// All commented-out settings here are examples, not defaults.
touchpad {
// off
tap
// dwt
// dwtp
// drag false
// drag-lock
natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "two-finger"
// disabled-on-external-mouse
}
mouse {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "no-scroll"
}
trackpoint {
// off
// natural-scroll
// accel-speed 0.2
// accel-profile "flat"
// scroll-method "on-button-down"
// scroll-button 273
// scroll-button-lock
// middle-emulation
}
// warp-mouse-to-focus
focus-follows-mouse
}
// ── Animations ──────────────────────────────────────────────────────
animations {
// Uncomment to turn off all animations.
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
// slowdown 3.0
}
// ── Misc ────────────────────────────────────────────────────────────
cursor {
xcursor-theme "catppuccin-macchiato-lavender-cursors"
xcursor-size 24
}
hotkey-overlay {
skip-at-startup
}
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
// If the client will specifically ask for CSD, the request will be honored.
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
// This option will also fix border/focus ring drawing behind some semitransparent windows.
// After enabling or disabling this, you need to restart the apps for this to take effect.
// prefer-no-csd
screenshot-path null

View file

@ -1,124 +0,0 @@
#!/usr/bin/python3
"""
Like open-float, but dynamically. Floats a window when it matches the rules.
Some windows don't have the right title and app-id when they open, and only set
them afterward. This script is like open-float for those windows.
Usage: fill in the RULES array below, then run the script.
"""
import json
import os
import re
from dataclasses import dataclass, field
from socket import AF_UNIX, SHUT_WR, socket
@dataclass(kw_only=True)
class Match:
title: str | None = None
app_id: str | None = None
def matches(self, window):
if self.title is None and self.app_id is None:
return False
matched = True
if self.title is not None:
matched &= re.search(self.title, window["title"]) is not None
if self.app_id is not None:
matched &= re.search(self.app_id, window["app_id"]) is not None
return matched
@dataclass
class Rule:
match: list[Match] = field(default_factory=list)
exclude: list[Match] = field(default_factory=list)
def matches(self, window):
if len(self.match) > 0 and not any(m.matches(window) for m in self.match):
return False
if any(m.matches(window) for m in self.exclude):
return False
return True
# Write your rules here. One Rule() = one window-rule {}.
RULES = [
# window-rule {} with one match.
Rule([Match(title="Bitwarden", app_id="^brave-.*-Default$")]),
# window-rule {} with one match and one exclude.
# Rule(
# [Match(title="rs")],
# exclude=[Match(app_id="Alacritty")],
# ),
# window-rule {} with two matches.
# Rule(
# [
# Match(app_id="^foot$"),
# Match(app_id="^mpv$"),
# ]
# ),
]
if len(RULES) == 0:
print("fill in the RULES list, then run the script")
exit()
niri_socket = socket(AF_UNIX)
niri_socket.connect(os.environ["NIRI_SOCKET"])
file = niri_socket.makefile("rw")
_ = file.write('"EventStream"')
file.flush()
niri_socket.shutdown(SHUT_WR)
windows = {}
def send(request):
with socket(AF_UNIX) as niri_socket:
niri_socket.connect(os.environ["NIRI_SOCKET"])
file = niri_socket.makefile("rw")
_ = file.write(json.dumps(request))
file.flush()
def float(id: int):
send({"Action": {"MoveWindowToFloating": {"id": id}}})
send({"Action": {"SetWindowWidth": {"id": id, "change": {"SetProportion": 20}}}})
send({"Action": {"SetWindowHeight": {"id": id, "change": {"SetProportion": 50}}}})
def update_matched(win):
win["matched"] = False
if existing := windows.get(win["id"]):
win["matched"] = existing["matched"]
matched_before = win["matched"]
win["matched"] = any(r.matches(win) for r in RULES)
if win["matched"] and not matched_before:
print(f"floating title={win['title']}, app_id={win['app_id']}")
float(win["id"])
for line in file:
event = json.loads(line)
if changed := event.get("WindowsChanged"):
for win in changed["windows"]:
update_matched(win)
windows = {win["id"]: win for win in changed["windows"]}
elif changed := event.get("WindowOpenedOrChanged"):
win = changed["window"]
update_matched(win)
windows[win["id"]] = win
elif changed := event.get("WindowClosed"):
del windows[changed["id"]]

View file

@ -1,34 +0,0 @@
spawn-at-startup "brave"
spawn-at-startup "firefox"
window-rule {
match app-id="firefox"
open-on-workspace "1"
open-focused true
default-column-width {
proportion 0.5
}
}
window-rule {
match app-id="brave-browser"
open-on-workspace "2"
open-focused false
default-column-width {
proportion 0.5
}
}
output "HDMI-A-1" {
scale 1
mode "3440x1440"
focus-at-startup
position x=1920 y=0
}
output "eDP-1" {
mode "1920x1080@60.000"
position x=0 y=0
layout {
default-column-width {
proportion 1.0
}
}
}

View file

@ -1,18 +0,0 @@
{
"mError": "#f38ba8",
"mHover": "#c6a0f6",
"mOnError": "#24273a",
"mOnHover": "#24273a",
"mOnPrimary": "#24273a",
"mOnSecondary": "#24273a",
"mOnSurface": "#cad3f5",
"mOnSurfaceVariant": "#cad3f5",
"mOnTertiary": "#24273a",
"mOutline": "#494d64",
"mPrimary": "#8bd5ca",
"mSecondary": "#c6a0f6",
"mShadow": "#1e2030",
"mSurface": "#1e1e2e",
"mSurfaceVariant": "#363a4f",
"mTertiary": "#b7bdf8"
}

View file

@ -1,38 +0,0 @@
{
"dark": {
"mPrimary": "#8bd5ca",
"mOnPrimary": "#24273a",
"mSecondary": "#c6a0f6",
"mOnSecondary": "#24273a",
"mTertiary": "#b7bdf8",
"mOnTertiary": "#24273a",
"mError": "#f38ba8",
"mOnError": "#24273a",
"mSurface": "#1e1e2e",
"mOnSurface": "#cad3f5",
"mSurfaceVariant": "#363a4f",
"mOnSurfaceVariant": "#cad3f5",
"mOutline": "#494d64",
"mShadow": "#1e2030",
"mHover": "#c6a0f6",
"mOnHover": "#24273a"
},
"light": {
"mPrimary": "#179299",
"mOnPrimary": "#eff1f5",
"mSecondary": "#8839ef",
"mOnSecondary": "#eff1f5",
"mTertiary": "#7287fd",
"mOnTertiary": "#eff1f5",
"mError": "#d20f39",
"mOnError": "#dce0e8",
"mSurface": "#eff1f5",
"mOnSurface": "#4c4f69",
"mSurfaceVariant": "#ccd0da",
"mOnSurfaceVariant": "#6c6f85",
"mOutline": "#a5adcb",
"mShadow": "#dce0e8",
"mHover": "#8839ef",
"mOnHover": "#eff1f5"
}
}

View file

@ -1,33 +0,0 @@
# Colors (Catppuccin Mocha)
[colors.bright]
black = '#585b70'
blue = '#74a8fc'
cyan = '#6bd7ca'
green = '#89d88b'
magenta = '#f2aede'
red = '#f37799'
white = '#bac2de'
yellow = '#ebd391'
[colors.cursor]
cursor = '#f5e0dc'
text = '#1e1e2e'
[colors.normal]
black = '#45475a'
blue = '#89b4fa'
cyan = '#94e2d5'
green = '#a6e3a1'
magenta = '#f5c2e7'
red = '#f38ba8'
white = '#a6adc8'
yellow = '#f9e2af'
[colors.primary]
background = '#1e1e2e'
foreground = '#cdd6f4'
[colors.selection]
background = '#585b70'
text = '#cdd6f4'

View file

@ -1,33 +0,0 @@
# Colors (Catppuccin Latte)
[colors.bright]
black = '#6c6f85'
blue = '#456eff'
cyan = '#2d9fa8'
green = '#49af3d'
magenta = '#fe85d8'
red = '#de293e'
white = '#bcc0cc'
yellow = '#eea02d'
[colors.cursor]
cursor = '#dc8a78'
text = '#eff1f5'
[colors.normal]
black = '#5c5f77'
blue = '#1e66f5'
cyan = '#179299'
green = '#40a02b'
magenta = '#ea76cb'
red = '#d20f39'
white = '#acb0be'
yellow = '#df8e1d'
[colors.primary]
background = '#eff1f5'
foreground = '#4c4f69'
[colors.selection]
background = '#acb0be'
text = '#4c4f69'

View file

@ -1,22 +0,0 @@
[colors]
foreground=cdd6f4
background=1e1e2e
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=a6adc8
bright0=585b70
bright1=f37799
bright2=89d88b
bright3=ebd391
bright4=74a8fc
bright5=f2aede
bright6=6bd7ca
bright7=bac2de
selection-foreground=cdd6f4
selection-background=585b70
cursor=1e1e2e f5e0dc

View file

@ -1,22 +0,0 @@
[colors]
foreground=c6d0f5
background=303446
regular0=51576d
regular1=e78284
regular2=a6d189
regular3=e5c890
regular4=8caaee
regular5=f4b8e4
regular6=81c8be
regular7=a5adce
bright0=626880
bright1=e67172
bright2=8ec772
bright3=d9ba73
bright4=7b9ef0
bright5=f2a4db
bright6=5abfb5
bright7=b5bfe2
selection-foreground=c6d0f5
selection-background=626880
cursor=303446 f2d5cf

View file

@ -1,22 +0,0 @@
palette = 0=#45475a
palette = 1=#f38ba8
palette = 2=#a6e3a1
palette = 3=#f9e2af
palette = 4=#89b4fa
palette = 5=#f5c2e7
palette = 6=#94e2d5
palette = 7=#a6adc8
palette = 8=#585b70
palette = 9=#f37799
palette = 10=#89d88b
palette = 11=#ebd391
palette = 12=#74a8fc
palette = 13=#f2aede
palette = 14=#6bd7ca
palette = 15=#bac2de
background = #1e1e2e
foreground = #cdd6f4
cursor-color = #f5e0dc
cursor-text = #1e1e2e
selection-background = #585b70
selection-foreground = #cdd6f4

View file

@ -1,22 +0,0 @@
palette = 0=#5c5f77
palette = 1=#d20f39
palette = 2=#40a02b
palette = 3=#df8e1d
palette = 4=#1e66f5
palette = 5=#ea76cb
palette = 6=#179299
palette = 7=#acb0be
palette = 8=#6c6f85
palette = 9=#de293e
palette = 10=#49af3d
palette = 11=#eea02d
palette = 12=#456eff
palette = 13=#fe85d8
palette = 14=#2d9fa8
palette = 15=#bcc0cc
background = #eff1f5
foreground = #4c4f69
cursor-color = #dc8a78
cursor-text = #eff1f5
selection-background = #acb0be
selection-foreground = #4c4f69

View file

@ -1,22 +0,0 @@
color0 #45475a
color1 #f38ba8
color2 #a6e3a1
color3 #f9e2af
color4 #89b4fa
color5 #f5c2e7
color6 #94e2d5
color7 #a6adc8
color8 #585b70
color9 #f37799
color10 #89d88b
color11 #ebd391
color12 #74a8fc
color13 #f2aede
color14 #6bd7ca
color15 #bac2de
background #1e1e2e
selection_foreground #1e1e2e
cursor #f5e0dc
cursor_text_color #1e1e2e
foreground #cdd6f4
selection_background #cdd6f4

View file

@ -1,22 +0,0 @@
color0 #5c5f77
color1 #d20f39
color2 #40a02b
color3 #df8e1d
color4 #1e66f5
color5 #ea76cb
color6 #179299
color7 #acb0be
color8 #6c6f85
color9 #de293e
color10 #49af3d
color11 #eea02d
color12 #456eff
color13 #fe85d8
color14 #2d9fa8
color15 #bcc0cc
background #eff1f5
selection_foreground #eff1f5
cursor #dc8a78
cursor_text_color #eff1f5
foreground #4c4f69
selection_background #4c4f69

View file

@ -1,84 +0,0 @@
[colors]
ansi = [
"#45475a",
"#f38ba8",
"#a6e3a1",
"#f9e2af",
"#89b4fa",
"#f5c2e7",
"#94e2d5",
"#bac2de",
]
background = "#1e1e2e"
brights = [
"#585b70",
"#f38ba8",
"#a6e3a1",
"#f9e2af",
"#89b4fa",
"#f5c2e7",
"#94e2d5",
"#a6adc8",
]
compose_cursor = "#f2cdcd"
cursor_bg = "#f5e0dc"
cursor_border = "#f5e0dc"
cursor_fg = "#11111b"
foreground = "#cdd6f4"
scrollbar_thumb = "#585b70"
selection_bg = "#585b70"
selection_fg = "#cdd6f4"
split = "#6c7086"
visual_bell = "#313244"
[colors.indexed]
16 = "#fab387"
17 = "#f5e0dc"
[colors.tab_bar]
background = "#11111b"
inactive_tab_edge = "#313244"
[colors.tab_bar.active_tab]
bg_color = "#cba6f7"
fg_color = "#11111b"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab]
bg_color = "#181825"
fg_color = "#cdd6f4"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab_hover]
bg_color = "#1e1e2e"
fg_color = "#cdd6f4"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab]
bg_color = "#313244"
fg_color = "#cdd6f4"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab_hover]
bg_color = "#45475a"
fg_color = "#cdd6f4"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[metadata]
author = "Catppuccin Org"
name = "Noctalia"

View file

@ -1,84 +0,0 @@
[colors]
ansi = [
"#bcc0cc",
"#d20f39",
"#40a02b",
"#df8e1d",
"#1e66f5",
"#ea76cb",
"#179299",
"#5c5f77",
]
background = "#eff1f5"
brights = [
"#acb0be",
"#d20f39",
"#40a02b",
"#df8e1d",
"#1e66f5",
"#ea76cb",
"#179299",
"#6c6f85",
]
compose_cursor = "#dd7878"
cursor_bg = "#dc8a78"
cursor_border = "#dc8a78"
cursor_fg = "#dce0e8"
foreground = "#4c4f69"
scrollbar_thumb = "#acb0be"
selection_bg = "#acb0be"
selection_fg = "#4c4f69"
split = "#9ca0b0"
visual_bell = "#ccd0da"
[colors.indexed]
16 = "#fe640b"
17 = "#dc8a78"
[colors.tab_bar]
background = "#dce0e8"
inactive_tab_edge = "#ccd0da"
[colors.tab_bar.active_tab]
bg_color = "#8839ef"
fg_color = "#dce0e8"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab]
bg_color = "#e6e9ef"
fg_color = "#4c4f69"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab_hover]
bg_color = "#eff1f5"
fg_color = "#4c4f69"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab]
bg_color = "#ccd0da"
fg_color = "#4c4f69"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab_hover]
bg_color = "#bcc0cc"
fg_color = "#4c4f69"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[metadata]
author = "Catppuccin Org"
name = "Noctalia"

View file

@ -1,16 +0,0 @@
{
"sources": [
{
"enabled": true,
"name": "Noctalia Plugins",
"url": "https://github.com/noctalia-dev/noctalia-plugins"
}
],
"states": {
"kaomoji-provider": {
"enabled": true,
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
}
},
"version": 1
}

View file

@ -1,529 +0,0 @@
{
"appLauncher": {
"autoPasteClipboard": false,
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
"clipboardWrapText": true,
"customLaunchPrefix": "",
"customLaunchPrefixEnabled": false,
"enableClipPreview": true,
"enableClipboardHistory": true,
"enableSettingsSearch": true,
"enableWindowsSearch": true,
"iconMode": "native",
"ignoreMouseInput": false,
"pinnedApps": [
],
"position": "center",
"screenshotAnnotationTool": "",
"showCategories": false,
"showIconBackground": true,
"sortByMostUsed": true,
"terminalCommand": "xterm -e",
"useApp2Unit": false,
"viewMode": "list"
},
"audio": {
"cavaFrameRate": 30,
"mprisBlacklist": [
],
"preferredPlayer": "",
"visualizerType": "mirrored",
"volumeFeedback": false,
"volumeOverdrive": false,
"volumeStep": 5
},
"bar": {
"autoHideDelay": 500,
"autoShowDelay": 150,
"backgroundOpacity": 0,
"barType": "floating",
"capsuleOpacity": 1,
"density": "default",
"displayMode": "always_visible",
"floating": true,
"frameRadius": 12,
"frameThickness": 8,
"hideOnOverview": false,
"marginHorizontal": 3,
"marginVertical": 5,
"monitors": [
],
"outerCorners": true,
"position": "top",
"screenOverrides": [
],
"showCapsule": true,
"showOutline": false,
"useSeparateOpacity": true,
"widgets": {
"center": [
{
"customFont": "",
"formatHorizontal": "h:mm AP",
"formatVertical": "HH mm - dd MM",
"id": "Clock",
"tooltipFormat": "yyyy-MM-dd",
"useCustomFont": false,
"usePrimaryColor": false
}
],
"left": [
{
"characterCount": 2,
"colorizeIcons": false,
"emptyColor": "secondary",
"enableScrollWheel": true,
"focusedColor": "primary",
"followFocusedScreen": false,
"groupedBorderOpacity": 1,
"hideUnoccupied": false,
"iconScale": 0.8,
"id": "Workspace",
"labelMode": "none",
"occupiedColor": "secondary",
"reverseScroll": false,
"showApplications": false,
"showBadge": true,
"showLabelsOnlyWhenOccupied": true,
"unfocusedIconsOpacity": 1
},
{
"compactMode": false,
"compactShowAlbumArt": true,
"compactShowVisualizer": false,
"hideMode": "hidden",
"hideWhenIdle": false,
"id": "MediaMini",
"maxWidth": 200,
"panelShowAlbumArt": true,
"panelShowVisualizer": true,
"scrollingMode": "hover",
"showAlbumArt": false,
"showArtistFirst": false,
"showProgressRing": true,
"showVisualizer": true,
"useFixedWidth": false,
"visualizerType": "wave"
},
{
"colorizeIcons": false,
"hideMode": "transparent",
"id": "ActiveWindow",
"maxWidth": 145,
"scrollingMode": "hover",
"showIcon": true,
"useFixedWidth": false
}
],
"right": [
{
"blacklist": [
],
"colorizeIcons": false,
"drawerEnabled": true,
"hidePassive": false,
"id": "Tray",
"pinned": [
"systray_17288"
]
},
{
"id": "WallpaperSelector"
},
{
"hideWhenZero": false,
"hideWhenZeroUnread": false,
"id": "NotificationHistory",
"showUnreadBadge": true,
"unreadBadgeColor": "primary"
},
{
"displayMode": "onhover",
"id": "Network"
},
{
"displayMode": "onhover",
"id": "Volume",
"middleClickCommand": "pwvucontrol || pavucontrol"
},
{
"deviceNativePath": "",
"displayMode": "alwaysShow",
"hideIfIdle": false,
"hideIfNotDetected": true,
"id": "Battery",
"showNoctaliaPerformance": true,
"showPowerProfiles": true,
"warningThreshold": 20
},
{
"colorizeDistroLogo": false,
"colorizeSystemIcon": "primary",
"customIconPath": "",
"enableColorization": true,
"icon": "settings",
"id": "ControlCenter",
"useDistroLogo": false
}
]
}
},
"brightness": {
"brightnessStep": 5,
"enableDdcSupport": false,
"enforceMinimum": true
},
"calendar": {
"cards": [
{
"enabled": true,
"id": "calendar-header-card"
},
{
"enabled": true,
"id": "calendar-month-card"
},
{
"enabled": true,
"id": "weather-card"
}
]
},
"colorSchemes": {
"darkMode": true,
"generationMethod": "tonal-spot",
"manualSunrise": "06:30",
"manualSunset": "18:30",
"monitorForColors": "",
"predefinedScheme": "Catppuccin Macchiato Teal",
"schedulingMode": "off",
"useWallpaperColors": false
},
"controlCenter": {
"cards": [
{
"enabled": true,
"id": "profile-card"
},
{
"enabled": true,
"id": "shortcuts-card"
},
{
"enabled": true,
"id": "audio-card"
},
{
"enabled": true,
"id": "brightness-card"
},
{
"enabled": true,
"id": "weather-card"
},
{
"enabled": true,
"id": "media-sysmon-card"
}
],
"diskPath": "/",
"position": "close_to_bar_button",
"shortcuts": {
"left": [
{
"id": "WiFi"
},
{
"id": "Bluetooth"
},
{
"id": "WallpaperSelector"
}
],
"right": [
{
"id": "Notifications"
},
{
"id": "PowerProfile"
},
{
"id": "KeepAwake"
},
{
"id": "NightLight"
}
]
}
},
"desktopWidgets": {
"enabled": false,
"gridSnap": false,
"monitorWidgets": [
]
},
"dock": {
"animationSpeed": 1,
"backgroundOpacity": 1,
"colorizeIcons": false,
"deadOpacity": 0.6,
"displayMode": "auto_hide",
"enabled": false,
"floatingRatio": 1,
"inactiveIndicators": false,
"monitors": [
],
"onlySameOutput": true,
"pinnedApps": [
"org.gnome.Nautilus",
"yazi"
],
"pinnedStatic": false,
"position": "bottom",
"size": 1
},
"general": {
"allowPanelsOnScreenWithoutBar": true,
"allowPasswordWithFprintd": false,
"animationDisabled": false,
"animationSpeed": 1,
"autoStartAuth": false,
"avatarImage": "/home/aleidk/.face",
"boxRadiusRatio": 1,
"compactLockScreen": false,
"dimmerOpacity": 0.25,
"enableLockScreenCountdown": true,
"enableShadows": true,
"forceBlackScreenCorners": false,
"iRadiusRatio": 1,
"language": "",
"lockOnSuspend": true,
"lockScreenCountdownDuration": 5000,
"radiusRatio": 1,
"scaleRatio": 1,
"screenRadiusRatio": 1,
"shadowDirection": "bottom_right",
"shadowOffsetX": 2,
"shadowOffsetY": 3,
"showChangelogOnStartup": true,
"showHibernateOnLockScreen": false,
"showScreenCorners": false,
"showSessionButtonsOnLockScreen": true,
"telemetryEnabled": false
},
"hooks": {
"darkModeChange": "",
"enabled": false,
"performanceModeDisabled": "",
"performanceModeEnabled": "",
"screenLock": "",
"screenUnlock": "",
"session": "",
"startup": "",
"wallpaperChange": ""
},
"location": {
"analogClockInCalendar": false,
"firstDayOfWeek": -1,
"hideWeatherCityName": false,
"hideWeatherTimezone": false,
"name": "Santiago",
"showCalendarEvents": true,
"showCalendarWeather": true,
"showWeekNumberInCalendar": false,
"use12hourFormat": true,
"useFahrenheit": false,
"weatherEnabled": true,
"weatherShowEffects": true
},
"network": {
"bluetoothDetailsViewMode": "grid",
"bluetoothHideUnnamedDevices": false,
"bluetoothRssiPollIntervalMs": 10000,
"bluetoothRssiPollingEnabled": false,
"wifiDetailsViewMode": "list",
"wifiEnabled": true
},
"nightLight": {
"autoSchedule": true,
"dayTemp": "6500",
"enabled": true,
"forced": false,
"manualSunrise": "06:30",
"manualSunset": "18:30",
"nightTemp": "4000"
},
"notifications": {
"backgroundOpacity": 1,
"criticalUrgencyDuration": 15,
"enableKeyboardLayoutToast": true,
"enableMediaToast": false,
"enabled": true,
"location": "top",
"lowUrgencyDuration": 3,
"monitors": [
],
"normalUrgencyDuration": 8,
"overlayLayer": true,
"respectExpireTimeout": true,
"saveToHistory": {
"critical": true,
"low": true,
"normal": true
},
"sounds": {
"criticalSoundFile": "",
"enabled": true,
"excludedApps": "discord,firefox,chrome,chromium,edge",
"lowSoundFile": "",
"normalSoundFile": "",
"separateSounds": true,
"volume": 0.5
}
},
"osd": {
"autoHideMs": 2000,
"backgroundOpacity": 1,
"enabled": true,
"enabledTypes": [
0,
1,
2,
4
],
"location": "bottom",
"monitors": [
],
"overlayLayer": true
},
"sessionMenu": {
"countdownDuration": 5000,
"enableCountdown": true,
"largeButtonsLayout": "single-row",
"largeButtonsStyle": false,
"position": "center",
"powerOptions": [
{
"action": "lock",
"command": "",
"countdownEnabled": true,
"enabled": true
},
{
"action": "suspend",
"command": "",
"countdownEnabled": true,
"enabled": true
},
{
"action": "hibernate",
"command": "",
"countdownEnabled": true,
"enabled": true
},
{
"action": "reboot",
"command": "",
"countdownEnabled": true,
"enabled": true
},
{
"action": "logout",
"command": "",
"countdownEnabled": true,
"enabled": true
},
{
"action": "shutdown",
"command": "",
"countdownEnabled": true,
"enabled": true
}
],
"showHeader": true,
"showNumberLabels": true
},
"settingsVersion": 46,
"systemMonitor": {
"cpuCriticalThreshold": 90,
"cpuPollingInterval": 3000,
"cpuWarningThreshold": 80,
"criticalColor": "",
"diskCriticalThreshold": 90,
"diskPollingInterval": 3000,
"diskWarningThreshold": 80,
"enableDgpuMonitoring": false,
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor",
"gpuCriticalThreshold": 90,
"gpuPollingInterval": 3000,
"gpuWarningThreshold": 80,
"loadAvgPollingInterval": 3000,
"memCriticalThreshold": 90,
"memPollingInterval": 3000,
"memWarningThreshold": 80,
"networkPollingInterval": 3000,
"swapCriticalThreshold": 90,
"swapWarningThreshold": 80,
"tempCriticalThreshold": 90,
"tempPollingInterval": 3000,
"tempWarningThreshold": 80,
"useCustomColors": false,
"warningColor": ""
},
"templates": {
"activeTemplates": [
],
"enableUserTheming": false
},
"ui": {
"bluetoothDetailsViewMode": "grid",
"bluetoothHideUnnamedDevices": false,
"boxBorderEnabled": false,
"fontDefault": "Sans Serif",
"fontDefaultScale": 1,
"fontFixed": "monospace",
"fontFixedScale": 1,
"networkPanelView": "wifi",
"panelBackgroundOpacity": 0.93,
"panelsAttachedToBar": false,
"settingsPanelMode": "centered",
"tooltipsEnabled": true,
"wifiDetailsViewMode": "grid"
},
"wallpaper": {
"automationEnabled": true,
"directory": "/home/aleidk/Pictures/Wallpapers",
"enableMultiMonitorDirectories": false,
"enabled": true,
"fillColor": "#000000",
"fillMode": "crop",
"hideWallpaperFilenames": true,
"monitorDirectories": [
],
"overviewEnabled": true,
"panelPosition": "center",
"randomIntervalSec": 900,
"setWallpaperOnAllMonitors": true,
"showHiddenFiles": false,
"solidColor": "#1a1a2e",
"sortOrder": "name",
"transitionDuration": 1500,
"transitionEdgeSmoothness": 0.05,
"transitionType": "random",
"useSolidColor": false,
"useWallhaven": false,
"viewMode": "recursive",
"wallhavenApiKey": "",
"wallhavenCategories": "111",
"wallhavenOrder": "desc",
"wallhavenPurity": "100",
"wallhavenQuery": "",
"wallhavenRatios": "",
"wallhavenResolutionHeight": "",
"wallhavenResolutionMode": "atleast",
"wallhavenResolutionWidth": "",
"wallhavenSorting": "relevance",
"wallpaperChangeMode": "random"
}
}

View file

@ -16,7 +16,6 @@ end
vim.opt.rtp:prepend(lazypath)
require("aleidk.options")
require("aleidk.commands")
require("aleidk.autocmds")
require("aleidk.keymaps")

View file

@ -3,7 +3,7 @@
"blink.compat": { "branch": "main", "commit": "08943fdf2eb00432d6205db6d0239434135416bd" },
"catppuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
"comment-box.nvim": { "branch": "main", "commit": "06bb771690bc9df0763d14769b779062d8f12bc5" },
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
"conform.nvim": { "branch": "master", "commit": "a203480a350b03092e473bf3001733d547160a73" },
"flatten.nvim": { "branch": "main", "commit": "72527798e75b5e34757491947c2cb853ce21dc0e" },
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
"fzf-lua": { "branch": "main", "commit": "758173f499d15410ecb50c5519a41b27c33e645d" },
@ -11,16 +11,15 @@
"hardtime.nvim": { "branch": "main", "commit": "3541ad24faff78274669eceaf130502eb7f1261a" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.nvim": { "branch": "main", "commit": "94cae4660a8b2d95dbbd56e1fbc6fcfa2716d152" },
"neogen": { "branch": "main", "commit": "dc50715c009f89b8111197fd2f282f6042daa7ea" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-dap": { "branch": "master", "commit": "5dd4d50f2e6a2eaf9e57fad023d294ef371bda35" },
"nvim-dap-view": { "branch": "main", "commit": "390dae6bf67f3342ebb481159932ef0fe54822ba" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"nvim-lint": { "branch": "master", "commit": "b3292aac30b935d4cccf0904053d1c7930df8a20" },
"nvim-lspconfig": { "branch": "master", "commit": "c8503e63c6afab3ed34b49865a4a4edbb1ebf4a8" },
"nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" },
"nvim-lspconfig": { "branch": "master", "commit": "f47cd681d7cb6048876a2e908b6d8ba1e530d152" },
"nvim-treesitter": { "branch": "main", "commit": "802195d8f1980db25a7a39a55f9a25df21756c73" },
"nvim-treesitter-context": { "branch": "master", "commit": "66a9b5fa9e806918b5fe3dba00c6cce7e230abd2" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" },
@ -35,5 +34,5 @@
"ts-node-action": { "branch": "master", "commit": "6d3b60754fd87963d70eadaa2f77873b447eac26" },
"typescript-tools.nvim": { "branch": "master", "commit": "3c501d7c7f79457932a8750a2a1476a004c5c1a9" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"yazi.nvim": { "branch": "main", "commit": "d99c95ab3bc990dfd0a4ecf2d6f24c5ce4fe9747" }
"yazi.nvim": { "branch": "main", "commit": "053867916a9be3cb46f84b6f095ee731bbddd213" }
}

View file

@ -1,19 +0,0 @@
vim.api.nvim_create_user_command("SopsDecrypt", function(args)
vim.cmd([[! sops decrypt -i %]])
end, {
desc = "Decrypt current file with sops",
})
vim.api.nvim_create_user_command("SopsEncrypt", function(args)
vim.cmd([[! sops encrypt -i %]])
end, {
desc = "Decrypt current file with sops",
})
vim.api.nvim_create_user_command("Secret", function(args)
local response = vim.system({ "openssl", "rand", "-base64", "32" }, { text = true }):wait()
vim.api.nvim_paste(vim.trim(response.stdout), false, -1)
end, {
desc = "Generate secret",
})

View file

@ -10,7 +10,7 @@ vim.o.diffopt = "vertical,closeoff,filler"
local opt = vim.opt
vim.schedule(function()
vim.opt.clipboard = "unnamedplus"
vim.opt.clipboard = 'unnamedplus'
end)
-- opt.shortmess:append({ W = true, I = true, c = true }) -- INFO: this control the format of some messages
@ -28,9 +28,9 @@ opt.formatoptions = "jcroqlnt" -- tcqj
opt.grepformat = "%f:%l:%c:%m"
opt.grepprg = "rg --vimgrep"
opt.ignorecase = true -- Ignore case
opt.inccommand = "split" -- Preview substitutions live, as you type!
opt.inccommand = 'split' -- Preview substitutions live, as you type!
opt.mouse = "a" -- Enable mouse mode
opt.nrformats = "blank,bin,hex"
opt.nrformats = 'blank,bin,hex'
opt.number = true -- Print line number
opt.pumblend = 10 -- Popup blend
opt.pumheight = 10 -- Maximum number of entries in a popup
@ -56,8 +56,8 @@ opt.updatetime = 200 -- Save swap file and trigger CursorHold
opt.wildmode = "longest,list:full" -- Command-line completion mode
opt.winminwidth = 5 -- Minimum window width
opt.wrap = false -- Disable line wrap
vim.o.completeopt = "noselect,menu,menuone,noinsert,popup"
vim.o.winborder = "rounded"
vim.o.completeopt = 'noselect,menu,menuone,noinsert,popup'
vim.o.winborder = 'rounded'
vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
@ -130,20 +130,18 @@ vim.filetype.add({
mdx = "mdx",
log = "log",
conf = "conf",
-- env = "dotenv",
env = "dotenv",
},
-- Detect and apply filetypes based on the entire filename
filename = {
-- [".env"] = "dotenv",
[".env"] = "dotenv",
["env"] = "dotenv",
["tsconfig.json"] = "jsonc",
},
-- Detect and apply filetypes based on certain patterns of the filenames
pattern = {
-- INFO: Match filenames like - ".env.example", ".env.local" and so on
-- ["%.env%.[%w_.-]+"] = "dotenv",
["compose.*%.ya?ml"] = "yaml.docker-compose",
["docker-compose.*%.ya?ml"] = "yaml.docker-compose",
["%.env%.[%w_.-]+"] = "dotenv",
[".*%.blade%.php"] = "blade",
[".*%.hurl.*"] = "hurl",
[".*/hypr/.*%.conf"] = "hyprlang",
@ -157,22 +155,27 @@ vim.filetype.add({
vim.lsp.config("rust-analyzer", {
tools = {
code_actions = {
ui_select_fallback = true,
},
},
})
vim.lsp.config("rumdl", {
cmd = { "rumdl", "server" },
filetypes = { "markdown" },
root_markers = { ".git" },
ui_select_fallback = true
}
}
})
vim.g.markdown_fenced_languages = {
"ts=typescript",
}
vim.lsp.enable("denols")
vim.lsp.enable("phpactor")
vim.lsp.enable({
"bashls",
"biome",
"fish_lsp",
"gleam",
"gopls",
"hyprls",
"intelephense",
"jsonls",
"kotlin_lsp",
"lua_ls",
"nushell",
"pyright",
"ruff",
-- "rust_analyzer", -- managed by rustacean.nvim
})
vim.lsp.inlay_hint.enable(true)

View file

@ -23,7 +23,7 @@ return {
json = { "biome" },
jsonc = { "biome" },
lua = { "stylua" },
markdown = { "rumdl" },
markdown = { "markdownlint" },
php = { "pint" },
python = { "ruff_format", "ruff_organize_imports" },
rust = { "rustfmt" },

View file

@ -1,13 +1,10 @@
return {
{
"mason-org/mason-lspconfig.nvim",
opts = {},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
},
'neovim/nvim-lspconfig',
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
{
"mason-org/mason.nvim",
opts = {}
},
{
"ckolkey/ts-node-action",
dependencies = { "nvim-treesitter" },

View file

@ -1,25 +1,24 @@
return {
{
"mrcjkb/rustaceanvim",
version = "^6", -- Recommended
'mrcjkb/rustaceanvim',
version = '^6', -- Recommended
lazy = false, -- This plugin is already lazy
},
{
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
"folke/lazydev.nvim",
ft = "lua",
'folke/lazydev.nvim',
ft = 'lua',
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
{ path = "${3rd}/luv/library", words = { "vim%.uv" } }
},
},
},
{
"pmizio/typescript-tools.nvim",
enabled = false,
dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig" },
opts = {},
},
}
}

View file

@ -14,7 +14,7 @@ return {
sh = { "shellcheck" },
NeogitCommitMessage = { "gitlint" },
gitcommit = { "gitlint" },
-- markdown = { "rumdl" }, runned as LSP
markdown = { "markdownlint" },
javascript = { "biomejs" },
typescript = { "biomejs" },
javascriptreact = { "biomejs" },

View file

@ -1,11 +1,11 @@
return {
"echasnovski/mini.nvim",
version = "*",
'echasnovski/mini.nvim',
version = '*',
dependencies = {
"rafamadriz/friendly-snippets",
},
config = function()
require("mini.icons").setup()
require('mini.icons').setup()
vim.fn.sign_define("DapBreakpoint", { text = "", texthl = "DapBreakpoint" })
vim.fn.sign_define("DapBreakpointCondition", { text = "", texthl = "DapBreakpointCondition" })
@ -13,60 +13,54 @@ return {
vim.fn.sign_define("DapLogPoint", { text = ".>", texthl = "DapLogPoint" })
vim.fn.sign_define("DapStopped", { text = "󰁕 ", texthl = "DapStopped", numhl = "debugPC" })
require("mini.bracketed").setup({
require('mini.bracketed').setup({
diagnostic = { options = { severity = vim.diagnostic.severity.ERROR } },
})
require("mini.ai").setup({})
require("mini.cursorword").setup() -- Highlight word under cursor
require("mini.extra").setup()
require("mini.jump").setup({
require('mini.cursorword').setup() -- Highlight word under cursor
require('mini.extra').setup()
require('mini.jump').setup({
mappings = {
repeat_jump = "",
},
repeat_jump = ""
}
}) -- Extend f, F, t, T
require("mini.jump2d").setup({
spotter = require("mini.jump2d").gen_pattern_spotter("[^%s%p]+", "start"),
require('mini.jump2d').setup(
{
spotter = require('mini.jump2d').gen_pattern_spotter('[^%s%p]+', 'start'),
view = {
dim = true,
n_steps_ahead = 2,
n_steps_ahead = 2
},
allowed_lines = {
blank = false,
cursor_at = false,
cursor_at = false
},
})
require("mini.surround").setup()
require("mini.operators").setup()
require("mini.pairs").setup({
modes = { command = true },
}
)
require('mini.surround').setup()
require('mini.operators').setup()
require('mini.pairs').setup({
modes = { command = true }
})
require("mini.splitjoin").setup()
require('mini.splitjoin').setup()
require("mini.align").setup({})
-- require('mini.animate').setup()
require("mini.notify").setup()
vim.notify = require("mini.notify").make_notify()
vim.keymap.set(
"n",
"<Leader>un",
require("mini.notify").show_history,
{ desc = "Show notifications", silent = true }
)
require("mini.statusline").setup()
require("mini.diff").setup({ view = { style = "sign" } })
require('mini.notify').setup()
vim.notify = require('mini.notify').make_notify()
vim.keymap.set('n', '<Leader>un', require('mini.notify').show_history, { desc = 'Show notifications', silent = true })
require('mini.statusline').setup()
require('mini.diff').setup({ view = { style = 'sign' } })
require("mini.git").setup({})
require('mini.git').setup({})
vim.keymap.set(
{ "n", "x" },
"<Leader>gs",
"<Cmd>lua MiniGit.show_at_cursor()<CR>",
{ desc = "Show at cursor", silent = true }
)
vim.keymap.set({ 'n', 'x' }, '<Leader>gs', '<Cmd>lua MiniGit.show_at_cursor()<CR>',
{ desc = 'Show at cursor', silent = true })
local starter = require("mini.starter")
local starter = require('mini.starter')
starter.setup({
footer = "",
footer = '',
evaluate_single = true,
items = {
starter.sections.recent_files(10, true),
@ -76,33 +70,33 @@ return {
},
content_hooks = {
starter.gen_hook.adding_bullet(),
starter.gen_hook.indexing("all", { "Builtin actions" }),
starter.gen_hook.indexing('all', { 'Builtin actions' }),
starter.gen_hook.aligning("center", "center"),
},
})
require("mini.indentscope").setup({
require('mini.indentscope').setup({
draw = {
animation = require("mini.indentscope").gen_animation.none(),
animation = require('mini.indentscope').gen_animation.none(),
},
})
require("mini.move").setup({
require('mini.move').setup({
mappings = {
-- Move visual selection in Visual mode
left = "H",
right = "L",
down = "J",
up = "K",
left = 'H',
right = 'L',
down = 'J',
up = 'K',
-- Move current line in Normal mode
line_left = "",
line_right = "",
line_down = "",
line_up = "",
line_left = '',
line_right = '',
line_down = '',
line_up = '',
},
})
require("mini.comment").setup({
require('mini.comment').setup({
options = {
-- Whether to ignore blank lines when commenting
ignore_blank_line = true,
@ -111,11 +105,11 @@ return {
},
})
local gen_loader = require("mini.snippets").gen_loader
require("mini.snippets").setup({
local gen_loader = require('mini.snippets').gen_loader
require('mini.snippets').setup({
snippets = {
-- Load custom file with global snippets first (adjust for Windows)
gen_loader.from_file("~/.config/nvim-unstable/snippets/global.json"),
gen_loader.from_file('~/.config/nvim-unstable/snippets/global.json'),
-- Load snippets based on current language by reading files from
-- "snippets/" subdirectories from 'runtimepath' directories.
@ -182,10 +176,14 @@ return {
{ mode = "n", keys = "<Leader>f", desc = "+Find" },
{ mode = "n", keys = "<Leader>g", desc = "+Git" },
{ mode = "n", keys = "<Leader>l", desc = "+LSP" },
{ mode = "n", keys = "<Leader>r", desc = "+Replace" },
{ mode = "n", keys = "<Leader>u", desc = "+UI & Config" },
{ mode = "n", keys = "<Leader>w", desc = "+Workspace" },
{ mode = "n", keys = "<Leader>p", desc = "+Run stuff" },
{ mode = "n", keys = "<Leader>z", desc = "+ZK" },
{ mode = "v", keys = "<Leader>z", desc = "+ZK" },
{ mode = "v", keys = "<Leader>a", desc = "+AI" },
{ mode = "n", keys = "<Leader>a", desc = "+AI" },
{ mode = "n", keys = "g?", desc = "+Print Debug" },
},
@ -203,44 +201,48 @@ return {
},
})
local hipatterns = require("mini.hipatterns")
local hipatterns = require('mini.hipatterns')
hipatterns.setup({
highlighters = {
-- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE'
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' },
hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' },
todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' },
note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' },
-- Highlight hex color strings (`#rrggbb`) using that color
hex_color = hipatterns.gen_highlighter.hex_color(),
},
})
require("mini.sessions").setup({
autowrite = false,
require('mini.sessions').setup({
autowrite = false
})
vim.keymap.set("n", "<Leader>us", function()
local default_name = require("mini.sessions").get_latest() or "Session.vim"
vim.keymap.set('n', '<Leader>us', function()
local default_name = require('mini.sessions').get_latest() or "Session.vim"
vim.ui.input({ prompt = "Session name: ", default = default_name }, function(input)
if input == nil then return end
require("mini.sessions").write(input)
if input == nil then
return
end
require('mini.sessions').write(input)
end)
end, { desc = "Save session", silent = true })
vim.keymap.set("n", "<Leader>uS", function()
require("mini.sessions").read()
end, { desc = "Load session (latest)", silent = true })
end,
{ desc = 'Save session', silent = true })
vim.keymap.set('n', '<Leader>uS', function() require('mini.sessions').read() end,
{ desc = 'Load session (latest)', silent = true })
vim.api.nvim_create_user_command("SessionSelect", function()
require("mini.sessions").select("read")
require('mini.sessions').select('read')
end, {})
vim.api.nvim_create_user_command("SessionDelete", function()
require("mini.sessions").select("delete")
require('mini.sessions').select('delete')
end, {})
vim.keymap.set("n", "<Leader>uz", function()
require("mini.misc").zoom()
end, { desc = "Toggle zoom", silent = true })
vim.keymap.set('n', '<Leader>uz', function()
require('mini.misc').zoom()
end,
{ desc = 'Toggle zoom', silent = true })
end
}

View file

@ -4,12 +4,11 @@ return {
lazy = false,
dependencies = { "MunifTanjim/nui.nvim" },
keys = {
{ "<leader>uH", "<CMD>Hardtime toggle<CR>", desc = "Toggle hardtime" },
{ "<leader>uH", "<CMD>Hardtime toggle<CR>", desc = "Toggle hardtime" }
},
opts = {
max_count = 10,
disable_mouse = false,
restriction_mode = "hint",
},
},
}

View file

@ -42,17 +42,11 @@ return {
})
vim.keymap.set({ "n", "x", "o" }, "]]", function()
require("nvim-treesitter-textobjects.move").goto_next(
{ "@block.outer", "@function.outer", "@class.outer" },
"textobjects"
)
ts_obj.move.goto_next({ "@block.outer", "@function.outer", "@class.outer" }, "textobjects")
end)
vim.keymap.set({ "n", "x", "o" }, "[[", function()
require("nvim-treesitter-textobjects.move").goto_previous(
{ "@block.outer", "@function.outer", "@class.outer" },
"textobjects"
)
ts_obj.move.goto_previous({ "@block.outer", "@function.outer", "@class.outer" }, "textobjects")
end)
local ts_repeat_move = require("nvim-treesitter-textobjects.repeatable_move")

View file

@ -1,177 +0,0 @@
[global]
disable = [ ]
enable = [ ]
exclude = [ ]
flavor = "gfm"
include = [ ]
respect_gitignore = true
[MD001]
front-matter-title = true
[MD003]
# Heading style should be consistent
style = "atx"
[MD004]
style = "dash"
[MD007]
start-indented = false
style = "text-aligned"
[MD009]
br-spaces = 2
list-item-empty-lines = false
strict = false
[MD010]
spaces-per-tab = 4
[MD012]
maximum = 1
[MD013]
abbreviations = [ ]
code-blocks = true
headings = true
length-mode = "visual"
line-length = 80
paragraphs = false
reflow = true
reflow-mode = "sentence-per-line"
strict = false
tables = false
[MD014]
show-output = true
[MD022]
allowed-at-start = true
lines-above = 1
lines-below = 1
[MD024]
allow-different-nesting = false
siblings-only = true
[MD025]
allow-document-sections = false
allow-with-separators = false
front-matter-title = "title"
level = 1
[MD026]
punctuation = ".,;:!"
[MD029]
style = "one-or-ordered"
[MD030]
ol-multi = 1
ol-single = 1
ul-multi = 1
ul-single = 1
[MD031]
list-items = true
[MD032]
allow-lazy-continuation = true
[MD033]
allowed-elements = [ ]
disallowed-elements = [ ]
[MD035]
style = "consistent"
[MD036]
punctuation = ".,;:!?"
[MD041]
front-matter-title = "title"
front-matter-title-pattern = ""
level = 1
[MD043]
headings = [ ]
match-case = false
[MD044]
code-blocks = false
html-comments = false
html-elements = true
names = [ ]
[MD045]
placeholder-text = "TODO: Add image description"
[MD046]
style = "fenced"
[MD048]
style = "consistent"
[MD049]
# Italic Text
style = "underscore"
[MD050]
# Bold Text
style = "asterisk"
[MD051]
anchor-style = "github"
[MD053]
ignored-definitions = [ ]
[MD054]
autolink = true
collapsed = true
full = true
inline = true
shortcut = true
url-inline = true
[MD055]
style = "consistent"
[MD058]
minimum-after = 1
minimum-before = 1
[MD059]
prohibited-texts = [ "click here", "here", "link", "more" ]
[MD060]
column-align = "auto"
enabled = true
max-width = 0
style = "aligned"
[MD061]
case-sensitive = true
terms = [ ]
[MD063]
enabled = true
ignore-words = [ ]
lowercase-words = [ "a", "an", "and", "as", "at", "but", "by", "for", "from", "in", "into", "nor", "of", "off", "on", "or", "per", "so", "the", "to", "up", "via", "with", "yet" ]
max-level = 6
min-level = 1
preserve-cased-words = true
style = "title_case"
[MD064]
allow-sentence-double-space = false
[MD072]
enabled = true
[md073]
enabled = true
enforce-order = true
max-level = 4
min-level = 2

View file

@ -1,10 +0,0 @@
[Unit]
Description=SSH Persistent port forward for %i, makes available remote port locally
After=network-online.target
Wants=network-online.target
[Service]
EnvironmentFile=%h/.ssh/tunnels.d/%i.conf
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L ${TUNNEL_LOCAL_ADDRESS}:${TUNNEL_LOCAL_PORT}:${TUNNEL_REMOTE_ADDRESS}:${TUNNEL_REMOTE_PORT} ${TUNNEL_SSH_HOST}
RestartSec=3
Restart=always

View file

@ -1 +0,0 @@
/usr/lib/systemd/user/hypridle.service

View file

@ -1 +0,0 @@
/usr/lib/systemd/user/noctalia.service

View file

@ -1,11 +1 @@
require("full-border"):setup()
require("recycle-bin"):setup()
require("restore"):setup({
-- Show confirm prompt before restore.
-- NOTE: even if set this to false, overwrite prompt still pop up
show_confirm = false, -- Optional
-- Suppress success notification when all files or folder are restored.
suppress_success_notification = false, -- Optional
})

View file

@ -16,25 +16,17 @@ prepend_keymap = [
{ on = ["<Right>"], run = ["enter", "escape --visual --select"], desc = "Enter the child directory" },
# Operation
{ on = ["C"], run = "plugin ouch", desc = "Compress" },
{ on = ["r"], run = "rename --empty=stem --cursor=start", desc = "Rename a file or directory" },
{ on = ["R"], run = "rename --cursor=end", desc = "Rename a file or directory (keeping the current filename)" },
{ on = ["d", "d"], run = "remove --force", desc = "Trash selected files" },
{ on = ["d", "D"], run = "remove --permanently", desc = "Permanently delete selected files" },
{ on = ["d", "t"], run = "plugin recycle-bin", desc = "Open Recycle Bin menu" },
{ on = ["d", "u"], run = "plugin restore", desc = "Restore last deleted files/folders" },
# Copy
{ on = ["c", "c"], run = "plugin wl-clipboard", desc = "Copy file content" },
{ on = ["c", "p"], run = "copy path", desc = "Copy the absolute path" },
{ on = ["c", "c"], run = "copy path", desc = "Copy the absolute path" },
{ on = ["c", "d"], run = "copy dirname", desc = "Copy the path of the parent directory" },
{ on = ["c", "f"], run = "copy filename", desc = "Copy the name of the file" },
{ on = ["c", "n"], run = "copy name_without_ext", desc = "Copy the name of the file without the extension" },
{ on = ["c", "r"], run = "plugin rsync", desc = "Copy files using rsync" },
# Goto
{ on = ["g", "r"], run = "plugin cd-git-root", desc = "Go to git repo root" },
{ on = ["g", "h"], run = "cd ~", desc = "Go home" },
{ on = ["g", "c"], run = "cd ~/.config", desc = "Goto ~/.config" },
{ on = ["g", "d"], run = "cd ~/Downloads", desc = "Goto ~/Downloads" },
@ -53,8 +45,6 @@ prepend_keymap = [
{ on = ["<C-x>", "d"], run = ["shell 'ya pub-to 0 DiffRemote --orphan --list \"$@\"'", "quit"], desc = "Diff with transfer.nvim" },
{ on = ["<C-x>", "<S-D>"], run = ["shell 'ya pub-to 0 TransferDirDiff --list \"$@\"'"], desc = "Diff directory with transfer.nvim" },
# File Info
{ on = ["m", "S"], run = "plugin what-size", desc = "Show size of selection or CWD" },
]
[input]

View file

@ -1,6 +1,6 @@
[[plugin.deps]]
use = "yazi-rs/plugins:full-border"
rev = "68f7d48"
rev = "1ab21d4"
hash = "3996fc74044bc44144b323686f887e1"
[[plugin.deps]]
@ -10,40 +10,10 @@ hash = "68603fdd1dcaf415227e2c77a9317947"
[[plugin.deps]]
use = "yazi-rs/plugins:smart-enter"
rev = "68f7d48"
rev = "1ab21d4"
hash = "56fdabc96fc1f4d53c96eb884b02a5be"
[[plugin.deps]]
use = "ciarandg/cd-git-root"
rev = "a0e0f4b"
hash = "b84a85f3b513bd9c0a0ab93cc7c8e4c3"
[[plugin.deps]]
use = "pirafrank/what-size"
rev = "179ebf6"
hash = "57056b9728006881d580ccabe8154a9c"
[[plugin.deps]]
use = "uhs-robert/recycle-bin"
rev = "69d7d4c"
hash = "38dac2fc8f4b50bbdaa46e699720a54a"
[[plugin.deps]]
use = "boydaihungst/restore"
rev = "4eda0bf"
hash = "778941e7f1ebbacd60f4e254bb3c51de"
[[plugin.deps]]
use = "grappas/wl-clipboard"
rev = "e9a38e4"
hash = "6b8e5d6b09626facec713923d3ddb54b"
[[plugin.deps]]
use = "ndtoan96/ouch"
rev = "cfb9140"
hash = "b5067143415bd2d46c0dfa57319ddcef"
[[flavor.deps]]
use = "yazi-rs/flavors:catppuccin-macchiato"
rev = "4a1802a"
hash = "b069dba45e199684b16fa12d385642ed"
rev = "d3fd3a5"
hash = "e6c5beeb1da3199355734273ee452a7f"

View file

@ -1 +0,0 @@
[services]

View file

@ -16,12 +16,13 @@ mouse_events = ["click", "scroll"]
title_format = "Yazi: {cwd}"
[preview]
cache_dir = "$HOME/.cache/yazi"
cache_dir = ""
image_delay = 0
image_filter = "triangle"
image_quality = 75
max_height = 900
max_width = 600
sixel_fraction = 15
tab_size = 2
wrap = "no"
@ -36,7 +37,7 @@ upload_img = [{ run = 'immich upload --recursive "$@" || read -n 1 -p "press any
[open]
rules = [
# Folder
{ url = "*/", use = ["edit", "open", "reveal"] },
{ name = "*/", use = ["edit", "open", "reveal"] },
# Text
{ mime = "text/*", use = ["edit", "reveal"] },
@ -72,8 +73,46 @@ image_bound = [0, 0]
suppress_preload = false
[plugin]
prepend_previewers = [{ mime = "application/{*zip,tar,bzip2,7z*,rar,xz,zstd,java-archive}", run = "ouch --show-file-icons" }]
fetchers = [
# Mimetype
{ id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
]
preloaders = [
# example
{ mime = "image/{avif,heic,jxl,svg+xml}", run = "magick" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/vnd.ms-opentype", run = "font" },
]
previewers = [
{ name = "*/", run = "folder", sync = true },
# Code
{ mime = "text/*", run = "code" },
{ mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
# JSON
{ mime = "application/{json,x-ndjson}", run = "json" },
# Image
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Archive
{ mime = "application/{,g}zip", run = "archive" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/vnd.ms-opentype", run = "font" },
# Fallback
{ name = "*", run = "file" },
]
[input]
cursor_blink = false

1
configs/zed Symbolic link
View file

@ -0,0 +1 @@
/home/aleidk/.config/dotfiles/Configs/zed/.config/zed

View file

@ -1,116 +0,0 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"git": {
"inline_blame": {
"enabled": false
}
},
"agent": {
"button": false,
"model_parameters": []
},
"collaboration_panel": {
"button": false
},
"notification_panel": {
"button": false
},
"git_panel": {
"status_style": "icon"
},
"bottom_dock_layout": "contained",
"preview_tabs": {
"enable_preview_from_file_finder": true
},
"tabs": {
"show_diagnostics": "all",
"file_icons": true,
"git_status": true
},
"search": {
"button": true
},
"diagnostics": {
"button": true
},
"debugger": {
"button": true
},
"status_bar": {
"cursor_position_button": true,
"active_language_button": true
},
"project_panel": {
"hide_root": true,
"starts_open": false,
"entry_spacing": "standard",
"hide_gitignore": false,
"button": true
},
"toolbar": {
"code_actions": true
},
"horizontal_scroll_margin": 6.0,
"vertical_scroll_margin": 5.0,
"use_system_window_tabs": false,
"tab_bar": {
"show_nav_history_buttons": false,
"show": true
},
"title_bar": {
"show_branch_icon": true,
"show_branch_name": true,
"show_project_items": true,
"show_onboarding_banner": false,
"show_menus": false,
"show_user_picture": false,
"show_sign_in": false
},
"terminal": {
"button": true,
"font_size": 12.0
},
"indent_guides": {
"coloring": "indent_aware"
},
"tab_size": 2,
"scrollbar": {
"show": "never"
},
"auto_signature_help": true,
"ui_font_family": "Adwaita Sans",
"buffer_font_family": "JetBrainsMono Nerd Font",
"icon_theme": {
"mode": "system",
"light": "Catppuccin Macchiato",
"dark": "Catppuccin Macchiato"
},
"ssh_connections": [
{
"host": "GetDTE-Prod-App",
"args": [],
"projects": [
{
"paths": ["/bcn/invoice-chile/scripts"]
}
]
}
],
"disable_ai": true,
"auto_update": false,
"vim_mode": true,
"ui_font_size": 16.0,
"buffer_font_size": 14.0,
"theme": {
"mode": "system",
"light": "Catppuccin Macchiato",
"dark": "Catppuccin Macchiato"
}
}

View file

@ -1,188 +0,0 @@
[
{
"context": "Editor && (vim_mode == normal || vim_mode == visual) && !VimWaiting && !menu",
"bindings": {
// Git
"enter": "vim::PushSneak",
// Toggle inlay hints
"space u i": "editor::ToggleInlayHints",
// NOTE: Toggle Zen mode, not fully working yet
"space u z": "workspace::ToggleZoom",
// Open recent project
"space f p": "projects::OpenRecent",
// Search word under cursor
"space f w": "pane::DeploySearch",
// Go to file with `gf`
"g f": "editor::OpenExcerpts"
}
},
{
// move context menus with Ctrl + hjkl in completions
"context": "(vim_mode == normal || vim_mode == insert) && (showing_code_actions || showing_completions)",
"bindings": {
"ctrl-h": "editor::ContextMenuPrevious",
"ctrl-j": "editor::ContextMenuNext",
"ctrl-k": "editor::ContextMenuPrevious",
"ctrl-l": "editor::ContextMenuNext"
}
},
{
"context": "Editor && (vim_mode == normal || vim_mode == insert)",
"bindings": {
"ctrl-shift-v": "editor::Paste"
}
},
{
// move context menus with Ctrl + hjkl in menus
"context": "Picker || menu",
"bindings": {
"ctrl-h": "menu::SelectPrevious",
"ctrl-j": "menu::SelectNext",
"ctrl-k": "menu::SelectPrevious",
"ctrl-l": "menu::SelectNext"
}
},
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"|": "pane::SplitVertical",
// Window movement bindings
// Ctrl jklk to move between panes
"ctrl-h": "workspace::ActivatePaneLeft",
"ctrl-l": "workspace::ActivatePaneRight",
"ctrl-k": "workspace::ActivatePaneUp",
"ctrl-j": "workspace::ActivatePaneDown",
"space e": "pane::RevealInProjectPanel",
// +LSP
"space l a": "editor::ToggleCodeActions",
"space l r": "editor::Rename",
"g d": "editor::GoToDefinition",
"g D": "editor::GoToDefinitionSplit",
"g i": "editor::GoToImplementation",
"g I": "editor::GoToImplementationSplit",
"g t": "editor::GoToTypeDefinition",
"g T": "editor::GoToTypeDefinitionSplit",
"g r": "editor::FindAllReferences",
"space l j": "editor::GoToDiagnostic",
"space l k": "editor::GoToPreviousDiagnostic",
// Symbol search
"space f o": "outline::Toggle",
"space f O": "project_symbols::Toggle",
// Diagnostic
"space f q": "diagnostics::Deploy",
// +Git
// Git prev/next hunk
"space g j": "editor::GoToHunk",
"space g k": "editor::GoToPreviousHunk",
// + Buffers
// Switch between buffers
"shift-h": "pane::ActivatePreviousItem",
"shift-l": "pane::ActivateNextItem",
// Close active panel
"space b c": "pane::CloseActiveItem",
"space b d": "pane::CloseActiveItem",
// Close other items
"space b o": "pane::CloseOtherItems",
// Save file
"ctrl-s": "workspace::Save",
// File finder
"space f f": "file_finder::Toggle",
// Project search
"space f W": "pane::DeploySearch"
}
},
{
"context": "Editor && vim_mode == visual",
"bindings": {
"shift-j": "editor::MoveLineDown",
"shift-k": "editor::MoveLineUp"
}
},
// Empty pane, set of keybindings that are available when there is no active editor
{
"context": "(EmptyPane || SharedScreen) && vim_mode != insert",
"bindings": {
// Open file finder
"space f f": "file_finder::Toggle",
// Open recent project
"space f p": "projects::OpenRecent"
}
},
{
"context": "Workspace",
"bindings": {
"ctrl-t": "terminal_panel::ToggleFocus"
}
},
{
"context": "Terminal",
"bindings": {
"ctrl-h": "workspace::ActivatePaneLeft",
"ctrl-l": "workspace::ActivatePaneRight",
"ctrl-k": "workspace::ActivatePaneUp",
"ctrl-j": "workspace::ActivatePaneDown"
}
},
// File panel (netrw)
{
"context": "ProjectPanel && not_editing",
"bindings": {
"a": "project_panel::NewFile",
"A": "project_panel::NewDirectory",
"r": "project_panel::Rename",
"d": "project_panel::Delete",
"x": "project_panel::Cut",
"c": "project_panel::Copy",
"p": "project_panel::Paste",
"y": "workspace::CopyRelativePath",
"Y": "workspace::CopyPath",
"o": ["project_panel::Open", "workspace::toggleLeftDock"],
// Close project panel as project file panel on the right
// Navigate between panel
"ctrl-h": "workspace::ActivatePaneLeft",
"ctrl-l": "workspace::ActivatePaneRight",
"ctrl-k": "workspace::ActivatePaneUp",
"ctrl-j": "workspace::ActivatePaneDown",
"space e": "workspace::ToggleLeftDock"
}
},
// Panel nagivation
{
"context": "Dock",
"bindings": {
"ctrl-w h": "workspace::ActivatePaneLeft",
"ctrl-w l": "workspace::ActivatePaneRight",
"ctrl-w k": "workspace::ActivatePaneUp",
"ctrl-w j": "workspace::ActivatePaneDown"
}
},
{
"context": "vim_operator == a || vim_operator == i || vim_operator == cs",
"bindings": {
// mini.ai plugin behavior
"\"": "vim::MiniQuotes",
"[": "vim::MiniBrackets",
"]": "vim::MiniBrackets",
"q": "vim::MiniQuotes",
"b": "vim::MiniBrackets"
}
},
{
"context": "vim_mode == visual",
"bindings": {
"shift-s": "vim::PushAddSurrounds",
"g x": "vim::Exchange"
}
}
]

View file

@ -1,253 +0,0 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"zoomed_padding": false,
"active_pane_modifiers": {
"border_size": -1.0
},
"window_decorations": "client",
"close_on_file_delete": true,
"file_finder": {
"modal_max_width": "medium"
},
"use_smartcase_search": true,
"colorize_brackets": true,
"show_whitespaces": "selection",
"always_treat_brackets_as_autoclosed": false,
"vim": {
"use_smartcase_find": true
},
"sticky_scroll": {
"enabled": true
},
"scroll_beyond_last_line": "vertical_scroll_margin",
"which_key": {
"enabled": true
},
"rounded_selection": true,
"current_line_highlight": "gutter",
"cursor_shape": "bar",
"session": {
"trust_all_worktrees": true
},
"lsp_document_colors": "inlay",
"inlay_hints": {
"show_background": false,
"show_other_hints": true,
"show_parameter_hints": true,
"show_type_hints": true,
"show_value_hints": true,
"enabled": true,
},
"languages": {
"PHP": {
"inlay_hints": {
"enabled": true,
},
},
"Markdown": {
"enable_language_server": true,
"language_servers": ["rumdl"],
"formatter": "language_server",
"format_on_save": "on",
},
},
"git": {
"inline_blame": {
"enabled": false,
},
},
"agent": {
"button": true,
"model_parameters": [],
},
"collaboration_panel": {
"button": false,
},
"notification_panel": {
"button": false,
},
"git_panel": {
"tree_view": true,
"collapse_untracked_diff": false,
"sort_by_path": false,
"status_style": "label_color",
},
"bottom_dock_layout": "contained",
"preview_tabs": {
"enable_preview_from_file_finder": true,
},
"tabs": {
"show_diagnostics": "errors",
"file_icons": true,
"git_status": true,
},
"search": {
"center_on_match": true,
"button": false,
},
"diagnostics": {
"inline": {
"min_column": 0,
"padding": 4,
"enabled": true,
},
"button": true,
},
"debugger": {
"button": true,
},
"status_bar": {
"cursor_position_button": true,
"active_language_button": true,
},
"project_panel": {
"sort_mode": "directories_first",
"hide_hidden": false,
"show_diagnostics": "errors",
"hide_root": true,
"starts_open": false,
"entry_spacing": "standard",
"hide_gitignore": false,
"button": true,
},
"toolbar": {
"breadcrumbs": true,
"selections_menu": true,
"quick_actions": false,
"code_actions": true,
},
"horizontal_scroll_margin": 25.0,
"vertical_scroll_margin": 15.0,
"use_system_window_tabs": false,
"tab_bar": {
"show_pinned_tabs_in_separate_row": false,
"show_tab_bar_buttons": false,
"show_nav_history_buttons": false,
"show": true,
},
"title_bar": {
"show_user_menu": false,
"show_branch_icon": true,
"show_branch_name": true,
"show_project_items": true,
"show_onboarding_banner": false,
"show_menus": false,
"show_user_picture": false,
"show_sign_in": false,
},
"terminal": {
"toolbar": {
"breadcrumbs": false
},
"button": true,
"font_size": 14.0,
},
"indent_guides": {
"active_line_width": 1,
"background_coloring": "disabled",
"coloring": "fixed",
},
"tab_size": 2,
"scrollbar": {
"show": "never",
},
"auto_signature_help": true,
"ui_font_family": "DejaVu Sans",
"buffer_font_family": "JetBrainsMono Nerd Font",
"icon_theme": {
"mode": "system",
"light": "Catppuccin Macchiato",
"dark": "Catppuccin Macchiato",
},
"ssh_connections": [
{
"host": "GetDTE-Prod-App",
"args": [],
"projects": [
{
"paths": ["/bcn/invoice-chile/scripts"],
},
{
"paths": ["/bcn/workflow"],
},
{
"paths": ["/bcn/workflow/piloto/php/./"],
},
],
},
{
"host": "t-800",
"args": [],
"projects": [
{
"paths": ["/opt/stacks"],
},
],
"nickname": "T-800",
},
{
"host": "getwfr-2-piloto",
"args": [],
"projects": [],
},
{
"host": "saria",
"args": [],
"projects": [
{
"paths": ["/opt/stacks"],
},
],
"nickname": "Saria",
},
{
"host": "getwfr-2-prod",
"args": [],
"projects": [
{
"paths": ["/bcn/workflow/produccion/php/./"],
},
],
},
],
"disable_ai": false,
"auto_update": false,
"vim_mode": true,
"ui_font_size": 16.0,
"buffer_font_size": 14.0,
"theme": {
"mode": "system",
"light": "Catppuccin Macchiato",
"dark": "Catppuccin Macchiato",
},
"lsp": {
"rumdl": {
"binary": {
"path": "rumdl",
"arguments": ["server"],
},
},
"rust-analyzer": {
"enable_lsp_tasks": true,
"initialization_options": {
"inlayHints": {
"maxLength": null,
"lifetimeElisionHints": {
"enable": "skip_trivial",
"useParameterNames": true,
},
"closureReturnTypeHints": {
"enable": "always",
},
},
},
},
},
}

View file