├── fish └── .config │ └── fish │ ├── conf.d │ ├── deno.fish │ └── venv.fish │ ├── completions │ ├── am.fish │ └── bun.fish │ ├── functions │ ├── fish_user_key_bindings.fish │ └── y.fish │ ├── themes │ └── Catppuccin Frappe.theme │ ├── config.fish │ └── fish_variables ├── nvim └── .config │ └── nvim │ ├── after │ └── ftplugin │ │ ├── c.lua │ │ ├── cpp.lua │ │ ├── java.lua │ │ ├── python.lua │ │ └── rust.lua │ ├── .stylua.toml │ ├── lua │ ├── plugins │ │ ├── ui │ │ │ ├── deadcolumn.lua │ │ │ ├── nvim-web-devicons.lua │ │ │ ├── satellite.lua │ │ │ ├── catppuccin.lua │ │ │ ├── gitsigns.lua │ │ │ └── heirline.lua │ │ ├── lang │ │ │ ├── rust.lua │ │ │ ├── lua.lua │ │ │ ├── web.lua │ │ │ ├── scala.lua │ │ │ ├── java.lua │ │ │ ├── dap.lua │ │ │ └── lsp.lua │ │ ├── editor │ │ │ ├── comment.lua │ │ │ ├── preview.lua │ │ │ ├── arrow.lua │ │ │ ├── noice.lua │ │ │ ├── autopair.lua │ │ │ ├── markdown.lua │ │ │ ├── format.lua │ │ │ ├── completion.lua │ │ │ ├── snacks.lua │ │ │ └── minifiles.lua │ │ ├── init.lua │ │ └── code │ │ │ ├── autotag.lua │ │ │ └── treesitter.lua │ └── config │ │ ├── utils.lua │ │ ├── lazy.lua │ │ ├── autocmds.lua │ │ ├── options.lua │ │ └── keymaps.lua │ └── init.lua ├── maa └── .config │ └── maa │ ├── tasks │ ├── rec.toml │ ├── test.toml │ ├── rogue.toml │ └── daily.toml │ ├── overlays │ └── copilot.toml │ └── profiles │ └── default.toml ├── wezterm └── .config │ └── wezterm │ ├── .stylua.toml │ └── wezterm.lua ├── scripts └── Workspace │ └── Scripts │ ├── snapshot.sh │ ├── flameshot-gui.sh │ ├── transtify.sh │ ├── randomWallpaper.sh │ ├── restartPortal.sh │ ├── volumeControl.sh │ └── brightnessControl.sh ├── zsh ├── .zprofile ├── .zshenv └── .zshrc ├── cargo └── .cargo │ └── config.toml ├── swappy └── .config │ └── swappy │ └── config ├── emacs └── .emacs.d │ ├── .gitignore │ └── early-init.el ├── helix └── .config │ └── helix │ └── config.toml ├── konsole └── .local │ └── share │ └── konsole │ ├── dove.profile │ └── catppuccin-frappe.colorscheme ├── anyrun └── .config │ └── anyrun │ ├── style.css │ └── config.ron ├── git └── .gitconfig ├── ghostty └── .config │ └── ghostty │ ├── config │ └── themes │ └── catppuccin-frappe ├── mako └── .config │ └── mako │ └── config ├── .gitignore ├── rio └── .config │ └── rio │ ├── config.toml │ └── themes │ └── catppuccin-frappe.toml ├── waybar └── .config │ └── waybar │ ├── frappe.css │ ├── config │ └── style.css ├── zellij └── .config │ └── zellij │ ├── themes │ └── catppuccin.kdl │ └── config.kdl ├── kitty └── .config │ └── kitty │ └── current-theme.conf ├── musicfox └── .config │ └── go-musicfox │ └── go-musicfox.ini ├── hyprland └── .config │ └── hypr │ ├── hyprlock.conf │ └── hyprland.conf ├── zathura └── .config │ └── zathura │ └── zathurarc ├── nu └── .config │ └── nushell │ └── env.nu ├── ranger └── .config │ └── ranger │ ├── commands.py │ ├── rifle.conf │ └── scope.sh ├── zed └── .config │ └── zed │ ├── keymap.json │ └── settings.json ├── foot └── .config │ └── foot │ └── foot.ini ├── sway └── .config │ └── sway │ └── config ├── dunst └── .config │ └── dunst │ └── dunstrc └── niri └── .config └── niri └── config.kdl /fish/.config/fish/conf.d/deno.fish: -------------------------------------------------------------------------------- 1 | source "/home/dove/.deno/env.fish" -------------------------------------------------------------------------------- /nvim/.config/nvim/after/ftplugin/c.lua: -------------------------------------------------------------------------------- 1 | vim.opt_local.tabstop = 4 2 | -------------------------------------------------------------------------------- /nvim/.config/nvim/after/ftplugin/cpp.lua: -------------------------------------------------------------------------------- 1 | vim.opt_local.tabstop = 4 2 | -------------------------------------------------------------------------------- /nvim/.config/nvim/after/ftplugin/java.lua: -------------------------------------------------------------------------------- 1 | vim.opt_local.tabstop = 4 2 | -------------------------------------------------------------------------------- /nvim/.config/nvim/after/ftplugin/python.lua: -------------------------------------------------------------------------------- 1 | vim.opt_local.tabstop = 4 2 | -------------------------------------------------------------------------------- /nvim/.config/nvim/after/ftplugin/rust.lua: -------------------------------------------------------------------------------- 1 | vim.opt_local.tabstop = 4 2 | -------------------------------------------------------------------------------- /maa/.config/maa/tasks/rec.toml: -------------------------------------------------------------------------------- 1 | [[tasks]] 2 | type = "ReclamationAlgorithm" 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim/.stylua.toml: -------------------------------------------------------------------------------- 1 | indent_type = "Spaces" 2 | indent_width = 2 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/deadcolumn.lua: -------------------------------------------------------------------------------- 1 | return { "Bekaboo/deadcolumn.nvim" } 2 | -------------------------------------------------------------------------------- /wezterm/.config/wezterm/.stylua.toml: -------------------------------------------------------------------------------- 1 | indent_type = "Spaces" 2 | indent_width = 2 3 | -------------------------------------------------------------------------------- /maa/.config/maa/overlays/copilot.toml: -------------------------------------------------------------------------------- 1 | formation_index = 4 2 | use_sanity_potion = true 3 | -------------------------------------------------------------------------------- /maa/.config/maa/tasks/test.toml: -------------------------------------------------------------------------------- 1 | [[tasks]] 2 | type = "Fight" 3 | [tasks.params] 4 | stage = "1-7" 5 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/snapshot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | grim -g "$(slurp)" - | swappy -f - 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/nvim-web-devicons.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-tree/nvim-web-devicons", 3 | } 4 | -------------------------------------------------------------------------------- /fish/.config/fish/completions/am.fish: -------------------------------------------------------------------------------- 1 | complete -c am -f -a "(cat /home/dove/.local/share/AM/list 2>/dev/null)" 2 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/flameshot-gui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export QT_QPA_PLATFORM=wayland 3 | /usr/bin/flameshot gui 4 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/fish_user_key_bindings.fish: -------------------------------------------------------------------------------- 1 | function fish_user_key_bindings 2 | fzf_key_bindings 3 | end 4 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/transtify.sh: -------------------------------------------------------------------------------- 1 | transout=$(crow -b -t zh-CN -- "$(wl-paste -p)") 2 | notify-send -- "$transout" 3 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/rust.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "mrcjkb/rustaceanvim", 3 | version = "^5", 4 | lazy = false, 5 | } 6 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/comment.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/ts-comments.nvim", 3 | opts = {}, 4 | event = "VeryLazy", 5 | } 6 | -------------------------------------------------------------------------------- /nvim/.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("config.options") 2 | require("config.keymaps") 3 | require("config.autocmds") 4 | require("config.lazy") 5 | -------------------------------------------------------------------------------- /maa/.config/maa/tasks/rogue.toml: -------------------------------------------------------------------------------- 1 | [[tasks]] 2 | type = "Roguelike" 3 | 4 | [tasks.params] 5 | theme = "Sarkaz" 6 | core_char = "维什戴尔" 7 | mode = 0 8 | -------------------------------------------------------------------------------- /zsh/.zprofile: -------------------------------------------------------------------------------- 1 | if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then 2 | # exec wayfire 3 | # exec sway --unsupported-gpu 4 | exec Hyprland 5 | # startx 6 | fi 7 | 8 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/preview.lua: -------------------------------------------------------------------------------- 1 | return { 2 | 'brianhuster/live-preview.nvim', 3 | dependencies = { 4 | 'folke/snacks.nvim', 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/satellite.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "lewis6991/satellite.nvim", 3 | opts = { 4 | winblend = 100, 5 | gitsigns = { enable = true }, 6 | }, 7 | } 8 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { import = "plugins.ui" }, 3 | { import = "plugins.editor" }, 4 | { import = "plugins.code" }, 5 | { import = "plugins.lang" }, 6 | } 7 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/code/autotag.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "windwp/nvim-ts-autotag", 3 | event = { "BufReadPost", "BufNewFile", "BufWritePre" }, 4 | ft = { "html", "javascriptreact", "typescriptreact" }, 5 | opts = {}, 6 | } 7 | -------------------------------------------------------------------------------- /cargo/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [source.crates-io] 2 | replace-with = 'ustc' 3 | 4 | [source.ustc] 5 | registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/" 6 | 7 | [registries.ustc] 8 | index = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/" 9 | -------------------------------------------------------------------------------- /swappy/.config/swappy/config: -------------------------------------------------------------------------------- 1 | [Default] 2 | save_dir=$HOME/Pictures/Snapshot 3 | save_filename_format=swappy-%Y%m%d-%H%M%S.png 4 | show_panel=false 5 | line_size=5 6 | text_size=20 7 | text_font=sans-serif 8 | paint_mode=brush 9 | early_exit=false 10 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/randomWallpaper.sh: -------------------------------------------------------------------------------- 1 | swww init 2 | while true; do 3 | ls -d ~/Pictures/Wallpaper/* | sort -R | while read file; do 4 | sleep 300 5 | swww img "$file" --transition-step 16 --transition-fps 30 --transition-type random 6 | done 7 | done 8 | -------------------------------------------------------------------------------- /fish/.config/fish/functions/y.fish: -------------------------------------------------------------------------------- 1 | function y 2 | set tmp (mktemp -t "yazi-cwd.XXXXXX") 3 | yazi $argv --cwd-file="$tmp" 4 | if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] 5 | builtin cd -- "$cwd" 6 | end 7 | rm -f -- "$tmp" 8 | end 9 | -------------------------------------------------------------------------------- /emacs/.emacs.d/.gitignore: -------------------------------------------------------------------------------- 1 | recentf 2 | history 3 | auto-save-list 4 | eln-cache 5 | eshell 6 | transient 7 | server 8 | elpa 9 | org-roam.db 10 | .org-id-locations 11 | bookmarks 12 | tramp 13 | projects 14 | /tree-sitter 15 | /elpaca 16 | /org-persist 17 | /url 18 | /.lsp-session-v1 19 | -------------------------------------------------------------------------------- /helix/.config/helix/config.toml: -------------------------------------------------------------------------------- 1 | theme = "catppuccin_frappe" 2 | 3 | [editor] 4 | bufferline = "multiple" 5 | line-number = "relative" 6 | mouse = false 7 | 8 | [keys.normal] 9 | esc = ["collapse_selection", "keep_primary_selection"] 10 | 11 | [editor.cursor-shape] 12 | insert = "bar" 13 | -------------------------------------------------------------------------------- /maa/.config/maa/profiles/default.toml: -------------------------------------------------------------------------------- 1 | [connection] 2 | preset = "Waydroid" 3 | 4 | [static_options] 5 | cpu_ocr = false 6 | gpu_ocr = 1 7 | 8 | [instance_options] 9 | touch_mode = "MAATouch" 10 | deployment_with_pause = false 11 | adb_lite_enabled = false 12 | kill_adb_on_exit = false 13 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/lua.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/lazydev.nvim", 3 | ft = "lua", 4 | opts = { 5 | library = { 6 | "lazy.nvim", 7 | { path = "${3rd}/luv/library", words = { "vim%.uv" } }, 8 | { path = "snacks.nvim", words = { "Snacks" } }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/restartPortal.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | sleep 1 3 | killall -e xdg-desktop-portal-hyprland 4 | killall -e xdg-desktop-portal-wlr 5 | killall -e xdg-desktop-portal-gtk 6 | killall xdg-desktop-portal 7 | /usr/lib/xdg-desktop-portal-hyprland & 8 | /usr/lib/xdg-desktop-portal-gtk & 9 | sleep 2 10 | /usr/lib/xdg-desktop-portal & 11 | -------------------------------------------------------------------------------- /konsole/.local/share/konsole/dove.profile: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | ColorScheme=catppuccin-frappe 3 | Font=Maple Mono NF CN,14,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 4 | UseFontLineChararacters=true 5 | WordMode=false 6 | 7 | [General] 8 | Name=dove 9 | Parent=FALLBACK/ 10 | ShowTerminalSizeHint=false 11 | TerminalMargin=4 12 | 13 | [Scrolling] 14 | ScrollBarPosition=2 15 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/web.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "yioneko/nvim-vtsls", 3 | ft = { "typescript", "javascript", "typescriptreact", "javascriptreact" }, 4 | config = function() 5 | require("lspconfig.configs").vtsls = require("vtsls").lspconfig 6 | vim.lsp.enable("vtsls") 7 | end, 8 | dependencies = { "neovim/nvim-lspconfig" }, 9 | } 10 | -------------------------------------------------------------------------------- /anyrun/.config/anyrun/style.css: -------------------------------------------------------------------------------- 1 | #entry { 2 | background-color: alpha(@theme_fg_color,0.1); 3 | border: 0px; 4 | border-radius: 4px; 5 | } 6 | 7 | #main { 8 | background-color: alpha(@theme_bg_color,0.9); 9 | border: 0px; 10 | border-radius: 4px; 11 | } 12 | 13 | #plugin { 14 | background-color: transparent; 15 | } 16 | 17 | #window { 18 | background: none; 19 | } 20 | -------------------------------------------------------------------------------- /git/.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = dragove 3 | email = dragove@qq.com 4 | [pull] 5 | rebase = true 6 | [push] 7 | autoSetupRemote = true 8 | [init] 9 | defaultBranch = master 10 | [color] 11 | ui = true 12 | [core] 13 | editor = nvim 14 | autocrlf = input 15 | [filter "lfs"] 16 | clean = git-lfs clean -- %f 17 | smudge = git-lfs smudge -- %f 18 | process = git-lfs filter-process 19 | required = true 20 | -------------------------------------------------------------------------------- /ghostty/.config/ghostty/config: -------------------------------------------------------------------------------- 1 | theme = catppuccin-frappe 2 | font-family = Maple Mono NF CN 3 | font-size = 14 4 | confirm-close-surface = false 5 | shell-integration-features = no-cursor 6 | 7 | maximize = true 8 | window-theme = ghostty 9 | window-decoration = true 10 | window-padding-x = 8 11 | window-padding-y = 4 12 | window-padding-balance = true 13 | gtk-single-instance = true 14 | gtk-tabs-location = bottom 15 | gtk-wide-tabs = false 16 | -------------------------------------------------------------------------------- /mako/.config/mako/config: -------------------------------------------------------------------------------- 1 | sort=-time 2 | layer=overlay 3 | background-color=#303446 4 | text-color=#c6d0f5 5 | border-color=#8caaee 6 | progress-color=over #414559 7 | width=300 8 | height=110 9 | border-size=2 10 | border-color=#444488 11 | border-radius=4 12 | icon-path=/usr/share/icons/ePapirus-Dark 13 | max-icon-size=24 14 | default-timeout=5000 15 | ignore-timeout=1 16 | font=monospace 14 17 | 18 | [urgency=high] 19 | border-color=#ef9f76 20 | default-timeout=0 21 | 22 | -------------------------------------------------------------------------------- /maa/.config/maa/tasks/daily.toml: -------------------------------------------------------------------------------- 1 | # startup game 2 | [[tasks]] 3 | type = "StartUp" 4 | params = { client_type = "Official", start_game_enabled = true } 5 | 6 | [[tasks]] 7 | type = "Recruit" 8 | [tasks.params] 9 | refresh = true 10 | select = [4, 5] 11 | confirm = [3, 4, 5] 12 | times = 4 13 | 14 | [[tasks]] 15 | type = "Mall" 16 | [tasks.params] 17 | shopping = true 18 | buy_first = ["招聘许可", "龙门币"] 19 | blacklist = ["碳", "家具", "加急许可"] 20 | 21 | [[tasks]] 22 | type = "Award" 23 | 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | /xmonad/.config/xmonad/stack.yaml 3 | /scripts/Workspace/Scripts/datagrip 4 | /scripts/Workspace/Scripts/pycharm 5 | /scripts/Workspace/Scripts/idea 6 | lazy-lock.json 7 | /konsole/.local/share/konsole/bookmarks.xml 8 | /konsole/.local/share/konsole/bookmarks.xml.tbcache 9 | /konsole/.local/share/konsole/konsolestaterc 10 | /cargo 11 | !/cargo/.cargo/config.toml 12 | *.bak 13 | /musicfox 14 | !/musicfox/.config/go-musicfox/go-musicfox.ini 15 | /nu/.config/nushell/history* 16 | -------------------------------------------------------------------------------- /rio/.config/rio/config.toml: -------------------------------------------------------------------------------- 1 | theme = "catppuccin-frappe" 2 | confirm-before-quit = false 3 | padding-x = 8 4 | padding-y = [2, 0] 5 | 6 | [cursor] 7 | shape = 'block' 8 | 9 | [window] 10 | mode = "Maximized" 11 | 12 | [fonts] 13 | family = "Maple Mono NF CN" 14 | size = 19 15 | [fonts.regular] 16 | family = "Maple Mono NF CN" 17 | style = "Normal" 18 | weight = 410 19 | 20 | [navigation] 21 | mode = "Bookmark" 22 | clickable = false 23 | hide-if-single = true 24 | use-current-path = true 25 | 26 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/arrow.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "otavioschwanck/arrow.nvim", 3 | opts = function() 4 | -- disable keymap for default mark to prevent delay on m key 5 | vim.keymap.set({ "n", "v" }, "m", "") 6 | vim.keymap.set("n", "H", require("arrow.persist").previous) 7 | vim.keymap.set("n", "L", require("arrow.persist").next) 8 | return { 9 | show_icons = true, 10 | leader_key = ";", 11 | buffer_leader_key = "m", 12 | } 13 | end, 14 | } 15 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/noice.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/noice.nvim", 3 | event = "VeryLazy", 4 | opts = { 5 | lsp = { 6 | progress = { enabled = false }, 7 | }, 8 | health = { checker = false }, 9 | presets = { 10 | bottom_search = true, 11 | command_palette = true, 12 | long_message_to_split = true, 13 | inc_rename = false, 14 | lsp_doc_border = false, 15 | }, 16 | }, 17 | dependencies = { 18 | "MunifTanjim/nui.nvim", 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /zsh/.zshenv: -------------------------------------------------------------------------------- 1 | path+=(~/.local/bin;~/Workspace/Scripts;~/.ghcup/bin) 2 | 3 | # use bat as man pager 4 | export MANPAGER="sh -c 'col -bx | bat -l man -p'" 5 | 6 | 7 | export EDITOR=nvim 8 | export BROWSER=firefox 9 | 10 | 11 | export XDG_CONFIG_HOME=~/.config 12 | export XDG_DATA_HOME=~/.local/share 13 | export XDG_CACHE_HOME=~/.cache 14 | 15 | 16 | export GOPATH=$XDG_DATA_HOME/go 17 | 18 | export LS_COLORS='rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:'; 19 | 20 | . "$HOME/.cargo/env" 21 | -------------------------------------------------------------------------------- /ghostty/.config/ghostty/themes/catppuccin-frappe: -------------------------------------------------------------------------------- 1 | palette = 0=#51576d 2 | palette = 1=#e78284 3 | palette = 2=#a6d189 4 | palette = 3=#e5c890 5 | palette = 4=#8caaee 6 | palette = 5=#f4b8e4 7 | palette = 6=#81c8be 8 | palette = 7=#a5adce 9 | palette = 8=#626880 10 | palette = 9=#e78284 11 | palette = 10=#a6d189 12 | palette = 11=#e5c890 13 | palette = 12=#8caaee 14 | palette = 13=#f4b8e4 15 | palette = 14=#81c8be 16 | palette = 15=#b5bfe2 17 | background = 303446 18 | foreground = c6d0f5 19 | cursor-color = f2d5cf 20 | cursor-text = 232634 21 | selection-background = 44495d 22 | selection-foreground = c6d0f5 23 | -------------------------------------------------------------------------------- /fish/.config/fish/conf.d/venv.fish: -------------------------------------------------------------------------------- 1 | function __auto_source_venv --on-variable PWD 2 | status --is-command-substitution; and return 3 | 4 | if git rev-parse --show-toplevel &>/dev/null 5 | set gitdir (realpath (git rev-parse --show-toplevel)) 6 | set cwd (pwd -P) 7 | while string match "$gitdir*" "$cwd" &>/dev/null 8 | if test -e "$cwd/.venv/bin/activate.fish" 9 | source "$cwd/.venv/bin/activate.fish" &>/dev/null 10 | return 11 | else 12 | set cwd (path dirname "$cwd") 13 | end 14 | end 15 | end 16 | if test -n "$VIRTUAL_ENV" 17 | deactivate 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/utils.lua: -------------------------------------------------------------------------------- 1 | local api = vim.api 2 | local cmd = vim.cmd 3 | local fn = vim.fn 4 | 5 | M = {} 6 | 7 | local function buf_count() 8 | local bufnrs = vim.tbl_filter(function(b) 9 | if 1 ~= fn.buflisted(b) then 10 | return false 11 | else 12 | return true 13 | end 14 | end, api.nvim_list_bufs()) 15 | return #bufnrs 16 | end 17 | 18 | function M.close_buf() 19 | -- is last buffer and the buffer is empty 20 | if buf_count() == 1 and api.nvim_buf_get_name(0) == "" then 21 | cmd("confirm q") 22 | else 23 | cmd("confirm bdelete") 24 | end 25 | end 26 | 27 | return M 28 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/autopair.lua: -------------------------------------------------------------------------------- 1 | return { 2 | 'saghen/blink.pairs', 3 | version = '*', 4 | dependencies = 'saghen/blink.download', 5 | 6 | --- @module 'blink.pairs' 7 | --- @type blink.pairs.Config 8 | opts = { 9 | mappings = { 10 | enabled = true, 11 | disabled_filetypes = {}, 12 | pairs = {}, 13 | }, 14 | highlights = { 15 | enabled = true, 16 | groups = { 17 | 'BlinkPairsOrange', 18 | 'BlinkPairsPurple', 19 | 'BlinkPairsBlue', 20 | }, 21 | matchparen = { 22 | enabled = true, 23 | group = 'MatchParen', 24 | }, 25 | }, 26 | debug = false, 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/catppuccin.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "catppuccin/nvim", 3 | name = "catppuccin", 4 | priority = 1000, 5 | config = function() 6 | require("catppuccin").setup({ 7 | transparent_background = false, 8 | integrations = { 9 | lsp_saga = true, 10 | blink_cmp = true, 11 | snacks = { 12 | enabled = false, 13 | indent_scope_color = "lavender", 14 | }, 15 | }, 16 | custom_highlights = function(color) 17 | return { 18 | NormalFloat = { fg = color.text, bg = color.none }, 19 | } 20 | end, 21 | }) 22 | vim.cmd.colorscheme("catppuccin-frappe") 23 | end, 24 | } 25 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/markdown.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "MeanderingProgrammer/render-markdown.nvim", 3 | dependencies = { 4 | "nvim-treesitter/nvim-treesitter", 5 | "nvim-tree/nvim-web-devicons", 6 | }, 7 | opts = { 8 | sign = { 9 | enabled = false, 10 | }, 11 | heading = { 12 | position = "inline", 13 | backgrounds = { 14 | "none", 15 | "none", 16 | "none", 17 | "none", 18 | "none", 19 | "none", 20 | }, 21 | }, 22 | code = { 23 | border = "thick", 24 | width = "block", 25 | language_pad = 1, 26 | left_pad = 1, 27 | right_pad = 1, 28 | }, 29 | inline_highlight = { 30 | enabled = false, 31 | }, 32 | }, 33 | } 34 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/format.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "stevearc/conform.nvim", 3 | config = function() 4 | local conform = require("conform") 5 | conform.setup({ 6 | formatters_by_ft = { 7 | lua = { "stylua" }, 8 | json = { "biome" }, 9 | javascript = { "biome" }, 10 | typescript = { "biome" }, 11 | javascriptreact = { "biome" }, 12 | typescriptreact = { "biome" }, 13 | python = { "ruff" }, 14 | rust = { "rustfmt", lsp_format = "fallback" }, 15 | }, 16 | default_format_opts = { 17 | lsp_format = "fallback", 18 | }, 19 | }) 20 | vim.keymap.set({ "n", "v" }, "cf", function() 21 | conform.format() 22 | end, { desc = "format" }) 23 | end, 24 | } 25 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/lazy.lua: -------------------------------------------------------------------------------- 1 | -- Bootstrap lazy.nvim 2 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 3 | if not vim.uv.fs_stat(lazypath) then 4 | local lazyrepo = "https://github.com/folke/lazy.nvim.git" 5 | local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 6 | if vim.v.shell_error ~= 0 then 7 | vim.api.nvim_echo({ 8 | { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, 9 | { out, "WarningMsg" }, 10 | { "\nPress any key to exit..." }, 11 | }, true, {}) 12 | vim.fn.getchar() 13 | os.exit(1) 14 | end 15 | end 16 | vim.opt.rtp:prepend(lazypath) 17 | 18 | -- Setup lazy.nvim 19 | require("lazy").setup({ 20 | concurrency = 5, 21 | spec = { 22 | { import = "plugins" }, 23 | }, 24 | change_detection = { enabled = false }, 25 | }) 26 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/volumeControl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # You can call this script like this: 4 | # $ ./volumeControl.sh up 5 | # $ ./volumeControl.sh down 6 | # $ ./volumeControl.sh mute 7 | 8 | # Script modified from these wonderful people: 9 | # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh 10 | # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a 11 | 12 | function get_volume { 13 | pamixer --get-volume 14 | } 15 | 16 | function is_mute { 17 | res=$(pamixer --get-mute) 18 | $res 19 | } 20 | 21 | case $1 in 22 | up) 23 | # set the volume on (if it was muted) 24 | pamixer -i 5 25 | send_notification 26 | ;; 27 | down) 28 | pamixer -d 5 29 | send_notification 30 | ;; 31 | mute) 32 | # toggle mute 33 | if is_mute ; then 34 | pamixer -u 35 | else 36 | pamixer -m 37 | fi 38 | ;; 39 | esac 40 | -------------------------------------------------------------------------------- /fish/.config/fish/themes/Catppuccin Frappe.theme: -------------------------------------------------------------------------------- 1 | # name: 'Catppuccin frappe' 2 | # url: 'https://github.com/catppuccin/fish' 3 | # preferred_background: 303446 4 | 5 | fish_color_normal c6d0f5 6 | fish_color_command 8caaee 7 | fish_color_param eebebe 8 | fish_color_keyword e78284 9 | fish_color_quote a6d189 10 | fish_color_redirection f4b8e4 11 | fish_color_end ef9f76 12 | fish_color_comment 838ba7 13 | fish_color_error e78284 14 | fish_color_gray 737994 15 | fish_color_selection --background=414559 16 | fish_color_search_match --background=414559 17 | fish_color_option a6d189 18 | fish_color_operator f4b8e4 19 | fish_color_escape ea999c 20 | fish_color_autosuggestion 737994 21 | fish_color_cancel e78284 22 | fish_color_cwd e5c890 23 | fish_color_user 81c8be 24 | fish_color_host 8caaee 25 | fish_color_host_remote a6d189 26 | fish_color_status e78284 27 | fish_pager_color_progress 737994 28 | fish_pager_color_prefix f4b8e4 29 | fish_pager_color_completion c6d0f5 30 | fish_pager_color_description 737994 31 | -------------------------------------------------------------------------------- /waybar/.config/waybar/frappe.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Frappe palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #303446; 9 | @define-color mantle #292c3c; 10 | @define-color crust #232634; 11 | 12 | @define-color text #c6d0f5; 13 | @define-color subtext0 #a5adce; 14 | @define-color subtext1 #b5bfe2; 15 | 16 | @define-color surface0 #414559; 17 | @define-color surface1 #51576d; 18 | @define-color surface2 #626880; 19 | 20 | @define-color overlay0 #737994; 21 | @define-color overlay1 #838ba7; 22 | @define-color overlay2 #949cbb; 23 | 24 | @define-color blue #8caaee; 25 | @define-color lavender #babbf1; 26 | @define-color sapphire #85c1dc; 27 | @define-color sky #99d1db; 28 | @define-color teal #81c8be; 29 | @define-color green #a6d189; 30 | @define-color yellow #e5c890; 31 | @define-color peach #ef9f76; 32 | @define-color maroon #ea999c; 33 | @define-color red #e78284; 34 | @define-color mauve #ca9ee6; 35 | @define-color pink #f4b8e4; 36 | @define-color flamingo #eebebe; 37 | @define-color rosewater #f2d5cf; 38 | 39 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/completion.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "saghen/blink.cmp", 3 | version = "*", 4 | dependencies = { 5 | "MeanderingProgrammer/render-markdown.nvim", 6 | }, 7 | opts = { 8 | keymap = { preset = "enter" }, 9 | appearance = { use_nvim_cmp_as_default = false }, 10 | completion = { 11 | keyword = { range = "full" }, 12 | accept = { auto_brackets = { enabled = false } }, 13 | }, 14 | signature = { 15 | enabled = true, 16 | }, 17 | fuzzy = { 18 | implementation = "lua", 19 | max_typos = nil, 20 | }, 21 | cmdline = { 22 | enabled = false, 23 | }, 24 | sources = { 25 | default = { "lazydev", "lsp", "path", "snippets", "buffer", "markdown" }, 26 | providers = { 27 | lazydev = { 28 | name = "LazyDev", 29 | module = "lazydev.integrations.blink", 30 | score_offset = 100, 31 | }, 32 | markdown = { 33 | name = "RenderMarkdown", 34 | module = "render-markdown.integ.blink", 35 | fallbacks = { "lsp" }, 36 | }, 37 | }, 38 | }, 39 | }, 40 | } 41 | -------------------------------------------------------------------------------- /scripts/Workspace/Scripts/brightnessControl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # You can call this script like this: 4 | # $ ./brightnessControl.sh up 5 | # $ ./brightnessControl.sh down 6 | 7 | # Script inspired by these wonderful people: 8 | # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh 9 | # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a 10 | 11 | function get_brightness { 12 | light -G | cut -d '.' -f 1 13 | } 14 | 15 | function send_notification { 16 | icon="preferences-system-brightness-lock" 17 | brightness=$(get_brightness) 18 | # Make the bar with the special character ─ (it's not dash -) 19 | # https://en.wikipediorg/wiki/Box-drawing_character 20 | bar=$(seq -s "─" 0 $((brightness / 5)) | sed 's/[0-9]//g') 21 | # Send the notification 22 | notif_path="$XDG_RUNTIME_DIR"/.brightness_notif 23 | notif=$(cat "$notif_path") 24 | if ! echo "$notif" | grep '[[:digit:]]'; then 25 | notif=0 26 | fi 27 | notify-send -p -i "$icon" -r "$notif" "$bar" > "$notif_path" 28 | } 29 | 30 | case $1 in 31 | up) 32 | # increase the backlight by 5% 33 | light -A 5 34 | send_notification 35 | ;; 36 | down) 37 | # decrease the backlight by 5% 38 | light -U 5 39 | send_notification 40 | ;; 41 | esac 42 | -------------------------------------------------------------------------------- /wezterm/.config/wezterm/wezterm.lua: -------------------------------------------------------------------------------- 1 | local wezterm = require("wezterm") 2 | local mux = wezterm.mux 3 | wezterm.on('gui-startup', function(cmd) 4 | local _, _, window = mux.spawn_window(cmd or {}) 5 | window:gui_window():maximize() 6 | end) 7 | return { 8 | max_fps = 120, 9 | animation_fps = 1, 10 | use_dead_keys = false, 11 | check_for_updates = false, 12 | audible_bell = "Disabled", 13 | font = wezterm.font("Maple Mono NF CN", { weight = 'Medium' }), 14 | font_size = 14, 15 | hide_tab_bar_if_only_one_tab = true, 16 | window_padding = { 17 | left = 4, 18 | right = 4, 19 | top = 4, 20 | bottom = 4, 21 | }, 22 | use_fancy_tab_bar = false, 23 | window_frame = { 24 | inactive_titlebar_bg = "#303446", 25 | active_titlebar_bg = "#303446", 26 | }, 27 | colors = { 28 | tab_bar = { 29 | -- The color of the inactive tab bar edge/divider 30 | background = "#303446", 31 | active_tab = { 32 | bg_color = "#303446", 33 | fg_color = "#f0f0f0", 34 | }, 35 | inactive_tab = { 36 | bg_color = "#303446", 37 | fg_color = "#999999", 38 | }, 39 | }, 40 | }, 41 | show_new_tab_button_in_tab_bar = false, 42 | color_scheme = "Catppuccin Frappe", 43 | -- for windows 44 | -- default_prog = { "nu.exe" }, 45 | } 46 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/autocmds.lua: -------------------------------------------------------------------------------- 1 | local autocmd = vim.api.nvim_create_autocmd 2 | local augroup = vim.api.nvim_create_augroup 3 | autocmd("TextYankPost", { 4 | desc = "Highlight when yanking (copying) text", 5 | callback = function() 6 | vim.highlight.on_yank() 7 | end, 8 | }) 9 | autocmd({ "InsertLeave", "FocusLost", "BufLeave" }, { 10 | desc = "Autosave on some actions", 11 | command = "silent! wall", 12 | nested = true, 13 | }) 14 | autocmd("BufRead", { 15 | desc = "Diable Editing Readonly files", 16 | callback = function() 17 | vim.bo.modifiable = not vim.bo.readonly 18 | end, 19 | }) 20 | autocmd({ "BufNewFile", "BufRead" }, { 21 | pattern = "build.mill", 22 | desc = "Make mill file to be recognized as scala file", 23 | callback = function() 24 | vim.bo.filetype = "scala" 25 | end, 26 | }) 27 | 28 | -- auto fill background color on margins 29 | local modified = false 30 | autocmd({ "UIEnter", "ColorScheme" }, { 31 | callback = function() 32 | local normal = vim.api.nvim_get_hl(0, { name = "Normal" }) 33 | if normal.bg then 34 | io.write(string.format("\027]11;#%06x\027\\", normal.bg)) 35 | modified = true 36 | end 37 | end, 38 | }) 39 | autocmd("UILeave", { 40 | callback = function() 41 | if modified then 42 | io.write("\027]111\027\\") 43 | end 44 | end, 45 | }) 46 | -------------------------------------------------------------------------------- /rio/.config/rio/themes/catppuccin-frappe.toml: -------------------------------------------------------------------------------- 1 | [colors] 2 | 3 | # Normal 4 | foreground = '#c6d0f5' 5 | background = '#303446' 6 | black = '#51576d' 7 | blue = '#8caaee' 8 | cursor = '#f2d5cf' 9 | cyan = '#81c8be' 10 | green = '#a6d189' 11 | magenta = '#f4b8e4' 12 | red = '#e78284' 13 | white = '#b5bfe2' 14 | yellow = '#e5c890' 15 | 16 | # UI colors 17 | tabs = '#303446' 18 | tabs-foreground = '#c6d0f5' 19 | tabs-active = '#babbf1' 20 | tabs-active-highlight = '#babbf1' 21 | tabs-active-foreground = '#232634' 22 | selection-foreground = '#303446' 23 | selection-background = '#f2d5cf' 24 | 25 | # Dim colors 26 | dim-black = '#51576d' 27 | dim-blue = '#8caaee' 28 | dim-cyan = '#81c8be' 29 | dim-foreground = '#c6d0f5' 30 | dim-green = '#a6d189' 31 | dim-magenta = '#f4b8e4' 32 | dim-red = '#e78284' 33 | dim-white = '#b5bfe2' 34 | dim-yellow = '#e5c890' 35 | 36 | # Light colors 37 | light-black = '#626880' 38 | light-blue = '#8caaee' 39 | light-cyan = '#81c8be' 40 | light-foreground = '#c6d0f5' 41 | light-green = '#a6d189' 42 | light-magenta = '#f4b8e4' 43 | light-red = '#e78284' 44 | light-white = '#a5adce' 45 | light-yellow = '#e5c890' 46 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/scala.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "scalameta/nvim-metals", 3 | ft = { "scala", "sbt", "java" }, 4 | dependencies = { 5 | "nvim-lua/plenary.nvim", 6 | "saghen/blink.cmp", 7 | }, 8 | config = function() 9 | local metals_config = require("metals").bare_config() 10 | metals_config.settings = { 11 | useGlobalExecutable = true, 12 | showImplicitArguments = false, 13 | showImplicitConversionsAndClasses = false, 14 | showInferredType = true, 15 | autoImportBuild = "initial", 16 | serverProperties = { 17 | "-Xmx2G", 18 | "-Dmetals.enable-best-effort=true", 19 | }, 20 | inlayHints = { 21 | hintsInPatternMatch = { enable = true }, 22 | implicitArguments = { enable = false }, 23 | implicitConversions = { enable = false }, 24 | inferredTypes = { enable = true }, 25 | typeParameters = { enable = false }, 26 | }, 27 | } 28 | metals_config.init_options.statusBarProvider = "off" 29 | metals_config.on_attach = function() 30 | require("metals").setup_dap() 31 | end 32 | 33 | vim.api.nvim_create_autocmd("FileType", { 34 | pattern = { "scala", "sbt", "java" }, 35 | callback = function() 36 | require("metals").initialize_or_attach(metals_config) 37 | end, 38 | }) 39 | end, 40 | } 41 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/code/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-treesitter/nvim-treesitter", 3 | lazy = false, 4 | branch = "main", 5 | build = ":TSUpdate", 6 | config = function() 7 | require("nvim-treesitter").setup({ 8 | install_dir = vim.fn.stdpath("data") .. "/site", 9 | }) 10 | require("nvim-treesitter").install({ 11 | "c", 12 | "cpp", 13 | "groovy", 14 | "java", 15 | "javascript", 16 | "kotlin", 17 | "lua", 18 | "markdown", 19 | "markdown_inline", 20 | "python", 21 | "query", 22 | "rust", 23 | "scala", 24 | "typescript", 25 | "vim", 26 | "vimdoc", 27 | "zig", 28 | }) 29 | vim.api.nvim_create_autocmd("FileType", { 30 | pattern = { 31 | "c", 32 | "cpp", 33 | "groovy", 34 | "java", 35 | "javascript", 36 | "kotlin", 37 | "lua", 38 | "markdown", 39 | "python", 40 | "rust", 41 | "scala", 42 | "typescript", 43 | "vim", 44 | "zig", 45 | }, 46 | callback = function() 47 | vim.treesitter.start() 48 | vim.wo.foldmethod = "expr" 49 | vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()" 50 | vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" 51 | end, 52 | }) 53 | end, 54 | } 55 | -------------------------------------------------------------------------------- /zellij/.config/zellij/themes/catppuccin.kdl: -------------------------------------------------------------------------------- 1 | themes { 2 | catppuccin-frappe { 3 | fg 198 208 245 4 | bg 98 104 128 5 | black 41 44 60 6 | red 231 130 132 7 | green 166 209 137 8 | yellow 229 200 144 9 | blue 140 170 238 10 | magenta 244 184 228 11 | cyan 153 209 219 12 | white 198 208 245 13 | orange 239 159 118 14 | } 15 | catppuccin-latte { 16 | fg 172 176 190 17 | bg 172 176 190 18 | black 76 79 105 19 | red 210 15 57 20 | green 64 160 43 21 | yellow 223 142 29 22 | blue 30 102 245 23 | magenta 234 118 203 24 | cyan 4 165 229 25 | white 220 224 232 26 | orange 254 100 11 27 | } 28 | catppuccin-macchiato { 29 | fg 202 211 245 30 | bg 91 96 120 31 | black 30 32 48 32 | red 237 135 150 33 | green 166 218 149 34 | yellow 238 212 159 35 | blue 138 173 244 36 | magenta 245 189 230 37 | cyan 145 215 227 38 | white 202 211 245 39 | orange 245 169 127 40 | } 41 | catppuccin-mocha { 42 | fg 205 214 244 43 | bg 88 91 112 44 | black 24 24 37 45 | red 243 139 168 46 | green 166 227 161 47 | yellow 249 226 175 48 | blue 137 180 250 49 | magenta 245 194 231 50 | cyan 137 220 235 51 | white 205 214 244 52 | orange 250 179 135 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/options.lua: -------------------------------------------------------------------------------- 1 | local opt, g = vim.opt, vim.g 2 | 3 | g.mapleader = " " 4 | 5 | g.loaded_gzip = 1 6 | g.loaded_tar = 1 7 | g.loaded_tarPlugin = 1 8 | g.loaded_zip = 1 9 | g.loaded_zipPlugin = 1 10 | g.loaded_getscript = 1 11 | g.loaded_getscriptPlugin = 1 12 | g.loaded_vimball = 1 13 | g.loaded_vimballPlugin = 1 14 | g.loaded_matchit = 1 15 | g.loaded_matchparen = 1 16 | g.loaded_2html_plugin = 1 17 | g.loaded_logiPat = 1 18 | g.loaded_rrhelper = 1 19 | g.loaded_netrwPlugin = 1 20 | 21 | opt.undofile = true 22 | opt.writebackup = false 23 | opt.swapfile = false 24 | opt.cmdheight = 0 25 | opt.cursorline = true 26 | opt.laststatus = 3 27 | opt.relativenumber = true 28 | opt.ruler = false 29 | opt.showmode = false 30 | opt.signcolumn = "yes" 31 | opt.splitbelow = true 32 | opt.splitright = true 33 | opt.termguicolors = true 34 | opt.wrap = false 35 | opt.list = true 36 | opt.listchars = "tab:» ,nbsp:+,trail:·,extends:→,precedes:←," 37 | opt.colorcolumn = "120" 38 | 39 | opt.scrolloff = 3 40 | opt.autoindent = true 41 | opt.expandtab = true 42 | opt.incsearch = true 43 | opt.infercase = true 44 | opt.smartcase = true 45 | opt.smartindent = true 46 | opt.tabstop = 2 47 | -- always use tabstop 48 | opt.shiftwidth = 0 49 | opt.softtabstop = -1 50 | opt.virtualedit = "block" 51 | opt.foldmethod = "indent" 52 | opt.foldlevelstart = 6 53 | 54 | -- conceal to make content more readable 55 | opt.conceallevel = 1 56 | 57 | opt.showcmdloc = "statusline" 58 | opt.completeopt = "menuone,noselect,noinsert,popup" 59 | 60 | -------------------------------------------------------------------------------- /konsole/.local/share/konsole/catppuccin-frappe.colorscheme: -------------------------------------------------------------------------------- 1 | [Background] 2 | Color=48,52,70 3 | 4 | [BackgroundFaint] 5 | Color=48,52,70 6 | 7 | [BackgroundIntense] 8 | Color=48,52,70 9 | 10 | [Color0] 11 | Color=115,121,148 12 | 13 | [Color0Faint] 14 | Color=115,121,148 15 | 16 | [Color0Intense] 17 | Color=115,121,148 18 | 19 | [Color1] 20 | Color=231,130,132 21 | 22 | [Color1Faint] 23 | Color=231,130,132 24 | 25 | [Color1Intense] 26 | Color=231,130,132 27 | 28 | [Color2] 29 | Color=166,209,137 30 | 31 | [Color2Faint] 32 | Color=166,209,137 33 | 34 | [Color2Intense] 35 | Color=166,209,137 36 | 37 | [Color3] 38 | Color=229,200,144 39 | 40 | [Color3Faint] 41 | Color=229,200,144 42 | 43 | [Color3Intense] 44 | Color=229,200,144 45 | 46 | [Color4] 47 | Color=140,170,238 48 | 49 | [Color4Faint] 50 | Color=140,170,238 51 | 52 | [Color4Intense] 53 | Color=140,170,238 54 | 55 | [Color5] 56 | Color=202,158,230 57 | 58 | [Color5Faint] 59 | Color=202,158,230 60 | 61 | [Color5Intense] 62 | Color=202,158,230 63 | 64 | [Color6] 65 | Color=153,209,219 66 | 67 | [Color6Faint] 68 | Color=153,209,219 69 | 70 | [Color6Intense] 71 | Color=153,209,219 72 | 73 | [Color7] 74 | Color=198,208,245 75 | 76 | [Color7Faint] 77 | Color=198,208,245 78 | 79 | [Color7Intense] 80 | Color=198,208,245 81 | 82 | [Foreground] 83 | Color=198,208,245 84 | 85 | [ForegroundFaint] 86 | Color=198,208,245 87 | 88 | [ForegroundIntense] 89 | Color=198,208,245 90 | 91 | [General] 92 | Blur=false 93 | ColorRandomization=false 94 | Description=Catppuccin Frappé 95 | Opacity=1 96 | Wallpaper= 97 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/config/keymaps.lua: -------------------------------------------------------------------------------- 1 | local map = vim.keymap.set 2 | local utils = require("config.utils") 3 | 4 | -- disable space on n/v mode 5 | map({ "n", "v" }, "", "") 6 | 7 | -- keymaps for save and leave buffer 8 | map({ "n" }, "S", "confirm w") 9 | map({ "n" }, "Q", utils.close_buf) 10 | map({ "n" }, "bd", "confirm bd") 11 | 12 | -- jump window 13 | map({ "n", "i", "t" }, "", function() 14 | local cur_win_conf = vim.api.nvim_win_get_config(0) 15 | if (cur_win_conf.relative ~= "") then return 16 | end 17 | vim.cmd.wincmd("w") 18 | cur_win_conf = vim.api.nvim_win_get_config(0) 19 | while cur_win_conf.relative ~= "" do 20 | vim.cmd.wincmd("w") 21 | cur_win_conf = vim.api.nvim_win_get_config(0) 22 | end 23 | end, { desc = "jump to another window" }) 24 | 25 | -- emacs like keymap on insert and terminal mode 26 | map({ "i", "t" }, "", "") 27 | map({ "i", "t" }, "", "") 28 | map({ "i", "t" }, "", "") 29 | map({ "i", "t" }, "", "") 30 | map({ "i", "t" }, "", "") 31 | map({ "i", "t" }, "", "") 32 | map({ "i", "t" }, "", "") 33 | map({ "i", "t" }, "", "") 34 | 35 | -- cancel highlight 36 | map({ "n" }, "nh", "noh", { desc = "remove highlightings" }) 37 | 38 | -- some mapping for clipboard 39 | map({ "n" }, "yy", '"+yy', { desc = "yank to system clipboard" }) 40 | map({ "v" }, "y", '"+y', { desc = "yank to system clipboard" }) 41 | map({ "n" }, "p", '"+p', { desc = "pate from system clipboard" }) 42 | -------------------------------------------------------------------------------- /zsh/.zshrc: -------------------------------------------------------------------------------- 1 | # Add deno completions to search path 2 | if [[ ":$FPATH:" != *":/home/dove/.zsh/completions:"* ]]; then export FPATH="/home/dove/.zsh/completions:$FPATH"; fi 3 | # zsh config 4 | HISTFILE=~/.cache/zsh_history 5 | HISTSIZE=5000 6 | SAVEHIST=10000 7 | 8 | 9 | setopt printexitvalue 10 | setopt CORRECT 11 | setopt CORRECT_ALL 12 | 13 | 14 | autoload -U colors 15 | colors 16 | # Simple Prompt username@hostname dir % 17 | setopt prompt_subst 18 | PROMPT='%F{blue}%n%f@%m %2~ > ' 19 | 20 | # use autocde 21 | setopt autocd 22 | # Use Emacs keybindings 23 | bindkey -e 24 | 25 | # Completion 26 | zstyle ':completion:*' menu select 27 | zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 28 | autoload -Uz compinit 29 | compinit 30 | 31 | 32 | # alias 33 | alias grep='grep --colour=auto' 34 | alias egrep='egrep --colour=auto' 35 | alias fgrep='fgrep --colour=auto' 36 | alias tree='lsd --tree' 37 | alias ls='lsd' 38 | alias ll='lsd -hl' 39 | alias la='ls -ahl' 40 | alias vim=nvim 41 | alias vi=nvim 42 | alias lg=lazygit 43 | alias parui="paru -Slq | fzf --multi --preview 'paru -Si {1}' | xargs -ro paru -S" 44 | alias parur="paru -Qq | fzf --multi --preview 'paru -Qi {1}' | xargs -ro paru -Rns" 45 | if [[ "$TERM" == "xterm-kitty" ]] then 46 | alias ssh="kitty +kitten ssh" 47 | fi 48 | 49 | # source some plugins 50 | source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 51 | source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 52 | source /usr/share/fzf/key-bindings.zsh 53 | source /usr/share/fzf/completion.zsh 54 | 55 | 56 | . "$HOME/.cargo/env" 57 | . "/home/dove/.deno/env" -------------------------------------------------------------------------------- /anyrun/.config/anyrun/config.ron: -------------------------------------------------------------------------------- 1 | Config( 2 | // Position/size fields use an enum for the value, it can be either: 3 | // Absolute(n): The absolute value in pixels 4 | // Fraction(n): A fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window respectively 5 | 6 | // The horizontal position, adjusted so that Relative(0.5) always centers the runner 7 | x: Fraction(0.5), 8 | 9 | // The vertical position, works the same as `x` 10 | y: Absolute(0), 11 | 12 | // The width of the runner 13 | width: Absolute(800), 14 | 15 | // The minimum height of the runner, the runner will expand to fit all the entries 16 | height: Absolute(0), 17 | 18 | // Hide match and plugin info icons 19 | hide_icons: false, 20 | 21 | // ignore exclusive zones, f.e. Waybar 22 | ignore_exclusive_zones: false, 23 | 24 | // Layer shell layer: Background, Bottom, Top, Overlay 25 | layer: Overlay, 26 | 27 | // Hide the plugin info panel 28 | hide_plugin_info: true, 29 | 30 | // Close window when a click outside the main box is received 31 | close_on_click: false, 32 | 33 | // Show search results immediately when Anyrun starts 34 | show_results_immediately: false, 35 | 36 | // Limit amount of entries shown in total 37 | max_entries: None, 38 | 39 | // List of plugins to be loaded by default, can be specified with a relative path to be loaded from the 40 | // `/plugins` directory or with an absolute path to just load the file the path points to. 41 | plugins: [ 42 | "libapplications.so", 43 | "libsymbols.so", 44 | "libshell.so", 45 | "libtranslate.so", 46 | ], 47 | ) 48 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/java.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "mfussenegger/nvim-jdtls", 3 | ft = { "java" }, 4 | dependencies = { 5 | "neovim/nvim-lspconfig", 6 | "saghen/blink.cmp", 7 | }, 8 | config = function() 9 | local home = os.getenv("HOME") 10 | local root_markers = { "gradlew", ".git", "mvnw", "pom.xml" } 11 | local root_dir = require("jdtls.setup").find_root(root_markers) 12 | local workspace_folder = home .. "/.local/share/eclipse/" .. vim.fn.fnamemodify(root_dir, ":p:h:t") 13 | local settings = { 14 | java = { 15 | configuration = { 16 | runtimes = { 17 | { 18 | name = "JavaSE-1.8", 19 | path = "/usr/lib/jvm/java-8-openjdk/", 20 | }, 21 | { 22 | name = "JavaSE-17", 23 | path = "/usr/lib/jvm/java-17-openjdk/", 24 | }, 25 | { 26 | name = "JavaSE-21", 27 | path = "/usr/lib/jvm/java-21-openjdk/", 28 | }, 29 | { 30 | name = "JavaSE-24", 31 | path = "/usr/lib/jvm/java-24-openjdk/", 32 | }, 33 | }, 34 | }, 35 | }, 36 | } 37 | local function attach_jdtls() 38 | local config = { 39 | cmd = { "jdtls", "-data", workspace_folder }, 40 | root_dir = root_dir, 41 | init_options = { 42 | bundles = {}, 43 | }, 44 | settings = settings 45 | } 46 | require("jdtls").start_or_attach(config) 47 | end 48 | vim.api.nvim_create_autocmd("FileType", { 49 | pattern = { "java" }, 50 | callback = attach_jdtls, 51 | }) 52 | attach_jdtls() 53 | end, 54 | } 55 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/snacks.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/snacks.nvim", 3 | priority = 1000, 4 | lazy = false, 5 | opts = function() 6 | vim.api.nvim_create_autocmd("User", { 7 | pattern = "MiniFilesActionRename", 8 | callback = function(event) 9 | Snacks.rename.on_rename_file(event.data.from, event.data.to) 10 | end, 11 | }) 12 | vim.api.nvim_create_autocmd({ "TermOpen", "TermEnter" }, { 13 | pattern = "*", 14 | callback = function() 15 | vim.wo.winbar = "" 16 | end, 17 | }) 18 | return { 19 | bigfile = { enabled = true }, 20 | indent = { enabled = true, animate = { enabled = false }, chunk = { enabled = true } }, 21 | input = { enabled = true }, 22 | picker = { 23 | enabled = true, 24 | matcher = { fuzzy = false, ignorecase = false }, 25 | }, 26 | notifier = { enabled = true }, 27 | quickfile = { enabled = true }, 28 | words = { enabled = true }, 29 | } 30 | end, 31 | keys = { 32 | { 33 | "ff", 34 | function() 35 | Snacks.picker.smart() 36 | end, 37 | desc = "Smart Find Files", 38 | }, 39 | { 40 | "fb", 41 | function() 42 | Snacks.picker.buffers() 43 | end, 44 | desc = "Buffers", 45 | }, 46 | { 47 | "sg", 48 | function() 49 | Snacks.picker.grep() 50 | end, 51 | desc = "Grep", 52 | }, 53 | { 54 | "sn", 55 | function() 56 | Snacks.picker.notifications() 57 | end, 58 | desc = "notifications", 59 | }, 60 | { 61 | "", 62 | function() 63 | Snacks.terminal() 64 | end, 65 | mode = { "n", "t" }, 66 | desc = "toggle terminal", 67 | }, 68 | }, 69 | } 70 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/gitsigns.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "ewis6991/gitsigns.nvim", 3 | opts = { 4 | on_attach = function(bufnr) 5 | local gitsigns = require("gitsigns") 6 | 7 | local function map(mode, l, r, opts) 8 | opts = opts or {} 9 | opts.buffer = bufnr 10 | vim.keymap.set(mode, l, r, opts) 11 | end 12 | 13 | -- Navigation 14 | map("n", "]c", function() 15 | if vim.wo.diff then 16 | vim.cmd.normal({ "]c", bang = true }) 17 | else 18 | gitsigns.nav_hunk("next") 19 | end 20 | end) 21 | 22 | map("n", "[c", function() 23 | if vim.wo.diff then 24 | vim.cmd.normal({ "[c", bang = true }) 25 | else 26 | gitsigns.nav_hunk("prev") 27 | end 28 | end) 29 | 30 | -- Actions 31 | map("n", "gs", gitsigns.stage_hunk) 32 | map("n", "gr", gitsigns.reset_hunk) 33 | map("v", "gs", function() 34 | gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) 35 | end) 36 | map("v", "gr", function() 37 | gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) 38 | end) 39 | map("n", "gS", gitsigns.stage_buffer) 40 | map("n", "gu", gitsigns.undo_stage_hunk) 41 | map("n", "gR", gitsigns.reset_buffer) 42 | map("n", "gp", gitsigns.preview_hunk) 43 | map("n", "gb", function() 44 | gitsigns.blame_line({ full = true }) 45 | end) 46 | map("n", "tb", gitsigns.toggle_current_line_blame) 47 | map("n", "gd", gitsigns.diffthis) 48 | map("n", "gD", function() 49 | gitsigns.diffthis("~") 50 | end) 51 | map("n", "td", gitsigns.toggle_deleted) 52 | end, 53 | }, 54 | } 55 | -------------------------------------------------------------------------------- /kitty/.config/kitty/current-theme.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin-Frappe 4 | ## author: Pocco81 (https://github.com/Pocco81) 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/frappe.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #C6D0F5 13 | background #303446 14 | selection_foreground #303446 15 | selection_background #F2D5CF 16 | 17 | # Cursor colors 18 | cursor #F2D5CF 19 | cursor_text_color #303446 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F2D5CF 23 | 24 | # Kitty window border colors 25 | active_border_color #BABBF1 26 | inactive_border_color #737994 27 | bell_border_color #E5C890 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #232634 35 | active_tab_background #CA9EE6 36 | inactive_tab_foreground #C6D0F5 37 | inactive_tab_background #292C3C 38 | tab_bar_background #232634 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #303446 42 | mark1_background #BABBF1 43 | mark2_foreground #303446 44 | mark2_background #CA9EE6 45 | mark3_foreground #303446 46 | mark3_background #85C1DC 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #51576D 52 | color8 #626880 53 | 54 | # red 55 | color1 #E78284 56 | color9 #E78284 57 | 58 | # green 59 | color2 #A6D189 60 | color10 #A6D189 61 | 62 | # yellow 63 | color3 #E5C890 64 | color11 #E5C890 65 | 66 | # blue 67 | color4 #8CAAEE 68 | color12 #8CAAEE 69 | 70 | # magenta 71 | color5 #F4B8E4 72 | color13 #F4B8E4 73 | 74 | # cyan 75 | color6 #81C8BE 76 | color14 #81C8BE 77 | 78 | # white 79 | color7 #B5BFE2 80 | color15 #A5ADCE 81 | -------------------------------------------------------------------------------- /fish/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | if status is-login 2 | if test -z "$DISPLAY" -a "$XDG_VTNR" = 1 3 | # exec wayfire 4 | # exec sway --unsupported-gpu 5 | # exec Hyprland 6 | exec niri-session -l 7 | # startx 8 | end 9 | end 10 | 11 | if status is-interactive 12 | abbr vi nvim 13 | abbr vim nvim 14 | abbr gs git status 15 | abbr ga git add 16 | abbr gf git fetch 17 | abbr gF git pull 18 | abbr gp git push 19 | abbr gco git checkout 20 | abbr gc git commit -m 21 | abbr tree lsd --tree 22 | abbr ls lsd 23 | abbr ll lsd -hl 24 | abbr la lsd -ahl 25 | abbr p paru 26 | abbr parui "paru -Slq | fzf --multi --preview 'paru -Si {1}' | xargs -ro paru -S" 27 | abbr parur "paru -Qq | fzf --multi --preview 'paru -Qi {1}' | xargs -ro paru -Rns" 28 | end 29 | 30 | # fzf 31 | # set -g FZF_DEFAULT_COMMAND "fd --type file --color=always --follow --exclude .git" 32 | set -g FZF_CTRL_T_COMMAND "fd --type f --follow --color=always" 33 | set -g FZF_ALT_C_COMMAND "fd --type d --follow --color=always" 34 | set -g FZF_DEFAULT_OPTS "--ansi" 35 | 36 | set -gx PATH "/opt/cuda/bin" $PATH 37 | set -gx PATH "$HOME/.local/bin" $PATH 38 | 39 | set --export EDITOR nvim 40 | 41 | # pnpm 42 | set -gx PNPM_HOME "/home/dove/.local/share/pnpm" 43 | if not string match -q -- $PNPM_HOME $PATH 44 | set -gx PATH "$PNPM_HOME" $PATH 45 | end 46 | # pnpm end 47 | 48 | set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME ; set -gx PATH $HOME/.cabal/bin /home/dove/.ghcup/bin $PATH # ghcup-env 49 | 50 | # >>> coursier install directory >>> 51 | set -gx PATH "$HOME/.local/share/coursier/bin" $PATH 52 | # <<< coursier install directory <<< 53 | 54 | # >>> scala-cli completions >>> 55 | complete scala -a '(scala complete fish-v1 (math 1 + (count (__fish_print_cmd_args))) (__fish_print_cmd_args))' 56 | # <<< scala-cli completions <<< 57 | 58 | # bun 59 | set --export BUN_INSTALL "$HOME/.bun" 60 | set --export PATH $BUN_INSTALL/bin $PATH 61 | set -gx PATH /home/dove/.local/bin $PATH 62 | -------------------------------------------------------------------------------- /emacs/.emacs.d/early-init.el: -------------------------------------------------------------------------------- 1 | ;;; early-init.el --- Early initialization. -*- lexical-binding: t -*- 2 | (setq package-enable-at-startup nil) 3 | (setq inhibit-default-init nil) 4 | ;; Disable startup message 5 | (fset 'display-startup-echo-area-message 'ignore) 6 | 7 | ;; disable native comp warnings 8 | (setq native-comp-async-report-warnings-errors nil) 9 | ;; Set eln-cache dir 10 | (when (boundp 'native-comp-eln-load-path) 11 | (startup-redirect-eln-cache (expand-file-name "~/.cache/emacs/eln-cache/" user-emacs-directory))) 12 | 13 | ;; In noninteractive sessions, prioritize non-byte-compiled source files to 14 | ;; prevent the use of stale byte-code. Otherwise, it saves us a little IO time 15 | ;; to skip the mtime checks on every *.elc file. 16 | (setq load-prefer-newer noninteractive) 17 | 18 | ;; Skipping a bunch of regular expression searching in the =file-name-handler-alist= should improve start time. 19 | (defvar default-file-name-handler-alist file-name-handler-alist) 20 | (setq file-name-handler-alist nil) 21 | ;; 22 | 23 | (setenv "LSP_USE_PLISTS" "true") 24 | 25 | (setq gc-cons-threshold 134217728) ;; 128MB 26 | (setq read-process-output-max 1048576) ;; 1MB 27 | 28 | ;; Inhibit resizing frame 29 | (setq frame-inhibit-implied-resize t) 30 | 31 | ;; disable startup screen and silent bell 32 | (setq ring-bell-function #'ignore 33 | inhibit-startup-screen t) 34 | 35 | ;; Prevent instructions on how to close an emacsclient frame. 36 | (setq server-client-instructions nil) 37 | 38 | ;; disable menu-bar tool-bar scroll-bar stuff 39 | (push '(menu-bar-lines . 0) default-frame-alist) 40 | (push '(tool-bar-lines . 0) default-frame-alist) 41 | (push '(vertical-scroll-bars) default-frame-alist) 42 | 43 | ;; start the initial frame maximized 44 | (add-to-list 'initial-frame-alist '(fullscreen . maximized)) 45 | 46 | ;; start every frame maximized 47 | (add-to-list 'default-frame-alist '(fullscreen . maximized)) 48 | 49 | ;; Prevent flashing of unstyled modeline at startup 50 | ;; (setq-default mode-line-format nil) 51 | 52 | (advice-add #'x-apply-session-resources :override #'ignore) 53 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/editor/minifiles.lua: -------------------------------------------------------------------------------- 1 | -- some code are copied from https://github.com/mrjones2014/dotfiles/blob/master/nvim/lua/my/configure/mini_files.lua 2 | return { 3 | "echasnovski/mini.files", 4 | version = "*", 5 | keys = { 6 | { 7 | "e", 8 | function() 9 | local minifiles = require("mini.files") 10 | if vim.bo.ft == "minifiles" then 11 | minifiles.close() 12 | else 13 | local file = vim.api.nvim_buf_get_name(0) 14 | local file_exists = vim.fn.filereadable(file) ~= 0 15 | minifiles.open(file_exists and file or nil) 16 | minifiles.reveal_cwd() 17 | end 18 | end, 19 | { desc = "Open current directory" }, 20 | }, 21 | { "we", "lua MiniFiles.open()", { desc = "Open working directory" } }, 22 | }, 23 | opts = { 24 | content = { 25 | filter = function(entry) 26 | return entry.name ~= ".git" 27 | end, 28 | sort = function(entries) 29 | local all_paths = table.concat( 30 | vim 31 | .iter(entries) 32 | :map(function(entry) 33 | return entry.path 34 | end) 35 | :totable(), 36 | "\n" 37 | ) 38 | local output_lines = {} 39 | local job_id = vim.fn.jobstart({ "git", "check-ignore", "--stdin" }, { 40 | stdout_buffered = true, 41 | on_stdout = function(_, data) 42 | output_lines = data 43 | end, 44 | }) 45 | 46 | -- command failed to run 47 | if job_id < 1 then 48 | return entries 49 | end 50 | 51 | -- send paths via STDIN 52 | vim.fn.chansend(job_id, all_paths) 53 | vim.fn.chanclose(job_id, "stdin") 54 | vim.fn.jobwait({ job_id }) 55 | return require("mini.files").default_sort(vim 56 | .iter(entries) 57 | :filter(function(entry) 58 | return not vim.tbl_contains(output_lines, entry.path) 59 | end) 60 | :totable()) 61 | end, 62 | }, 63 | }, 64 | } 65 | -------------------------------------------------------------------------------- /musicfox/.config/go-musicfox/go-musicfox.ini: -------------------------------------------------------------------------------- 1 | # 启动页配置 2 | [startup] 3 | # 是否显示启动页 4 | show=false 5 | # 启动页进度条是否有回弹效果 6 | progressOutBounce=true 7 | # 启动页时长 8 | loadingSeconds=2 9 | # 启动页欢迎语 10 | welcome=musicfox 11 | # 启动时自动签到 12 | signin=false 13 | # 启动时检查更新 14 | checkUpdate=false 15 | 16 | # 进度条配置 17 | [progress] 18 | # 进度条已加载字符 19 | fullChar="#" 20 | firstFullChar="#" 21 | lastFullChar="#" 22 | # 进度条未加载字符 23 | emptyChar="." 24 | firstEmptyChar="." 25 | lastEmptyChar="." 26 | 27 | # 主页面配置 28 | [main] 29 | # 是否显示标题 30 | showTitle=true 31 | # 加载中提示 32 | loadingText=[加载中...] 33 | # 歌曲音质,standard,higher,exhigh,lossless,hires 34 | songLevel=higher 35 | # 主题颜色 36 | # 随机 37 | # primaryColor=random 38 | # 经典网易云音乐红 39 | primaryColor="#ea403f" 40 | # windows,linux下的通知图标 41 | notifyIcon="logo.png" 42 | # 是否显示歌词 43 | showLyric=true 44 | # 歌词偏移 ms 45 | lyricOffset=0 46 | # 显示歌词翻译 47 | showLyricTrans=true 48 | # 是否显示通知信息 49 | showNotify=false 50 | # 开启pprof, --pprof时会开启 51 | pprofPort=9876 52 | # altScreen显示模式 53 | altScreen=true 54 | # 开启鼠标事件 55 | enableMouseEvent=true 56 | # 双列显示,开启务必使用等宽字体 57 | doubleColumn=true 58 | # 下载目录,默认为${MUSICFOX_ROOT}/download 59 | downloadDir= 60 | # 缓存目录,默认为${MUSICFOX_ROOT}/cache 61 | # !!!注意!!! 如果使用mpd,mpd配置中的"music_directory"必须与cacheDir一致 62 | cacheDir= 63 | # 缓存大小(以MB为单位),0为不使用缓存,-1为不限制,默认为0 64 | cacheLimit=-1 65 | # 是否显示歌单下所有歌曲,默认不开启,仅获取歌单前1000首,开启后可能会占用更多内存(大量歌曲数据)和带宽(会同时发送多个请求获取歌单下歌曲数据) 66 | showAllSongsOfPlaylist=false 67 | 68 | [player] 69 | # 播放引擎 beep / mpd(需要安装配置mpd) / osx(Mac才可用) 70 | # 不填Mac默认使用osx,其他系统默认使用beep(推荐的配置) 71 | #engine=beep 72 | # beep使用的mp3解码器,可选:go-mp3, minimp3 (minimp3更少的CPU占用,但是稳定性不如go-mp3) 73 | beepMp3Decoder=go-mp3 74 | 75 | # mpd配置 76 | mpdBin=/usr/local/bin/mpd 77 | # !!!注意!!! 一定要在配置文件中设置pid_file,否则在退出时不会kill掉mpd进程 78 | mpdConfigFile=/Users/anhoder/.mpd/mpd.conf 79 | # tcp 或 unix 80 | mpdNetwork=unix 81 | # tcp时填写ip+port(例如:127.0.0.1:1234),unix时填写socket文件路径 82 | mpdAddr= 83 | 84 | [unm] 85 | # UNM开关 86 | switch=false 87 | # UNM源: kuwo,kugou,migu,qq 88 | sources=kuwo 89 | # UNM搜索其他平台限制 0-3 90 | searchLimit=0 91 | # 解除会员限制 92 | enableLocalVip=false 93 | # 解除音质限制 94 | unlockSoundEffects=false 95 | # QQ音乐cookie文件 96 | qqCookieFile= 97 | -------------------------------------------------------------------------------- /hyprland/.config/hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | $font = Monospace 2 | 3 | general { 4 | hide_cursor = false 5 | } 6 | 7 | animations { 8 | enabled = true 9 | bezier = linear, 1, 1, 0, 0 10 | animation = fadeIn, 1, 5, linear 11 | animation = fadeOut, 1, 5, linear 12 | animation = inputFieldDots, 1, 2, linear 13 | } 14 | 15 | background { 16 | path = /home/dove/Pictures/Wallpaper/lock-back.jpg 17 | blur_passes = 3 18 | } 19 | 20 | input-field { 21 | monitor = 22 | size = 20%, 5% 23 | outline_thickness = 3 24 | inner_color = rgba(0, 0, 0, 0.0) # no fill 25 | 26 | outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg 27 | check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg 28 | fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg 29 | 30 | font_color = rgb(143, 143, 143) 31 | fade_on_empty = false 32 | rounding = 15 33 | 34 | font_family = $font 35 | placeholder_text = Input password... 36 | fail_text = $PAMFAIL 37 | 38 | # uncomment to use a letter instead of a dot to indicate the typed password 39 | # dots_text_format = * 40 | # dots_size = 0.4 41 | dots_spacing = 0.3 42 | 43 | # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator) 44 | # hide_input = true 45 | 46 | position = 0, -20 47 | halign = center 48 | valign = center 49 | } 50 | 51 | # TIME 52 | label { 53 | monitor = 54 | text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution 55 | font_size = 90 56 | font_family = $font 57 | 58 | position = -30, 0 59 | halign = right 60 | valign = top 61 | } 62 | 63 | # DATE 64 | label { 65 | monitor = 66 | text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds 67 | font_size = 25 68 | font_family = $font 69 | 70 | position = -30, -150 71 | halign = right 72 | valign = top 73 | } 74 | 75 | label { 76 | monitor = 77 | text = $LAYOUT[en,ru] 78 | font_size = 24 79 | onclick = hyprctl switchxkblayout all next 80 | 81 | position = 250, -20 82 | halign = center 83 | valign = center 84 | } 85 | 86 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/dap.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "mfussenegger/nvim-dap", 3 | dependencies = { 4 | "theHamsta/nvim-dap-virtual-text", 5 | }, 6 | config = function() 7 | local dap = require("dap") 8 | dap.adapters.lldb = { 9 | type = "executable", 10 | command = "lldb-dap", 11 | name = "lldb", 12 | } 13 | dap.configurations.cpp = { 14 | { 15 | name = "Launch", 16 | type = "lldb", 17 | request = "launch", 18 | program = function() 19 | return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") 20 | end, 21 | cwd = "${workspaceFolder}", 22 | stopOnEntry = false, 23 | args = {}, 24 | }, 25 | } 26 | dap.configurations.c = dap.configurations.cpp 27 | dap.configurations.scala = { 28 | { 29 | type = "scala", 30 | request = "launch", 31 | name = "RunOrTest", 32 | metals = { 33 | runType = "runOrTestFile", 34 | }, 35 | }, 36 | { 37 | type = "scala", 38 | request = "launch", 39 | name = "Test Target", 40 | metals = { 41 | runType = "testTarget", 42 | }, 43 | }, 44 | } 45 | 46 | require("nvim-dap-virtual-text").setup({ 47 | clear_on_continue = true, 48 | display_callback = function(variable) 49 | if #variable.value > 15 then 50 | return " " .. variable.value:sub(1, 15) .. "..." 51 | end 52 | return " " .. variable.value 53 | end, 54 | }) 55 | 56 | local map = vim.keymap.set 57 | map("n", "dc", function() 58 | require("dap").continue() 59 | end) 60 | 61 | map("n", "dr", function() 62 | require("dap").repl.toggle() 63 | end) 64 | 65 | map("n", "dt", function() 66 | require("dap").toggle_breakpoint() 67 | end) 68 | 69 | map("n", "dso", function() 70 | require("dap").step_over() 71 | end) 72 | 73 | map("n", "dsi", function() 74 | require("dap").step_into() 75 | end) 76 | 77 | map("n", "dl", function() 78 | require("dap").run_last() 79 | end) 80 | end, 81 | } 82 | -------------------------------------------------------------------------------- /zathura/.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | # Zathura configuration file 2 | # See man `man zathurarc' 3 | map i recolor 4 | unmap f 5 | map f toggle_fullscreen 6 | map [fullscreen] f toggle_fullscreen 7 | 8 | # Open document in fit-width mode by default 9 | set adjust-open "best-fit" 10 | set pages-per-row 1 11 | 12 | 13 | #stop at page boundries 14 | set scroll-page-aware "true" 15 | set scroll-full-overlap 0.01 16 | set scroll-step 100 17 | 18 | set window-title-basename "true" 19 | #zoom settings 20 | set zoom-min 10 21 | set guioptions "" 22 | 23 | 24 | # Copy to clipboard 25 | # set selection-clipboard clipboard 26 | 27 | set font "Noto Sans CJK SC 15" 28 | 29 | # catppuccin color scheme 30 | set default-fg "#C6D0F5" 31 | set default-bg "#303446" 32 | 33 | set completion-bg "#414559" 34 | set completion-fg "#C6D0F5" 35 | set completion-highlight-bg "#575268" 36 | set completion-highlight-fg "#C6D0F5" 37 | set completion-group-bg "#414559" 38 | set completion-group-fg "#8CAAEE" 39 | 40 | set statusbar-fg "#C6D0F5" 41 | set statusbar-bg "#414559" 42 | 43 | set notification-bg "#414559" 44 | set notification-fg "#C6D0F5" 45 | set notification-error-bg "#414559" 46 | set notification-error-fg "#E78284" 47 | set notification-warning-bg "#414559" 48 | set notification-warning-fg "#FAE3B0" 49 | 50 | set inputbar-fg "#C6D0F5" 51 | set inputbar-bg "#414559" 52 | 53 | set recolor-lightcolor "#303446" 54 | set recolor-darkcolor "#C6D0F5" 55 | 56 | set index-fg "#C6D0F5" 57 | set index-bg "#303446" 58 | set index-active-fg "#C6D0F5" 59 | set index-active-bg "#414559" 60 | 61 | set render-loading-bg "#303446" 62 | set render-loading-fg "#C6D0F5" 63 | 64 | set highlight-color "#575268" 65 | set highlight-fg "#F4B8E4" 66 | set highlight-active-color "#F4B8E4" 67 | 68 | set render-loading true 69 | set render-loading-fg "#282a36" # Background 70 | set render-loading-bg "#f8f8f2" # Foreground 71 | 72 | set recolor "true" 73 | set recolor-lightcolor "#282a36" # Background 74 | set recolor-darkcolor "#f8f8f2" # Foreground 75 | set recolor-reverse-video "true" 76 | set recolor-keephue "true" 77 | 78 | 79 | set render-loading "false" 80 | set scroll-step 50 81 | 82 | -------------------------------------------------------------------------------- /nu/.config/nushell/env.nu: -------------------------------------------------------------------------------- 1 | def create_left_prompt [] { 2 | let dir = match (do { $env.PWD | path relative-to $nu.home-path }) { 3 | null => $env.PWD 4 | '' => '~' 5 | $relative_pwd => ([~ $relative_pwd] | path join) 6 | } 7 | 8 | let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) 9 | let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) 10 | let path_segment = $"($path_color)($dir)(ansi reset)" 11 | 12 | $path_segment | str replace --all (char path_sep) $"($separator_color)(char path_sep)($path_color)" 13 | } 14 | 15 | def create_right_prompt [] { 16 | let time_segment = ([ 17 | (ansi reset) 18 | (ansi magenta) 19 | (date now | format date '%m-%d %H:%M') # try to respect user's locale 20 | ] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)") 21 | 22 | let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([ 23 | (ansi rb) 24 | ($env.LAST_EXIT_CODE) 25 | ] | str join) 26 | } else { "" } 27 | 28 | ([$last_exit_code, (char space), $time_segment] | str join) 29 | } 30 | 31 | $env.PROMPT_COMMAND = {|| create_left_prompt } 32 | $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } 33 | 34 | $env.PROMPT_INDICATOR = {|| "> " } 35 | $env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } 36 | $env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } 37 | $env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } 38 | 39 | $env.ENV_CONVERSIONS = { 40 | "PATH": { 41 | from_string: { |s| $s | split row (char esep) | path expand --no-symlink } 42 | to_string: { |v| $v | path expand --no-symlink | str join (char esep) } 43 | } 44 | "Path": { 45 | from_string: { |s| $s | split row (char esep) | path expand --no-symlink } 46 | to_string: { |v| $v | path expand --no-symlink | str join (char esep) } 47 | } 48 | } 49 | 50 | $env.NU_LIB_DIRS = [ 51 | ($nu.default-config-dir | path join 'scripts') 52 | ($nu.data-dir | path join 'completions') 53 | ] 54 | 55 | $env.NU_PLUGIN_DIRS = [ 56 | ($nu.default-config-dir | path join 'plugins') 57 | ] 58 | 59 | load-env { 60 | } 61 | $env.Path = ($env.Path | prepend '~/.local/bin') 62 | $env.Path = ($env.Path | prepend '~/.cargo/bin') 63 | $env.Path = ($env.Path | prepend '~/.local/share/pnpm') 64 | $env.Path = ($env.Path | prepend '~/.local/share/coursier/bin') 65 | $env.PATH = ($env.PATH | uniq) 66 | -------------------------------------------------------------------------------- /waybar/.config/waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | "layer": "top", 3 | "position": "top", 4 | "height": 28, 5 | "modules-left": [ 6 | "custom/arch", 7 | "wlr/workspaces" 8 | ], 9 | "modules-center": [ 10 | "hyprland/window" 11 | ], 12 | "modules-right": [ 13 | "network", 14 | "cpu", 15 | "memory", 16 | "temperature", 17 | "battery", 18 | "tray", 19 | "clock#date", 20 | "clock#time" 21 | ], 22 | "custom/arch": { 23 | "format": "  ", 24 | "tooltip": false 25 | }, 26 | "battery": { 27 | "interval": 60, 28 | "states": { 29 | "warning": 30, 30 | "critical": 15 31 | }, 32 | "format": " {capacity}%", 33 | "format-discharging": "{icon} {capacity}%", 34 | "format-icons": [ 35 | "", 36 | "", 37 | "", 38 | "", 39 | "" 40 | ], 41 | "tooltip": false 42 | }, 43 | "clock#date": { 44 | "interval": 60, 45 | "format": "{:%e %b}", 46 | "tooltip-format": "{:%e %B %Y}" 47 | }, 48 | "clock#time": { 49 | "interval": 1, 50 | "format": "{:%H:%M}", 51 | "tooltip": false 52 | }, 53 | "cpu": { 54 | "interval": 5, 55 | "format": "CPU {usage}%", 56 | "states": { 57 | "warning": 70, 58 | "critical": 90 59 | } 60 | }, 61 | "memory": { 62 | "interval": 5, 63 | "format": "MEM {}%", 64 | "states": { 65 | "warning": 70, 66 | "critical": 90 67 | } 68 | }, 69 | "network": { 70 | "interval": 5, 71 | "format-wifi": " {essid} ({signalStrength}%)", 72 | "format-ethernet": "󰌘 {ifname}: {ipaddr}/{cidr}", 73 | "format-disconnected": "⚠ Disconnected", 74 | "tooltip": false 75 | }, 76 | "wlr/workspaces": { 77 | "on-click": "activate" 78 | }, 79 | "temperature": { 80 | "critical-threshold": 80, 81 | "interval": 5, 82 | "format": "{icon} {temperatureC}°C", 83 | "format-icons": [ 84 | "", 85 | "", 86 | "", 87 | "", 88 | "" 89 | ], 90 | "tooltip": true 91 | }, 92 | "tray": { 93 | "icon-size": 21, 94 | "spacing": 10 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /ranger/.config/ranger/commands.py: -------------------------------------------------------------------------------- 1 | # This is a sample commands.py. You can add your own commands here. 2 | # 3 | # Please refer to commands_full.py for all the default commands and a complete 4 | # documentation. Do NOT add them all here, or you may end up with defunct 5 | # commands when upgrading ranger. 6 | 7 | # A simple command for demonstration purposes follows. 8 | # ----------------------------------------------------------------------------- 9 | 10 | from __future__ import (absolute_import, division, print_function) 11 | 12 | # You can import any python module as needed. 13 | import os 14 | 15 | # You always need to import ranger.api.commands here to get the Command class: 16 | from ranger.api.commands import Command 17 | 18 | 19 | # Any class that is a subclass of "Command" will be integrated into ranger as a 20 | # command. Try typing ":my_edit" in ranger! 21 | class my_edit(Command): 22 | # The so-called doc-string of the class will be visible in the built-in 23 | # help that is accessible by typing "?c" inside ranger. 24 | """:my_edit 25 | 26 | A sample command for demonstration purposes that opens a file in an editor. 27 | """ 28 | 29 | # The execute method is called when you run this command in ranger. 30 | def execute(self): 31 | # self.arg(1) is the first (space-separated) argument to the function. 32 | # This way you can write ":my_edit somefilename". 33 | if self.arg(1): 34 | # self.rest(1) contains self.arg(1) and everything that follows 35 | target_filename = self.rest(1) 36 | else: 37 | # self.fm is a ranger.core.filemanager.FileManager object and gives 38 | # you access to internals of ranger. 39 | # self.fm.thisfile is a ranger.container.file.File object and is a 40 | # reference to the currently selected file. 41 | target_filename = self.fm.thisfile.path 42 | 43 | # This is a generic function to print text in ranger. 44 | self.fm.notify("Let's edit the file " + target_filename + "!") 45 | 46 | # Using bad=True in fm.notify allows you to print error messages: 47 | if not os.path.exists(target_filename): 48 | self.fm.notify("The given file does not exist!", bad=True) 49 | return 50 | 51 | # This executes a function from ranger.core.acitons, a module with a 52 | # variety of subroutines that can help you construct commands. 53 | # Check out the source, or run "pydoc ranger.core.actions" for a list. 54 | self.fm.edit_file(target_filename) 55 | 56 | # The tab method is called when you press tab, and should return a list of 57 | # suggestions that the user will tab through. 58 | # tabnum is 1 for and -1 for by default 59 | def tab(self, tabnum): 60 | # This is a generic tab-completion function that iterates through the 61 | # content of the current directory. 62 | return self._tab_directory_content() 63 | -------------------------------------------------------------------------------- /zed/.config/zed/keymap.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "context": "Editor", 4 | "bindings": { 5 | "ctrl-/": ["editor::ToggleComments", { "advance_downwards": true }], 6 | "shift-alt-up": "editor::MoveLineUp", 7 | "shift-alt-down": "editor::MoveLineDown", 8 | "ctrl-alt-l": "editor::Format", 9 | "shift-f6": "editor::Rename", 10 | "ctrl-alt-left": "pane::GoBack", 11 | "ctrl-alt-right": "pane::GoForward", 12 | "alt-o": "workspace::ActivateNextPane" 13 | } 14 | }, 15 | { 16 | "context": "Editor && mode == full", 17 | "bindings": { 18 | "alt-enter": "editor::ToggleCodeActions" 19 | } 20 | }, 21 | { 22 | "context": "Terminal", 23 | "bindings": { 24 | "ctrl-p": ["terminal::SendKeystroke", "ctrl-p"], 25 | "ctrl-n": ["terminal::SendKeystroke", "ctrl-n"] 26 | } 27 | }, 28 | { 29 | "context": "Workspace", 30 | "bindings": { 31 | "ctrl-shift-n": "file_finder::Toggle", 32 | "ctrl-shift-a": "command_palette::Toggle", 33 | "alt-x": "command_palette::Toggle" 34 | } 35 | }, 36 | { 37 | "context": "Pane", 38 | "bindings": { 39 | "ctrl-alt-left": "pane::GoBack", 40 | "ctrl-alt-right": "pane::GoForward" 41 | } 42 | }, 43 | { 44 | "context": "ProjectPanel", 45 | "bindings": { 46 | "enter": "project_panel::Open", 47 | "delete": ["project_panel::Trash", { "skip_prompt": false }], 48 | "shift-delete": ["project_panel::Delete", { "skip_prompt": false }], 49 | "shift-f6": "project_panel::Rename" 50 | } 51 | }, 52 | { 53 | "context": "Editor && VimControl && !VimWaiting && !menu", 54 | "bindings": { 55 | "space n": "workspace::ToggleLeftDock", 56 | "space e": "project_panel::ToggleFocus" 57 | } 58 | }, 59 | { 60 | "context": "Editor && vim_mode == normal", 61 | "bindings": { 62 | "Q": "pane::CloseActiveItem", 63 | "S": "workspace::Save", 64 | "H": "pane::ActivatePreviousItem", 65 | "L": "pane::ActivateNextItem", 66 | "space o": "outline::Toggle", 67 | "space c f": "editor::Format", 68 | "space c a": "editor::ToggleCodeActions", 69 | "space c r": "editor::Rename", 70 | "space b p": "pane::TogglePinTab", 71 | "space b d": "pane::CloseActiveItem", 72 | "space b D": "pane::CloseOtherItems", 73 | "space f f": "file_finder::Toggle", 74 | "space f s": "project_symbols::Toggle", 75 | "space s r": "workspace::NewSearch", 76 | "[ d": "editor::GoToPreviousDiagnostic", 77 | "] d": "editor::GoToDiagnostic", 78 | "[ c": "editor::GoToPreviousHunk", 79 | "] c": "editor::GoToHunk" 80 | } 81 | }, 82 | { 83 | "context": "Editor && vim_mode == visual", 84 | "bindings": { 85 | "backspace": "editor::SelectSmallerSyntaxNode", 86 | "space c f": "editor::FormatSelections", 87 | "space y": ["workspace::SendKeystrokes", "\" + y"] 88 | } 89 | }, 90 | { 91 | "context": "Editor && vim_mode == insert", 92 | "bindings": { 93 | "ctrl-a": "editor::MoveToBeginningOfLine", 94 | "ctrl-e": "editor::MoveToEndOfLine", 95 | "ctrl-f": "editor::MoveRight", 96 | "ctrl-b": "editor::MoveLeft", 97 | "ctrl-k": "editor::DeleteToEndOfLine", 98 | "ctrl-w": "editor::DeleteToPreviousWordStart" 99 | } 100 | } 101 | ] 102 | -------------------------------------------------------------------------------- /waybar/.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | /* ============================================================================= 2 | * 3 | * Waybar configuration 4 | * 5 | * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration 6 | * 7 | * =========================================================================== */ 8 | 9 | /* ----------------------------------------------------------------------------- 10 | * Keyframes 11 | * -------------------------------------------------------------------------- */ 12 | 13 | @import "frappe.css"; 14 | 15 | @keyframes blink-warning { 16 | 70% { 17 | color: white; 18 | } 19 | 20 | to { 21 | color: white; 22 | background-color: orange; 23 | } 24 | } 25 | 26 | @keyframes blink-critical { 27 | 70% { 28 | color: white; 29 | } 30 | 31 | to { 32 | color: white; 33 | background-color: red; 34 | } 35 | } 36 | 37 | 38 | /* ----------------------------------------------------------------------------- 39 | * Base styles 40 | * -------------------------------------------------------------------------- */ 41 | 42 | /* Reset all styles */ 43 | * { 44 | border: none; 45 | border-radius: 0; 46 | min-height: 0; 47 | margin: 0; 48 | padding: 0; 49 | } 50 | 51 | /* The whole bar */ 52 | #waybar { 53 | color: @text; 54 | background: @base; 55 | font-family: FiraCode Nerd Font, Cantarell, Noto Sans, sans-serif; 56 | font-size: 13px; 57 | } 58 | 59 | /* Each module */ 60 | #battery, 61 | #clock, 62 | #cpu, 63 | #custom-keyboard-layout, 64 | #memory, 65 | #mode, 66 | #network, 67 | #pulseaudio, 68 | #temperature, 69 | #tray { 70 | padding-left: 10px; 71 | padding-right: 10px; 72 | } 73 | 74 | 75 | /* ----------------------------------------------------------------------------- 76 | * Module styles 77 | * -------------------------------------------------------------------------- */ 78 | 79 | #battery { 80 | animation-timing-function: linear; 81 | animation-iteration-count: infinite; 82 | animation-direction: alternate; 83 | } 84 | 85 | #battery.warning { 86 | color: orange; 87 | } 88 | 89 | #battery.critical { 90 | color: red; 91 | } 92 | 93 | #battery.warning.discharging { 94 | animation-name: blink-warning; 95 | animation-duration: 3s; 96 | } 97 | 98 | #battery.critical.discharging { 99 | animation-name: blink-critical; 100 | animation-duration: 2s; 101 | } 102 | 103 | #clock { 104 | font-weight: bold; 105 | } 106 | 107 | #cpu { 108 | /* No styles */ 109 | } 110 | 111 | #cpu.warning { 112 | color: orange; 113 | } 114 | 115 | #cpu.critical { 116 | color: red; 117 | } 118 | 119 | #memory { 120 | animation-timing-function: linear; 121 | animation-iteration-count: infinite; 122 | animation-direction: alternate; 123 | } 124 | 125 | #memory.warning { 126 | color: orange; 127 | } 128 | 129 | #memory.critical { 130 | color: red; 131 | animation-name: blink-critical; 132 | animation-duration: 2s; 133 | } 134 | 135 | #mode { 136 | background: #64727D; 137 | border-top: 2px solid white; 138 | /* To compensate for the top border and still have vertical centering */ 139 | padding-bottom: 2px; 140 | } 141 | 142 | #network { 143 | /* No styles */ 144 | } 145 | 146 | #network.disconnected { 147 | color: orange; 148 | } 149 | 150 | #pulseaudio { 151 | /* No styles */ 152 | } 153 | 154 | #pulseaudio.muted { 155 | /* No styles */ 156 | } 157 | 158 | #custom-spotify { 159 | color: rgb(102, 220, 105); 160 | } 161 | 162 | #temperature { 163 | /* No styles */ 164 | } 165 | 166 | #temperature.critical { 167 | color: red; 168 | } 169 | 170 | #tray { 171 | /* No styles */ 172 | } 173 | 174 | #window { 175 | font-weight: bold; 176 | } 177 | 178 | 179 | button { 180 | color: white; 181 | } 182 | 183 | label { 184 | all: unset; 185 | } 186 | 187 | #workspaces button { 188 | /* To compensate for the top border and still have vertical centering */ 189 | padding-bottom: 2px; 190 | padding-left: 10px; 191 | padding-right: 10px; 192 | color: #666666; 193 | } 194 | 195 | #custom-arch { 196 | margin-right: 8px; 197 | color: #61afef; 198 | } 199 | 200 | #workspaces button.active { 201 | color: @subtext1; 202 | background-color: @mantle; 203 | border-bottom: 2px solid @subtext1; 204 | } 205 | 206 | #workspaces button.focused { 207 | color: @subtext1; 208 | background-color: @mantle; 209 | border-bottom: 2px solid @subtext1; 210 | } 211 | 212 | #workspaces button.urgent { 213 | border-color: #c9545d; 214 | color: #c9545d; 215 | } 216 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/lang/lsp.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "neovim/nvim-lspconfig", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | dependencies = { 5 | "folke/snacks.nvim", 6 | "saghen/blink.cmp", 7 | }, 8 | config = function() 9 | vim.diagnostic.config({ virtual_text = true }) 10 | -- code copied from https://www.reddit.com/r/neovim/comments/1jm5atz/comment/mk9w6v0/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button 11 | local function jumpWithVirtLineDiags(jumpCount) 12 | pcall(vim.api.nvim_del_augroup_by_name, "jumpWithVirtLineDiags") 13 | vim.diagnostic.jump({ count = jumpCount }) 14 | vim.diagnostic.config({ 15 | virtual_text = false, 16 | virtual_lines = { current_line = true }, 17 | }) 18 | vim.defer_fn(function() 19 | vim.api.nvim_create_autocmd("CursorMoved", { 20 | desc = "User(once): Reset diagnostics virtual lines", 21 | once = true, 22 | group = vim.api.nvim_create_augroup("jumpWithVirtLineDiags", {}), 23 | callback = function() 24 | vim.diagnostic.config({ virtual_lines = false, virtual_text = true }) 25 | end, 26 | }) 27 | end, 1) 28 | end 29 | vim.api.nvim_create_autocmd("LspAttach", { 30 | group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }), 31 | callback = function(event) 32 | local buf = event.buf 33 | local map = function(keys, func, desc, mode) 34 | mode = mode or "n" 35 | vim.keymap.set(mode, keys, func, { buffer = buf, desc = "LSP: " .. desc }) 36 | end 37 | 38 | map("cr", vim.lsp.buf.rename, "rename") 39 | map("ca", vim.lsp.buf.code_action, "code action", { "n", "x" }) 40 | map("cl", vim.lsp.codelens.run, "run code lens") 41 | map("gd", function() 42 | Snacks.picker.lsp_definitions() 43 | end, "Goto Definition") 44 | map("gD", function() 45 | Snacks.picker.lsp_declarations() 46 | end, "Goto Definition") 47 | map("gi", function() 48 | Snacks.picker.lsp_implementations() 49 | end, "goto implementation") 50 | map("o", function() 51 | Snacks.picker.lsp_symbols() 52 | end, "open outline") 53 | map("]d", function() 54 | jumpWithVirtLineDiags(1) 55 | end, "Next diagnostic") 56 | map("[d", function() 57 | jumpWithVirtLineDiags(-1) 58 | end, "Prev diagnostic") 59 | 60 | local client = vim.lsp.get_client_by_id(event.data.client_id) 61 | if client == nil then 62 | return 63 | end 64 | if client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then 65 | local highlight_augroup = vim.api.nvim_create_augroup("lsp-highlight", { clear = false }) 66 | vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { 67 | buffer = buf, 68 | group = highlight_augroup, 69 | callback = vim.lsp.buf.document_highlight, 70 | }) 71 | 72 | vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { 73 | buffer = buf, 74 | group = highlight_augroup, 75 | callback = vim.lsp.buf.clear_references, 76 | }) 77 | 78 | vim.api.nvim_create_autocmd("LspDetach", { 79 | group = vim.api.nvim_create_augroup("lsp-detach", { clear = true }), 80 | callback = function(event2) 81 | vim.lsp.buf.clear_references() 82 | vim.api.nvim_clear_autocmds({ group = "lsp-highlight", buffer = event2.buf }) 83 | end, 84 | }) 85 | end 86 | 87 | if client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then 88 | -- default to enable inlay hint 89 | vim.lsp.inlay_hint.enable(true, { bufnr = buf }) 90 | map("th", function() 91 | vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = buf })) 92 | end, "Toggle Inlay Hints") 93 | end 94 | 95 | if client:supports_method("textDocument/foldingRange") then 96 | local win = vim.api.nvim_get_current_win() 97 | vim.wo[win][0].foldexpr = "v:lua.vim.lsp.foldexpr()" 98 | end 99 | 100 | if client.server_capabilities.codeLensProvider then 101 | vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost" }, { 102 | buffer = buf, 103 | callback = vim.lsp.codelens.refresh, 104 | }) 105 | end 106 | end, 107 | }) 108 | vim.lsp.enable("lua_ls") 109 | vim.lsp.enable("basedpyright") 110 | vim.lsp.enable("clangd") 111 | end, 112 | } 113 | -------------------------------------------------------------------------------- /zed/.config/zed/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "preferred_line_length": 120, 3 | "show_signature_help_after_edits": true, 4 | "minimap": { 5 | "max_width_columns": 120 6 | }, 7 | "theme": "Catppuccin Frappé (lavender)", 8 | "icon_theme": "Catppuccin Frappé", 9 | "agent": { 10 | "always_allow_tool_actions": true 11 | }, 12 | "agent_servers": { 13 | "OpenCode": { 14 | "type": "custom", 15 | "command": "opencode", 16 | "args": ["acp"] 17 | } 18 | }, 19 | "vim_mode": true, 20 | "ui_font_size": 16, 21 | "auto_update": false, 22 | "cursor_blink": false, 23 | "format_on_save": "off", 24 | "autosave": "on_focus_change", 25 | "buffer_font_size": 18, 26 | "buffer_font_family": "Maple Mono NF CN", 27 | "buffer_font_features": { 28 | "calt": true 29 | }, 30 | "ensure_final_newline_on_save": false, 31 | "project_panel": { 32 | "sticky_scroll": false 33 | }, 34 | "terminal": { 35 | "font_family": "Maple Mono NF CN", 36 | "font_features": { 37 | "calt": true 38 | }, 39 | "env": { 40 | "EDITOR": "zed --wait" 41 | } 42 | }, 43 | "collaboration_panel": { 44 | "button": false 45 | }, 46 | "notification_panel": { 47 | "button": false 48 | }, 49 | "telemetry": { 50 | "diagnostics": false, 51 | "metrics": false 52 | }, 53 | "vim": { 54 | "toggle_relative_line_numbers": true, 55 | "use_system_clipboard": "never" 56 | }, 57 | "tabs": { 58 | "close_position": "right", 59 | "file_icons": true, 60 | "git_status": true, 61 | "activate_on_close": "history" 62 | }, 63 | "inlay_hints": { 64 | "enabled": true, 65 | "show_type_hints": true, 66 | "show_parameter_hints": true, 67 | "show_other_hints": true, 68 | "show_background": false, 69 | "edit_debounce_ms": 700, 70 | "scroll_debounce_ms": 50 71 | }, 72 | "colorize_brackets": true, 73 | "languages": { 74 | "Python": { 75 | "language_servers": ["ty", "!basedpyright"] 76 | } 77 | }, 78 | "lsp": { 79 | "jdtls": { 80 | "initialization_options": { 81 | "settings": { 82 | "java": { 83 | "configuration": { 84 | "runtimes": [ 85 | { 86 | "name": "JavaSE-25", 87 | "path": "/usr/lib/jvm/java-25-openjdk" 88 | }, 89 | { 90 | "name": "JavaSE-21", 91 | "path": "/usr/lib/jvm/java-21-openjdk", 92 | "default": true 93 | }, 94 | { 95 | "name": "JavaSE-1.8", 96 | "path": "/usr/lib/jvm/java-8-openjdk" 97 | } 98 | ] 99 | }, 100 | "import": { 101 | "gradle": { 102 | "enabled": true 103 | }, 104 | "maven": { 105 | "enabled": true 106 | }, 107 | "exclusions": [ 108 | "**/node_modules/**", 109 | "**/.metadata/**", 110 | "**/archetype-resources/**", 111 | "**/META-INF/maven/**", 112 | "/**/test/**" 113 | ] 114 | }, 115 | "completion": { 116 | "filteredTypes": [ 117 | "com.alibaba.nacos.shaded.*" 118 | ] 119 | }, 120 | "jdt": { 121 | "ls": { 122 | "java": { 123 | "home": "/usr/lib/jvm/java-21-openjdk" 124 | }, 125 | "lombokSupport": { 126 | "enabled": true 127 | } 128 | } 129 | }, 130 | "referencesCodeLens": { 131 | "enabled": true 132 | }, 133 | "signatureHelp": { 134 | "enabled": true 135 | }, 136 | "implementationsCodeLens": { 137 | "enabled": true 138 | }, 139 | "format": { 140 | "enabled": true 141 | }, 142 | "saveActions": { 143 | "organizeImports": false 144 | }, 145 | "autobuild": { 146 | "enabled": true 147 | } 148 | } 149 | } 150 | } 151 | }, 152 | "metals": { 153 | "initialization_options": { "isHttpEnabled": true }, 154 | "settings": { 155 | "useGlobalExecutable": true, 156 | "showImplicitArguments": false, 157 | "showImplicitConversionsAndClasses": false, 158 | "showInferredType": true, 159 | "superMethodLensesEnabled": true, 160 | "autoImportBuild": "initial", 161 | "inlayHints": { 162 | "hintsInPatternMatch": { "enable": true }, 163 | "implicitArguments": { "enable": false }, 164 | "implicitConversions": { "enable": false }, 165 | "inferredTypes": { "enable": true }, 166 | "typeParameters": { "enable": false } 167 | } 168 | } 169 | } 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /fish/.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --export FZF_DEFAULT_OPTS:\x2d\x2dcolor\x3dbg\x2b\x3a\x23414559\x2cbg\x3a\x23303446\x2cspinner\x3a\x23f2d5cf\x2chl\x3a\x23e78284\x20\x2d\x2dcolor\x3dfg\x3a\x23c6d0f5\x2cheader\x3a\x23e78284\x2cinfo\x3a\x23ca9ee6\x2cpointer\x3a\x23f2d5cf\x20\x2d\x2dcolor\x3dmarker\x3a\x23f2d5cf\x2cfg\x2b\x3a\x23c6d0f5\x2cprompt\x3a\x23ca9ee6\x2chl\x2b\x3a\x23e78284 4 | SETUVAR MY_ABBR_SET:true 5 | SETUVAR __fish_initialized:3800 6 | 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 7 | SETUVAR _fisher_plugins:catppuccin/fish 8 | SETUVAR _fisher_upgraded_to_4_4:\x1d 9 | SETUVAR fish_color_autosuggestion:737994 10 | SETUVAR fish_color_cancel:e78284 11 | SETUVAR fish_color_command:8caaee 12 | SETUVAR fish_color_comment:838ba7 13 | SETUVAR fish_color_cwd:e5c890 14 | SETUVAR fish_color_cwd_root:red 15 | SETUVAR fish_color_end:ef9f76 16 | SETUVAR fish_color_error:e78284 17 | SETUVAR fish_color_escape:ea999c 18 | SETUVAR fish_color_gray:737994 19 | SETUVAR fish_color_history_current:\x2d\x2dbold 20 | SETUVAR fish_color_host:8caaee 21 | SETUVAR fish_color_host_remote:a6d189 22 | SETUVAR fish_color_keyword:e78284 23 | SETUVAR fish_color_normal:c6d0f5 24 | SETUVAR fish_color_operator:f4b8e4 25 | SETUVAR fish_color_option:a6d189 26 | SETUVAR fish_color_param:eebebe 27 | SETUVAR fish_color_quote:a6d189 28 | SETUVAR fish_color_redirection:f4b8e4 29 | SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d414559 30 | SETUVAR fish_color_selection:\x2d\x2dbackground\x3d414559 31 | SETUVAR fish_color_status:e78284 32 | SETUVAR fish_color_user:81c8be 33 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 34 | SETUVAR fish_greeting:\x1d 35 | SETUVAR fish_key_bindings:fish_default_key_bindings 36 | SETUVAR fish_pager_color_background:\x1d 37 | SETUVAR fish_pager_color_completion:c6d0f5 38 | SETUVAR fish_pager_color_description:737994 39 | SETUVAR fish_pager_color_prefix:f4b8e4 40 | SETUVAR fish_pager_color_progress:737994 41 | SETUVAR fish_pager_color_secondary_background:\x1d 42 | SETUVAR fish_pager_color_secondary_completion:\x1d 43 | SETUVAR fish_pager_color_secondary_description:\x1d 44 | SETUVAR fish_pager_color_secondary_prefix:\x1d 45 | SETUVAR fish_pager_color_selected_background:\x1d 46 | SETUVAR fish_pager_color_selected_completion:\x1d 47 | SETUVAR fish_pager_color_selected_description:\x1d 48 | SETUVAR fish_pager_color_selected_prefix:\x1d 49 | SETUVAR fish_user_paths:/usr/bin 50 | SETUVAR pure_begin_prompt_with_current_directory:true 51 | SETUVAR pure_check_for_new_release:false 52 | SETUVAR pure_color_at_sign:pure_color_mute 53 | SETUVAR pure_color_aws_profile:pure_color_warning 54 | SETUVAR pure_color_command_duration:pure_color_warning 55 | SETUVAR pure_color_current_directory:pure_color_primary 56 | SETUVAR pure_color_danger:red 57 | SETUVAR pure_color_dark:black 58 | SETUVAR pure_color_git_branch:pure_color_mute 59 | SETUVAR pure_color_git_dirty:pure_color_mute 60 | SETUVAR pure_color_git_stash:pure_color_info 61 | SETUVAR pure_color_git_unpulled_commits:pure_color_info 62 | SETUVAR pure_color_git_unpushed_commits:pure_color_info 63 | SETUVAR pure_color_hostname:pure_color_mute 64 | SETUVAR pure_color_info:cyan 65 | SETUVAR pure_color_jobs:pure_color_normal 66 | SETUVAR pure_color_k8s_context:pure_color_success 67 | SETUVAR pure_color_k8s_namespace:pure_color_primary 68 | SETUVAR pure_color_k8s_prefix:pure_color_info 69 | SETUVAR pure_color_light:white 70 | SETUVAR pure_color_mute:brblack 71 | SETUVAR pure_color_nixdevshell_prefix:pure_color_info 72 | SETUVAR pure_color_nixdevshell_symbol:pure_color_mute 73 | SETUVAR pure_color_normal:normal 74 | SETUVAR pure_color_prefix_root_prompt:pure_color_danger 75 | SETUVAR pure_color_primary:blue 76 | SETUVAR pure_color_prompt_on_error:pure_color_danger 77 | SETUVAR pure_color_prompt_on_success:pure_color_success 78 | SETUVAR pure_color_success:magenta 79 | SETUVAR pure_color_system_time:pure_color_mute 80 | SETUVAR pure_color_username_normal:pure_color_mute 81 | SETUVAR pure_color_username_root:pure_color_light 82 | SETUVAR pure_color_virtualenv:pure_color_mute 83 | SETUVAR pure_color_warning:yellow 84 | SETUVAR pure_enable_aws_profile:true 85 | SETUVAR pure_enable_container_detection:true 86 | SETUVAR pure_enable_git:true 87 | SETUVAR pure_enable_k8s:false 88 | SETUVAR pure_enable_nixdevshell:false 89 | SETUVAR pure_enable_single_line_prompt:false 90 | SETUVAR pure_enable_virtualenv:true 91 | SETUVAR pure_reverse_prompt_symbol_in_vimode:true 92 | SETUVAR pure_separate_prompt_on_error:false 93 | SETUVAR pure_shorten_prompt_current_directory_length:0 94 | SETUVAR pure_shorten_window_title_current_directory_length:0 95 | SETUVAR pure_show_jobs:false 96 | SETUVAR pure_show_prefix_root_prompt:false 97 | SETUVAR pure_show_subsecond_command_duration:false 98 | SETUVAR pure_show_system_time:false 99 | SETUVAR pure_symbol_aws_profile_prefix: 100 | SETUVAR pure_symbol_container_prefix: 101 | SETUVAR pure_symbol_git_dirty:\x2a 102 | SETUVAR pure_symbol_git_stash:\u2261 103 | SETUVAR pure_symbol_git_unpulled_commits:\u21e3 104 | SETUVAR pure_symbol_git_unpushed_commits:\u21e1 105 | SETUVAR pure_symbol_k8s_prefix:\u2638 106 | SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f 107 | SETUVAR pure_symbol_prefix_root_prompt:\x23 108 | SETUVAR pure_symbol_prompt:\u276f 109 | SETUVAR pure_symbol_reverse_prompt:\u276e 110 | SETUVAR pure_symbol_ssh_prefix: 111 | SETUVAR pure_symbol_title_bar_separator:\x2d 112 | SETUVAR pure_symbol_virtualenv_prefix: 113 | SETUVAR pure_threshold_command_duration:5 114 | SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1 115 | SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1 116 | -------------------------------------------------------------------------------- /foot/.config/foot/foot.ini: -------------------------------------------------------------------------------- 1 | # -*- conf -*- 2 | 3 | # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) 4 | # term=foot (or xterm-256color if built with -Dterminfo=disabled) 5 | # login-shell=no 6 | 7 | # app-id=foot 8 | # title=foot 9 | # locked-title=no 10 | 11 | font=FiraCode Nerd Font:size=16 12 | # font-bold= 13 | # font-italic= 14 | # font-bold-italic= 15 | # line-height= 16 | # letter-spacing=0 17 | # horizontal-letter-offset=0 18 | # vertical-letter-offset=0 19 | # underline-offset= 20 | # box-drawings-uses-font-glyphs=no 21 | # dpi-aware=yes 22 | 23 | # initial-window-size-pixels=700x500 # Or, 24 | # initial-window-size-chars= 25 | # initial-window-mode=windowed 26 | pad=4x4 # optionally append 'center' 27 | # resize-delay-ms=100 28 | 29 | # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} 30 | 31 | # bold-text-in-bright=no 32 | # word-delimiters=,│`|:"'()[]{}<> 33 | # selection-target=primary 34 | # workers= 35 | 36 | [bell] 37 | # urgent=no 38 | # notify=no 39 | # command= 40 | # command-focused=no 41 | 42 | [scrollback] 43 | # lines=1000 44 | # multiplier=3.0 45 | # indicator-position=relative 46 | # indicator-format= 47 | 48 | [url] 49 | # launch=xdg-open ${url} 50 | # label-letters=sadfjklewcmpgh 51 | # osc8-underline=url-mode 52 | # protocols=http, https, ftp, ftps, file, gemini, gopher 53 | # uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="' 54 | 55 | [cursor] 56 | # style=block 57 | # color=111111 dcdccc 58 | # blink=no 59 | # beam-thickness=1.5 60 | # underline-thickness= 61 | 62 | [mouse] 63 | # hide-when-typing=no 64 | # alternate-scroll-mode=yes 65 | 66 | [colors] 67 | alpha=1 68 | foreground=c6d0f5 # Text 69 | background=303446 # Base 70 | regular0=51576d # Surface 1 71 | regular1=e78284 # red 72 | regular2=a6d189 # green 73 | regular3=e5c890 # yellow 74 | regular4=8caaee # blue 75 | regular5=f4b8e4 # pink 76 | regular6=81c8be # teal 77 | regular7=b5bfe2 # Subtext 1 78 | bright0=626880 # Surface 2 79 | bright1=e78284 # red 80 | bright2=a6d189 # green 81 | bright3=e5c890 # yellow 82 | bright4=8caaee # blue 83 | bright5=f4b8e4 # pink 84 | bright6=81c8be # teal 85 | bright7=a5adce # Subtext 0 86 | 87 | ## Normal/regular colors (color palette 0-7) 88 | # regular0=222222 # black 89 | # regular1=cc9393 # red 90 | # regular2=7f9f7f # green 91 | # regular3=d0bf8f # yellow 92 | # regular4=6ca0a3 # blue 93 | # regular5=dc8cc3 # magenta 94 | # regular6=93e0e3 # cyan 95 | # regular7=dcdccc # white 96 | 97 | ## Bright colors (color palette 8-15) 98 | # bright0=666666 # bright black 99 | # bright1=dca3a3 # bright red 100 | # bright2=bfebbf # bright green 101 | # bright3=f0dfaf # bright yellow 102 | # bright4=8cd0d3 # bright blue 103 | # bright5=fcace3 # bright magenta 104 | # bright6=b3ffff # bright cyan 105 | # bright7=ffffff # bright white 106 | 107 | ## dimmed colors (see foot.ini(5) man page) 108 | # dim0= 109 | # ... 110 | # dim7= 111 | 112 | ## The remaining 256-color palette 113 | # 16 = <256-color palette #16> 114 | # ... 115 | # 255 = <256-color palette #255> 116 | 117 | ## Misc colors 118 | # selection-foreground= 119 | # selection-background= 120 | # jump-labels= 121 | # urls= 122 | # scrollback-indicator= 123 | 124 | [csd] 125 | # preferred=server 126 | # size=26 127 | # font= 128 | # color= 129 | # border-width=4 130 | # border-color= 131 | # button-width=26 132 | # button-color= 133 | # button-minimize-color= 134 | # button-maximize-color= 135 | # button-close-color= 136 | 137 | [key-bindings] 138 | # scrollback-up-page=Shift+Page_Up 139 | # scrollback-up-half-page=none 140 | # scrollback-up-line=none 141 | # scrollback-down-page=Shift+Page_Down 142 | # scrollback-down-half-page=none 143 | # scrollback-down-line=none 144 | # clipboard-copy=Control+Shift+c XF86Copy 145 | # clipboard-paste=Control+Shift+v XF86Paste 146 | # primary-paste=Shift+Insert 147 | # search-start=Control+Shift+r 148 | # font-increase=Control+plus Control+equal Control+KP_Add 149 | # font-decrease=Control+minus Control+KP_Subtract 150 | # font-reset=Control+0 Control+KP_0 151 | # spawn-terminal=Control+Shift+n 152 | # minimize=none 153 | # maximize=none 154 | # fullscreen=none 155 | # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none 156 | # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none 157 | # pipe-selected=[xargs -r firefox] none 158 | # show-urls-launch=Control+Shift+u 159 | # show-urls-copy=none 160 | # noop=none 161 | 162 | [search-bindings] 163 | # cancel=Control+g Control+c Escape 164 | # commit=Return 165 | # find-prev=Control+r 166 | # find-next=Control+s 167 | # cursor-left=Left Control+b 168 | # cursor-left-word=Control+Left Mod1+b 169 | # cursor-right=Right Control+f 170 | # cursor-right-word=Control+Right Mod1+f 171 | # cursor-home=Home Control+a 172 | # cursor-end=End Control+e 173 | # delete-prev=BackSpace 174 | # delete-prev-word=Mod1+BackSpace Control+BackSpace 175 | # delete-next=Delete 176 | # delete-next-word=Mod1+d Control+Delete 177 | # extend-to-word-boundary=Control+w 178 | # extend-to-next-whitespace=Control+Shift+w 179 | # clipboard-paste=Control+v Control+y 180 | # primary-paste=Shift+Insert 181 | 182 | [url-bindings] 183 | # cancel=Control+g Control+c Control+d Escape 184 | # toggle-url-visible=t 185 | 186 | [mouse-bindings] 187 | # selection-override-modifiers=Shift 188 | # primary-paste=BTN_MIDDLE 189 | # select-begin=BTN_LEFT 190 | # select-begin-block=Control+BTN_LEFT 191 | # select-extend=BTN_RIGHT 192 | # select-extend-character-wise=Control+BTN_RIGHT 193 | # select-word=BTN_LEFT-2 194 | # select-word-whitespace=Control+BTN_LEFT-2 195 | # select-row=BTN_LEFT-3 196 | -------------------------------------------------------------------------------- /hyprland/.config/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | exec-once=mako 2 | exec-once=/usr/lib/polkit-kde-authentication-agent-1 3 | exec-once=waybar 4 | exec-once=fcitx5 -d --replace 5 | exec-once=randomWallpaper.sh 6 | 7 | monitor=DP-1,3840x2160,0x0,2 8 | # monitor=eDP-1,1920x1080,1920x0,1 9 | 10 | $term = foot 11 | $launcher = wofi --show run 12 | $fileManager = dolphin 13 | 14 | # Some default env vars. 15 | env = XCURSOR_SIZE,24 16 | env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that 17 | 18 | input { 19 | kb_layout = us 20 | kb_variant = 21 | kb_model = 22 | # kb_options=caps:swapescape 23 | kb_rules = 24 | 25 | follow_mouse = 1 26 | 27 | touchpad { 28 | natural_scroll = true 29 | } 30 | 31 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 32 | } 33 | 34 | general { 35 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 36 | 37 | gaps_in = 2 38 | gaps_out = 4 39 | border_size = 2 40 | col.active_border = rgba(cc5555cc) 41 | col.inactive_border = rgba(66333333) 42 | 43 | layout = dwindle 44 | 45 | # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on 46 | allow_tearing = false 47 | } 48 | 49 | decoration { 50 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 51 | 52 | rounding = 4 53 | 54 | blur { 55 | enabled = true 56 | size = 3 57 | passes = 1 58 | 59 | vibrancy = 0.1696 60 | } 61 | } 62 | 63 | animations { 64 | enabled = true 65 | 66 | # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 67 | 68 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 69 | 70 | animation = windows, 1, 7, myBezier 71 | animation = windowsOut, 1, 7, default, popin 80% 72 | animation = border, 1, 10, default 73 | animation = borderangle, 1, 8, default 74 | animation = fade, 1, 7, default 75 | animation = workspaces, 1, 6, default 76 | } 77 | 78 | dwindle { 79 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 80 | pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 81 | preserve_split = true # you probably want this 82 | } 83 | 84 | binds { 85 | allow_workspace_cycles=1 86 | } 87 | 88 | gestures { 89 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 90 | workspace_swipe = false 91 | } 92 | 93 | misc { 94 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 95 | force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers 96 | } 97 | 98 | xwayland { 99 | force_zero_scaling = true 100 | } 101 | 102 | # Example windowrule v1 103 | # windowrule = float, ^(kitty)$ 104 | # Example windowrule v2 105 | # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ 106 | # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more 107 | windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ 108 | windowrulev2 = noanim,class:^(xwaylandvideobridge)$ 109 | windowrulev2 = nofocus,class:^(xwaylandvideobridge)$ 110 | windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ 111 | windowrulev2 = float,class:^eww$ 112 | windowrulev2 = float,class:^pavucontrol$ 113 | windowrulev2 = float,class:^Color Picker$ 114 | windowrulev2 = float,class:^Waydroid$ 115 | windowrulev2 = float,title:^图片查看器$ 116 | windowrulev2 = float,title:^群公告- 117 | windowrulev2 = float,title:的聊天记录$ 118 | windowrulev2 = float,title:^Open Folder$ 119 | windowrulev2 = fullscreen,title:^Media viewer$ 120 | windowrulev2 = float,title:^zoom$ 121 | windowrulev2 = float,title:^Zoom$ 122 | windowrulev2 = float,title:^Zoom Cloud Meetings$ 123 | 124 | # toggle waybar 125 | bind=SUPER,b,exec,killall -SIGUSR1 waybar 126 | 127 | bind = SUPER,S,togglesplit 128 | bind = SUPERSHIFT,SPACE,togglegroup 129 | bind = SUPER,j,changegroupactive,f 130 | bind = SUPER,k,changegroupactive,b 131 | 132 | 133 | # bind to programs 134 | bind=SUPER,return,exec,$term 135 | bind=SUPER,P,exec,$launcher 136 | bind=SUPER,T,exec,transtify.sh 137 | bind=SUPERSHIFT,S,exec,snapshot.sh 138 | bind=SUPER,S,exec,grim 139 | bind=SUPER,A,exec,toggleScratch.sh 140 | 141 | # Brightness control 142 | bind=,xf86monbrightnessup,exec,light -A 5 143 | bind=,xf86monbrightnessdown,exec,light -U 5 144 | # Audio Volumne Control 145 | bind=,xf86audioraisevolume,exec,pamixer -i 3 146 | bind=,xf86audiolowervolume,exec,pamixer -d 3 147 | bind=,xf86audiomute,exec,volumeControl.sh mute 148 | 149 | 150 | # bind to functions 151 | bind=SUPER,Q,killactive 152 | bind=SUPER,E,exec,nemo 153 | bind=SUPERSHIFT,SPACE,togglegroup 154 | bind=SUPERSHIFT,E,exit 155 | 156 | # bind to window manipulations 157 | bind=SUPER,F,fullscreen,0 158 | bind=SUPER,SPACE,togglefloating,active 159 | bind=SUPER,H,movefocus,l 160 | bind=SUPER,L,movefocus,r 161 | bind=SUPER,K,movefocus,u 162 | bind=SUPER,J,movefocus,d 163 | bind=SUPERSHIFT,H,movewindow,l 164 | bind=SUPERSHIFT,L,movewindow,r 165 | bind=SUPERSHIFT,K,movewindow,u 166 | bind=SUPERSHIFT,J,movewindow,d 167 | bind=SUPER,left,resizeactive,-20 0 168 | bind=SUPER,right,resizeactive,20 0 169 | bind=SUPER,up,resizeactive,0 -20 170 | bind=SUPER,down,resizeactive,0 20 171 | 172 | # Move focus with mainMod + arrow keys 173 | bind = SUPER, left, movefocus, l 174 | bind = SUPER, right, movefocus, r 175 | bind = SUPER, up, movefocus, u 176 | bind = SUPER, down, movefocus, d 177 | 178 | # Switch workspaces with mainMod + [0-9] 179 | 180 | bind = SUPER, 1, workspace, 1 181 | bind = SUPER, 2, workspace, 2 182 | bind = SUPER, 3, workspace, 3 183 | bind = SUPER, 4, workspace, 4 184 | bind = SUPER, 5, workspace, 5 185 | bind = SUPER, 6, workspace, 6 186 | bind = SUPER, 7, workspace, 7 187 | bind = SUPER, 8, workspace, 8 188 | bind = SUPER, 9, workspace, 9 189 | bind = SUPER, 0, workspace, 10 190 | 191 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 192 | bind = SUPER SHIFT, 1, movetoworkspace, 1 193 | bind = SUPER SHIFT, 2, movetoworkspace, 2 194 | bind = SUPER SHIFT, 3, movetoworkspace, 3 195 | bind = SUPER SHIFT, 4, movetoworkspace, 4 196 | bind = SUPER SHIFT, 5, movetoworkspace, 5 197 | bind = SUPER SHIFT, 6, movetoworkspace, 6 198 | bind = SUPER SHIFT, 7, movetoworkspace, 7 199 | bind = SUPER SHIFT, 8, movetoworkspace, 8 200 | bind = SUPER SHIFT, 9, movetoworkspace, 9 201 | bind = SUPER SHIFT, 0, movetoworkspace, 10 202 | 203 | # Scroll through existing workspaces with mainMod + scroll 204 | bind = SUPER, mouse_down, workspace, e+1 205 | bind = SUPER, mouse_up, workspace, e-1 206 | 207 | # Move/resize windows with mainMod + LMB/RMB and dragging 208 | bindm = SUPER, mouse:272, movewindow 209 | bindm = SUPER, mouse:273, resizewindow 210 | -------------------------------------------------------------------------------- /sway/.config/sway/config: -------------------------------------------------------------------------------- 1 | # Default config for sway 2 | # 3 | # Copy this to ~/.config/sway/config and edit it to your liking. 4 | # 5 | # Read `man 5 sway` for a complete reference. 6 | 7 | ### Variables 8 | # 9 | # Logo key. Use Mod1 for Alt. 10 | set $mod Mod4 11 | # Home row direction keys, like vim 12 | set $left h 13 | set $down j 14 | set $up k 15 | set $right l 16 | # Your preferred terminal emulator 17 | set $term foot 18 | # Your preferred application launcher 19 | # Note: pass the final command to swaymsg so that the resulting window can be opened 20 | # on the original workspace that the command was run on. 21 | set $menu wofi --show drun 22 | ### Output configuration 23 | # 24 | # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) 25 | # output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill 26 | exec_always systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP 27 | exec_always randomWallpaper.sh 28 | # 29 | # Example configuration: 30 | # 31 | # output HDMI-A-1 resolution 1920x1080 position 1920,0 32 | # 33 | # You can get the names of your outputs by running: swaymsg -t get_outputs 34 | output DP-1 pos 0 0 res 3840x2160 scale 2 35 | output eDP-1 pos 1920 0 res 1920x1080 36 | 37 | default_border none 38 | 39 | ### Idle configuration 40 | # 41 | # Example configuration: 42 | # 43 | # exec swayidle -w \ 44 | # timeout 300 'swaylock -f -c 000000' \ 45 | # timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ 46 | # before-sleep 'swaylock -f -c 000000' 47 | # 48 | # This will lock your screen after 300 seconds of inactivity, then turn off 49 | # your displays after another 300 seconds, and turn your screens back on when 50 | # resumed. It will also lock your screen before your computer goes to sleep. 51 | exec_always fcitx5 -d --replace 52 | exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 53 | exec_always mako 54 | ### Input configuration 55 | # 56 | # Example configuration: 57 | # 58 | # input "2:14:SynPS/2_Synaptics_TouchPad" { 59 | # dwt enabled 60 | # tap enabled 61 | # natural_scroll enabled 62 | # middle_emulation enabled 63 | # } 64 | # 65 | # You can get the names of your inputs by running: swaymsg -t get_inputs 66 | # Read `man 5 sway-input` for more information about this section. 67 | input type:touchpad { 68 | tap enabled 69 | tap_button_map lrm 70 | natural_scroll enabled 71 | scroll_factor .2 72 | } 73 | ### Key bindings 74 | # 75 | # Basics: 76 | # 77 | # Start a terminal 78 | bindsym $mod+Return exec $term 79 | 80 | # Kill focused window 81 | bindsym $mod+q kill 82 | 83 | # Start your launcher 84 | bindsym $mod+p exec $menu 85 | 86 | # Drag floating windows by holding down $mod and left mouse button. 87 | # Resize them with right mouse button + $mod. 88 | # Despite the name, also works for non-floating windows. 89 | # Change normal to inverse to use left mouse button for resizing and right 90 | # mouse button for dragging. 91 | floating_modifier $mod 92 | 93 | # Reload the configuration file 94 | bindsym $mod+Shift+c reload 95 | 96 | # Exit sway (logs you out of your Wayland session) 97 | bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' 98 | # 99 | # Moving around: 100 | # 101 | # Move your focus around 102 | bindsym $mod+$left focus left 103 | bindsym $mod+$down focus down 104 | bindsym $mod+$up focus up 105 | bindsym $mod+$right focus right 106 | # Or use $mod+[up|down|left|right] 107 | bindsym $mod+Left focus left 108 | bindsym $mod+Down focus down 109 | bindsym $mod+Up focus up 110 | bindsym $mod+Right focus right 111 | 112 | # Move the focused window with the same, but add Shift 113 | bindsym $mod+Shift+$left move left 114 | bindsym $mod+Shift+$down move down 115 | bindsym $mod+Shift+$up move up 116 | bindsym $mod+Shift+$right move right 117 | # Ditto, with arrow keys 118 | bindsym $mod+Shift+Left move left 119 | bindsym $mod+Shift+Down move down 120 | bindsym $mod+Shift+Up move up 121 | bindsym $mod+Shift+Right move right 122 | # 123 | # Workspaces: 124 | # 125 | # Switch to workspace 126 | bindsym $mod+1 workspace number 1 127 | bindsym $mod+2 workspace number 2 128 | bindsym $mod+3 workspace number 3 129 | bindsym $mod+4 workspace number 4 130 | bindsym $mod+5 workspace number 5 131 | bindsym $mod+6 workspace number 6 132 | bindsym $mod+7 workspace number 7 133 | bindsym $mod+8 workspace number 8 134 | bindsym $mod+9 workspace number 9 135 | bindsym $mod+0 workspace number 10 136 | # Move focused container to workspace 137 | bindsym $mod+Shift+1 move container to workspace number 1 138 | bindsym $mod+Shift+2 move container to workspace number 2 139 | bindsym $mod+Shift+3 move container to workspace number 3 140 | bindsym $mod+Shift+4 move container to workspace number 4 141 | bindsym $mod+Shift+5 move container to workspace number 5 142 | bindsym $mod+Shift+6 move container to workspace number 6 143 | bindsym $mod+Shift+7 move container to workspace number 7 144 | bindsym $mod+Shift+8 move container to workspace number 8 145 | bindsym $mod+Shift+9 move container to workspace number 9 146 | bindsym $mod+Shift+0 move container to workspace number 10 147 | # Note: workspaces can have any name you want, not just numbers. 148 | # We just use 1-10 as the default. 149 | # 150 | # Layout stuff: 151 | # 152 | # You can "split" the current object of your focus with 153 | # $mod+b or $mod+v, for horizontal and vertical splits 154 | # respectively. 155 | bindsym $mod+b splith 156 | bindsym $mod+v splitv 157 | 158 | # Switch the current container between different layout styles 159 | bindsym $mod+s layout stacking 160 | bindsym $mod+w layout tabbed 161 | bindsym $mod+e layout toggle split 162 | 163 | # Make the current focus fullscreen 164 | bindsym $mod+f fullscreen 165 | 166 | # Toggle the current focus between tiling and floating mode 167 | bindsym $mod+Shift+space floating toggle 168 | 169 | # Swap focus between the tiling area and the floating area 170 | bindsym $mod+space focus mode_toggle 171 | 172 | # Move focus to the parent container 173 | bindsym $mod+a focus parent 174 | # 175 | # Scratchpad: 176 | # 177 | # Sway has a "scratchpad", which is a bag of holding for windows. 178 | # You can send windows there and get them back later. 179 | 180 | # Move the currently focused window to the scratchpad 181 | bindsym $mod+Shift+minus move scratchpad 182 | 183 | # Show the next scratchpad window or hide the focused scratchpad window. 184 | # If there are multiple scratchpad windows, this command cycles through them. 185 | bindsym $mod+minus scratchpad show 186 | # 187 | # audio/brightness control 188 | # 189 | # Brightness control 190 | bindsym XF86MonBrightnessUp exec brightnessControl.sh up 191 | bindsym XF86MonBrightnessDown exec brightnessControl.sh down 192 | # Audio Volumne Control 193 | bindsym XF86AudioRaiseVolume exec volumeControl.sh up 194 | bindsym XF86AudioLowerVolume exec volumeControl.sh down 195 | 196 | # 197 | # utilities 198 | # 199 | # translate clipboard 200 | bindsym $mod+t exec transtify.sh 201 | bindsym $mod+Shift+s exec snapshot.sh 202 | 203 | # 204 | # Resizing containers: 205 | # 206 | mode "resize" { 207 | # left will shrink the containers width 208 | # right will grow the containers width 209 | # up will shrink the containers height 210 | # down will grow the containers height 211 | bindsym $left resize shrink width 10px 212 | bindsym $down resize grow height 10px 213 | bindsym $up resize shrink height 10px 214 | bindsym $right resize grow width 10px 215 | 216 | # Ditto, with arrow keys 217 | bindsym Left resize shrink width 10px 218 | bindsym Down resize grow height 10px 219 | bindsym Up resize shrink height 10px 220 | bindsym Right resize grow width 10px 221 | 222 | # Return to default mode 223 | bindsym Return mode "default" 224 | bindsym Escape mode "default" 225 | } 226 | bindsym $mod+r mode "resize" 227 | 228 | # 229 | # Status Bar: 230 | # 231 | # Read `man 5 sway-bar` for more information about this section. 232 | bar { 233 | swaybar_command waybar 234 | } 235 | 236 | -------------------------------------------------------------------------------- /fish/.config/fish/completions/bun.fish: -------------------------------------------------------------------------------- 1 | # This is terribly complicated 2 | # It's because: 3 | # 1. bun run has to have dynamic completions 4 | # 2. there are global options 5 | # 3. bun {install add remove} gets special options 6 | # 4. I don't know how to write fish completions well 7 | # Contributions very welcome!! 8 | 9 | function __fish__get_bun_bins 10 | string split ' ' (bun getcompletes b) 11 | end 12 | 13 | function __fish__get_bun_scripts 14 | set -lx SHELL bash 15 | set -lx MAX_DESCRIPTION_LEN 40 16 | string trim (string split '\n' (string split '\t' (bun getcompletes z))) 17 | end 18 | 19 | function __fish__get_bun_packages 20 | if test (commandline -ct) != "" 21 | set -lx SHELL fish 22 | string split ' ' (bun getcompletes a (commandline -ct)) 23 | end 24 | end 25 | 26 | function __history_completions 27 | set -l tokens (commandline --current-process --tokenize) 28 | history --prefix (commandline) | string replace -r \^$tokens[1]\\s\* "" | string replace -r \^$tokens[2]\\s\* "" | string split ' ' 29 | end 30 | 31 | function __fish__get_bun_bun_js_files 32 | string split ' ' (bun getcompletes j) 33 | end 34 | 35 | set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global 36 | set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't update package.json or save a lockfile" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependencies" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder" 37 | 38 | set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add init pm x 39 | set -l bun_builtin_cmds_accepting_flags create help bun upgrade discord run init link unlink pm x 40 | 41 | function __bun_complete_bins_scripts --inherit-variable bun_builtin_cmds_without_run -d "Emit bun completions for bins and scripts" 42 | # Do nothing if we already have a builtin subcommand, 43 | # or any subcommand other than "run". 44 | if __fish_seen_subcommand_from $bun_builtin_cmds_without_run 45 | or not __fish_use_subcommand && not __fish_seen_subcommand_from run 46 | return 47 | end 48 | # Do we already have a bin or script subcommand? 49 | set -l bins (__fish__get_bun_bins) 50 | if __fish_seen_subcommand_from $bins 51 | return 52 | end 53 | # Scripts have descriptions appended with a tab separator. 54 | # Strip off descriptions for the purposes of subcommand testing. 55 | set -l scripts (__fish__get_bun_scripts) 56 | if __fish_seen_subcommand_from (string split \t -f 1 -- $scripts) 57 | return 58 | end 59 | # Emit scripts. 60 | for script in $scripts 61 | echo $script 62 | end 63 | # Emit binaries and JS files (but only if we're doing `bun run`). 64 | if __fish_seen_subcommand_from run 65 | for bin in $bins 66 | echo "$bin"\t"package bin" 67 | end 68 | for file in (__fish__get_bun_bun_js_files) 69 | echo "$file"\t"Bun.js" 70 | end 71 | end 72 | end 73 | 74 | 75 | # Clear existing completions 76 | complete -e -c bun 77 | 78 | # Dynamically emit scripts and binaries 79 | complete -c bun -f -a "(__bun_complete_bins_scripts)" 80 | 81 | # Complete flags if we have no subcommand or a flag-friendly one. 82 | set -l flag_applies "__fish_use_subcommand; or __fish_seen_subcommand_from $bun_builtin_cmds_accepting_flags" 83 | complete -c bun \ 84 | -n $flag_applies --no-files -s 'u' -l 'origin' -r -d 'Server URL. Rewrites import paths' 85 | complete -c bun \ 86 | -n $flag_applies --no-files -s 'p' -l 'port' -r -d 'Port number to start server from' 87 | complete -c bun \ 88 | -n $flag_applies --no-files -s 'd' -l 'define' -r -d 'Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\"' 89 | complete -c bun \ 90 | -n $flag_applies --no-files -s 'e' -l 'external' -r -d 'Exclude module from transpilation (can use * wildcards). ex: -e react' 91 | complete -c bun \ 92 | -n $flag_applies --no-files -l 'use' -r -d 'Use a framework (ex: next)' 93 | complete -c bun \ 94 | -n $flag_applies --no-files -l 'hot' -r -d 'Enable hot reloading in Bun\'s JavaScript runtime' 95 | 96 | # Complete dev and create as first subcommand. 97 | complete -c bun \ 98 | -n "__fish_use_subcommand" -a 'dev' -d 'Start dev server' 99 | complete -c bun \ 100 | -n "__fish_use_subcommand" -a 'create' -f -d 'Create a new project from a template' 101 | 102 | # Complete "next" and "react" if we've seen "create". 103 | complete -c bun \ 104 | -n "__fish_seen_subcommand_from create" -a 'next' -d 'new Next.js project' 105 | 106 | complete -c bun \ 107 | -n "__fish_seen_subcommand_from create" -a 'react' -d 'new React project' 108 | 109 | # Complete "upgrade" as first subcommand. 110 | complete -c bun \ 111 | -n "__fish_use_subcommand" -a 'upgrade' -d 'Upgrade bun to the latest version' -x 112 | # Complete "-h/--help" unconditionally. 113 | complete -c bun \ 114 | -s "h" -l "help" -d 'See all commands and flags' -x 115 | 116 | # Complete "-v/--version" if we have no subcommand. 117 | complete -c bun \ 118 | -n "not __fish_use_subcommand" -l "version" -s "v" -d 'Bun\'s version' -x 119 | 120 | # Complete additional subcommands. 121 | complete -c bun \ 122 | -n "__fish_use_subcommand" -a 'discord' -d 'Open bun\'s Discord server' -x 123 | 124 | 125 | complete -c bun \ 126 | -n "__fish_use_subcommand" -a 'bun' -d 'Generate a new bundle' 127 | 128 | 129 | complete -c bun \ 130 | -n "__fish_seen_subcommand_from bun" -F -d 'Bundle this' 131 | 132 | complete -c bun \ 133 | -n "__fish_seen_subcommand_from create; and __fish_seen_subcommand_from react next" -F -d "Create in directory" 134 | 135 | 136 | complete -c bun \ 137 | -n "__fish_use_subcommand" -a 'init' -F -d 'Start an empty Bun project' 138 | 139 | complete -c bun \ 140 | -n "__fish_use_subcommand" -a 'install' -f -d 'Install packages from package.json' 141 | 142 | complete -c bun \ 143 | -n "__fish_use_subcommand" -a 'add' -F -d 'Add a package to package.json' 144 | 145 | complete -c bun \ 146 | -n "__fish_use_subcommand" -a 'remove' -F -d 'Remove a package from package.json' 147 | 148 | 149 | for i in (seq (count $bun_install_boolean_flags)) 150 | complete -c bun \ 151 | -n "__fish_seen_subcommand_from install add remove" -l "$bun_install_boolean_flags[$i]" -d "$bun_install_boolean_flags_descriptions[$i]" 152 | end 153 | 154 | complete -c bun \ 155 | -n "__fish_seen_subcommand_from install add remove" -l 'cwd' -d 'Change working directory' 156 | 157 | complete -c bun \ 158 | -n "__fish_seen_subcommand_from install add remove" -l 'cache-dir' -d 'Choose a cache directory (default: $HOME/.bun/install/cache)' 159 | 160 | complete -c bun \ 161 | -n "__fish_seen_subcommand_from add" -d 'Popular' -a '(__fish__get_bun_packages)' 162 | 163 | complete -c bun \ 164 | -n "__fish_seen_subcommand_from add" -d 'History' -a '(__history_completions)' 165 | 166 | complete -c bun \ 167 | -n "__fish_seen_subcommand_from pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) cache;" -a 'bin ls cache hash hash-print hash-string' -f 168 | 169 | complete -c bun \ 170 | -n "__fish_seen_subcommand_from pm; and __fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts);" -a 'rm' -f 171 | 172 | # Add built-in subcommands with descriptions. 173 | complete -c bun -n "__fish_use_subcommand" -a "create" -f -d "Create a new project from a template" 174 | complete -c bun -n "__fish_use_subcommand" -a "build bun" --require-parameter -F -d "Transpile and bundle one or more files" 175 | complete -c bun -n "__fish_use_subcommand" -a "upgrade" -d "Upgrade Bun" 176 | complete -c bun -n "__fish_use_subcommand" -a "run" -d "Run a script or package binary" 177 | complete -c bun -n "__fish_use_subcommand" -a "install" -d "Install dependencies from package.json" -f 178 | complete -c bun -n "__fish_use_subcommand" -a "remove" -d "Remove a dependency from package.json" -f 179 | complete -c bun -n "__fish_use_subcommand" -a "add" -d "Add a dependency to package.json" -f 180 | complete -c bun -n "__fish_use_subcommand" -a "init" -d "Initialize a Bun project in this directory" -f 181 | complete -c bun -n "__fish_use_subcommand" -a "link" -d "Register or link a local npm package" -f 182 | complete -c bun -n "__fish_use_subcommand" -a "unlink" -d "Unregister a local npm package" -f 183 | complete -c bun -n "__fish_use_subcommand" -a "pm" -d "Additional package management utilities" -f 184 | complete -c bun -n "__fish_use_subcommand" -a "x" -d "Execute a package binary, installing if needed" -f 185 | complete -c bun -n "__fish_use_subcommand" -a "outdated" -d "Display the latest versions of outdated dependencies" -f 186 | complete -c bun -n "__fish_use_subcommand" -a "publish" -d "Publish your package from local to npm" -f 187 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lua/plugins/ui/heirline.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "rebelot/heirline.nvim", 3 | lazy = false, 4 | config = function() 5 | local utils = require("heirline.utils") 6 | local conditions = require("heirline.conditions") 7 | local catppuccin = require("catppuccin.palettes").get_palette("frappe") 8 | local colors = { 9 | bg = catppuccin.base, 10 | fg = catppuccin.text, 11 | red = catppuccin.red, 12 | green = catppuccin.green, 13 | yellow = catppuccin.yellow, 14 | blue = catppuccin.blue, 15 | magenta = catppuccin.peach, 16 | cyan = catppuccin.teal, 17 | dark = catppuccin.mantle, 18 | } 19 | local bg = colors.bg 20 | require("heirline").load_colors(colors) 21 | 22 | local Align = { provider = "%=", hl = { bg = bg } } 23 | local Space = { provider = " ", hl = { bg = bg } } 24 | 25 | local viMode = { 26 | init = function(self) 27 | self.mode = vim.fn.mode(1) 28 | end, 29 | static = { 30 | mode_names = { 31 | n = "󰭩 N", 32 | no = "󰭩 N?", 33 | nov = "󰭩 N?", 34 | noV = "󰭩 N?", 35 | ["no\22"] = "󰭩 N?", 36 | niI = "󰭩 Ni", 37 | niR = "󰭩 Nr", 38 | niV = "󰭩 Nv", 39 | nt = "󰭩 Nt", 40 | v = "󰉸 V", 41 | vs = "󰉸 Vs", 42 | V = "󰉸 V_", 43 | Vs = "󰉸 Vs", 44 | ["\22"] = "󰉸 ^V", 45 | ["\22s"] = "󰉸 ^V", 46 | s = "󰛔 S", 47 | S = "󰛔 S_", 48 | ["\19"] = "󰛔 ^S", 49 | i = " I", 50 | ic = " Ic", 51 | ix = " Ix", 52 | R = " R", 53 | Rc = " Rc", 54 | Rx = " Rx", 55 | Rv = " Rv", 56 | Rvc = " Rv", 57 | Rvx = " Rv", 58 | c = " C", 59 | cv = " Ex", 60 | r = "...", 61 | rm = "M", 62 | ["r?"] = "?", 63 | ["!"] = "!", 64 | t = " T", 65 | }, 66 | mode_colors = { 67 | n = "red", 68 | i = "green", 69 | v = "cyan", 70 | V = "cyan", 71 | ["\22"] = "cyan", 72 | c = "orange", 73 | s = "purple", 74 | S = "purple", 75 | ["\19"] = "purple", 76 | R = "orange", 77 | r = "orange", 78 | ["!"] = "red", 79 | t = "red", 80 | }, 81 | }, 82 | provider = function(self) 83 | return " %2(" .. self.mode_names[self.mode] .. "%)" 84 | end, 85 | hl = function(self) 86 | local mode = self.mode:sub(1, 1) -- get only the first mode character 87 | return { fg = self.mode_colors[mode], bold = true, bg = bg } 88 | end, 89 | update = { 90 | "ModeChanged", 91 | pattern = "*:*", 92 | callback = vim.schedule_wrap(function() 93 | vim.cmd("redrawstatus") 94 | end), 95 | }, 96 | } 97 | 98 | local FileNameBlock = { 99 | init = function(self) 100 | self.filename = vim.api.nvim_buf_get_name(0) 101 | end, 102 | } 103 | 104 | local FileIcon = { 105 | init = function(self) 106 | local filename = self.filename 107 | local extension = vim.fn.fnamemodify(filename, ":e") 108 | self.icon, self.icon_color = 109 | require("nvim-web-devicons").get_icon_color(filename, extension, { default = true }) 110 | end, 111 | provider = function(self) 112 | return self.icon and (self.icon .. " ") 113 | end, 114 | hl = function(self) 115 | return { fg = self.icon_color, bg = bg } 116 | end, 117 | } 118 | 119 | local FileName = { 120 | provider = function(self) 121 | local filename = vim.fn.fnamemodify(self.filename, ":.") 122 | if filename == "" then 123 | return "[No Name]" 124 | end 125 | if not conditions.width_percent_below(#filename, 0.25) then 126 | filename = vim.fn.pathshorten(filename) 127 | end 128 | return filename 129 | end, 130 | hl = { fg = utils.get_highlight("Directory").fg, bg = bg }, 131 | } 132 | 133 | local FileFlags = { 134 | { 135 | condition = function() 136 | return vim.bo.modified 137 | end, 138 | provider = "[+]", 139 | hl = { fg = "green", bg = bg }, 140 | }, 141 | { 142 | condition = function() 143 | return not vim.bo.modifiable or vim.bo.readonly 144 | end, 145 | provider = "", 146 | hl = { fg = "orange", bg = bg }, 147 | }, 148 | } 149 | 150 | FileNameBlock = utils.insert(FileNameBlock, FileIcon, utils.insert(FileName), FileFlags, { provider = "%<" }) 151 | 152 | local MacroRec = { 153 | condition = function() 154 | return vim.fn.reg_recording() ~= "" and vim.o.cmdheight == 0 155 | end, 156 | provider = " ", 157 | hl = { fg = "orange", bold = true, bg = bg }, 158 | utils.surround({ "[", "]" }, nil, { 159 | provider = function() 160 | return vim.fn.reg_recording() 161 | end, 162 | hl = { fg = "green", bold = true, bg = bg }, 163 | }), 164 | update = { 165 | "RecordingEnter", 166 | "RecordingLeave", 167 | }, 168 | } 169 | 170 | local SearchCount = { 171 | condition = function() 172 | return vim.v.hlsearch ~= 0 and vim.o.cmdheight == 0 173 | end, 174 | init = function(self) 175 | local ok, search = pcall(vim.fn.searchcount) 176 | if ok and search.total then 177 | self.search = search 178 | end 179 | end, 180 | provider = function(self) 181 | local search = self.search 182 | if search then 183 | return string.format("[%d/%d]", search.current, math.min(search.total, search.maxcount)) 184 | else 185 | return "" 186 | end 187 | end, 188 | hl = { fg = "cyan", bg = bg }, 189 | } 190 | 191 | local ShowCmd = { 192 | condition = function() 193 | return vim.o.cmdheight == 0 194 | end, 195 | provider = "%2(%S%)", 196 | hl = { fg = "white", bg = bg }, 197 | } 198 | 199 | local lspProgress = require("lsp-progress") 200 | local api = require("lsp-progress.api") 201 | lspProgress.setup({ 202 | client_format = function(_, spinner, series_messages) 203 | return #series_messages > 0 and (spinner .. " " .. table.concat(series_messages, ", ")) or nil 204 | end, 205 | format = function(client_messages) 206 | local names = {} 207 | local clients = api.lsp_clients() 208 | for _, server in pairs(clients) do 209 | table.insert(names, server.name) 210 | end 211 | local sign = "󰙴 " 212 | if #client_messages > 0 then 213 | return sign .. " " .. table.concat(client_messages, " ") 214 | end 215 | if #clients > 0 then 216 | return sign .. table.concat(names, " ") 217 | end 218 | return "" 219 | end, 220 | }) 221 | local LSPActive = { 222 | condition = conditions.lsp_attached, 223 | update = { 224 | "User", 225 | pattern = "LspProgressStatusUpdated", 226 | callback = vim.schedule_wrap(function() 227 | vim.cmd("redrawstatus") 228 | end), 229 | }, 230 | provider = function() 231 | return lspProgress.progress() 232 | end, 233 | hl = { fg = "green", bg = bg }, 234 | } 235 | 236 | local Ruler = { 237 | provider = "%7(%l/%L%):%2c", 238 | hl = { fg = "blue", bg = bg }, 239 | } 240 | 241 | local Git = { 242 | condition = conditions.is_git_repo, 243 | init = function(self) 244 | self.status_dict = vim.b.gitsigns_status_dict 245 | self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0 246 | end, 247 | hl = { fg = "magenta", bg = bg }, 248 | { 249 | provider = function(self) 250 | return " " .. self.status_dict.head 251 | end, 252 | hl = { bold = true }, 253 | }, 254 | { 255 | condition = function(self) 256 | return self.has_changes 257 | end, 258 | provider = "(", 259 | }, 260 | { 261 | provider = function(self) 262 | local count = self.status_dict.added or 0 263 | return count > 0 and ("+" .. count) 264 | end, 265 | hl = { fg = "green", bg = bg }, 266 | }, 267 | { 268 | provider = function(self) 269 | local count = self.status_dict.removed or 0 270 | return count > 0 and ("-" .. count) 271 | end, 272 | hl = { fg = "red", bg = bg }, 273 | }, 274 | { 275 | provider = function(self) 276 | local count = self.status_dict.changed or 0 277 | return count > 0 and ("~" .. count) 278 | end, 279 | hl = { fg = "yellow", bg = bg }, 280 | }, 281 | { 282 | condition = function(self) 283 | return self.has_changes 284 | end, 285 | provider = "%-3()%)", 286 | }, 287 | } 288 | 289 | require("heirline").setup({ 290 | statusline = { 291 | MacroRec, 292 | viMode, 293 | Space, 294 | FileNameBlock, 295 | SearchCount, 296 | ShowCmd, 297 | Align, 298 | LSPActive, 299 | Align, 300 | Ruler, 301 | Space, 302 | Git, 303 | }, 304 | }) 305 | end, 306 | dependencies = { 307 | { "nvim-tree/nvim-web-devicons" }, 308 | { "lewis6991/gitsigns.nvim" }, 309 | { "catppuccin" }, 310 | { "linrongbin16/lsp-progress.nvim" }, 311 | }, 312 | } 313 | -------------------------------------------------------------------------------- /zellij/.config/zellij/config.kdl: -------------------------------------------------------------------------------- 1 | // If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" 2 | keybinds { 3 | normal { 4 | // uncomment this and adjust key if using copy_on_select=false 5 | // bind "Alt c" { Copy; } 6 | } 7 | locked { 8 | bind "Ctrl g" { SwitchToMode "Normal"; } 9 | } 10 | resize { 11 | bind "Ctrl n" { SwitchToMode "Normal"; } 12 | bind "h" "Left" { Resize "Increase Left"; } 13 | bind "j" "Down" { Resize "Increase Down"; } 14 | bind "k" "Up" { Resize "Increase Up"; } 15 | bind "l" "Right" { Resize "Increase Right"; } 16 | bind "H" { Resize "Decrease Left"; } 17 | bind "J" { Resize "Decrease Down"; } 18 | bind "K" { Resize "Decrease Up"; } 19 | bind "L" { Resize "Decrease Right"; } 20 | bind "=" "+" { Resize "Increase"; } 21 | bind "-" { Resize "Decrease"; } 22 | } 23 | pane { 24 | bind "Ctrl p" { SwitchToMode "Normal"; } 25 | bind "h" "Left" { MoveFocus "Left"; } 26 | bind "l" "Right" { MoveFocus "Right"; } 27 | bind "j" "Down" { MoveFocus "Down"; } 28 | bind "k" "Up" { MoveFocus "Up"; } 29 | bind "p" { SwitchFocus; } 30 | bind "n" { NewPane; SwitchToMode "Normal"; } 31 | bind "d" { NewPane "Down"; SwitchToMode "Normal"; } 32 | bind "r" { NewPane "Right"; SwitchToMode "Normal"; } 33 | bind "x" { CloseFocus; SwitchToMode "Normal"; } 34 | bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 35 | bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } 36 | bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } 37 | bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } 38 | bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} 39 | } 40 | move { 41 | bind "Ctrl h" { SwitchToMode "Normal"; } 42 | bind "n" "Tab" { MovePane; } 43 | bind "p" { MovePaneBackwards; } 44 | bind "h" "Left" { MovePane "Left"; } 45 | bind "j" "Down" { MovePane "Down"; } 46 | bind "k" "Up" { MovePane "Up"; } 47 | bind "l" "Right" { MovePane "Right"; } 48 | } 49 | tab { 50 | bind "Ctrl t" { SwitchToMode "Normal"; } 51 | bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } 52 | bind "h" "Left" "Up" "k" { GoToPreviousTab; } 53 | bind "l" "Right" "Down" "j" { GoToNextTab; } 54 | bind "n" { NewTab; SwitchToMode "Normal"; } 55 | bind "x" { CloseTab; SwitchToMode "Normal"; } 56 | bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } 57 | bind "1" { GoToTab 1; SwitchToMode "Normal"; } 58 | bind "2" { GoToTab 2; SwitchToMode "Normal"; } 59 | bind "3" { GoToTab 3; SwitchToMode "Normal"; } 60 | bind "4" { GoToTab 4; SwitchToMode "Normal"; } 61 | bind "5" { GoToTab 5; SwitchToMode "Normal"; } 62 | bind "6" { GoToTab 6; SwitchToMode "Normal"; } 63 | bind "7" { GoToTab 7; SwitchToMode "Normal"; } 64 | bind "8" { GoToTab 8; SwitchToMode "Normal"; } 65 | bind "9" { GoToTab 9; SwitchToMode "Normal"; } 66 | bind "Tab" { ToggleTab; } 67 | } 68 | scroll { 69 | bind "Ctrl s" { SwitchToMode "Normal"; } 70 | bind "e" { EditScrollback; SwitchToMode "Normal"; } 71 | bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } 72 | bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 73 | bind "j" "Down" { ScrollDown; } 74 | bind "k" "Up" { ScrollUp; } 75 | bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 76 | bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 77 | bind "d" { HalfPageScrollDown; } 78 | bind "u" { HalfPageScrollUp; } 79 | // uncomment this and adjust key if using copy_on_select=false 80 | // bind "Alt c" { Copy; } 81 | } 82 | search { 83 | bind "Ctrl s" { SwitchToMode "Normal"; } 84 | bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } 85 | bind "j" "Down" { ScrollDown; } 86 | bind "k" "Up" { ScrollUp; } 87 | bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } 88 | bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } 89 | bind "d" { HalfPageScrollDown; } 90 | bind "u" { HalfPageScrollUp; } 91 | bind "n" { Search "down"; } 92 | bind "p" { Search "up"; } 93 | bind "c" { SearchToggleOption "CaseSensitivity"; } 94 | bind "w" { SearchToggleOption "Wrap"; } 95 | bind "o" { SearchToggleOption "WholeWord"; } 96 | } 97 | entersearch { 98 | bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } 99 | bind "Enter" { SwitchToMode "Search"; } 100 | } 101 | renametab { 102 | bind "Ctrl c" { SwitchToMode "Normal"; } 103 | bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } 104 | } 105 | renamepane { 106 | bind "Ctrl c" { SwitchToMode "Normal"; } 107 | bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } 108 | } 109 | session { 110 | bind "Ctrl o" { SwitchToMode "Normal"; } 111 | bind "Ctrl s" { SwitchToMode "Scroll"; } 112 | bind "d" { Detach; } 113 | } 114 | tmux { 115 | bind "[" { SwitchToMode "Scroll"; } 116 | bind "Ctrl b" { Write 2; SwitchToMode "Normal"; } 117 | bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } 118 | bind "%" { NewPane "Right"; SwitchToMode "Normal"; } 119 | bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } 120 | bind "c" { NewTab; SwitchToMode "Normal"; } 121 | bind "," { SwitchToMode "RenameTab"; } 122 | bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } 123 | bind "n" { GoToNextTab; SwitchToMode "Normal"; } 124 | bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } 125 | bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } 126 | bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } 127 | bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } 128 | bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } 129 | bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } 130 | bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } 131 | bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } 132 | bind "o" { FocusNextPane; } 133 | bind "d" { Detach; } 134 | bind "Space" { NextSwapLayout; } 135 | bind "x" { CloseFocus; SwitchToMode "Normal"; } 136 | } 137 | shared_except "locked" { 138 | bind "Ctrl g" { SwitchToMode "Locked"; } 139 | bind "Ctrl q" { Quit; } 140 | bind "Alt n" { NewPane; } 141 | bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } 142 | bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } 143 | bind "Alt j" "Alt Down" { MoveFocus "Down"; } 144 | bind "Alt k" "Alt Up" { MoveFocus "Up"; } 145 | bind "Alt =" "Alt +" { Resize "Increase"; } 146 | bind "Alt -" { Resize "Decrease"; } 147 | bind "Alt [" { PreviousSwapLayout; } 148 | bind "Alt ]" { NextSwapLayout; } 149 | } 150 | shared_except "normal" "locked" { 151 | bind "Enter" "Esc" { SwitchToMode "Normal"; } 152 | } 153 | shared_except "pane" "locked" { 154 | bind "Ctrl p" { SwitchToMode "Pane"; } 155 | } 156 | shared_except "resize" "locked" { 157 | bind "Ctrl n" { SwitchToMode "Resize"; } 158 | } 159 | shared_except "scroll" "locked" { 160 | bind "Ctrl s" { SwitchToMode "Scroll"; } 161 | } 162 | shared_except "session" "locked" { 163 | bind "Ctrl o" { SwitchToMode "Session"; } 164 | } 165 | shared_except "tab" "locked" { 166 | bind "Ctrl t" { SwitchToMode "Tab"; } 167 | } 168 | shared_except "move" "locked" { 169 | bind "Ctrl h" { SwitchToMode "Move"; } 170 | } 171 | shared_except "tmux" "locked" { 172 | bind "Ctrl b" { SwitchToMode "Tmux"; } 173 | } 174 | } 175 | 176 | plugins { 177 | tab-bar { path "tab-bar"; } 178 | status-bar { path "status-bar"; } 179 | strider { path "strider"; } 180 | compact-bar { path "compact-bar"; } 181 | } 182 | 183 | // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP 184 | // eg. when terminal window with an active zellij session is closed 185 | // Options: 186 | // - detach (Default) 187 | // - quit 188 | // 189 | // on_force_close "quit" 190 | 191 | // Send a request for a simplified ui (without arrow fonts) to plugins 192 | // Options: 193 | // - true 194 | // - false (Default) 195 | // 196 | simplified_ui true 197 | 198 | // Choose the path to the default shell that zellij will use for opening new panes 199 | // Default: $SHELL 200 | // 201 | // default_shell "fish" 202 | 203 | // Choose the path to override cwd that zellij will use for opening new panes 204 | // 205 | // default_cwd "" 206 | 207 | // Toggle between having pane frames around the panes 208 | // Options: 209 | // - true (default) 210 | // - false 211 | // 212 | pane_frames false 213 | 214 | // Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible 215 | // Options: 216 | // - true (default) 217 | // - false 218 | // 219 | // auto_layout true 220 | 221 | // Define color themes for Zellij 222 | // For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes 223 | // Once these themes are defined, one of them should to be selected in the "theme" section of this file 224 | // 225 | // themes { 226 | // dracula { 227 | // fg 248 248 242 228 | // bg 40 42 54 229 | // red 255 85 85 230 | // green 80 250 123 231 | // yellow 241 250 140 232 | // blue 98 114 164 233 | // magenta 255 121 198 234 | // orange 255 184 108 235 | // cyan 139 233 253 236 | // black 0 0 0 237 | // white 255 255 255 238 | // } 239 | // } 240 | 241 | // Choose the theme that is specified in the themes section. 242 | // Default: default 243 | // 244 | theme "catppuccin-frappe" 245 | 246 | // The name of the default layout to load on startup 247 | // Default: "default" 248 | // 249 | default_layout "compact" 250 | 251 | // Choose the mode that zellij uses when starting up. 252 | // Default: normal 253 | // 254 | // default_mode "locked" 255 | 256 | // Toggle enabling the mouse mode. 257 | // On certain configurations, or terminals this could 258 | // potentially interfere with copying text. 259 | // Options: 260 | // - true (default) 261 | // - false 262 | // 263 | // mouse_mode false 264 | 265 | // Configure the scroll back buffer size 266 | // This is the number of lines zellij stores for each pane in the scroll back 267 | // buffer. Excess number of lines are discarded in a FIFO fashion. 268 | // Valid values: positive integers 269 | // Default value: 10000 270 | // 271 | // scroll_buffer_size 10000 272 | 273 | // Provide a command to execute when copying text. The text will be piped to 274 | // the stdin of the program to perform the copy. This can be used with 275 | // terminal emulators which do not support the OSC 52 ANSI control sequence 276 | // that will be used by default if this option is not set. 277 | // Examples: 278 | // 279 | // copy_command "xclip -selection clipboard" // x11 280 | // copy_command "wl-copy" // wayland 281 | // copy_command "pbcopy" // osx 282 | 283 | // Choose the destination for copied text 284 | // Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. 285 | // Does not apply when using copy_command. 286 | // Options: 287 | // - system (default) 288 | // - primary 289 | // 290 | // copy_clipboard "primary" 291 | 292 | // Enable or disable automatic copy (and clear) of selection when releasing mouse 293 | // Default: true 294 | // 295 | // copy_on_select false 296 | 297 | // Path to the default editor to use to edit pane scrollbuffer 298 | // Default: $EDITOR or $VISUAL 299 | // 300 | // scrollback_editor "/usr/bin/vim" 301 | 302 | // When attaching to an existing session with other users, 303 | // should the session be mirrored (true) 304 | // or should each user have their own cursor (false) 305 | // Default: false 306 | // 307 | // mirror_session true 308 | 309 | // The folder in which Zellij will look for layouts 310 | // 311 | // layout_dir "/path/to/my/layout_dir" 312 | 313 | // The folder in which Zellij will look for themes 314 | // 315 | // theme_dir "/path/to/my/theme_dir" 316 | -------------------------------------------------------------------------------- /ranger/.config/ranger/rifle.conf: -------------------------------------------------------------------------------- 1 | # vim: ft=cfg 2 | # 3 | # This is the configuration file of "rifle", ranger's file executor/opener. 4 | # Each line consists of conditions and a command. For each line the conditions 5 | # are checked and if they are met, the respective command is run. 6 | # 7 | # Syntax: 8 | # , , ... = command 9 | # 10 | # The command can contain these environment variables: 11 | # $1-$9 | The n-th selected file 12 | # $@ | All selected files 13 | # 14 | # If you use the special command "ask", rifle will ask you what program to run. 15 | # 16 | # Prefixing a condition with "!" will negate its result. 17 | # These conditions are currently supported: 18 | # match | The regexp matches $1 19 | # ext | The regexp matches the extension of $1 20 | # mime | The regexp matches the mime type of $1 21 | # name | The regexp matches the basename of $1 22 | # path | The regexp matches the absolute path of $1 23 | # has | The program is installed (i.e. located in $PATH) 24 | # env | The environment variable "variable" is non-empty 25 | # file | $1 is a file 26 | # directory | $1 is a directory 27 | # number | change the number of this command to n 28 | # terminal | stdin, stderr and stdout are connected to a terminal 29 | # X | A graphical environment is available (darwin, Xorg, or Wayland) 30 | # 31 | # There are also pseudo-conditions which have a "side effect": 32 | # flag | Change how the program is run. See below. 33 | # label