├── .chezmoiexternal.toml ├── .chezmoiignore ├── LICENSE-Apache ├── LICENSE-BlueOak.md ├── README.md ├── aqua-policy.yaml ├── aqua-registry.yaml ├── aqua.yaml ├── dot_Brewfile ├── dot_Flatpakfile ├── dot_bash_profile ├── dot_bashrc ├── dot_config ├── aquaproj-aqua │ ├── aqua-policy.yaml │ └── aqua.yaml ├── atuin │ └── config.toml ├── bash │ ├── dot_bashrc │ ├── integrations │ │ ├── 0-go.sh │ │ ├── 0-localbin.sh │ │ ├── 1-aqua.sh │ │ ├── 10-marktext.sh │ │ ├── 10-mosh.sh │ │ ├── 10-wezterm.sh │ │ ├── 20-bat.sh │ │ ├── 20-cheat.sh │ │ ├── 20-distrobox-host.sh │ │ ├── 20-lfcd.sh │ │ ├── 20-nvim.sh │ │ ├── 20-pyenv.sh │ │ ├── 20-rga.sh │ │ ├── 20-vivid.sh │ │ ├── 20-wezterm-flatpak.sh │ │ ├── 30-aqua.bash │ │ ├── 30-onefetch.bash │ │ ├── 30-s.bash │ │ ├── 40-atuin.bash │ │ ├── 40-direnv.bash │ │ ├── 40-zoxide.bash │ │ ├── 50-oh-my-posh.bash │ │ └── 50-starship.no-bash │ └── plugins │ │ └── bash-preexec.load.bash ├── bat │ └── config ├── btop │ └── btop.conf ├── cheat │ └── conf.yml ├── discordo │ └── executable_config.yml ├── kdedefaults │ ├── package │ ├── private_kcminputrc │ ├── private_kdeglobals │ ├── private_ksplashrc │ ├── private_kwinrc │ └── private_plasmarc ├── lazygit │ └── config.yml ├── lf │ ├── executable_previewer.sh │ └── lfrc ├── menus │ └── applications-kmenuedit.menu ├── neofetch │ ├── config.conf │ └── wallpaper.jpg ├── nvim │ ├── init.lua │ ├── lazy-lock.json │ ├── lua │ │ ├── config │ │ │ ├── editor.lua │ │ │ ├── languages.lua │ │ │ ├── lazy.lua │ │ │ └── ui.lua │ │ ├── init.lua │ │ └── plugins │ │ │ ├── colorscheme.lua │ │ │ ├── editor.lua │ │ │ ├── languages.lua │ │ │ └── ui.lua │ ├── nvimrc.vim │ └── vimrc.vim ├── oh-my-posh │ └── lutho.omp.toml ├── private_breezerc ├── private_dolphinrc ├── private_kcminputrc ├── private_kdeglobals ├── private_kglobalshortcutsrc ├── private_krunnerrc ├── private_kscreenlockerrc ├── private_kwinrc ├── private_kxkbrc ├── private_mimeapps.list ├── private_plasma-org.kde.plasma.desktop-appletsrc ├── private_plasma_calendar_holiday_regions ├── private_plasmarc ├── private_plasmashellrc ├── private_powerdevilrc ├── private_powermanagementprofilesrc ├── starship.toml ├── systemd │ └── user │ │ ├── default.target.wants │ │ ├── symlink_flatpak-dump.service │ │ └── symlink_homebrew-dump.service │ │ ├── flatpak-dump.service │ │ ├── flatpak-install.service │ │ ├── homebrew-dump.service │ │ └── homebrew-install.service ├── wezterm │ └── wezterm.lua ├── zellij │ ├── config.kdl │ └── layouts │ │ ├── basic.kdl │ │ └── basic.swap.kdl └── zsh │ ├── completions │ ├── _aqua │ ├── _atuin │ ├── _cheat │ ├── _chezmoi │ ├── _glow │ ├── _just │ ├── _lf │ ├── _onefetch │ ├── _s │ ├── _wezterm │ ├── _yq │ └── _zellij │ ├── dot_zshrc │ ├── integrations │ ├── 20-distrobox-host.zsh │ ├── 30-distrobox.zsh │ ├── 30-marktext.zsh │ ├── 40-atuin.zsh │ ├── 40-direnv.zsh │ └── 40-zoxide.zsh │ ├── p10k.zsh │ └── plugins │ ├── 0-zsh-completions.completions.zsh │ ├── 20-zsh-syntax-highlighting.load.zsh │ ├── 30-zsh-autosuggestions.load.zsh │ ├── 40-zsh-vim-mode.load.zsh │ ├── 50-powerlevel10k.load.zsh │ ├── executable_0-zsh-completions.install.zsh │ ├── executable_20-zsh-syntax-highlighting.install.zsh │ ├── executable_30-zsh-autosuggestions.install.zsh │ ├── executable_40-zsh-vim-mode.install.zsh │ ├── executable_50-powerlevel10k.install.zsh │ └── installer-utils.zsh ├── dot_gitconfig ├── dot_gtkrc-2.0-kde4 ├── dot_icons └── PearDarkCursors │ ├── cursors │ ├── alias │ ├── all-scroll │ ├── bottom_left_corner │ ├── bottom_right_corner │ ├── bottom_side │ ├── cell │ ├── center_ptr │ ├── col-resize │ ├── color-picker │ ├── context-menu │ ├── copy │ ├── crosshair │ ├── default │ ├── dnd-move │ ├── dnd-no-drop │ ├── down-arrow │ ├── draft │ ├── fleur │ ├── help │ ├── left-arrow │ ├── left_side │ ├── no-drop │ ├── not-allowed │ ├── openhand │ ├── pencil │ ├── pirate │ ├── pointer │ ├── progress │ ├── right-arrow │ ├── right_ptr │ ├── right_side │ ├── row-resize │ ├── size_bdiag │ ├── size_fdiag │ ├── size_hor │ ├── size_ver │ ├── symlink_00000000000000020006000e7e9ffc3f │ ├── symlink_00008160000006810000408080010102 │ ├── symlink_03b6e0fcb3499374a867c041f52298f0 │ ├── symlink_08e8e1c95fe2fc01f976f1e063a24ccd │ ├── symlink_1081e37283d90000800003c07f3ef6bf │ ├── symlink_3085a0e285430894940527032f8b26df │ ├── symlink_3ecb610c1bf2410f44200f48c40d3599 │ ├── symlink_4498f0e0c1937ffe01fd06f973665830 │ ├── symlink_5c6cd98b3f3ebcb1f9c7f1c204630408 │ ├── symlink_6407b0e94181790501fd1e167b474872 │ ├── symlink_640fb0e74195791501fd1ed57b41487f │ ├── symlink_9081237383d90e509aa00f00170e968f │ ├── symlink_9d800788f1b08800ae810202380a0822 │ ├── symlink_a2a266d0498c3104214a47bd64ab0fc8 │ ├── symlink_b66166c04f8c3109214a4fbd64a50fc8 │ ├── symlink_circle │ ├── symlink_closedhand │ ├── symlink_cross │ ├── symlink_crossed_circle │ ├── symlink_d9ce0ab605698f320427677b458ad60b │ ├── symlink_dnd-copy │ ├── symlink_dnd-none │ ├── symlink_e-resize │ ├── symlink_e29285e634086352946a0e7090d73106 │ ├── symlink_fcf21c00b30f7e3f83fe0dfd12e71cff │ ├── symlink_forbidden │ ├── symlink_h_double_arrow │ ├── symlink_half-busy │ ├── symlink_hand1 │ ├── symlink_hand2 │ ├── symlink_ibeam │ ├── symlink_left_ptr │ ├── symlink_left_ptr_help │ ├── symlink_left_ptr_watch │ ├── symlink_link │ ├── symlink_move │ ├── symlink_n-resize │ ├── symlink_plus │ ├── symlink_pointing_hand │ ├── symlink_question_arrow │ ├── symlink_s-resize │ ├── symlink_sb_h_double_arrow │ ├── symlink_sb_v_double_arrow │ ├── symlink_size-bdiag │ ├── symlink_size-fdiag │ ├── symlink_size-hor │ ├── symlink_size-ver │ ├── symlink_size_all │ ├── symlink_split_h │ ├── symlink_split_v │ ├── symlink_top_left_arrow │ ├── symlink_v_double_arrow │ ├── symlink_w-resize │ ├── symlink_watch │ ├── symlink_whats_this │ ├── symlink_xterm │ ├── text │ ├── top_left_corner │ ├── top_right_corner │ ├── top_side │ ├── up-arrow │ ├── vertical-text │ ├── wait │ ├── wayland-cursor │ ├── x-cursor │ ├── zoom-in │ └── zoom-out │ └── executable_cursor.theme ├── dot_local ├── bin │ ├── executable_attach-zellij.sh │ ├── executable_batpager.sh │ ├── executable_nvim-open │ ├── executable_nvim-open-last │ ├── executable_nvim-server │ └── executable_run-in-zsh.sh └── share │ ├── applications │ ├── private_LF.desktop │ ├── private_Lazygit.desktop │ ├── private_Neovim.desktop │ └── private_Zellij.desktop │ ├── aquaproj-aqua │ └── policies │ │ ├── home │ │ └── lietk12 │ │ │ ├── dot_config │ │ │ └── aquaproj-aqua │ │ │ │ └── aqua-policy.yaml │ │ │ └── dot_local │ │ │ └── share │ │ │ └── chezmoi │ │ │ └── aqua-policy.yaml │ │ └── var │ │ └── home │ │ └── lietk12 │ │ ├── dot_config │ │ └── aquaproj-aqua │ │ │ └── aqua-policy.yaml │ │ └── dot_local │ │ └── share │ │ └── chezmoi │ │ └── aqua-policy.yaml │ ├── flatpak │ └── overrides │ │ ├── com.github.flxzt.rnote │ │ ├── com.google.Chrome │ │ ├── com.visualstudio.code │ │ ├── global │ │ └── org.kde.kdenlive │ ├── icons │ └── applications │ │ ├── distrobox.png │ │ ├── fedora-icon-white.svg │ │ ├── fedora-logo.png │ │ ├── neovim.png │ │ └── zellij.png │ ├── knewstuff3 │ ├── colorschemes.knsregistry │ ├── konsole.knsregistry │ ├── kwinscripts.knsregistry │ ├── plasma-themes.knsregistry │ ├── plasmoids.knsregistry │ ├── symlink_aurorae.knsregistry │ ├── wallpaper.knsregistry │ ├── window-decorations.knsregistry │ └── xcursor.knsregistry │ ├── konsole │ ├── DarkOneNuanced.colorscheme │ └── private_Host.profile │ └── wallpapers │ ├── Black-Mountain-Dusk-1.jpg │ ├── F18-alpha-wallpaper-standard.png │ ├── World Trade Center station dark bluer.jpg │ ├── f28.png │ ├── f29-00-dawn.png │ ├── f29-01-day.png │ ├── f29-02-dusk.png │ ├── f29-03-night.png │ └── f39-01-night.png ├── dot_var └── app │ └── org.wezfurlong.wezterm │ ├── symlink_cache │ ├── symlink_config │ ├── symlink_data │ └── symlink_state ├── dot_zshrc ├── renovate.json ├── setup.md ├── shortcuts.md └── symlink_dot_vimrc /.chezmoiexternal.toml: -------------------------------------------------------------------------------- 1 | # Shell plugins 2 | 3 | [".config/bash/plugins/bash-preexec"] 4 | type = "archive" 5 | url = "https://github.com/rcaloras/bash-preexec/archive/refs/tags/0.5.0.tar.gz" 6 | exact = true 7 | stripcomponents = 1 8 | 9 | [".config/zsh/plugins/powerlevel10k"] 10 | type = "archive" 11 | url = "https://github.com/romkatv/powerlevel10k/archive/refs/tags/v1.20.0.tar.gz" 12 | exact = true 13 | stripcomponents = 1 14 | 15 | [".config/zsh/plugins/zsh-autosuggestions"] 16 | type = "archive" 17 | url = "https://github.com/zsh-users/zsh-autosuggestions/archive/refs/tags/v0.7.0.tar.gz" 18 | exact = true 19 | stripcomponents = 1 20 | 21 | [".config/zsh/plugins/zsh-completions"] 22 | type = "archive" 23 | url = "https://github.com/zsh-users/zsh-completions/archive/refs/tags/0.35.0.tar.gz" 24 | exact = true 25 | stripcomponents = 1 26 | 27 | [".config/zsh/plugins/zsh-syntax-highlighting"] 28 | type = "archive" 29 | url = "https://github.com/zsh-users/zsh-syntax-highlighting/archive/refs/tags/0.8.0.tar.gz" 30 | exact = true 31 | stripcomponents = 1 32 | 33 | [".config/zsh/plugins/zsh-vim-mode"] 34 | type = "archive" 35 | url = "https://github.com/softmoth/zsh-vim-mode/archive/1f9953b.tar.gz" 36 | exact = true 37 | stripcomponents = 1 38 | 39 | # Zellij plugins 40 | 41 | [".local/share/zellij/plugins/zj-quit.wasm"] 42 | type = "file" 43 | url = "https://github.com/cristiand391/zj-quit/releases/download/0.3.1/zj-quit.wasm" 44 | 45 | [".local/share/zellij/plugins/zellij-forgot.wasm"] 46 | type = "file" 47 | url = "https://github.com/karimould/zellij-forgot/releases/download/0.4.0/zellij_forgot.wasm" 48 | 49 | [".local/share/zellij/plugins/zjstatus.wasm"] 50 | type = "file" 51 | url = "https://github.com/dj95/zjstatus/releases/download/v0.19.1/zjstatus.wasm" 52 | 53 | # CLI Theming 54 | 55 | [".config/btop/themes/onedark.theme"] 56 | type = "file" 57 | url = "https://raw.githubusercontent.com/aristocratos/btop/v1.2.13/themes/onedark.theme" 58 | 59 | # KDE Plasma Theming 60 | 61 | [".local/share/aurorae/themes/ActiveAccentFrame"] 62 | type = "archive" 63 | url = "https://github.com/nclarius/Plasma-window-decorations/archive/0205869.tar.gz" 64 | exact = true 65 | stripcomponents = 2 66 | include = ["*/ActiveAccentFrame/*"] 67 | 68 | [".local/share/color-schemes/One-Dark-Blue.colors"] 69 | type = "file" 70 | url = "https://raw.githubusercontent.com/Prayag2/kde_onedark/v2.1/color-schemes/One-Dark/One-Dark-Blue.colors" 71 | 72 | [".local/share/color-schemes/One-Dark-Green.colors"] 73 | type = "file" 74 | url = "https://raw.githubusercontent.com/Prayag2/kde_onedark/v2.1/color-schemes/One-Dark/One-Dark-Green.colors" 75 | 76 | [".local/share/color-schemes/One-Dark-Red.colors"] 77 | type = "file" 78 | url = "https://raw.githubusercontent.com/Prayag2/kde_onedark/v2.1/color-schemes/One-Dark/One-Dark-Red.colors" 79 | 80 | [".local/share/color-schemes/One-Dark-Yellow.colors"] 81 | type = "file" 82 | url = "https://raw.githubusercontent.com/Prayag2/kde_onedark/v2.1/color-schemes/One-Dark/One-Dark-Yellow.colors" 83 | 84 | [".local/share/plasma/plasmoids/org.kde.panel.transparency.toggle"] 85 | type = "archive" 86 | url = "https://github.com/sanjay-kr-commit/panelTransparencyToggleForPlasma6/archive/refs/heads/main.zip" 87 | exact = true 88 | stripcomponents = 1 89 | 90 | [".local/share/plasma/plasmoids/org.kde.plasma.ginti"] 91 | type = "archive" 92 | url = "https://github.com/dhruv8sh/plasma6-desktopindicator-gnome/archive/refs/tags/v0.5.tar.gz" 93 | exact = true 94 | stripcomponents = 1 95 | 96 | [".local/share/plasma/plasmoids/org.kde.plasma.plasm6desktopindicator"] 97 | type = "archive" 98 | url = "https://github.com/dhruv8sh/plasma6-desktop-indicator/archive/refs/tags/v0.3.tar.gz" 99 | exact = true 100 | stripcomponents = 1 101 | 102 | # Extra icons 103 | 104 | [".local/share/icons/distrobox"] 105 | type = "archive" 106 | url = "https://github.com/89luca89/distrobox/archive/refs/tags/1.7.2.1.tar.gz" 107 | exact = true 108 | include = ["*/docs/assets/png/distros/**"] 109 | stripcomponents = 5 110 | 111 | # KWin Scripts 112 | 113 | [".local/share/kwin/scripts/kwin-swapdesktop"] 114 | type = "archive" 115 | url = "https://github.com/dedean16/kwin-swapdesktop/archive/refs/tags/v2.0.tar.gz" 116 | exact = true 117 | stripcomponents = 2 118 | include = ["*/swapdesktop2/**"] 119 | 120 | # Fonts 121 | 122 | [".local/share/fonts/Intel One Mono"] 123 | type = "archive" 124 | url = "https://github.com/intel/intel-one-mono/archive/refs/heads/main.zip" 125 | exact = true 126 | stripcomponents = 3 127 | include = ["*/fonts/ttf/*"] 128 | 129 | [".local/share/fonts/Atkinson Hyperlegible"] 130 | type = "archive" 131 | url = "https://github.com/googlefonts/atkinson-hyperlegible/archive/refs/heads/main.zip" 132 | exact = true 133 | stripcomponents = 3 134 | include = ["*/fonts/ttf/*"] 135 | 136 | [".local/share/fonts/Intone Mono Nerd Font"] 137 | type = "archive" 138 | url = "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/IntelOneMono.zip" 139 | exact = true 140 | -------------------------------------------------------------------------------- /.chezmoiignore: -------------------------------------------------------------------------------- 1 | aqua.yaml 2 | aqua-*.yaml 3 | LICENSE* 4 | README.md 5 | setup.md 6 | shortcuts.md 7 | renovate.json 8 | -------------------------------------------------------------------------------- /LICENSE-BlueOak.md: -------------------------------------------------------------------------------- 1 | # Blue Oak Model License 2 | 3 | Version 1.0.0 4 | 5 | ## Purpose 6 | 7 | This license gives everyone as much permission to work with 8 | this software as possible, while protecting contributors 9 | from liability. 10 | 11 | ## Acceptance 12 | 13 | In order to receive this license, you must agree to its 14 | rules. The rules of this license are both obligations 15 | under that agreement and conditions to your license. 16 | You must not do anything with this software that triggers 17 | a rule that you cannot or will not follow. 18 | 19 | ## Copyright 20 | 21 | Each contributor licenses you to do everything with this 22 | software that would otherwise infringe that contributor's 23 | copyright in it. 24 | 25 | ## Notices 26 | 27 | You must ensure that everyone who gets a copy of 28 | any part of this software from you, with or without 29 | changes, also gets the text of this license or a link to 30 | . 31 | 32 | ## Excuse 33 | 34 | If anyone notifies you in writing that you have not 35 | complied with [Notices](#notices), you can keep your 36 | license by taking all practical steps to comply within 30 37 | days after the notice. If you do not do so, your license 38 | ends immediately. 39 | 40 | ## Patent 41 | 42 | Each contributor licenses you to do everything with this 43 | software that would otherwise infringe any patent claims 44 | they can license or become able to license. 45 | 46 | ## Reliability 47 | 48 | No contributor can revoke this license. 49 | 50 | ## No Liability 51 | 52 | ***As far as the law allows, this software comes as is, 53 | without any warranty or condition, and no contributor 54 | will be liable to anyone for any damages related to this 55 | software or this license, under any kind of legal claim.*** 56 | -------------------------------------------------------------------------------- /aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - name: local 6 | type: local 7 | path: aqua-registry.yaml 8 | - type: standard 9 | ref: semver(">= 3.0.0") 10 | packages: 11 | - registry: local 12 | - registry: standard 13 | -------------------------------------------------------------------------------- /aqua-registry.yaml: -------------------------------------------------------------------------------- 1 | # Aqua package registry: see https://aquaproj.github.io/ for details. 2 | packages: 3 | - type: github_release 4 | repo_owner: neovim 5 | repo_name: neovim 6 | description: Hyperextensible Vim-based text editor (binary named neovim instead of nvim) 7 | supported_envs: 8 | - darwin 9 | - linux 10 | - amd64 11 | replacements: 12 | windows: win64 13 | darwin: macos 14 | asset: nvim-{{.OS}}-{{.Arch}}.{{.Format}} 15 | format: tar.gz 16 | files: 17 | - name: neovim 18 | src: "{{.AssetWithoutExt}}/bin/nvim" 19 | windows_arm_emulation: true 20 | overrides: 21 | - goos: darwin 22 | replacements: 23 | amd64: x86_64 24 | - goos: linux 25 | replacements: 26 | amd64: x86_64 27 | - goos: windows 28 | format: zip 29 | version_constraint: semver(">= 0.7.2") 30 | version_overrides: 31 | - version_constraint: "true" 32 | overrides: 33 | - goos: windows 34 | format: zip 35 | - goos: darwin 36 | files: 37 | - name: neovim 38 | src: nvim-osx64/bin/nvim 39 | checksum: 40 | type: github_release 41 | asset: shasum.txt 42 | algorithm: sha256 43 | - type: github_release 44 | repo_owner: git-ecosystem 45 | repo_name: git-credential-manager 46 | description: Secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services 47 | asset: gcm-{{.OS}}-{{.Arch}}-{{trimV .Version}}.{{.Format}} 48 | format: tar.gz 49 | format_overrides: 50 | - goos: windows 51 | format: zip 52 | - goos: darwin 53 | format: pkg 54 | # FIXME(ethanjli): how do pkg files work? (idk because I don't use macOS) 55 | files: 56 | - name: git-credential-manager 57 | src: git-credential-manager 58 | supported_envs: 59 | - linux/amd64 60 | - darwin 61 | - windows 62 | overrides: 63 | - goos: linux 64 | asset: gcm-{{.OS}}_{{.Arch}}.{{trimV .Version}}.{{.Format}} 65 | - goos: darwin 66 | replacements: 67 | darwin: osx 68 | amd64: x64 69 | - goos: windows 70 | replacements: 71 | windows: win 72 | amd64: x86 73 | version_constraint: semver(">= 2.0.779") 74 | # Note(ethanjli): versions below 2.0.779 instead provide a tool called 75 | # "git-credential-manager-core", and I don't know if that's the same thing 76 | # TODO: make a PR to take this upstream 77 | - type: http 78 | repo_owner: hpjansson 79 | repo_name: chafa 80 | description: Terminal graphics for the 21st century 81 | url: https://hpjansson.org/chafa/releases/static/chafa-{{trimV .Version}}-1-{{.Arch}}-{{.OS}} 82 | format: tar.gz 83 | replacements: 84 | amd64: x86_64 85 | linux: linux-gnu 86 | format_overrides: 87 | - goos: windows 88 | format: zip 89 | files: 90 | - name: chafa 91 | src: chafa-{{trimV .Version}}-1-{{.Arch}}-{{.OS}}/chafa 92 | supported_envs: 93 | - windows/amd64 94 | - linux/amd64 95 | version_constraint: semver(">= 1.12.2") 96 | version_overrides: 97 | - version_constraint: semver("< 1.12.2") 98 | supported_envs: 99 | - linux/amd64 100 | -------------------------------------------------------------------------------- /aqua.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua - Declarative CLI Version Manager 3 | # https://aquaproj.github.io/ 4 | # checksum: 5 | # enabled: true 6 | # require_checksum: true 7 | # supported_envs: 8 | # - all 9 | registries: 10 | - type: standard 11 | ref: v4.374.0 # renovate: depName=aquaproj/aqua-registry 12 | - name: local 13 | type: local 14 | path: aqua-registry.yaml 15 | packages: 16 | - name: twpayne/chezmoi@v2.62.5 17 | - name: hpjansson/chafa@1.16.1 18 | registry: local 19 | - name: git-ecosystem/git-credential-manager@v2.6.1 20 | registry: local 21 | - name: neovim/neovim@v0.11.2 22 | registry: local 23 | -------------------------------------------------------------------------------- /dot_Brewfile: -------------------------------------------------------------------------------- 1 | tap "homebrew/bundle" 2 | brew "python@3.13" 3 | brew "ffmpeg" 4 | brew "go" 5 | brew "imagemagick" 6 | brew "neovim" 7 | brew "node" 8 | brew "rust" 9 | brew "virtualenv" 10 | brew "yarn" 11 | vscode "ms-azuretools.vscode-docker" 12 | vscode "ms-vscode-remote.remote-containers" 13 | vscode "ms-vscode-remote.remote-ssh" 14 | vscode "ms-vscode-remote.remote-ssh-edit" 15 | vscode "ms-vscode.remote-explorer" 16 | -------------------------------------------------------------------------------- /dot_Flatpakfile: -------------------------------------------------------------------------------- 1 | cc.arduino.IDE2 2 | com.axosoft.GitKraken 3 | com.calibre_ebook.calibre 4 | com.github.flxzt.rnote 5 | com.github.marktext.marktext 6 | com.github.tchx84.Flatseal 7 | com.github.wwmm.easyeffects 8 | com.github.zocker_160.SyncThingy 9 | com.google.Chrome 10 | com.rustdesk.RustDesk 11 | com.slack.Slack 12 | com.spotify.Client 13 | com.usebottles.bottles 14 | com.valvesoftware.Steam 15 | com.zettlr.Zettlr 16 | dev.vencord.Vesktop 17 | io.github.dvlv.boxbuddyrs 18 | io.github.flattool.Warehouse 19 | io.github.seadve.Kooha 20 | io.missioncenter.MissionCenter 21 | io.podman_desktop.PodmanDesktop 22 | md.obsidian.Obsidian 23 | me.iepure.devtoolbox 24 | org.chromium.Chromium 25 | org.cockpit_project.CockpitClient 26 | org.fedoraproject.MediaWriter 27 | org.fkoehler.KTailctl 28 | org.freedesktop.Bustle 29 | org.gnome.Boxes 30 | org.gnome.World.PikaBackup 31 | org.gnome.dspy 32 | org.inkscape.Inkscape 33 | org.jupyter.JupyterLab 34 | org.kde.filelight 35 | org.kde.gwenview 36 | org.kde.haruna 37 | org.kde.isoimagewriter 38 | org.kde.kcalc 39 | org.kde.kclock 40 | org.kde.kdenlive 41 | org.kde.kolourpaint 42 | org.kde.kweather 43 | org.kde.okular 44 | org.kicad.KiCad 45 | org.libreoffice.LibreOffice 46 | org.mozilla.Thunderbird 47 | org.mozilla.firefox 48 | org.raspberrypi.rpi-imager 49 | org.videolan.VLC 50 | org.wezfurlong.wezterm 51 | us.zoom.Zoom 52 | -------------------------------------------------------------------------------- /dot_bash_profile: -------------------------------------------------------------------------------- 1 | # .bash_profile 2 | 3 | # Get the aliases and functions 4 | if [ -f ~/.bashrc ]; then 5 | . ~/.bashrc 6 | fi 7 | 8 | # User specific environment and startup programs 9 | -------------------------------------------------------------------------------- /dot_bashrc: -------------------------------------------------------------------------------- 1 | # .bashrc 2 | 3 | # Source global definitions 4 | if [ -f /etc/bashrc ]; then 5 | . /etc/bashrc 6 | fi 7 | 8 | # User specific environment 9 | if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then 10 | PATH="$HOME/.local/bin:$HOME/bin:$PATH" 11 | fi 12 | export PATH 13 | 14 | # Uncomment the following line if you don't like systemctl's auto-paging feature: 15 | # export SYSTEMD_PAGER= 16 | 17 | # User specific aliases and functions 18 | if [ -d ~/.bashrc.d ]; then 19 | for rc in ~/.bashrc.d/*; do 20 | if [ -f "$rc" ]; then 21 | . "$rc" 22 | fi 23 | done 24 | fi 25 | unset rc 26 | 27 | source "${XDG_CONFIG_HOME:-$HOME/.config}/bash/.bashrc" 28 | -------------------------------------------------------------------------------- /dot_config/aquaproj-aqua/aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - type: standard 6 | ref: semver(">= 3.0.0") 7 | - name: ethanjli/dotfiles 8 | type: github_content 9 | repo_owner: ethanjli 10 | repo_name: dotfiles 11 | path: aqua-registry.yaml 12 | packages: 13 | - registry: standard 14 | - registry: ethanjli/dotfiles 15 | -------------------------------------------------------------------------------- /dot_config/aquaproj-aqua/aqua.yaml: -------------------------------------------------------------------------------- 1 | registries: 2 | - type: standard 3 | ref: v4.374.0 # renovate: depName=aquaproj/aqua-registry 4 | - name: ethanjli/dotfiles 5 | type: github_content 6 | repo_owner: ethanjli 7 | repo_name: dotfiles 8 | ref: debf54198ffa051edf8ebf6936a1145892b211ae 9 | path: aqua-registry.yaml 10 | packages: # comments are added for the first package in each section 11 | - name: twpayne/chezmoi@v2.62.5 12 | - name: zellij-org/zellij@v0.42.2 # Shell 13 | - name: JanDeDobbeleer/oh-my-posh@v26.1.0 14 | - name: starship/starship@v1.23.0 15 | - name: atuinsh/atuin@v18.6.1 16 | - name: direnv/direnv@v2.36.0 17 | - name: charmbracelet/gum@v0.16.1 18 | - name: gokcehan/lf@r35 # Navigation 19 | - name: ajeetdsouza/zoxide@v0.9.8 20 | - name: junegunn/fzf@v0.62.0 21 | - name: lsd-rs/lsd@v1.1.5 22 | - name: sharkdp/fd@v10.2.0 23 | - name: BurntSushi/ripgrep@14.1.1 24 | - name: phiresky/ripgrep-all@v0.10.9 25 | - name: konradsz/igrep@v1.3.0 26 | - name: sharkdp/vivid@v0.10.1 27 | - name: neovim/neovim@v0.11.2 # Editing 28 | registry: ethanjli/dotfiles 29 | - name: acheronfail/repgrep@0.16.1 30 | - name: jesseduffield/lazygit@v0.51.1 # Git 31 | - name: cli/cli@v2.74.0 32 | - name: git-ecosystem/git-credential-manager@v2.6.1 33 | registry: ethanjli/dotfiles 34 | #- name: o2sh/onefetch@2.24.0 35 | - name: FiloSottile/age@v1.2.1 # Secrets 36 | - name: sharkdp/bat@v0.25.0 # Viewers 37 | - name: charmbracelet/glow@v2.1.1 38 | - name: hpjansson/chafa@1.16.1 39 | registry: ethanjli/dotfiles 40 | #- name: maaslalani/slides@v0.9.0 41 | - name: dandavison/delta@0.18.2 42 | - name: Wilfred/difftastic@0.63.0 43 | - name: antonmedv/fx@36.0.3 44 | - name: simeji/jid@v0.7.6 45 | #- name: sharkdp/hexyl@v0.16.0 46 | - name: jesseduffield/lazydocker@v0.24.1 # Containers 47 | - name: wagoodman/dive@v0.13.1 48 | - name: google/go-containerregistry@v0.20.5 49 | #- name: bcicen/ctop@v0.7.7 50 | - name: jqlang/jq@jq-1.8.0 # Parsing 51 | - name: mikefarah/yq@v4.45.4 52 | #- name: wader/fq@v0.15.0 53 | #- name: johnkerl/miller@v6.13.0 54 | #- name: tomnomnom/gron@v0.7.1 55 | #- name: ericchiang/pup@v0.4.0 56 | - name: aristocratos/btop@v1.4.3 # System Info & Dashboards 57 | #- name: Byron/dua-cli@v2.30.1 58 | #- name: wtfutil/wtf@v0.43.0 59 | - name: fastfetch-cli/fastfetch@2.44.0 60 | #- name: rs/curlie@v1.8.2 # HTTP 61 | - name: asciimoo/wuzz@v0.5.0 62 | - name: ekzhang/bore@v0.5.3 # Network 63 | #- name: yudai/gotty@v1.0.1 64 | #- name: svenstaro/miniserve@v0.29.0 65 | - name: EdJoPaTo/mqttui@v0.22.1 66 | #- name: ogham/dog@v0.1.0 67 | #- name: sachaos/tcpterm@v0.0.2 68 | #- name: gcla/termshark@v2.4.0 69 | #- name: orf/gping@gping-v1.19.0 70 | #- name: fujiapple852/trippy@0.13.0 71 | #- name: imsnif/bandwhich@v0.23.1 72 | - name: rclone/rclone@v1.69.3 # File transfer 73 | - name: schollz/croc@v10.2.2 74 | - name: veeso/termscp@v0.17.0 75 | #- name: zquestz/s@v0.7.1 # Web-ish 76 | #- name: Builditluc/wiki-tui@v0.9.1 77 | #- name: Rigellute/spotify-tui@v0.25.0 78 | #- name: jpbruinsslot/slack-term@v0.5.0 79 | - name: casey/just@1.40.0 # Command-running 80 | - name: watchexec/watchexec@v2.3.2 81 | #- name: stateful/runme@v3.14.0 82 | - name: elkowar/pipr@v0.0.16 83 | - name: topgrade-rs/topgrade@v16.0.3 # Package management 84 | - name: pemistahl/grex@v1.4.5 # Help 85 | - name: dbrgn/tealdeer@v1.7.2 86 | #- name: printfn/fend@v1.5.6 # Miscellaneous 87 | #- name: sharkdp/pastel@v0.10.0 88 | - name: sharkdp/hyperfine@v1.19.0 89 | #- name: ouch-org/ouch@0.6.1 90 | #- name: TaKO8Ki/gobang@v0.1.0-alpha.5 91 | -------------------------------------------------------------------------------- /dot_config/atuin/config.toml: -------------------------------------------------------------------------------- 1 | ## where to store your database, default is your system data directory 2 | ## linux/mac: ~/.local/share/atuin/history.db 3 | ## windows: %USERPROFILE%/.local/share/atuin/history.db 4 | # db_path = "~/.history.db" 5 | 6 | ## where to store your encryption key, default is your system data directory 7 | ## linux/mac: ~/.local/share/atuin/key 8 | ## windows: %USERPROFILE%/.local/share/atuin/key 9 | # key_path = "~/.key" 10 | 11 | ## where to store your auth session token, default is your system data directory 12 | ## linux/mac: ~/.local/share/atuin/session 13 | ## windows: %USERPROFILE%/.local/share/atuin/session 14 | # session_path = "~/.session" 15 | 16 | ## date format used, either "us" or "uk" 17 | # dialect = "us" 18 | 19 | ## enable or disable automatic sync 20 | auto_sync = true 21 | 22 | ## enable or disable automatic update checks 23 | # update_check = true 24 | 25 | ## address of the sync server 26 | # sync_address = "https://api.atuin.sh" 27 | 28 | ## how often to sync history. note that this is only triggered when a command 29 | ## is ran, so sync intervals may well be longer 30 | ## set it to 0 to sync after every command 31 | # sync_frequency = "10m" 32 | 33 | ## which search mode to use 34 | ## possible values: prefix, fulltext, fuzzy, skim 35 | # search_mode = "fuzzy" 36 | 37 | ## which filter mode to use 38 | ## possible values: global, host, session, directory 39 | filter_mode = "directory" 40 | 41 | ## With workspace filtering enabled, Atuin will filter for commands executed 42 | ## in any directory within a git repositiry tree (default: false) 43 | workspaces = false 44 | 45 | ## which filter mode to use when atuin is invoked from a shell up-key binding 46 | ## the accepted values are identical to those of "filter_mode" 47 | ## leave unspecified to use same mode set in "filter_mode" 48 | filter_mode_shell_up_key_binding = "session" 49 | 50 | ## which search mode to use when atuin is invoked from a shell up-key binding 51 | ## the accepted values are identical to those of "search_mode" 52 | ## leave unspecified to use same mode set in "search_mode" 53 | # search_mode_shell_up_key_binding = "fuzzy" 54 | 55 | ## which style to use 56 | ## possible values: auto, full, compact 57 | style = "compact" 58 | 59 | ## the maximum number of lines the interface should take up 60 | ## set it to 0 to always go full screen 61 | inline_height = 12 62 | 63 | ## Invert the UI - put the search bar at the top , Default to `false` 64 | invert = false 65 | 66 | ## enable or disable showing a preview of the selected command 67 | ## useful when the command is longer than the terminal width and is cut off 68 | show_preview = true 69 | 70 | ## what to do when the escape key is pressed when searching 71 | ## possible values: return-original, return-query 72 | # exit_mode = "return-original" 73 | 74 | ## possible values: emacs, subl 75 | # word_jump_mode = "emacs" 76 | 77 | ## characters that count as a part of a word 78 | # word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 79 | 80 | ## number of context lines to show when scrolling by pages 81 | # scroll_context_lines = 1 82 | 83 | ## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts 84 | ## alt-0 .. alt-9 85 | # ctrl_n_shortcuts = false 86 | 87 | ## prevent commands matching any of these regexes from being written to history. 88 | ## Note that these regular expressions are unanchored, i.e. if they don't start 89 | ## with ^ or end with $, they'll match anywhere in the command. 90 | ## For details on the supported regular expression syntax, see 91 | ## https://docs.rs/regex/latest/regex/#syntax 92 | # history_filter = [ 93 | # "^secret-cmd", 94 | # "^innocuous-cmd .*--secret=.+" 95 | # ] 96 | 97 | ## prevent commands run with cwd matching any of these regexes from being written 98 | ## to history. Note that these regular expressions are unanchored, i.e. if they don't 99 | ## start with ^ or end with $, they'll match anywhere in CWD. 100 | ## For details on the supported regular expression syntax, see 101 | ## https://docs.rs/regex/latest/regex/#syntax 102 | # cwd_filter = [ 103 | # "^/very/secret/area" 104 | # ] 105 | 106 | ## Configure the maximum height of the preview to show. 107 | ## Useful when you have long scripts in your history that you want to distinguish 108 | ## by more than the first few lines. 109 | # max_preview_height = 4 110 | 111 | ## Configure whether or not to show the help row, which includes the current Atuin 112 | ## version (and whether an update is available), a keymap hint, and the total 113 | ## amount of commands in your history. 114 | show_help = true 115 | 116 | ## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include 117 | ## 1. AWS key id 118 | ## 2. Github pat (old and new) 119 | ## 3. Slack oauth tokens (bot, user) 120 | ## 4. Slack webhooks 121 | ## 5. Stripe live/test keys 122 | # secrets_filter = true 123 | 124 | ## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit. 125 | # This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. 126 | enter_accept = true 127 | 128 | #[stats] 129 | # Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl 130 | common_subcommands = [ 131 | "cargo", 132 | "go", 133 | "git", 134 | "npm", 135 | "yarn", 136 | "pnpm", 137 | "poetry", 138 | "pip", 139 | "kubectl", 140 | ] 141 | # 142 | # Set commands that should be totally stripped and ignored from stats 143 | #common_prefix = ["sudo"] 144 | -------------------------------------------------------------------------------- /dot_config/bash/dot_bashrc: -------------------------------------------------------------------------------- 1 | # .bashrc 2 | 3 | # Install and load plugins 4 | _bash_plugins() { 5 | unset -f "$0" 6 | local reset_nullglob="$(shopt -p nullglob)" 7 | shopt -s nullglob # suppress errors when for loops have no matching files 8 | 9 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 10 | local bash_configs="${xdg_config_home}/bash" 11 | local bash_plugins="${bash_configs}/plugins" 12 | for file in ${bash_plugins}/*.load.bash; do 13 | source "$file" 14 | done 15 | 16 | $reset_nullglob 17 | } 18 | _bash_plugins 19 | 20 | # Set up integrations 21 | _bash_integrations() { 22 | unset -f "$0" 23 | local reset_nullglob="$(shopt -p nullglob)" 24 | shopt -s nullglob # suppress errors when for loops have no matching files 25 | 26 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 27 | local bash_configs="${xdg_config_home}/bash" 28 | local bash_integrations="${bash_configs}/integrations" 29 | local file 30 | for file in ${bash_integrations}/*.sh; do 31 | source "$file" 32 | done 33 | 34 | for file in ${bash_integrations}/*.bash; do 35 | source "$file" 36 | done 37 | 38 | $reset_nullglob 39 | } 40 | _bash_integrations 41 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/0-go.sh: -------------------------------------------------------------------------------- 1 | _sh_integrations_util_among_paths() { 2 | local directory="$1" 3 | local paths="$2" 4 | [[ ":${paths}:" == *":${directory}:"* ]] 5 | } 6 | 7 | _sh_integrations_go_update_path() { 8 | unset -f "$0" 9 | local go_bin_path="${GOPATH:-$HOME/go}/bin" 10 | if [ -d "$go_bin_path" ] && ! _sh_integrations_util_among_paths "$go_bin_path" "$PATH"; then 11 | export PATH="${go_bin_path}:$PATH" 12 | fi 13 | } 14 | _sh_integrations_go_update_path 15 | 16 | unset -f _sh_integrations_util_among_paths 17 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/0-localbin.sh: -------------------------------------------------------------------------------- 1 | _sh_integrations_util_among_paths() { 2 | local directory="$1" 3 | local paths="$2" 4 | [[ ":${paths}:" == *":${directory}:"* ]] 5 | } 6 | 7 | _sh_integrations_localbin_update_path() { 8 | unset -f "$0" 9 | local localbin_path="$HOME/.local/bin" 10 | if [ -d "$localbin_path" ] && ! _sh_integrations_util_among_paths "$localbin_path" "$PATH"; then 11 | export PATH="${localbin_path}:$PATH" 12 | fi 13 | } 14 | _sh_integrations_localbin_update_path 15 | 16 | unset -f _sh_integrations_util_among_paths 17 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/1-aqua.sh: -------------------------------------------------------------------------------- 1 | _sh_integrations_util_among_paths() { 2 | local directory="$1" 3 | local paths="$2" 4 | [[ ":${paths}:" == *":${directory}:"* ]] 5 | } 6 | 7 | _sh_integrations_aqua_update_path() { 8 | unset -f "$0" 9 | local xdg_data_home="${XDG_DATA_HOME:-$HOME/.local/share}" 10 | local aqua_bin_path="${AQUA_ROOT_DIR:-${xdg_data_home}/aquaproj-aqua}/bin" 11 | if [ -d "$aqua_bin_path" ] && ! _sh_integrations_util_among_paths "$aqua_bin_path" "$PATH"; then 12 | export PATH="${aqua_bin_path}:$PATH" 13 | fi 14 | } 15 | _sh_integrations_aqua_update_path 16 | 17 | _sh_integrations_aqua_set_global_configs() { 18 | unset -f "$0" 19 | if command -v aqua &> /dev/null; then 20 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 21 | local aqua_configs="${xdg_config_home}/aquaproj-aqua" 22 | local aqua_global_config="${aqua_configs}/aqua.yaml" 23 | if [ -f "$aqua_global_config" ] && \ 24 | ! _sh_integrations_util_among_paths "$aqua_global_config" "$AQUA_GLOBAL_CONFIG"; then 25 | export AQUA_GLOBAL_CONFIG="${aqua_global_config}:${AQUA_GLOBAL_CONFIG:-}" 26 | fi 27 | local aqua_policy_config="${aqua_configs}/aqua-policy.yaml" 28 | if [ -f "$aqua_policy_config" ] && \ 29 | ! _sh_integrations_util_among_paths "$aqua_policy_config" "$AQUA_POLICY_CONFIG"; then 30 | export AQUA_POLICY_CONFIG="${aqua_policy_config}:${AQUA_POLICY_CONFIG:-}" 31 | fi 32 | fi 33 | } 34 | _sh_integrations_aqua_set_global_configs 35 | 36 | unset -f _sh_integrations_util_among_paths 37 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/10-marktext.sh: -------------------------------------------------------------------------------- 1 | marktext() { 2 | flatpak run com.github.marktext.marktext "$@" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/10-mosh.sh: -------------------------------------------------------------------------------- 1 | mosh() { 2 | flatpak run org.mosh.mosh "$@" 3 | } 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/10-wezterm.sh: -------------------------------------------------------------------------------- 1 | wezterm() { 2 | flatpak run org.wezfurlong.wezterm "$@" 3 | } 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-bat.sh: -------------------------------------------------------------------------------- 1 | if command -v bat &> /dev/null; then 2 | export MANROFFOPT="-c" 3 | export MANPAGER="sh -c 'col -bx | bat -l man -p'" 4 | export PAGER="$HOME/.local/bin/batpager.sh" 5 | fi 6 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-cheat.sh: -------------------------------------------------------------------------------- 1 | if command -v cheat &> /dev/null && command -v fzf &> /dev/null; then 2 | export CHEAT_USE_FZF=true 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-distrobox-host.sh: -------------------------------------------------------------------------------- 1 | command_not_found_handle() { 2 | # don't run if not in a container: 3 | if [ ! -e /run/.containerenv ] && [ ! -e /.dockerenv ]; then 4 | exit 127 5 | fi 6 | distrobox-host-exec "${@}" 7 | } 8 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-lfcd.sh: -------------------------------------------------------------------------------- 1 | if command -v lf &> /dev/null; then 2 | lfcd() { 3 | local result=$(command lf -print-last-dir "$@") 4 | [ -n "$result" ] && cd -- "$result" 5 | } 6 | fi 7 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-nvim.sh: -------------------------------------------------------------------------------- 1 | if command -v nvim &> /dev/null; then # nvim is provided by the host, so just use that 2 | export EDITOR="$(which nvim)" 3 | elif command -v neovim &> /dev/null; then # try to fall back to neovim provided by aqua, which is broken on musl hosts 4 | export EDITOR="$(which neovim)" 5 | alias nvim="$EDITOR" 6 | elif command -v vim &> /dev/null; then # try to fall back to vim 7 | export EDITOR="$(which vim)" 8 | fi 9 | export VISUAL="$EDITOR" 10 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-pyenv.sh: -------------------------------------------------------------------------------- 1 | _sh_integrations_util_among_paths() { 2 | local directory="$1" 3 | local paths="$2" 4 | [[ ":${paths}:" == *":${directory}:"* ]] 5 | } 6 | 7 | _sh_integrations_pyenv_update_path() { 8 | unset -f "$0" 9 | local pyenv_bin_path="${PYENV_ROOT}/bin" 10 | if [ -d "$pyenv_bin_path" ] && ! _sh_integrations_util_among_paths "$pyenv_bin_path" "$PATH"; then 11 | export PATH="${pyenv_bin_path}:$PATH" 12 | fi 13 | } 14 | 15 | if [ -d "$HOME/.pyenv" ]; then 16 | export PYENV_ROOT="$HOME/.pyenv" 17 | fi 18 | _sh_integrations_pyenv_update_path 19 | 20 | if command -v pyenv &> /dev/null; then 21 | eval "$(pyenv init -)" 22 | fi 23 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-rga.sh: -------------------------------------------------------------------------------- 1 | if command -v rga &> /dev/null && command -v fzf &> /dev/null; then 2 | rga-fzf() { 3 | RG_PREFIX="rga --files-with-matches" 4 | local file="$( 5 | FZF_DEFAULT_COMMAND="$RG_PREFIX '$1'" \ 6 | fzf --sort --preview="[[ ! -z {} ]] && rga --pretty --context 5 {q} {}" \ 7 | --phony -q "$1" \ 8 | --bind "change:reload:$RG_PREFIX {q}" \ 9 | --preview-window="70%:wrap" 10 | )" && 11 | echo "opening $file" && xdg-open "$file" 12 | } 13 | fi 14 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-vivid.sh: -------------------------------------------------------------------------------- 1 | if command -v vivid &> /dev/null ; then 2 | export LS_COLORS="$(vivid generate one-dark)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/20-wezterm-flatpak.sh: -------------------------------------------------------------------------------- 1 | if [[ ! -z "$WAYLAND_DISPLAY" ]]; then 2 | display="$(basename "$WAYLAND_DISPLAY")" 3 | if [[ -S "${XDG_RUNTIME_DIR}/$display" ]]; then 4 | export WAYLAND_DISPLAY="$display" 5 | elif [ command -v dbus-launch ]; then 6 | export "$(dbus-launch)" 7 | fi 8 | fi 9 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/30-aqua.bash: -------------------------------------------------------------------------------- 1 | if command -v aqua &> /dev/null; then 2 | source <(aqua completion bash) 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/30-onefetch.bash: -------------------------------------------------------------------------------- 1 | if command -v onefetch &> /dev/null; then 2 | source <(onefetch --generate bash) 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/30-s.bash: -------------------------------------------------------------------------------- 1 | if command -v s &> /dev/null; then 2 | source <(s --completion bash) 3 | alias sw="s --provider wikipedia" 4 | alias sp="s --provider" 5 | fi 6 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/40-atuin.bash: -------------------------------------------------------------------------------- 1 | if command -v atuin &> /dev/null; then 2 | eval "$(atuin init bash)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/40-direnv.bash: -------------------------------------------------------------------------------- 1 | if command -v direnv &> /dev/null; then 2 | eval "$(direnv hook bash)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/40-zoxide.bash: -------------------------------------------------------------------------------- 1 | if command -v zoxide &> /dev/null; then 2 | eval "$(zoxide init bash)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/50-oh-my-posh.bash: -------------------------------------------------------------------------------- 1 | _zsh_integrations_ohmyposh() { 2 | unset -f "$0" 3 | 4 | if command -v oh-my-posh &> /dev/null; then 5 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 6 | local ohmyposh_configs="${xdg_config_home}/oh-my-posh" 7 | local theme="${ohmyposh_configs}/lutho.omp.toml" 8 | 9 | eval "$(oh-my-posh init bash --config "$theme")" 10 | fi 11 | } 12 | _zsh_integrations_ohmyposh 13 | -------------------------------------------------------------------------------- /dot_config/bash/integrations/50-starship.no-bash: -------------------------------------------------------------------------------- 1 | if command -v starship &> /dev/null; then 2 | eval "$(starship init bash)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/bash/plugins/bash-preexec.load.bash: -------------------------------------------------------------------------------- 1 | _bash_plugins_bash-preexec_load() { 2 | unset -f "$0" 3 | 4 | local xdg_config_home="${XDG_CONFIG:-$HOME/.config}" 5 | local plugin="${xdg_config_home}/bash/plugins/bash-preexec" 6 | source "${plugin}/bash-preexec.sh" 7 | } 8 | _bash_plugins_bash-preexec_load 9 | -------------------------------------------------------------------------------- /dot_config/bat/config: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="TwoDark" 8 | #--theme="base16-256" 9 | 10 | --style="full" 11 | 12 | # Enable this to use italic text on the terminal. This is not supported on all 13 | # terminal emulators (like tmux, by default): 14 | --italic-text=always 15 | 16 | # Uncomment the following line to disable automatic paging: 17 | #--paging=never 18 | 19 | # Uncomment the following line if you are using less version >= 551 and want to 20 | # enable mouse scrolling support in `bat` when running inside tmux. This might 21 | # disable text selection, unless you press shift. 22 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 23 | --pager="less" 24 | 25 | # Syntax mappings: map a certain filename pattern to a language. 26 | # Example 1: use the C++ syntax for Arduino .ino files 27 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 28 | #--map-syntax "*.ino:C++" 29 | #--map-syntax ".ignore:Git Ignore" 30 | -------------------------------------------------------------------------------- /dot_config/cheat/conf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # The editor to use with 'cheat -e '. Defaults to $EDITOR or $VISUAL. 3 | editor: /home/lietk12/.local/share/aquaproj-aqua/bin/nvim 4 | 5 | # Should 'cheat' always colorize output? 6 | colorize: true 7 | 8 | # Which 'chroma' colorscheme should be applied to the output? 9 | # Options are available here: 10 | # https://github.com/alecthomas/chroma/tree/master/styles 11 | style: onedark 12 | 13 | # Which 'chroma' "formatter" should be applied? 14 | # One of: "terminal", "terminal256", "terminal16m" 15 | formatter: terminal256 16 | 17 | # Through which pager should output be piped? 18 | # 'less -FRX' is recommended on Unix systems 19 | # 'more' is recommended on Windows 20 | pager: less -FRX 21 | 22 | # Cheatpaths are paths at which cheatsheets are available on your local 23 | # filesystem. 24 | # 25 | # It is useful to sort cheatsheets into different cheatpaths for organizational 26 | # purposes. For example, you might want one cheatpath for community 27 | # cheatsheets, one for personal cheatsheets, one for cheatsheets pertaining to 28 | # your day job, one for code snippets, etc. 29 | # 30 | # Cheatpaths are scoped, such that more "local" cheatpaths take priority over 31 | # more "global" cheatpaths. (The most global cheatpath is listed first in this 32 | # file; the most local is listed last.) For example, if there is a 'tar' 33 | # cheatsheet on both global and local paths, you'll be presented with the local 34 | # one by default. ('cheat -p' can be used to view cheatsheets from alternative 35 | # cheatpaths.) 36 | # 37 | # Cheatpaths can also be tagged as "read only". This instructs cheat not to 38 | # automatically create cheatsheets on a read-only cheatpath. Instead, when you 39 | # would like to edit a read-only cheatsheet using 'cheat -e', cheat will 40 | # perform a copy-on-write of that cheatsheet from a read-only cheatpath to a 41 | # writeable cheatpath. 42 | # 43 | # This is very useful when you would like to maintain, for example, a 44 | # "pristine" repository of community cheatsheets on one cheatpath, and an 45 | # editable personal reponsity of cheatsheets on another cheatpath. 46 | # 47 | # Cheatpaths can be also configured to automatically apply tags to cheatsheets 48 | # on certain paths, which can be useful for querying purposes. 49 | # Example: 'cheat -t work jenkins'. 50 | # 51 | # Community cheatsheets must be installed separately, though you may have 52 | # downloaded them automatically when installing 'cheat'. If not, you may 53 | # download them here: 54 | # 55 | # https://github.com/cheat/cheatsheets 56 | cheatpaths: 57 | # Cheatpath properties mean the following: 58 | # 'name': the name of the cheatpath (view with 'cheat -d', filter with 'cheat -p') 59 | # 'path': the filesystem path of the cheatsheet directory (view with 'cheat -d') 60 | # 'tags': tags that should be automatically applied to sheets on this path 61 | # 'readonly': shall user-created ('cheat -e') cheatsheets be saved here? 62 | - name: community 63 | path: /home/lietk12/.config/cheat/cheatsheets/community 64 | tags: [ community ] 65 | readonly: true 66 | 67 | # If you have personalized cheatsheets, list them last. They will take 68 | # precedence over the more global cheatsheets. 69 | - name: personal 70 | path: /home/lietk12/.config/cheat/cheatsheets/personal 71 | tags: [ personal ] 72 | readonly: false 73 | 74 | # While it requires no configuration here, it's also worth noting that 75 | # cheat will automatically append directories named '.cheat' within the 76 | # current working directory to the 'cheatpath'. This can be very useful if 77 | # you'd like to closely associate cheatsheets with, for example, a directory 78 | # containing source code. 79 | # 80 | # Such "directory-scoped" cheatsheets will be treated as the most "local" 81 | # cheatsheets, and will override less "local" cheatsheets. Similarly, 82 | # directory-scoped cheatsheets will always be editable ('readonly: false'). 83 | -------------------------------------------------------------------------------- /dot_config/discordo/executable_config.yml: -------------------------------------------------------------------------------- 1 | # Whether the mouse is usable or not. 2 | mouse: true 3 | 4 | # Whether to draw the timestamps of the corresponding message in front of it. 5 | timestamps: true 6 | # Whether to draw the timestamps before the name of author of the message or not. 7 | timestamps_before_author: true 8 | 9 | # The number of messages to fetch when a text-based channel is selected. The value must be >0 and <=100. 10 | messages_limit: 100 11 | 12 | # The name of the program to launch when the launch_editor key is pressed. If the value of the field is set to "default", the `$EDITOR` environment variable is used instead. 13 | editor: default 14 | 15 | keys: 16 | cancel: Esc 17 | 18 | guilds_tree: 19 | focus: Ctrl+G 20 | toggle: Ctrl+B 21 | 22 | messages_text: 23 | focus: Ctrl+T 24 | show_image: Rune[i] 25 | copy_content: Rune[c] 26 | delete: Rune[d] 27 | 28 | reply: Rune[r] 29 | reply_mention: Rune[R] 30 | 31 | select_previous: Up 32 | select_next: Down 33 | select_first: Home 34 | select_last: End 35 | select_reply: Rune[s] 36 | 37 | message_input: 38 | focus: Ctrl+P 39 | 40 | send: Enter 41 | launch_editor: Ctrl+E 42 | 43 | theme: 44 | border: true 45 | border_color: default 46 | border_padding: [0, 0, 1, 1] 47 | 48 | title_color: default 49 | background_color: default 50 | 51 | guilds_tree: 52 | graphics: true 53 | 54 | messages_text: 55 | author_color: aqua 56 | reply_indicator: ╭ 57 | -------------------------------------------------------------------------------- /dot_config/kdedefaults/package: -------------------------------------------------------------------------------- 1 | dev.getaurora.aurora.desktop -------------------------------------------------------------------------------- /dot_config/kdedefaults/private_kcminputrc: -------------------------------------------------------------------------------- 1 | [Mouse] 2 | cursorTheme=breeze_cursors 3 | -------------------------------------------------------------------------------- /dot_config/kdedefaults/private_kdeglobals: -------------------------------------------------------------------------------- 1 | [General] 2 | ColorScheme=BreezeDark 3 | 4 | [Icons] 5 | Theme=breeze-dark 6 | 7 | [KDE] 8 | widgetStyle=Breeze 9 | -------------------------------------------------------------------------------- /dot_config/kdedefaults/private_ksplashrc: -------------------------------------------------------------------------------- 1 | [KSplash] 2 | Engine=KSplashQML 3 | Theme=dev.getaurora.aurora.desktop 4 | -------------------------------------------------------------------------------- /dot_config/kdedefaults/private_kwinrc: -------------------------------------------------------------------------------- 1 | [TabBox] 2 | LayoutName=org.kde.breeze.desktop 3 | 4 | [org.kde.kdecoration2] 5 | NoPlugin=false 6 | library=org.kde.breeze 7 | theme=Breeze 8 | -------------------------------------------------------------------------------- /dot_config/kdedefaults/private_plasmarc: -------------------------------------------------------------------------------- 1 | [Theme] 2 | name=default 3 | -------------------------------------------------------------------------------- /dot_config/lazygit/config.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://json.schemastore.org/lazygit.json 2 | 3 | gui: 4 | scrollHeight: 1 5 | scrollOffMargin: 5 6 | nerdFontsVersion: "2" 7 | theme: 8 | selectedLineBgColor: 9 | - reverse 10 | git: 11 | autoForwardBranches: allBranches 12 | log: 13 | showWholeGraph: true 14 | mainBranches: [master, main, edge] 15 | branchLogCmd: "git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty='format:%h%d%n%s%n' --" 16 | allBranchesLogCmds: 17 | - git log --graph --all --color=always --abbrev-commit --decorate --date=relative --pretty='format:%h%d%n%s%n' 18 | os: 19 | editPreset: nvim 20 | -------------------------------------------------------------------------------- /dot_config/lf/executable_previewer.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | get_tmpfile() { 4 | if has mktemp; then 5 | printf "%s%s" "$(mktemp)" "$1" 6 | else 7 | # No really good options here--let's pick a default + hope 8 | printf "/tmp/lfpreview-%s%s" "$(date +%s)" "$1" 9 | fi 10 | } 11 | 12 | file_path="$1" 13 | lowercased="$(echo "$file_path" | tr '[:upper:]' '[:lower:]')" 14 | mimetype="$(file -Lb --mime-type -- "$file_path")" 15 | 16 | preview_plain_text() { 17 | bat --color always --style plain --paging=never --tabs 2 \ 18 | "$1" 19 | } 20 | 21 | preview_image() { 22 | chafa -s "$2x$3" --animate off --polite on "$1" 23 | } 24 | 25 | case "$mimetype" in 26 | image/*) 27 | case "$mimetype" in 28 | image/svg+xml) 29 | thumbnail="$(get_tmpfile ".png")" 30 | convert "$file_path" "$thumbnail" 31 | preview_image "$thumbnail" "$2" "$3" 32 | ;; 33 | *) 34 | preview_image "$file_path" "$2" "$3" 35 | ;; 36 | esac 37 | exit 1 38 | ;; 39 | text/* | application/json | application/yaml) 40 | case "$mimetype" in 41 | text/plain) 42 | case "$lowercased" in 43 | #*.md) 44 | # glow -s dark "$1" 45 | # ;; 46 | *) 47 | preview_plain_text "$file_path" 48 | ;; 49 | esac 50 | ;; 51 | *) 52 | preview_plain_text "$file_path" 53 | ;; 54 | esac 55 | ;; 56 | video/*) 57 | thumbnail="$(get_tmpfile ".png")" 58 | ffmpeg -y -i "$file_path" -vframes 1 "$thumbnail" 59 | preview_image "$thumbnail" "$@" 60 | ;; 61 | *) 62 | case "$lowercased" in 63 | *.tar | *.zip | *.7z | *.gz | *.xz | *.lzma | *.bz | *.bz2 | *.lz4 | *.sz | *.zst | *.rar) 64 | ouch list -t "$1" 65 | ;; 66 | *) 67 | echo "Unknown file type: $mimetype" 68 | preview_plain_text "$file_path" 69 | ;; 70 | esac 71 | ;; 72 | esac 73 | -------------------------------------------------------------------------------- /dot_config/lf/lfrc: -------------------------------------------------------------------------------- 1 | # interpreter for shell commands 2 | set shell sh 3 | 4 | # set '-eu' options for shell commands 5 | # These options are used to have safer shell commands. Option '-e' is used to 6 | # exit on error and option '-u' is used to give error for unset variables. 7 | # Option '-f' disables pathname expansion which can be useful when $f, $fs, and 8 | # $fx variables contain names with '*' or '?' characters. However, this option 9 | # is used selectively within individual commands as it can be limiting at 10 | # times. 11 | set shellopts '-eu' 12 | 13 | # set internal field separator (IFS) to "\n" for shell commands 14 | # This is useful to automatically split file names in $fs and $fx properly 15 | # since default file separator used in these variables (i.e. 'filesep' option) 16 | # is newline. You need to consider the values of these options and create your 17 | # commands accordingly. 18 | set ifs "\n" 19 | 20 | # leave some space at the top and the bottom of the screen 21 | set scrolloff 5 22 | 23 | # enable mouse support 24 | set mouse true 25 | 26 | # show hidden files 27 | set hidden true 28 | 29 | # configure search 30 | set ignorecase 31 | set incsearch 32 | 33 | # configure appearance 34 | set drawbox 35 | set number 36 | set relativenumber 37 | 38 | # automatically refresh 39 | set period 1 40 | 41 | # set up previewing 42 | set sixel true 43 | set previewer ~/.config/lf/previewer.sh 44 | 45 | # Use the `dim` attribute instead of underline for the cursor in the preview pane 46 | set cursorpreviewfmt "\033[7;2m" 47 | 48 | # move up/down in the parent directory 49 | cmd move-parent &{{ 50 | dironly="setlocal '$(dirname "$PWD")' dironly" 51 | lf -remote "send $id :updir; $dironly true; $1; $dironly false; open" 52 | }} 53 | map J move-parent down 54 | map K move-parent up 55 | 56 | # allow editing multiple files 57 | map e $$EDITOR $fx 58 | 59 | # use enter for shell commands 60 | map shell 61 | 62 | # show the result of execution of previous commands 63 | map ` !true 64 | 65 | # execute current file (must be executable) 66 | map x $$f 67 | map X !$f 68 | 69 | # dedicated keys for file opener actions 70 | map o &mimeopen $f 71 | map O $mimeopen --ask $f 72 | 73 | # define a custom 'open' command 74 | # This command is called when current file is not a directory. You may want to 75 | # use either file extensions and/or mime types here. Below uses an editor for 76 | # text files and a file opener for the rest. 77 | cmd open &{{ 78 | case $(file --mime-type -Lb $f) in 79 | text/*) lf -remote "send $id \$$EDITOR \$fx";; 80 | *) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;; 81 | esac 82 | }} 83 | 84 | # mkdir command. See wiki if you want it to select created dir 85 | map a :push %mkdir 86 | 87 | # define a custom 'rename' command without prompt for overwrite 88 | # cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 89 | # map r push :rename 90 | 91 | # define a custom 'delete' command 92 | cmd delete ${{ 93 | set -f 94 | printf "$fx\n" 95 | printf "delete? [y/n] " 96 | read ans 97 | [ "$ans" = "y" ] && rm -rf $fx 98 | }} 99 | map D delete 100 | 101 | # extract the current file with the right command 102 | # (xkcd link: https://xkcd.com/1168/) 103 | cmd extract ${{ 104 | set -f 105 | case $f in 106 | *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; 107 | *.tar.gz|*.tgz) tar xzvf $f;; 108 | *.tar.xz|*.txz) tar xJvf $f;; 109 | *.zip) unzip $f;; 110 | *.rar) unrar x $f;; 111 | *.7z) 7z x $f;; 112 | esac 113 | }} 114 | # compress current file or selected files with tar and gunzip 115 | cmd tar ${{ 116 | set -f 117 | mkdir $1 118 | cp -r $fx $1 119 | tar czf $1.tar.gz $1 120 | rm -rf $1 121 | }} 122 | # compress current file or selected files with zip 123 | cmd zip ${{ 124 | set -f 125 | mkdir $1 126 | cp -r $fx $1 127 | zip -r $1.zip $1 128 | rm -rf $1 129 | }} 130 | 131 | # open the cwd in lazygit 132 | cmd lg $lazygit 133 | 134 | # open the cwd in nvim as a server 135 | cmd nvs $nvim-server $1 136 | # open the selection in nvim as a server 137 | cmd nvss $nvim-server $1 -- $fx 138 | # open the selected files in the nvim server 139 | cmd nvo $nvim-open $1 $fx 140 | # open the selected files in the last started/opened nvim server 141 | cmd nvol $nvim-open-last $fx 142 | 143 | # open the selection in lazygit 144 | cmd mt &flatpak run com.github.marktext.marktext $fx & 145 | 146 | # yank paths onto clipboard 147 | cmd yank-file $printf '%s' "$f" | wl-copy 148 | cmd yank-paths $printf '%s' "$fx" | wl-copy 149 | cmd yank-dirname &printf '%s' "$PWD" | wl-copy 150 | cmd yank-basename &basename -a -- $fx | head -c-1 | wl-copy 151 | cmd yank-basename-without-extension &basename -a -- $fx | sed -E 's/\.[^.]+$//' | head -c-1 | wl-copy 152 | 153 | # bulk add to chezmoi 154 | cmd cza $chezmoi add $fx 155 | # bulk re-add to chezmoi 156 | cmd czr $chezmoi re-add 157 | 158 | # Integrate fzf 159 | cmd fzf_jump ${{ 160 | res="$(find . -maxdepth 1 | fzf --reverse --header='Jump to location')" 161 | if [ -n "$res" ]; then 162 | if [ -d "$res" ]; then 163 | cmd="cd" 164 | else 165 | cmd="select" 166 | fi 167 | res="$(printf '%s' "$res" | sed 's/\\/\\\\/g;s/"/\\"/g')" 168 | lf -remote "send $id $cmd \"$res\"" 169 | fi 170 | }} 171 | map :fzf_jump 172 | 173 | # Integrate zoxide 174 | cmd z %{{ 175 | result="$(zoxide query --exclude $PWD $@ | sed 's/\\/\\\\/g;s/"/\\"/g')" 176 | lf -remote "send $id cd \"$result\"" 177 | }} 178 | cmd zi ${{ 179 | result="$(zoxide query -i | sed 's/\\/\\\\/g;s/"/\\"/g')" 180 | lf -remote "send $id cd \"$result\"" 181 | }} 182 | 183 | # Integrate ripgrep 184 | cmd fzf_search ${{ 185 | RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case " 186 | res="$( 187 | FZF_DEFAULT_COMMAND="$RG_PREFIX ''" \ 188 | fzf --bind "change:reload:$RG_PREFIX {q} || true" \ 189 | --ansi --layout=reverse --header 'Search in files' \ 190 | | cut -d':' -f1 | sed 's/\\/\\\\/g;s/"/\\"/g' 191 | )" 192 | [ -n "$res" ] && lf -remote "send $id select \"$res\"" 193 | }} 194 | map gs :fzf_search 195 | 196 | # Integrate lsd 197 | cmd on-select &{{ 198 | lf -remote "send $id set statfmt \"$(lsd -l --color always --icon always --classify --git "$f")\"" 199 | }} 200 | 201 | # Integrate starship 202 | cmd on-cd &{{ 203 | export STARSHIP_SHELL= 204 | fmt="$(starship prompt | tail -n 2 | head -n 1)" 205 | lf -remote "send $id set promptfmt \"$fmt\"" 206 | }} 207 | -------------------------------------------------------------------------------- /dot_config/neofetch/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_config/neofetch/wallpaper.jpg -------------------------------------------------------------------------------- /dot_config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | vim.cmd.source(vim.fn.stdpath("config") .. "/vimrc.vim") 2 | require("init") 3 | vim.cmd.source(vim.fn.stdpath("config") .. "/nvimrc.vim") 4 | -------------------------------------------------------------------------------- /dot_config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "Comment.nvim": { "branch": "master", "commit": "e51f2b142d88bb666dcaa77d93a07f4b419aca70" }, 3 | "auto-session": { "branch": "main", "commit": "79ef41274354a486cf4f100a7adf4a7575802ccf" }, 4 | "conform.nvim": { "branch": "master", "commit": "a6f5bdb78caa305496357d17e962bbc4c0b392e2" }, 5 | "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, 6 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 7 | "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, 8 | "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, 9 | "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, 10 | "mason-conform.nvim": { "branch": "main", "commit": "f3b96fa2217fcb1513301eefbe10ea0e765e33eb" }, 11 | "mason-lspconfig.nvim": { "branch": "main", "commit": "5477d67a5ca12b704f2a8a55a057fc79750f3dbb" }, 12 | "mason.nvim": { "branch": "main", "commit": "7f265cd6ae56cecdd0aa50c8c73fc593b0604801" }, 13 | "mini.nvim": { "branch": "main", "commit": "94cae4660a8b2d95dbbd56e1fbc6fcfa2716d152" }, 14 | "nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" }, 15 | "nvim-treesitter": { "branch": "master", "commit": "cfc6f2c117aaaa82f19bcce44deec2c194d900ab" }, 16 | "nvim-web-devicons": { "branch": "master", "commit": "5b9067899ee6a2538891573500e8fd6ff008440f" }, 17 | "onedark.nvim": { "branch": "master", "commit": "11de4da47f3e69cb70c3ae9816bd8af166cbe121" }, 18 | "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, 19 | "tfm.nvim": { "branch": "main", "commit": "26dac3ed252171a5b16ddfb5c505ccc292b8a3d0" }, 20 | "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, 21 | "trouble.nvim": { "branch": "main", "commit": "748ca2789044607f19786b1d837044544c55e80a" }, 22 | "vim-bbye": { "branch": "master", "commit": "903f5eb17f72ebf7b0b1524bbb792c0b36761af6" }, 23 | "vim-sleuth": { "branch": "master", "commit": "1d25e8e5dc4062e38cab1a461934ee5e9d59e5a8" }, 24 | "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" } 25 | } 26 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/config/editor.lua: -------------------------------------------------------------------------------- 1 | vim.api.nvim_create_autocmd("TextYankPost", { 2 | desc = "Highlight when yanking (copying) text", 3 | group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }), 4 | callback = function() 5 | vim.highlight.on_yank({ 6 | timeout = 500, 7 | }) 8 | end, 9 | }) 10 | 11 | require("marks").setup() 12 | 13 | vim.diagnostic.config({ 14 | -- virtual text adds visual clutter, and there's no clean way to move it past the 100-character 15 | -- line if the line is longer than 100 characters or if there are multiple error markers on the 16 | -- same line - so we'll just disable it for now: 17 | virtual_text = false, 18 | }) 19 | 20 | require("ibl").setup() 21 | 22 | require("Comment").setup() 23 | 24 | require("todo-comments").setup({ 25 | signs = false, 26 | highlight = { 27 | keyword = "bg", -- workaround for https://github.com/folke/todo-comments.nvim/issues/10#issuecomment-920953839 28 | pattern = [[.*<(KEYWORDS)\s*(\([^\)]*\))?:]], 29 | }, 30 | search = { 31 | pattern = [[\b(KEYWORDS)\s*(\([^\)]*\))?:]], 32 | }, 33 | }) 34 | vim.keymap.set("n", "]t", function() 35 | require("todo-comments").jump_next() 36 | end, { desc = "Next todo comment" }) 37 | vim.keymap.set("n", "[t", function() 38 | require("todo-comments").jump_next() 39 | end, { desc = "Previous todo comment" }) 40 | 41 | require("mini.ai").setup({ n_lines = 500 }) 42 | -------------------------------------------------------------------------------- /dot_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 or vim.loop).fs_stat(lazypath) then 4 | local lazyrepo = "https://github.com/folke/lazy.nvim.git" 5 | vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 6 | end 7 | vim.opt.rtp:prepend(lazypath) 8 | 9 | -- Setup lazy.nvim 10 | require("lazy").setup({ 11 | defaults = { 12 | version = "*", 13 | }, 14 | spec = { 15 | -- import your plugins 16 | { import = "plugins" }, 17 | }, 18 | -- Configure any other settings here. See the documentation for more details. 19 | -- colorscheme that will be used when installing plugins. 20 | install = { colorscheme = { "sorbet" } }, 21 | -- automatically check for plugin updates 22 | checker = { 23 | enabled = true, 24 | frequency = 86400, -- daily checks 25 | }, 26 | }) 27 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/config/ui.lua: -------------------------------------------------------------------------------- 1 | require("lualine").setup({ 2 | options = { 3 | icons_enabled = false, 4 | theme = "auto", 5 | component_separators = "", 6 | section_separators = "", 7 | disabled_filetypes = { 8 | statusline = {}, 9 | winbar = {}, 10 | }, 11 | ignore_focus = {}, 12 | always_divide_middle = true, 13 | globalstatus = true, 14 | refresh = { 15 | statusline = 1000, 16 | tabline = 1000, 17 | winbar = 1000, 18 | }, 19 | }, 20 | sections = { 21 | lualine_a = { "mode" }, 22 | lualine_b = { 23 | { 24 | "filetype", 25 | on_click = function() 26 | require("trouble").toggle("lsp_document_symbols") 27 | end, 28 | }, 29 | }, 30 | lualine_c = { 31 | { 32 | "filename", 33 | file_status = true, 34 | newfile_status = true, 35 | path = 3, 36 | }, 37 | }, 38 | lualine_x = { 39 | function() 40 | return require("auto-session.lib").current_session_name(true) 41 | end, 42 | "%{(&fenc!='utf-8'&&&fenc!='')?&fenc:''}", -- don't show file encoding if it's utf-8 43 | { 44 | "fileformat", 45 | icons_enabled = true, 46 | symbols = { 47 | unix = "", 48 | dos = "dos", 49 | mac = "mac", 50 | }, 51 | }, 52 | { 53 | "diagnostics", 54 | on_click = function() 55 | vim.diagnostic.setloclist() 56 | end, 57 | }, 58 | }, 59 | lualine_y = { 60 | "progress", 61 | "location", 62 | }, 63 | lualine_z = {}, 64 | }, 65 | inactive_sections = {}, 66 | tabline = { 67 | lualine_a = {}, 68 | lualine_b = {}, 69 | lualine_c = { 70 | { 71 | "buffers", 72 | show_filename_only = true, 73 | mode = 4, 74 | buffers_color = { 75 | active = { gui = "bold" }, 76 | }, 77 | }, 78 | }, 79 | lualine_x = { 80 | { 81 | "tabs", 82 | mode = 0, 83 | tabs_color = { 84 | active = { gui = "bold" }, 85 | }, 86 | }, 87 | }, 88 | lualine_y = {}, 89 | lualine_z = {}, 90 | }, 91 | winbar = {}, 92 | inactive_winbar = {}, 93 | }) 94 | 95 | vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" 96 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/init.lua: -------------------------------------------------------------------------------- 1 | require("config.lazy") 2 | require("config.languages") 3 | require("config.editor") 4 | require("config.ui") 5 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/plugins/colorscheme.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "navarasu/onedark.nvim", 3 | } 4 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/plugins/editor.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "chentoast/marks.nvim", 3 | { 4 | "folke/which-key.nvim", 5 | event = "VeryLazy", 6 | init = function() 7 | vim.o.timeout = true 8 | vim.o.timeoutlen = 500 9 | end, 10 | opts = { 11 | delay = 0, 12 | }, 13 | }, 14 | { 15 | "lukas-reineke/indent-blankline.nvim", 16 | main = "ibl", 17 | opts = {}, 18 | }, 19 | "numToStr/Comment.nvim", 20 | { 21 | "folke/todo-comments.nvim", 22 | dependencies = { 23 | "nvim-lua/plenary.nvim", 24 | }, 25 | }, 26 | "moll/vim-bbye", 27 | "echasnovski/mini.nvim", 28 | { 29 | "folke/trouble.nvim", 30 | opts = { 31 | -- for default options, refer to the configuration section for custom setup. 32 | }, 33 | cmd = "Trouble", 34 | keys = { 35 | { 36 | "xx", 37 | "Trouble diagnostics toggle", 38 | desc = "Diagnostics (Trouble)", 39 | }, 40 | { 41 | "xX", 42 | "Trouble diagnostics toggle filter.buf=0", 43 | desc = "Buffer Diagnostics (Trouble)", 44 | }, 45 | { 46 | "cs", 47 | "Trouble symbols toggle focus=false", 48 | desc = "Symbols (Trouble)", 49 | }, 50 | { 51 | "cl", 52 | "Trouble lsp toggle focus=false win.position=right", 53 | desc = "LSP Definitions / references / ... (Trouble)", 54 | }, 55 | { 56 | "xL", 57 | "Trouble loclist toggle", 58 | desc = "Location List (Trouble)", 59 | }, 60 | { 61 | "xQ", 62 | "Trouble qflist toggle", 63 | desc = "Quickfix List (Trouble)", 64 | }, 65 | }, 66 | }, 67 | } 68 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/plugins/languages.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-treesitter/nvim-treesitter", 4 | build = function() 5 | require("nvim-treesitter.install").update({ 6 | with_sync = true, 7 | })() 8 | end, 9 | }, 10 | "williamboman/mason.nvim", 11 | "williamboman/mason-lspconfig.nvim", 12 | "neovim/nvim-lspconfig", 13 | { 14 | "stevearc/conform.nvim", 15 | event = { "BufWritePre" }, 16 | cmd = { "ConformInfo" }, 17 | keys = { 18 | { 19 | "f", 20 | function() 21 | require("conform").format({ async = true }) 22 | end, 23 | mode = "", 24 | desc = "Format buffer", 25 | }, 26 | }, 27 | }, 28 | "zapling/mason-conform.nvim", 29 | "tpope/vim-sleuth", 30 | } 31 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/plugins/ui.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-lualine/lualine.nvim", 4 | dependencies = { 5 | "nvim-tree/nvim-web-devicons", 6 | }, 7 | }, 8 | { 9 | "rmagatti/auto-session", 10 | lazy = false, 11 | opts = { 12 | suppressed_dirs = { 13 | "~/", 14 | "~/Projects", 15 | "~/Downloads", 16 | "~/Dropbox", 17 | "/", 18 | }, 19 | }, 20 | }, 21 | { 22 | "rolv-apneseth/tfm.nvim", 23 | opts = { 24 | file_manager = "lf", 25 | replace_netrw = true, 26 | enable_cmds = true, 27 | ui = { 28 | height = 0.95, 29 | width = 0.95, 30 | }, 31 | }, 32 | keys = { 33 | { "lfc", ":Tfm", desc = "TFM" }, 34 | { "lfsp", ":TfmSplit", desc = "TFM into horizontal split" }, 35 | { "lfvs", ":TfmVsplit", desc = "TFM into vertical split" }, 36 | { "lft", ":TfmTabedit", desc = "TFM into new tab" }, 37 | }, 38 | }, 39 | { 40 | "kdheepak/lazygit.nvim", 41 | lazy = true, 42 | cmd = { 43 | "LazyGit", 44 | "LazyGitConfig", 45 | "LazyGitCurrentFile", 46 | "LazyGitFilter", 47 | "LazyGitFilterCurrentFile", 48 | }, 49 | dependencies = { 50 | "nvim-lua/plenary.nvim", 51 | }, 52 | keys = { 53 | { "lgc", "LazyGit", desc = "LazyGit in CWD" }, 54 | { "lgf", "LazyGitCurrentFile", desc = "LazyGit in project root of current file" }, 55 | }, 56 | }, 57 | } 58 | -------------------------------------------------------------------------------- /dot_config/nvim/nvimrc.vim: -------------------------------------------------------------------------------- 1 | " Neovim-specific settings 2 | 3 | " Command line 4 | set noshowmode " show mode in status line instead 5 | 6 | " Graphics 7 | colorscheme onedark 8 | 9 | " Folding 10 | set foldmethod=expr 11 | set foldexpr=nvimtreesitter#foldexpr() 12 | set nofoldenable " disable folding at startup 13 | 14 | " Substitution 15 | set inccommand=split 16 | -------------------------------------------------------------------------------- /dot_config/nvim/vimrc.vim: -------------------------------------------------------------------------------- 1 | " Vim-compatible settings 2 | 3 | " Graphics 4 | if &term =~# '^xterm' 5 | set ttyfast " improve redrawing smoothness 6 | endif 7 | 8 | " Buffer management 9 | set hidden " allow switching buffers with unsaved changes 10 | 11 | " Command line 12 | set wildmode=longest,list " get bash-like tab completions 13 | 14 | " Search 15 | set ignorecase " case-insensitive search by default 16 | set smartcase " case-sensitive search when uppercase chars are in query 17 | set hlsearch " highlight search matches 18 | set incsearch " incremental search 19 | " clear search results: 20 | "nnoremap :nohlsearch 21 | 22 | " Scrolling 23 | set scrolloff=5 " show lines above and below current line at screen edges 24 | 25 | " Line display 26 | set number " show line numbers 27 | set relativenumber " show relative line number offsets 28 | "set colorcolumn=80,100 " show common column width limits 29 | set colorcolumn=100 " show common column width limits 30 | set linebreak " wrap long lines 31 | set breakindent " indent wrapped lines 32 | set showbreak=↪\ " indicate wrapped lines 33 | 34 | " Files 35 | set encoding=utf-8 36 | 37 | " Filetypes 38 | filetype plugin on 39 | 40 | " Chezmoi integration 41 | autocmd BufWritePost ~/.local/share/chezmoi/* ! chezmoi apply --source-path "%" 42 | 43 | " Syntax 44 | syntax enable " syntax highlighting 45 | set showmatch " show matching braces 46 | 47 | " Indentation 48 | filetype plugin indent on " allow auto-indenting depending on file type 49 | set smartindent " automatically indent C-like programs 50 | set shiftwidth=2 " width of indentations with smart tabs 51 | set shiftround " round indent to a multiple of shiftwidth 52 | set softtabstop=2 " width of tabs without smart tabs, so treats indent spaces as tabs 53 | set tabstop=2 " number of columns occupied by a tab 54 | set expandtab " converts tabs to white space 55 | set list listchars=tab:▸\ ,trail:·,nbsp:␣ " display tabs and trailing spaces visually 56 | 57 | " Mouse 58 | set mouse=a " enable mouse click 59 | 60 | " Motion 61 | " split current line: 62 | nnoremap K i 63 | " move current line: 64 | nnoremap :m-2== 65 | nnoremap :m+== 66 | 67 | " Splits 68 | set splitright " when splitting vertically, move focus to new pane 69 | set splitbelow " when splitting horizontally, move focus to new pane 70 | 71 | " Undo 72 | set undofile " save undo history to file 73 | -------------------------------------------------------------------------------- /dot_config/oh-my-posh/lutho.omp.toml: -------------------------------------------------------------------------------- 1 | console_title_template = '{{ .UserName }}@{{ .HostName | splitList "." | first }}:{{ .PWD }}' 2 | pwd = 'osc7' 3 | version = 3 4 | final_space = true 5 | 6 | [palette] 7 | aws = '#ff9900' 8 | azure = '#008ad7' 9 | bg = '#282c34' 10 | blue = '#61afef' 11 | cyan = '#56b6c2' 12 | docker = '#1d63ed' 13 | fg = '#abb2bf' 14 | golang = '#01acd8' 15 | google = '#0f9d58' 16 | gray = '#323842' 17 | green = '#98c379' 18 | julia = '#9558b2' 19 | k8s = '#326ce5' 20 | magenta = '#c678dd' 21 | neovim = '#5fb950' 22 | nix = '#7ebae4' 23 | nodejs = '#44883e' 24 | python = '#ffdf76' 25 | red = '#e06c75' 26 | rust = '#e33b26' 27 | tf = '#844fba' 28 | yellow = '#e5c07b' 29 | 30 | [[blocks]] 31 | type = 'prompt' 32 | alignment = 'left' 33 | newline = true 34 | 35 | [[blocks.segments]] 36 | template = '{{ .Path }}' 37 | foreground = 'p:blue' 38 | type = 'path' 39 | 40 | [blocks.segments.properties] 41 | cache_duration = 'none' 42 | edge_format = '%s' 43 | folder_format = '%s' 44 | folder_icon = '...' 45 | folder_separator_icon = '/' 46 | max_depth = 4 47 | style = 'agnoster_short' 48 | 49 | [[blocks.segments]] 50 | template = " on {{ .HEAD }}{{ if gt .Behind 0 }} <{{ .Behind }}{{ end }}{{ if gt .Ahead 0 }} >{{ .Ahead }}{{ end }}{{ if gt .StashCount 0 }} *{{ .StashCount }}{{ end }}{{/* we don't check git status, so we never know the number of staged files */}} -" 51 | type = 'git' 52 | 53 | [blocks.segments.properties] 54 | branch_icon = '' 55 | branch_max_length = 32 56 | cache_duration = 'none' 57 | commit_icon = '@' 58 | tag_icon = '#' 59 | truncate_symbol = '<7>...' 60 | 61 | [[blocks.segments]] 62 | template = '{{ if .Version }} pkg {{ .Version }}{{ end }}' 63 | type = 'project' 64 | 65 | [blocks.segments.properties] 66 | cache_duration = 'none' 67 | 68 | [[blocks.segments]] 69 | template = '{{ if .Full }} node {{ .Full }}{{ end }}' 70 | type = 'node' 71 | 72 | [blocks.segments.properties] 73 | cache_duration = 'none' 74 | 75 | [[blocks.segments]] 76 | template = '{{ if .Venv }} py {{ .Venv }}{{ else }} <221>py {{ .Full }}{{ end }}' 77 | type = 'python' 78 | 79 | [blocks.segments.properties] 80 | cache_duration = 'none' 81 | display_default = false 82 | display_mode = 'context' 83 | 84 | [[blocks.segments]] 85 | template = ' go {{ .Full }}' 86 | type = 'golang' 87 | 88 | [blocks.segments.properties] 89 | cache_duration = 'none' 90 | 91 | [[blocks.segments]] 92 | template = ' rust {{ .Full }}' 93 | type = 'rust' 94 | 95 | [blocks.segments.properties] 96 | cache_duration = 'none' 97 | 98 | [[blocks.segments]] 99 | template = '{{ if .Root }} as {{ .UserName}}@{{ .HostName | splitList "." | first }}{{ else if .SSHSession }} as {{ .UserName}}@{{ .HostName | splitList "." | first }}{{ end }}' 100 | type = 'session' 101 | 102 | [blocks.segments.properties] 103 | cache_duration = 'none' 104 | 105 | [[blocks.segments]] 106 | template = ' docker {{ .Context }}' 107 | type = 'docker' 108 | 109 | [blocks.segments.properties] 110 | cache_duration = 'none' 111 | 112 | [[blocks.segments]] 113 | template = ' gcp {{ .Account }}@{{ .Project }}:{{ .Region }}' 114 | type = 'gcp' 115 | 116 | [blocks.segments.properties] 117 | cache_duration = 'none' 118 | 119 | [[blocks.segments]] 120 | template = ' azure {{ .Name }}' 121 | type = 'azure' 122 | 123 | [blocks.segments.properties] 124 | cache_duration = 'none' 125 | 126 | [[blocks.segments]] 127 | template = ' aws {{ .Profile }}{{ if .Region }}@{{ .Region }}{{ end }}' 128 | type = 'aws' 129 | 130 | [blocks.segments.properties] 131 | cache_duration = 'none' 132 | 133 | [[blocks.segments]] 134 | template = '{{ if and .Error (contains "|" .String) }}{{ if eq .Code 0 }} ok{{ else }} err{{ end }} {{ .String }}{{ end }}' 135 | type = 'status' 136 | 137 | [blocks.segments.properties] 138 | cache_duration = 'none' 139 | 140 | [[blocks.segments]] 141 | template = ' after {{ .FormattedMs }}' 142 | type = 'executiontime' 143 | 144 | [blocks.segments.properties] 145 | cache_duration = 'none' 146 | style = 'round' 147 | threshold = 3000 148 | 149 | [[blocks]] 150 | type = 'prompt' 151 | alignment = 'left' 152 | newline = true 153 | 154 | [[blocks.segments]] 155 | template = '{{ if gt .Code 0 }}>{{ else }}>{{ end }}' 156 | type = 'status' 157 | 158 | [blocks.segments.properties] 159 | always_enabled = true 160 | cache_duration = 'none' 161 | -------------------------------------------------------------------------------- /dot_config/private_breezerc: -------------------------------------------------------------------------------- 1 | [Common] 2 | ShadowSize=ShadowVeryLarge 3 | ShadowStrength=128 4 | 5 | [Style] 6 | MenuOpacity=0 7 | 8 | [Windeco] 9 | ButtonSize=ButtonSmall 10 | 11 | [Windeco Exception 0] 12 | BorderSize=0 13 | Enabled=false 14 | ExceptionPattern=. 15 | ExceptionType=0 16 | HideTitleBar=true 17 | Mask=0 18 | -------------------------------------------------------------------------------- /dot_config/private_dolphinrc: -------------------------------------------------------------------------------- 1 | [ContextMenu] 2 | ShowCopyMoveMenu=true 3 | ShowViewMode=false 4 | 5 | [Desktop Entry] 6 | DefaultProfile=Host.profile 7 | 8 | [DetailsMode] 9 | HighlightEntireRow=false 10 | IconSize=32 11 | SidePadding=0 12 | 13 | [General] 14 | ConfirmClosingMultipleTabs=false 15 | DoubleClickViewAction=CUSTOM_COMMAND 16 | DoubleClickViewCustomAction=flatpak run org.wezfurlong.wezterm start --cwd {path} 17 | OpenNewTabAfterLastTab=true 18 | RememberOpenedTabs=false 19 | Version=202 20 | ViewPropsTimestamp=2024,11,30,21,57,5.777 21 | 22 | [IconsMode] 23 | IconSize=22 24 | PreviewSize=32 25 | 26 | [KFileDialog Settings] 27 | Places Icons Auto-resize=false 28 | Places Icons Static Size=22 29 | 30 | [PreviewSettings] 31 | Plugins=audiothumbnail,avif,blenderthumbnail,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,heif,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,mobithumbnail,opendocumentthumbnail,gsthumbnail,rawthumbnail,svgthumbnail,gdk-pixbuf-thumbnailer,ffmpegthumbs 32 | -------------------------------------------------------------------------------- /dot_config/private_kcminputrc: -------------------------------------------------------------------------------- 1 | [$Version] 2 | update_info=delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize,kcminputrc_fix_botched_5_21_0.upd:kcminputrc_fix_botched_5_21_0_pre,kcminputrc_fix_botched_5_21_0.upd:kcminputrc_fix_botched_5_21_0,kcminputrc_repeat.upd:kcminputrc_migrate_key_repeat 3 | 4 | [ButtonRebinds][Mouse] 5 | ExtraButton1=Key,Meta+Esc 6 | ExtraButton2=Key,Ctrl+W 7 | ExtraButton3=Key,Meta+S 8 | 9 | [Keyboard] 10 | NumLock=1 11 | 12 | [Libinput][0][0][OpenTabletDriver Virtual Artist Tablet] 13 | OutputArea=0,0,1,1 14 | OutputName=DP-2 15 | 16 | [Libinput][1133][49276][Logitech G700s Rechargeable Gaming Mouse] 17 | PointerAcceleration=1.000 18 | 19 | [Libinput][12972][6][FRMW0004:00 32AC:0006 Consumer Control] 20 | NaturalScroll=false 21 | ScrollFactor=2 22 | 23 | [Libinput][2362][628][PIXA3854:00 093A:0274 Touchpad] 24 | LmrTapButtonMap=false 25 | NaturalScroll=true 26 | PointerAcceleration=0.400 27 | ScrollFactor=0.5 28 | TapToClick=true 29 | 30 | [Libinput][6127][24717][PixArt Lenovo USB Optical Mouse] 31 | ScrollMethod=4 32 | 33 | [Libinput][6780][407][Kingsis Peripherals Evoluent VerticalMouse D] 34 | MiddleButtonEmulation=true 35 | PointerAcceleration=-0.200 36 | ScrollFactor=1.5 37 | ScrollMethod=4 38 | 39 | [Mouse] 40 | X11LibInputXAccelProfileFlat=true 41 | cursorTheme=PearDarkCursors 42 | 43 | [Tmp] 44 | update_info=delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize 45 | -------------------------------------------------------------------------------- /dot_config/private_kdeglobals: -------------------------------------------------------------------------------- 1 | [ColorEffects:Disabled] 2 | ChangeSelectionColor= 3 | Color=56,56,56 4 | ColorAmount=0 5 | ColorEffect=0 6 | ContrastAmount=0.65 7 | ContrastEffect=1 8 | Enable= 9 | IntensityAmount=0.1 10 | IntensityEffect=2 11 | 12 | [ColorEffects:Inactive] 13 | ChangeSelectionColor=true 14 | Color=112,111,110 15 | ColorAmount=0.025 16 | ColorEffect=2 17 | ContrastAmount=0.1 18 | ContrastEffect=2 19 | Enable=false 20 | IntensityAmount=0 21 | IntensityEffect=0 22 | 23 | [Colors:Button] 24 | BackgroundAlternate=30,87,116 25 | BackgroundNormal=51,58,72 26 | DecorationFocus=97,175,239 27 | DecorationHover=97,175,239 28 | ForegroundActive=98,174,239 29 | ForegroundInactive=171,178,191 30 | ForegroundLink=98,152,239 31 | ForegroundNegative=224,107,116 32 | ForegroundNeutral=229,192,122 33 | ForegroundNormal=252,252,252 34 | ForegroundPositive=152,195,121 35 | ForegroundVisited=199,120,221 36 | 37 | [Colors:Complementary] 38 | BackgroundAlternate=30,87,116 39 | BackgroundNormal=30,34,42 40 | DecorationFocus=97,175,239 41 | DecorationHover=97,175,239 42 | ForegroundActive=98,174,239 43 | ForegroundInactive=171,178,191 44 | ForegroundLink=98,152,239 45 | ForegroundNegative=224,107,116 46 | ForegroundNeutral=229,192,122 47 | ForegroundNormal=252,252,252 48 | ForegroundPositive=152,195,121 49 | ForegroundVisited=199,120,221 50 | 51 | [Colors:Header] 52 | BackgroundAlternate=37,42,52 53 | BackgroundNormal=30,34,42 54 | DecorationFocus=97,175,239 55 | DecorationHover=97,175,239 56 | ForegroundActive=98,174,239 57 | ForegroundInactive=171,178,191 58 | ForegroundLink=98,152,239 59 | ForegroundNegative=224,107,116 60 | ForegroundNeutral=229,192,122 61 | ForegroundNormal=252,252,252 62 | ForegroundPositive=152,195,121 63 | ForegroundVisited=199,120,221 64 | 65 | [Colors:Header][Inactive] 66 | BackgroundAlternate=49,54,59 67 | BackgroundNormal=42,46,50 68 | DecorationFocus=61,174,233 69 | DecorationHover=61,174,233 70 | ForegroundActive=61,174,233 71 | ForegroundInactive=161,169,177 72 | ForegroundLink=29,153,243 73 | ForegroundNegative=218,68,83 74 | ForegroundNeutral=246,116,0 75 | ForegroundNormal=252,252,252 76 | ForegroundPositive=39,174,96 77 | ForegroundVisited=155,89,182 78 | 79 | [Colors:Selection] 80 | BackgroundAlternate=30,87,116 81 | BackgroundNormal=97,175,239 82 | DecorationFocus=97,175,239 83 | DecorationHover=97,175,239 84 | ForegroundActive=252,252,252 85 | ForegroundInactive=171,178,191 86 | ForegroundLink=229,192,122 87 | ForegroundNegative=224,107,116 88 | ForegroundNeutral=229,192,122 89 | ForegroundNormal=255,255,255 90 | ForegroundPositive=152,195,121 91 | ForegroundVisited=199,120,221 92 | 93 | [Colors:Tooltip] 94 | BackgroundAlternate=37,42,52 95 | BackgroundNormal=30,34,42 96 | DecorationFocus=97,175,239 97 | DecorationHover=97,175,239 98 | ForegroundActive=98,174,239 99 | ForegroundInactive=171,178,191 100 | ForegroundLink=98,152,239 101 | ForegroundNegative=224,107,116 102 | ForegroundNeutral=229,192,122 103 | ForegroundNormal=252,252,252 104 | ForegroundPositive=152,195,121 105 | ForegroundVisited=199,120,221 106 | 107 | [Colors:View] 108 | BackgroundAlternate=24,26,30 109 | BackgroundNormal=30,34,42 110 | DecorationFocus=97,175,239 111 | DecorationHover=97,175,239 112 | ForegroundActive=98,174,239 113 | ForegroundInactive=171,178,191 114 | ForegroundLink=98,152,239 115 | ForegroundNegative=224,107,116 116 | ForegroundNeutral=229,192,122 117 | ForegroundNormal=252,252,252 118 | ForegroundPositive=152,195,121 119 | ForegroundVisited=199,120,221 120 | 121 | [Colors:Window] 122 | BackgroundAlternate=37,42,52 123 | BackgroundNormal=30,34,42 124 | DecorationFocus=97,175,239 125 | DecorationHover=97,175,239 126 | ForegroundActive=98,174,239 127 | ForegroundInactive=171,178,191 128 | ForegroundLink=98,152,239 129 | ForegroundNegative=224,107,116 130 | ForegroundNeutral=229,192,122 131 | ForegroundNormal=252,252,252 132 | ForegroundPositive=152,195,121 133 | ForegroundVisited=199,120,221 134 | 135 | [DirSelect Dialog] 136 | DirSelectDialog Size=1884,1080 137 | History Items[$e]=file:///var/home/lietk12/Documents/Sketchbook/Exports,file:$HOME/Projects/PlanktoScope/PlanktoScope/software,file:$HOME/Projects/PlanktoScope/PlanktoScope/device-backend,file:///home,file:///var/home/lietk12/Projects/Ten-Earth/ten-earth-analysis,file:$HOME/Sync/Books,file:$HOME/Documents/Sketchbook,file:$HOME/Downloads/BTS2023_S3_A2,file:///var/home/lietk12/Projects/PlanktoScope/device-pkgs,file:$HOME/Projects/PlanktoScope/pallet-standard,file:$HOME/Projects/PlanktoScope/device-backend,file:///var/home/lietk12/Projects/PlanktoScope/PlanktoScope,file:$HOME/Projects/OpenUC2/rpi-os-demo,file:///var/home/lietk12/Projects/Actions/pishrink-action,file:$HOME/Projects/rtl88x2bu,file:$HOME/Downloads,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,file:$HOME/Sync/Books,mtp:/Pixel 5a/Internal shared storage/Books,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS9-narrowhospital-14-12-24_7,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS9-narrowhospital-14-12-24_7,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS8-narrowhospital-14-12-24_6,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS7-narrowhospital-14-12-24_5,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS6-narrowhospital-14-12-24_4,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2/University_of_Barcelona_Pond_SD1_Barcelona-Pond-DS5-narrowhospital-14-12-24_3,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch2,file:$HOME/Projects/Ten-Earth/planktoscope-datasets/University_of_Barcelona_Pond_SD1-Batch1,file:$HOME/Documents/Calibre Library,file:$HOME/Projects/Art/zoule,file:$HOME/Projects/Art/zoule,file:$HOME/Dropbox/Drawings,file:$HOME/Pictures,file:$HOME/Videos,file:$HOME/Documents/Calibre Library,file:$HOME/Downloads,file:$HOME/Projects/Art,file:///run/media/lietk12/Kleio/Backup,file:///run/media/lietk12/Kleio/Backup/lutho-ext,file:$HOME/Pictures,file:$HOME/Downloads 138 | Splitter State=\x00\x00\x00\xff\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\xd1\x00\x00\x05/\x00\xff\xff\xff\xff\x01\x00\x00\x00\x01\x00 139 | 140 | [General] 141 | ColorScheme=One-Dark-Blue 142 | ColorSchemeHash=babca25f3a5cf7ece26a85de212ab43d0a141257 143 | TerminalApplication=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=wezterm org.wezfurlong.wezterm start --cwd . 144 | TerminalService=org.wezfurlong.wezterm.desktop 145 | XftAntialias=true 146 | XftHintStyle=hintslight 147 | XftSubPixel=rgb 148 | fixed=Intel One Mono,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 149 | font=Atkinson Hyperlegible,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 150 | menuFont=Atkinson Hyperlegible,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 151 | smallestReadableFont=Atkinson Hyperlegible,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 152 | toolBarFont=Atkinson Hyperlegible,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 153 | 154 | [KDE] 155 | ShowDeleteCommand=false 156 | 157 | [KFileDialog Settings] 158 | Allow Expansion=false 159 | Automatically select filename extension=true 160 | Breadcrumb Navigation=false 161 | Decoration position=2 162 | LocationCombo Completionmode=5 163 | PathCombo Completionmode=5 164 | Show Bookmarks=false 165 | Show Full Path=false 166 | Show Inline Previews=true 167 | Show Preview=false 168 | Show Speedbar=true 169 | Show hidden files=true 170 | Sort by=Name 171 | Sort directories first=true 172 | Sort hidden files last=false 173 | Sort reversed=false 174 | Speedbar Width=140 175 | View Style=Detail 176 | 177 | [PreviewSettings] 178 | EnableRemoteFolderThumbnail=false 179 | MaximumRemoteSize=0 180 | 181 | [WM] 182 | activeBackground=30,34,42 183 | activeBlend=252,252,252 184 | activeFont=Atkinson Hyperlegible,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1 185 | activeForeground=252,252,252 186 | inactiveBackground=30,34,42 187 | inactiveBlend=171,178,191 188 | inactiveForeground=171,178,191 189 | -------------------------------------------------------------------------------- /dot_config/private_krunnerrc: -------------------------------------------------------------------------------- 1 | [General] 2 | RetainPriorSearch=false 3 | 4 | [PlasmaRunnerManager] 5 | migrated=true 6 | 7 | [Plugins] 8 | CharacterRunnerEnabled=false 9 | DictionaryEnabled=false 10 | appstreamEnabled=false 11 | baloosearchEnabled=true 12 | bookmarksEnabled=true 13 | browserhistoryEnabled=false 14 | browsertabsEnabled=false 15 | desktopsessionsEnabled=true 16 | katesessionsEnabled=false 17 | krunner_appstreamEnabled=false 18 | krunner_bookmarksrunnerEnabled=false 19 | krunner_dictionaryEnabled=false 20 | krunner_katesessionsEnabled=false 21 | krunner_killEnabled=false 22 | krunner_sessionsEnabled=true 23 | krunner_spellcheckEnabled=false 24 | org.kde.activities2Enabled=false 25 | org.kde.datetimeEnabled=true 26 | org.kde.windowedwidgetsEnabled=false 27 | recentdocumentsEnabled=false 28 | shellEnabled=true 29 | webshortcutsEnabled=false 30 | windowsEnabled=false 31 | 32 | [Plugins][Favorites] 33 | plugins=krunner_powerdevil,krunner_sessions,krunner_placesrunner,krunner_services,krunner_systemsettings 34 | -------------------------------------------------------------------------------- /dot_config/private_kscreenlockerrc: -------------------------------------------------------------------------------- 1 | [$Version] 2 | update_info=kscreenlocker.upd:0.1-autolock 3 | 4 | [Daemon] 5 | Timeout=15 6 | 7 | [Greeter][Wallpaper][org.kde.image][General] 8 | Image=/home/lietk12/.local/share/wallpapers/f29-03-night.png 9 | PreviewImage=/home/lietk12/.local/share/wallpapers/f29-03-night.png 10 | SlidePaths=/home/lietk12/.local/share/wallpapers/,/usr/share/wallpapers/ 11 | -------------------------------------------------------------------------------- /dot_config/private_kxkbrc: -------------------------------------------------------------------------------- 1 | [$Version] 2 | update_info=kxkb.upd:remove-empty-lists,kxkb.upd:add-back-resetoptions,kxkb_variants.upd:split-variants 3 | 4 | [Layout] 5 | Options=caps:escape_shifted_capslock 6 | ResetOldOptions=true 7 | -------------------------------------------------------------------------------- /dot_config/private_mimeapps.list: -------------------------------------------------------------------------------- 1 | [Added Associations] 2 | application/json=Neovim.desktop; 3 | application/pdf=org.kde.okular.desktop; 4 | application/x-docbook+xml=Neovim.desktop; 5 | application/x-yaml=Neovim.desktop; 6 | application/xml=Neovim-3.desktop;Neovim-2.desktop; 7 | audio/aac=org.kde.haruna.desktop; 8 | audio/mp4=org.kde.haruna.desktop; 9 | audio/mpeg=org.kde.haruna.desktop; 10 | audio/mpegurl=org.kde.haruna.desktop; 11 | audio/ogg=org.kde.haruna.desktop; 12 | audio/vorbis=org.kde.haruna.desktop; 13 | audio/x-flac=org.kde.haruna.desktop; 14 | audio/x-mp3=org.kde.haruna.desktop; 15 | audio/x-mpegurl=org.kde.haruna.desktop; 16 | audio/x-oggflac=org.kde.haruna.desktop; 17 | audio/x-vorbis=org.kde.haruna.desktop; 18 | audio/x-vorbis+ogg=org.kde.haruna.desktop; 19 | audio/x-wav=org.kde.haruna.desktop; 20 | image/svg+xml=org.inkscape.Inkscape.desktop; 21 | text/html=com.google.Chrome.desktop; 22 | text/markdown=Neovim.desktop; 23 | text/plain=Neovim.desktop; 24 | text/x-cmake=Neovim.desktop; 25 | x-scheme-handler/http=com.google.Chrome.desktop; 26 | x-scheme-handler/https=com.google.Chrome.desktop; 27 | x-scheme-handler/mailto=org.mozilla.Thunderbird.desktop; 28 | 29 | [Default Applications] 30 | application/json=Neovim.desktop; 31 | application/pdf=org.kde.okular.desktop; 32 | application/x-docbook+xml=Neovim.desktop; 33 | application/x-yaml=Neovim.desktop; 34 | application/xml=Neovim-3.desktop; 35 | audio/aac=org.kde.haruna.desktop; 36 | audio/mp4=org.kde.haruna.desktop; 37 | audio/mpeg=org.kde.haruna.desktop; 38 | audio/mpegurl=org.kde.haruna.desktop; 39 | audio/ogg=org.kde.haruna.desktop; 40 | audio/vorbis=org.kde.haruna.desktop; 41 | audio/x-flac=org.kde.haruna.desktop; 42 | audio/x-mp3=org.kde.haruna.desktop; 43 | audio/x-mpegurl=org.kde.haruna.desktop; 44 | audio/x-oggflac=org.kde.haruna.desktop; 45 | audio/x-vorbis=org.kde.haruna.desktop; 46 | audio/x-vorbis+ogg=org.kde.haruna.desktop; 47 | audio/x-wav=org.kde.haruna.desktop; 48 | image/svg+xml=org.inkscape.Inkscape.desktop; 49 | text/html=com.google.Chrome.desktop; 50 | text/markdown=Neovim.desktop; 51 | text/plain=Neovim.desktop; 52 | text/x-cmake=Neovim.desktop; 53 | x-scheme-handler/http=com.google.Chrome.desktop; 54 | x-scheme-handler/https=com.google.Chrome.desktop; 55 | x-scheme-handler/mailto=org.mozilla.Thunderbird.desktop; 56 | -------------------------------------------------------------------------------- /dot_config/private_plasma_calendar_holiday_regions: -------------------------------------------------------------------------------- 1 | [General] 2 | selectedRegions=us_en-us 3 | -------------------------------------------------------------------------------- /dot_config/private_plasmarc: -------------------------------------------------------------------------------- 1 | [Theme] 2 | name=default 3 | 4 | [Wallpapers] 5 | usersWallpapers=/home/lietk12/.local/share/wallpapers/Black-Mountain-Dusk-1.jpg,/usr/share/wallpapers/aurora-wallpaper-1/contents/images/15392x8616.jpg,/home/lietk12/Pictures/Wallpapers/Chrome OS/World Trade Center station dark bluer.jpg 6 | -------------------------------------------------------------------------------- /dot_config/private_powerdevilrc: -------------------------------------------------------------------------------- 1 | [AC][Display] 2 | TurnOffDisplayIdleTimeoutSec=1800 3 | 4 | [AC][SuspendAndShutdown] 5 | AutoSuspendIdleTimeoutSec=3600 6 | PowerButtonAction=1 7 | SleepMode=3 8 | 9 | [Battery][Performance] 10 | PowerProfile=power-saver 11 | 12 | [Battery][SuspendAndShutdown] 13 | PowerButtonAction=1 14 | SleepMode=3 15 | 16 | [BatteryManagement] 17 | BatteryCriticalAction=1 18 | BatteryCriticalLevel=20 19 | BatteryLowLevel=30 20 | 21 | [LowBattery][Display] 22 | DisplayBrightness=0 23 | 24 | [LowBattery][Performance] 25 | PowerProfile=power-saver 26 | 27 | [LowBattery][SuspendAndShutdown] 28 | PowerButtonAction=1 29 | SleepMode=3 30 | -------------------------------------------------------------------------------- /dot_config/private_powermanagementprofilesrc: -------------------------------------------------------------------------------- 1 | [AC] 2 | icon=battery-charging 3 | 4 | [AC][DPMSControl] 5 | idleTime=600 6 | lockBeforeTurnOff=0 7 | 8 | [AC][DimDisplay] 9 | idleTime=300000 10 | 11 | [AC][HandleButtonEvents] 12 | lidAction=1 13 | powerButtonAction=1 14 | powerDownAction=16 15 | triggerLidActionWhenExternalMonitorPresent=false 16 | 17 | [AC][SuspendSession] 18 | idleTime=3600000 19 | suspendThenHibernate=true 20 | suspendType=1 21 | 22 | [Battery] 23 | icon=battery-060 24 | 25 | [Battery][DPMSControl] 26 | idleTime=300 27 | lockBeforeTurnOff=0 28 | 29 | [Battery][DimDisplay] 30 | idleTime=120000 31 | 32 | [Battery][HandleButtonEvents] 33 | lidAction=1 34 | powerButtonAction=1 35 | powerDownAction=16 36 | triggerLidActionWhenExternalMonitorPresent=false 37 | 38 | [Battery][PowerProfile] 39 | profile=power-saver 40 | 41 | [Battery][SuspendSession] 42 | idleTime=600000 43 | suspendThenHibernate=true 44 | suspendType=1 45 | 46 | [Battery][WirelessPowerSaving] 47 | btOption=1 48 | wifiOption=0 49 | wwanOption=0 50 | 51 | [LowBattery] 52 | icon=battery-low 53 | 54 | [LowBattery][BrightnessControl] 55 | value=0 56 | 57 | [LowBattery][DPMSControl] 58 | idleTime=120 59 | lockBeforeTurnOff=0 60 | 61 | [LowBattery][DimDisplay] 62 | idleTime=60000 63 | 64 | [LowBattery][HandleButtonEvents] 65 | lidAction=2 66 | powerButtonAction=2 67 | powerDownAction=16 68 | triggerLidActionWhenExternalMonitorPresent=false 69 | 70 | [LowBattery][PowerProfile] 71 | profile=power-saver 72 | 73 | [LowBattery][SuspendSession] 74 | idleTime=300000 75 | suspendThenHibernate=true 76 | suspendType=1 77 | 78 | [LowBattery][WirelessPowerSaving] 79 | btOption=1 80 | wifiOption=1 81 | wwanOption=1 82 | 83 | [Migration] 84 | MigratedProfilesToPlasma6=powerdevilrc 85 | -------------------------------------------------------------------------------- /dot_config/starship.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | $directory\ 3 | $git_branch\ 4 | $git_commit\ 5 | $git_state\ 6 | $git_status\ 7 | $package\ 8 | $nodejs\ 9 | $python\ 10 | $golang\ 11 | $opa\ 12 | $rust\ 13 | $buf\ 14 | $terraform\ 15 | $container\ 16 | $username\ 17 | $hostname\ 18 | $docker_context\ 19 | $gcloud\ 20 | $azure\ 21 | $aws\ 22 | $shlvl\ 23 | $battery\ 24 | $cmd_duration\ 25 | $jobs\ 26 | $line_break\ 27 | $character""" 28 | 29 | [character] 30 | success_symbol = "[>](bold green)" 31 | error_symbol = "[x](bold red)" 32 | vimcmd_symbol = "[<](bold green)" 33 | 34 | [git_commit] 35 | tag_symbol = " tag " 36 | 37 | [git_status] 38 | ahead = ">" 39 | behind = "<" 40 | diverged = "<>" 41 | renamed = "r" 42 | deleted = "x" 43 | 44 | [aws] 45 | symbol = "aws " 46 | 47 | [azure] 48 | symbol = "az " 49 | 50 | [bun] 51 | symbol = "bun " 52 | 53 | [c] 54 | symbol = "C " 55 | 56 | [cobol] 57 | symbol = "cobol " 58 | 59 | [conda] 60 | symbol = "conda " 61 | 62 | [crystal] 63 | symbol = "cr " 64 | 65 | [cmake] 66 | symbol = "cmake " 67 | 68 | [daml] 69 | symbol = "daml " 70 | 71 | [dart] 72 | symbol = "dart " 73 | 74 | [deno] 75 | symbol = "deno " 76 | 77 | [dotnet] 78 | symbol = ".NET " 79 | 80 | [directory] 81 | read_only = " ro" 82 | 83 | [docker_context] 84 | symbol = "docker " 85 | 86 | [elixir] 87 | symbol = "exs " 88 | 89 | [elm] 90 | symbol = "elm " 91 | 92 | [fennel] 93 | symbol = "fnl " 94 | 95 | [fossil_branch] 96 | symbol = "fossil " 97 | 98 | [gcloud] 99 | symbol = "gcp " 100 | 101 | [git_branch] 102 | symbol = "git " 103 | 104 | [golang] 105 | symbol = "go " 106 | 107 | [gradle] 108 | symbol = "gradle " 109 | 110 | [guix_shell] 111 | symbol = "guix " 112 | 113 | [hg_branch] 114 | symbol = "hg " 115 | 116 | [java] 117 | symbol = "java " 118 | 119 | [julia] 120 | symbol = "jl " 121 | 122 | [kotlin] 123 | symbol = "kt " 124 | 125 | [lua] 126 | symbol = "lua " 127 | 128 | [nodejs] 129 | symbol = "nodejs " 130 | 131 | [memory_usage] 132 | symbol = "memory " 133 | 134 | [meson] 135 | symbol = "meson " 136 | 137 | [nim] 138 | symbol = "nim " 139 | 140 | [nix_shell] 141 | symbol = "nix " 142 | 143 | [ocaml] 144 | symbol = "ml " 145 | 146 | [opa] 147 | symbol = "opa " 148 | 149 | [os.symbols] 150 | Alpaquita = "alq " 151 | Alpine = "alp " 152 | Amazon = "amz " 153 | Android = "andr " 154 | Arch = "rch " 155 | Artix = "atx " 156 | CentOS = "cent " 157 | Debian = "deb " 158 | DragonFly = "dfbsd " 159 | Emscripten = "emsc " 160 | EndeavourOS = "ndev " 161 | Fedora = "fed " 162 | FreeBSD = "fbsd " 163 | Garuda = "garu " 164 | Gentoo = "gent " 165 | HardenedBSD = "hbsd " 166 | Illumos = "lum " 167 | Linux = "lnx " 168 | Mabox = "mbox " 169 | Macos = "mac " 170 | Manjaro = "mjo " 171 | Mariner = "mrn " 172 | MidnightBSD = "mid " 173 | Mint = "mint " 174 | NetBSD = "nbsd " 175 | NixOS = "nix " 176 | OpenBSD = "obsd " 177 | OpenCloudOS = "ocos " 178 | openEuler = "oeul " 179 | openSUSE = "osuse " 180 | OracleLinux = "orac " 181 | Pop = "pop " 182 | Raspbian = "rasp " 183 | Redhat = "rhl " 184 | RedHatEnterprise = "rhel " 185 | Redox = "redox " 186 | Solus = "sol " 187 | SUSE = "suse " 188 | Ubuntu = "ubnt " 189 | Unknown = "unk " 190 | Windows = "win " 191 | 192 | [package] 193 | symbol = "pkg " 194 | 195 | [perl] 196 | symbol = "pl " 197 | 198 | [php] 199 | symbol = "php " 200 | 201 | [pijul_channel] 202 | symbol = "pijul " 203 | 204 | [pulumi] 205 | symbol = "pulumi " 206 | 207 | [purescript] 208 | symbol = "purs " 209 | 210 | [python] 211 | symbol = "py " 212 | 213 | [raku] 214 | symbol = "raku " 215 | 216 | [ruby] 217 | symbol = "rb " 218 | 219 | [rust] 220 | symbol = "rs " 221 | 222 | [scala] 223 | symbol = "scala " 224 | 225 | [spack] 226 | symbol = "spack " 227 | 228 | [solidity] 229 | symbol = "solidity " 230 | 231 | [status] 232 | symbol = "[x](bold red) " 233 | 234 | [sudo] 235 | symbol = "sudo " 236 | 237 | [swift] 238 | symbol = "swift " 239 | 240 | [terraform] 241 | symbol = "tf " 242 | 243 | [zig] 244 | symbol = "zig " 245 | -------------------------------------------------------------------------------- /dot_config/systemd/user/default.target.wants/symlink_flatpak-dump.service: -------------------------------------------------------------------------------- 1 | /home/lietk12/.config/systemd/user/flatpak-dump.service 2 | -------------------------------------------------------------------------------- /dot_config/systemd/user/default.target.wants/symlink_homebrew-dump.service: -------------------------------------------------------------------------------- 1 | /home/lietk12/.config/systemd/user/homebrew-dump.service 2 | -------------------------------------------------------------------------------- /dot_config/systemd/user/flatpak-dump.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Dump Flatpak configuration to Flatpakfile 3 | 4 | [Service] 5 | ExecStart=sh -c "flatpak list --app --columns=application > ~/.Flatpakfile" 6 | 7 | [Install] 8 | WantedBy=default.target 9 | -------------------------------------------------------------------------------- /dot_config/systemd/user/flatpak-install.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Install Flatpak applications from Flatpakfile 3 | 4 | [Service] 5 | ExecStart=sh -c "xargs flatpak install < ~/.Flatpakfile" 6 | -------------------------------------------------------------------------------- /dot_config/systemd/user/homebrew-dump.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Dump Homebrew configuration to Brewfile 3 | 4 | [Service] 5 | ExecStart=/home/linuxbrew/.linuxbrew/bin/brew bundle dump --global --force 6 | 7 | [Install] 8 | WantedBy=default.target 9 | -------------------------------------------------------------------------------- /dot_config/systemd/user/homebrew-install.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Dump Homebrew configuration to Brewfile 3 | 4 | [Service] 5 | ExecStart=/home/linuxbrew/.linuxbrew/bin/brew bundle install --global 6 | 7 | [Install] 8 | WantedBy=default.target 9 | -------------------------------------------------------------------------------- /dot_config/wezterm/wezterm.lua: -------------------------------------------------------------------------------- 1 | -- Pull in the wezterm API 2 | local wezterm = require 'wezterm' 3 | local act = wezterm.action 4 | local mux = wezterm.mux 5 | 6 | -- Set startup behavior 7 | wezterm.on('gui-startup', function(cmd) 8 | local _, _, window = mux.spawn_window(cmd or {}) 9 | window:gui_window():maximize() 10 | end) 11 | 12 | -- This table will hold the configuration. 13 | local config = {} 14 | 15 | -- In newer versions of wezterm, use the config_builder which will 16 | -- help provide clearer error messages 17 | if wezterm.config_builder then 18 | config = wezterm.config_builder() 19 | end 20 | 21 | -- This is where you actually apply your config choices 22 | 23 | config.color_scheme = 'OneDark (base16)' 24 | 25 | config.use_fancy_tab_bar = true 26 | config.hide_tab_bar_if_only_one_tab = true 27 | config.tab_max_width = 32 28 | config.window_frame = { 29 | font = wezterm.font { family = 'Atkinson Hyperlegible', weight = 'Bold' }, 30 | -- active_titlebar_bg = '#323842', -- from the official One Dark colorscheme 31 | active_titlebar_bg = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 32 | inactive_titlebar_bg = '#21252B', 33 | } 34 | config.colors = { 35 | tab_bar = { 36 | -- background = '#1E2227', -- from the official One Dark colorscheme 37 | background = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 38 | active_tab = { 39 | bg_color = '#282C34', 40 | fg_color = '#F6F7F9', 41 | intensity = 'Bold', 42 | }, 43 | inactive_tab = { 44 | -- bg_color = '#1E2227', -- from the official One Dark colorscheme 45 | bg_color = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 46 | fg_color = '#ABB2BF', 47 | }, 48 | inactive_tab_hover = { 49 | -- bg_color = '#1E2227', -- from the official One Dark colorscheme 50 | bg_color = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 51 | fg_color = '#ABB2BF', 52 | intensity = 'Bold', 53 | }, 54 | new_tab = { 55 | -- bg_color = '#1E2227', -- from the official One Dark colorscheme 56 | bg_color = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 57 | fg_color = '#ABB2BF', 58 | }, 59 | new_tab_hover = { 60 | -- bg_color = '#1E2227', -- from the official One Dark colorscheme 61 | bg_color = '#1E222A', -- integrate with KDE Plasma's One Dark colorscheme 62 | fg_color = '#ABB2BF', 63 | intensity = 'Bold', 64 | }, 65 | } 66 | } 67 | 68 | config.window_padding = { 69 | left = "6pt", 70 | right = "6pt", 71 | top = "6pt", 72 | bottom = "6pt", 73 | } 74 | 75 | config.font = wezterm.font { 76 | family = 'IntoneMono Nerd Font', 77 | } 78 | config.freetype_load_target = 'Normal' 79 | 80 | config.default_cursor_style = 'SteadyBar' 81 | 82 | config.window_close_confirmation = 'NeverPrompt' 83 | 84 | config.disable_default_key_bindings = true 85 | config.keys = { 86 | { key = ';', mods = 'CTRL', action = act.ActivateCommandPalette }, 87 | { key = ':', mods = 'SHIFT|CTRL', action = act.ShowLauncher }, 88 | { key = ':', mods = 'ALT|SHIFT|CTRL', action = act.ShowDebugOverlay }, 89 | { key = 'T', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' }, 90 | { key = 'W', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{confirm = false} }, 91 | { key = 'PageDown', mods = 'CTRL', action = act.ActivateTabRelative(1) }, 92 | { key = 'PageDown', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(1) }, 93 | { key = 'Tab', mods = 'CTRL', action = act.ActivateTabRelative(1) }, 94 | { key = 'PageUp', mods = 'CTRL', action = act.ActivateTabRelative(-1) }, 95 | { key = 'PageUp', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(-1) }, 96 | { key = 'Tab', mods = 'SHIFT|CTRL', action = act.ActivateTabRelative(-1) }, 97 | { key = '1', mods = 'CTRL', action = act.ActivateTab(0) }, 98 | { key = '!', mods = 'SHIFT|CTRL', action = act.MoveTab(0) }, 99 | { key = '2', mods = 'CTRL', action = act.ActivateTab(1) }, 100 | { key = '@', mods = 'SHIFT|CTRL', action = act.MoveTab(1) }, 101 | { key = '3', mods = 'CTRL', action = act.ActivateTab(2) }, 102 | { key = '#', mods = 'SHIFT|CTRL', action = act.MoveTab(2) }, 103 | { key = '4', mods = 'CTRL', action = act.ActivateTab(3) }, 104 | { key = '$', mods = 'SHIFT|CTRL', action = act.MoveTab(3) }, 105 | { key = '5', mods = 'CTRL', action = act.ActivateTab(4) }, 106 | { key = '%', mods = 'SHIFT|CTRL', action = act.MoveTab(4) }, 107 | { key = '6', mods = 'CTRL', action = act.ActivateTab(5) }, 108 | { key = '^', mods = 'SHIFT|CTRL', action = act.MoveTab(5) }, 109 | { key = '7', mods = 'CTRL', action = act.ActivateTab(6) }, 110 | { key = '&', mods = 'SHIFT|CTRL', action = act.MoveTab(6) }, 111 | { key = '8', mods = 'CTRL', action = act.ActivateTab(7) }, 112 | { key = '*', mods = 'SHIFT|CTRL', action = act.MoveTab(7) }, 113 | { key = '9', mods = 'CTRL', action = act.ActivateTab(8) }, 114 | { key = '(', mods = 'SHIFT|CTRL', action = act.MoveTab(8) }, 115 | { key = '0', mods = 'CTRL', action = act.ResetFontSize }, 116 | { key = '=', mods = 'CTRL', action = act.IncreaseFontSize }, 117 | { key = '-', mods = 'CTRL', action = act.DecreaseFontSize }, 118 | { key = 'L', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackAndViewport' }, 119 | { key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-1) }, 120 | { key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(1) }, 121 | { key = 'UpArrow', mods = 'SHIFT', action = act.ScrollByLine(-1) }, 122 | { key = 'DownArrow', mods = 'SHIFT', action = act.ScrollByLine(1) }, 123 | { key = 'F', mods = 'SHIFT|CTRL', action = act.Search 'CurrentSelectionOrEmptyString' }, 124 | { key = 'C', mods = 'SHIFT|CTRL', action = act.CopyTo 'Clipboard' }, 125 | { key = 'V', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' }, 126 | { key = 'phys:Space', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode }, 127 | } 128 | 129 | -- set the default shell to zsh 130 | config.default_prog = { '/usr/bin/zsh', '-l' } 131 | config.set_environment_variables = { 132 | SHELL = '/usr/bin/zsh' 133 | } 134 | 135 | -- and finally, return the configuration to wezterm 136 | return config 137 | -------------------------------------------------------------------------------- /dot_config/zellij/layouts/basic.kdl: -------------------------------------------------------------------------------- 1 | layout { 2 | default_tab_template { 3 | pane size=1 borderless=true { 4 | plugin location="zjstatus" { 5 | format_left "#[bold]{session} " 6 | format_center "{tabs}" 7 | format_right "#[bold] {swap_layout}{mode}" 8 | 9 | mode_normal "#[fg=magenta,bold] {name}" 10 | mode_locked "#[fg=magenta,bold]" 11 | 12 | tab_normal "#[fg=#5c6370] {index} {name} " 13 | tab_normal_fullscreen "#[fg=#5c6370] {index}:{name} " 14 | tab_active "#[fg=blue,bg=#1e222a,bold] {index} #[bg=#1e222a,bold]{name} " 15 | tab_active_fullscreen "#[fg=blue,bg=#1e222a,bold] {index}:#[bg=#1e222a,bold]{name} " 16 | 17 | tab_display_count "6" 18 | tab_truncate_start_format "#[fg=red,bold] < +{count} " 19 | tab_truncate_end_format "#[fg=red,bold] +{count} >" 20 | 21 | format_hide_on_overlength "true" 22 | format_precedence "lrc" 23 | } 24 | } 25 | children 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /dot_config/zellij/layouts/basic.swap.kdl: -------------------------------------------------------------------------------- 1 | swap_tiled_layout name="vertical" { 2 | tab max_panes=5 { 3 | pane split_direction="vertical" { 4 | pane 5 | pane { children; } 6 | } 7 | } 8 | tab max_panes=8 { 9 | pane split_direction="vertical" { 10 | pane { children; } 11 | pane { pane; pane; pane; pane; } 12 | } 13 | } 14 | tab max_panes=12 { 15 | pane split_direction="vertical" { 16 | pane { children; } 17 | pane { pane; pane; pane; pane; } 18 | pane { pane; pane; pane; pane; } 19 | } 20 | } 21 | } 22 | 23 | swap_tiled_layout name="horizontal" { 24 | tab max_panes=5 { 25 | pane 26 | pane 27 | } 28 | tab max_panes=8 { 29 | pane { 30 | pane split_direction="vertical" { children; } 31 | pane split_direction="vertical" { pane; pane; pane; pane; } 32 | } 33 | } 34 | tab max_panes=12 { 35 | pane { 36 | pane split_direction="vertical" { children; } 37 | pane split_direction="vertical" { pane; pane; pane; pane; } 38 | pane split_direction="vertical" { pane; pane; pane; pane; } 39 | } 40 | } 41 | } 42 | 43 | swap_tiled_layout name="horizontal-stacked" { 44 | tab min_panes=3 { 45 | pane split_direction="horizontal" { 46 | pane 47 | pane stacked=true { children; } 48 | } 49 | } 50 | } 51 | 52 | swap_tiled_layout name="vertical-stacked" { 53 | tab min_panes=3 { 54 | pane split_direction="vertical" { 55 | pane 56 | pane stacked=true { children; } 57 | } 58 | } 59 | } 60 | 61 | swap_floating_layout name="staggered" { 62 | floating_panes 63 | } 64 | 65 | swap_floating_layout name="enlarged" { 66 | floating_panes max_panes=10 { 67 | pane { x "5%"; y 1; width "90%"; height "90%"; } 68 | pane { x "5%"; y 2; width "90%"; height "90%"; } 69 | pane { x "5%"; y 3; width "90%"; height "90%"; } 70 | pane { x "5%"; y 4; width "90%"; height "90%"; } 71 | pane { x "5%"; y 5; width "90%"; height "90%"; } 72 | pane { x "5%"; y 6; width "90%"; height "90%"; } 73 | pane { x "5%"; y 7; width "90%"; height "90%"; } 74 | pane { x "5%"; y 8; width "90%"; height "90%"; } 75 | pane { x "5%"; y 9; width "90%"; height "90%"; } 76 | pane focus=true { x 10; y 10; width "90%"; height "90%"; } 77 | } 78 | } 79 | 80 | swap_floating_layout name="spread" { 81 | floating_panes max_panes=1 { 82 | pane {y "50%"; x "50%"; } 83 | } 84 | floating_panes max_panes=2 { 85 | pane { x "1%"; y "25%"; width "45%"; } 86 | pane { x "50%"; y "25%"; width "45%"; } 87 | } 88 | floating_panes max_panes=3 { 89 | pane focus=true { y "55%"; width "45%"; height "45%"; } 90 | pane { x "1%"; y "1%"; width "45%"; } 91 | pane { x "50%"; y "1%"; width "45%"; } 92 | } 93 | floating_panes max_panes=4 { 94 | pane { x "1%"; y "55%"; width "45%"; height "45%"; } 95 | pane focus=true { x "50%"; y "55%"; width "45%"; height "45%"; } 96 | pane { x "1%"; y "1%"; width "45%"; height "45%"; } 97 | pane { x "50%"; y "1%"; width "45%"; height "45%"; } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_aqua: -------------------------------------------------------------------------------- 1 | #compdef aqua 2 | 3 | _cli_zsh_autocomplete() { 4 | local -a opts 5 | local cur 6 | cur=${words[-1]} 7 | if [[ "$cur" == "-"* ]]; then 8 | opts=("${(@f)$(${words[@]:0:#words[@]-1} ${cur} --generate-bash-completion)}") 9 | else 10 | opts=("${(@f)$(${words[@]:0:#words[@]-1} --generate-bash-completion)}") 11 | fi 12 | 13 | if [[ "${opts[1]}" != "" ]]; then 14 | _describe 'values' opts 15 | else 16 | _files 17 | fi 18 | } 19 | 20 | compdef _cli_zsh_autocomplete aqua 21 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_cheat: -------------------------------------------------------------------------------- 1 | #compdef cheat 2 | 3 | local cheats taglist pathlist 4 | 5 | _cheat_complete_personal_cheatsheets() 6 | { 7 | cheats=("${(f)$(cheat -l -t personal | tail -n +2 | cut -d' ' -f1)}") 8 | _describe -t cheats 'cheats' cheats 9 | } 10 | 11 | _cheat_complete_full_cheatsheets() 12 | { 13 | cheats=("${(f)$(cheat -l | tail -n +2 | cut -d' ' -f1)}") 14 | _describe -t cheats 'cheats' cheats 15 | } 16 | 17 | _cheat_complete_tags() 18 | { 19 | taglist=("${(f)$(cheat -T)}") 20 | _describe -t taglist 'taglist' taglist 21 | } 22 | 23 | _cheat_complete_paths() 24 | { 25 | pathlist=("${(f)$(cheat -d | cut -d':' -f1)}") 26 | _describe -t pathlist 'pathlist' pathlist 27 | } 28 | 29 | _cheat() { 30 | 31 | _arguments -C \ 32 | '(--init)--init[Write a default config file to stdout]: :->none' \ 33 | '(-c --colorize)'{-c,--colorize}'[Colorize output]: :->none' \ 34 | '(-d --directories)'{-d,--directories}'[List cheatsheet directories]: :->none' \ 35 | '(-e --edit)'{-e,--edit}'[Edit ]: :->personal' \ 36 | '(-l --list)'{-l,--list}'[List cheatsheets]: :->full' \ 37 | '(-p --path)'{-p,--path}'[Return only sheets found on path ]: :->pathlist' \ 38 | '(-r --regex)'{-r,--regex}'[Treat search as a regex]: :->none' \ 39 | '(-s --search)'{-s,--search}'[Search cheatsheets for ]: :->none' \ 40 | '(-t --tag)'{-t,--tag}'[Return only sheets matching ]: :->taglist' \ 41 | '(-T --tags)'{-T,--tags}'[List all tags in use]: :->none' \ 42 | '(-v --version)'{-v,--version}'[Print the version number]: :->none' \ 43 | '(--rm)--rm[Remove (delete) ]: :->personal' 44 | 45 | case $state in 46 | (none) 47 | ;; 48 | (full) 49 | _cheat_complete_full_cheatsheets 50 | ;; 51 | (personal) 52 | _cheat_complete_personal_cheatsheets 53 | ;; 54 | (taglist) 55 | _cheat_complete_tags 56 | ;; 57 | (pathlist) 58 | _cheat_complete_paths 59 | ;; 60 | (*) 61 | ;; 62 | esac 63 | } 64 | 65 | compdef _cheat cheat 66 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_glow: -------------------------------------------------------------------------------- 1 | #compdef glow 2 | 3 | # zsh completion for glow -*- shell-script -*- 4 | 5 | __glow_debug() 6 | { 7 | local file="$BASH_COMP_DEBUG_FILE" 8 | if [[ -n ${file} ]]; then 9 | echo "$*" >> "${file}" 10 | fi 11 | } 12 | 13 | _glow() 14 | { 15 | local shellCompDirectiveError=1 16 | local shellCompDirectiveNoSpace=2 17 | local shellCompDirectiveNoFileComp=4 18 | local shellCompDirectiveFilterFileExt=8 19 | local shellCompDirectiveFilterDirs=16 20 | 21 | local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace 22 | local -a completions 23 | 24 | __glow_debug "\n========= starting completion logic ==========" 25 | __glow_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" 26 | 27 | # The user could have moved the cursor backwards on the command-line. 28 | # We need to trigger completion from the $CURRENT location, so we need 29 | # to truncate the command-line ($words) up to the $CURRENT location. 30 | # (We cannot use $CURSOR as its value does not work when a command is an alias.) 31 | words=("${=words[1,CURRENT]}") 32 | __glow_debug "Truncated words[*]: ${words[*]}," 33 | 34 | lastParam=${words[-1]} 35 | lastChar=${lastParam[-1]} 36 | __glow_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" 37 | 38 | # For zsh, when completing a flag with an = (e.g., glow -n=) 39 | # completions must be prefixed with the flag 40 | setopt local_options BASH_REMATCH 41 | if [[ "${lastParam}" =~ '-.*=' ]]; then 42 | # We are dealing with a flag with an = 43 | flagPrefix="-P ${BASH_REMATCH}" 44 | fi 45 | 46 | # Prepare the command to obtain completions 47 | requestComp="${words[1]} __complete ${words[2,-1]}" 48 | if [ "${lastChar}" = "" ]; then 49 | # If the last parameter is complete (there is a space following it) 50 | # We add an extra empty parameter so we can indicate this to the go completion code. 51 | __glow_debug "Adding extra empty parameter" 52 | requestComp="${requestComp} \"\"" 53 | fi 54 | 55 | __glow_debug "About to call: eval ${requestComp}" 56 | 57 | # Use eval to handle any environment variables and such 58 | out=$(eval ${requestComp} 2>/dev/null) 59 | __glow_debug "completion output: ${out}" 60 | 61 | # Extract the directive integer following a : from the last line 62 | local lastLine 63 | while IFS='\n' read -r line; do 64 | lastLine=${line} 65 | done < <(printf "%s\n" "${out[@]}") 66 | __glow_debug "last line: ${lastLine}" 67 | 68 | if [ "${lastLine[1]}" = : ]; then 69 | directive=${lastLine[2,-1]} 70 | # Remove the directive including the : and the newline 71 | local suffix 72 | (( suffix=${#lastLine}+2)) 73 | out=${out[1,-$suffix]} 74 | else 75 | # There is no directive specified. Leave $out as is. 76 | __glow_debug "No directive found. Setting do default" 77 | directive=0 78 | fi 79 | 80 | __glow_debug "directive: ${directive}" 81 | __glow_debug "completions: ${out}" 82 | __glow_debug "flagPrefix: ${flagPrefix}" 83 | 84 | if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then 85 | __glow_debug "Completion received error. Ignoring completions." 86 | return 87 | fi 88 | 89 | local activeHelpMarker="_activeHelp_ " 90 | local endIndex=${#activeHelpMarker} 91 | local startIndex=$((${#activeHelpMarker}+1)) 92 | local hasActiveHelp=0 93 | while IFS='\n' read -r comp; do 94 | # Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker) 95 | if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then 96 | __glow_debug "ActiveHelp found: $comp" 97 | comp="${comp[$startIndex,-1]}" 98 | if [ -n "$comp" ]; then 99 | compadd -x "${comp}" 100 | __glow_debug "ActiveHelp will need delimiter" 101 | hasActiveHelp=1 102 | fi 103 | 104 | continue 105 | fi 106 | 107 | if [ -n "$comp" ]; then 108 | # If requested, completions are returned with a description. 109 | # The description is preceded by a TAB character. 110 | # For zsh's _describe, we need to use a : instead of a TAB. 111 | # We first need to escape any : as part of the completion itself. 112 | comp=${comp//:/\\:} 113 | 114 | local tab="$(printf '\t')" 115 | comp=${comp//$tab/:} 116 | 117 | __glow_debug "Adding completion: ${comp}" 118 | completions+=${comp} 119 | lastComp=$comp 120 | fi 121 | done < <(printf "%s\n" "${out[@]}") 122 | 123 | # Add a delimiter after the activeHelp statements, but only if: 124 | # - there are completions following the activeHelp statements, or 125 | # - file completion will be performed (so there will be choices after the activeHelp) 126 | if [ $hasActiveHelp -eq 1 ]; then 127 | if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then 128 | __glow_debug "Adding activeHelp delimiter" 129 | compadd -x "--" 130 | hasActiveHelp=0 131 | fi 132 | fi 133 | 134 | if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then 135 | __glow_debug "Activating nospace." 136 | noSpace="-S ''" 137 | fi 138 | 139 | if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then 140 | # File extension filtering 141 | local filteringCmd 142 | filteringCmd='_files' 143 | for filter in ${completions[@]}; do 144 | if [ ${filter[1]} != '*' ]; then 145 | # zsh requires a glob pattern to do file filtering 146 | filter="\*.$filter" 147 | fi 148 | filteringCmd+=" -g $filter" 149 | done 150 | filteringCmd+=" ${flagPrefix}" 151 | 152 | __glow_debug "File filtering command: $filteringCmd" 153 | _arguments '*:filename:'"$filteringCmd" 154 | elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then 155 | # File completion for directories only 156 | local subdir 157 | subdir="${completions[1]}" 158 | if [ -n "$subdir" ]; then 159 | __glow_debug "Listing directories in $subdir" 160 | pushd "${subdir}" >/dev/null 2>&1 161 | else 162 | __glow_debug "Listing directories in ." 163 | fi 164 | 165 | local result 166 | _arguments '*:dirname:_files -/'" ${flagPrefix}" 167 | result=$? 168 | if [ -n "$subdir" ]; then 169 | popd >/dev/null 2>&1 170 | fi 171 | return $result 172 | else 173 | __glow_debug "Calling _describe" 174 | if eval _describe "completions" completions $flagPrefix $noSpace; then 175 | __glow_debug "_describe found some completions" 176 | 177 | # Return the success of having called _describe 178 | return 0 179 | else 180 | __glow_debug "_describe did not find completions." 181 | __glow_debug "Checking if we should do file completion." 182 | if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then 183 | __glow_debug "deactivating file completion" 184 | 185 | # We must return an error code here to let zsh know that there were no 186 | # completions found by _describe; this is what will trigger other 187 | # matching algorithms to attempt to find completions. 188 | # For example zsh can match letters in the middle of words. 189 | return 1 190 | else 191 | # Perform file completion 192 | __glow_debug "Activating file completion" 193 | 194 | # We must return the result of this command, so it must be the 195 | # last command, or else we must store its result to return it. 196 | _arguments '*:filename:_files'" ${flagPrefix}" 197 | fi 198 | fi 199 | fi 200 | } 201 | 202 | # don't run the completion function when being source-ed or eval-ed 203 | if [ "$funcstack[1]" = "_glow" ]; then 204 | _glow 205 | fi 206 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_just: -------------------------------------------------------------------------------- 1 | #compdef just 2 | 3 | autoload -U is-at-least 4 | 5 | _just() { 6 | typeset -A opt_args 7 | typeset -a _arguments_options 8 | local ret=1 9 | 10 | if is-at-least 5.2; then 11 | _arguments_options=(-s -S -C) 12 | else 13 | _arguments_options=(-s -C) 14 | fi 15 | 16 | local context curcontext="$curcontext" state line 17 | local common=( 18 | '--chooser=[Override binary invoked by `--choose`]' \ 19 | '--color=[Print colorful output]: :(auto always never)' \ 20 | '--command-color=[Echo recipe lines in ]: :(black blue cyan green purple red yellow)' \ 21 | '--dump-format=[Dump justfile as ]: :(just json)' \ 22 | '--list-heading=[Print before list]' \ 23 | '--list-prefix=[Print before each list item]' \ 24 | '-f+[Use as justfile]' \ 25 | '--justfile=[Use as justfile]' \ 26 | '*--set[Override with ]: :_just_variables' \ 27 | '--shell=[Invoke to run recipes]' \ 28 | '*--shell-arg=[Invoke shell with as an argument]' \ 29 | '-d+[Use as working directory. --justfile must also be set]' \ 30 | '--working-directory=[Use as working directory. --justfile must also be set]' \ 31 | '-c+[Run an arbitrary command with the working directory, `.env`, overrides, and exports set]' \ 32 | '--command=[Run an arbitrary command with the working directory, `.env`, overrides, and exports set]' \ 33 | '--completions=[Print shell completion script for ]: :(zsh bash fish powershell elvish)' \ 34 | '-s+[Show information about ]: :_just_commands' \ 35 | '--show=[Show information about ]: :_just_commands' \ 36 | '(--dotenv-path)--dotenv-filename=[Search for environment file named instead of `.env`]' \ 37 | '--dotenv-path=[Load environment file at instead of searching for one]' \ 38 | '--check[Run `--fmt` in '\''check'\'' mode. Exits with 0 if justfile is formatted correctly. Exits with 1 and prints a diff if formatting is required.]' \ 39 | '(-q --quiet)-n[Print what just would do without doing it]' \ 40 | '(-q --quiet)--dry-run[Print what just would do without doing it]' \ 41 | '--highlight[Highlight echoed recipe lines in bold]' \ 42 | '--no-dotenv[Don'\''t load `.env` file]' \ 43 | '--no-highlight[Don'\''t highlight echoed recipe lines in bold]' \ 44 | '(-n --dry-run)-q[Suppress all output]' \ 45 | '(-n --dry-run)--quiet[Suppress all output]' \ 46 | '--shell-command[Invoke with the shell used to run recipe lines and backticks]' \ 47 | '--clear-shell-args[Clear shell arguments]' \ 48 | '-u[Return list and summary entries in source order]' \ 49 | '--unsorted[Return list and summary entries in source order]' \ 50 | '--unstable[Enable unstable features]' \ 51 | '*-v[Use verbose output]' \ 52 | '*--verbose[Use verbose output]' \ 53 | '--changelog[Print changelog]' \ 54 | '--choose[Select one or more recipes to run using a binary. If `--chooser` is not passed the chooser defaults to the value of $JUST_CHOOSER, falling back to `fzf`]' \ 55 | '--dump[Print justfile]' \ 56 | '-e[Edit justfile with editor given by $VISUAL or $EDITOR, falling back to `vim`]' \ 57 | '--edit[Edit justfile with editor given by $VISUAL or $EDITOR, falling back to `vim`]' \ 58 | '--evaluate[Evaluate and print all variables. If a variable name is given as an argument, only print that variable'\''s value.]' \ 59 | '--fmt[Format and overwrite justfile]' \ 60 | '--init[Initialize new justfile in project root]' \ 61 | '-l[List available recipes and their arguments]' \ 62 | '--list[List available recipes and their arguments]' \ 63 | '--summary[List names of available recipes]' \ 64 | '--variables[List names of variables]' \ 65 | '-h[Print help information]' \ 66 | '--help[Print help information]' \ 67 | '-V[Print version information]' \ 68 | '--version[Print version information]' \ 69 | ) 70 | 71 | _arguments "${_arguments_options[@]}" $common \ 72 | '1: :_just_commands' \ 73 | '*: :->args' \ 74 | && ret=0 75 | 76 | case $state in 77 | args) 78 | curcontext="${curcontext%:*}-${words[2]}:" 79 | 80 | local lastarg=${words[${#words}]} 81 | local recipe 82 | 83 | local cmds; cmds=( 84 | ${(s: :)$(_call_program commands just --summary)} 85 | ) 86 | 87 | # Find first recipe name 88 | for ((i = 2; i < $#words; i++ )) do 89 | if [[ ${cmds[(I)${words[i]}]} -gt 0 ]]; then 90 | recipe=${words[i]} 91 | break 92 | fi 93 | done 94 | 95 | if [[ $lastarg = */* ]]; then 96 | # Arguments contain slash would be recognised as a file 97 | _arguments -s -S $common '*:: :_files' 98 | elif [[ $lastarg = *=* ]]; then 99 | # Arguments contain equal would be recognised as a variable 100 | _message "value" 101 | elif [[ $recipe ]]; then 102 | # Show usage message 103 | _message "`just --show $recipe`" 104 | # Or complete with other commands 105 | #_arguments -s -S $common '*:: :_just_commands' 106 | else 107 | _arguments -s -S $common '*:: :_just_commands' 108 | fi 109 | ;; 110 | esac 111 | 112 | return ret 113 | } 114 | 115 | (( $+functions[_just_commands] )) || 116 | _just_commands() { 117 | [[ $PREFIX = -* ]] && return 1 118 | integer ret=1 119 | local variables; variables=( 120 | ${(s: :)$(_call_program commands just --unstable --variables)} 121 | ) 122 | local commands; commands=( 123 | ${${${(M)"${(f)$(_call_program commands just --unstable --list)}":# *}/ ##/}/ ##/:Args: } 124 | ) 125 | 126 | if compset -P '*='; then 127 | case "${${words[-1]%=*}#*=}" in 128 | *) _message 'value' && ret=0 ;; 129 | esac 130 | else 131 | _describe -t variables 'variables' variables -qS "=" && ret=0 132 | _describe -t commands 'just commands' commands "$@" 133 | fi 134 | 135 | } 136 | 137 | (( $+functions[_just_variables] )) || 138 | _just_variables() { 139 | [[ $PREFIX = -* ]] && return 1 140 | integer ret=1 141 | local variables; variables=( 142 | ${(s: :)$(_call_program commands just --variables)} 143 | ) 144 | 145 | if compset -P '*='; then 146 | case "${${words[-1]%=*}#*=}" in 147 | *) _message 'value' && ret=0 ;; 148 | esac 149 | else 150 | _describe -t variables 'variables' variables && ret=0 151 | fi 152 | 153 | return ret 154 | } 155 | 156 | _just "$@" 157 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_lf: -------------------------------------------------------------------------------- 1 | #compdef lf 2 | 3 | # Autocompletion for zsh shell. 4 | # 5 | # You need to rename this file to _lf and add containing folder to $fpath in 6 | # ~/.zshrc file: 7 | # 8 | # fpath=(/path/to/directory/containing/the/file $fpath) 9 | # autoload -U compinit 10 | # compinit 11 | # 12 | 13 | local arguments 14 | 15 | arguments=( 16 | '-command[command to execute on client initialization]' 17 | '-config[path to the config file (instead of the usual paths)]' 18 | '-cpuprofile[path to the file to write the CPU profile]' 19 | '-doc[show documentation]' 20 | '-last-dir-path[path to the file to write the last dir on exit (to use for cd)]' 21 | '-log[path to the log file to write messages]' 22 | '-memprofile[path to the file to write the memory profile]' 23 | '-remote[send remote command to server]' 24 | '-selection-path[path to the file to write selected files on open (to use as open file dialog)]' 25 | '-server[start server (automatic)]' 26 | '-single[start a client without server]' 27 | '-version[show version]' 28 | '-help[show help]' 29 | '*:filename:_files' 30 | ) 31 | 32 | _arguments -s $arguments 33 | -------------------------------------------------------------------------------- /dot_config/zsh/completions/_onefetch: -------------------------------------------------------------------------------- 1 | #compdef onefetch 2 | 3 | autoload -U is-at-least 4 | 5 | _onefetch() { 6 | typeset -A opt_args 7 | typeset -a _arguments_options 8 | local ret=1 9 | 10 | if is-at-least 5.2; then 11 | _arguments_options=(-s -S -C) 12 | else 13 | _arguments_options=(-s -C) 14 | fi 15 | 16 | local context curcontext="$curcontext" state line 17 | _arguments "${_arguments_options[@]}" \ 18 | '*-d+[Allows you to disable FIELD(s) from appearing in the output]:FIELD:(project description head pending version created languages dependencies authors last-change contributors url commits churn lines-of-code size license)' \ 19 | '*--disabled-fields=[Allows you to disable FIELD(s) from appearing in the output]:FIELD:(project description head pending version created languages dependencies authors last-change contributors url commits churn lines-of-code size license)' \ 20 | '--number-of-authors=[Maximum NUM of authors to be shown]:NUM: ' \ 21 | '--number-of-languages=[Maximum NUM of languages to be shown]:NUM: ' \ 22 | '--number-of-file-churns=[Maximum NUM of file churns to be shown]:NUM: ' \ 23 | '--churn-pool-size=[Minimum NUM of commits from HEAD used to compute the churn summary]:NUM: ' \ 24 | '*-e+[Ignore all files & directories matching EXCLUDE]:EXCLUDE: ' \ 25 | '*--exclude=[Ignore all files & directories matching EXCLUDE]:EXCLUDE: ' \ 26 | '--no-bots=[Exclude \[bot\] commits. Use to override the default pattern]' \ 27 | '*-T+[Filters output by language type]:TYPE:(programming markup prose data)' \ 28 | '*--type=[Filters output by language type]:TYPE:(programming markup prose data)' \ 29 | '*-t+[Changes the text colors (X X X...)]:X: ' \ 30 | '*--text-colors=[Changes the text colors (X X X...)]:X: ' \ 31 | '--number-separator=[Which thousands SEPARATOR to use]:SEPARATOR:(plain comma space underscore)' \ 32 | '--ascii-input=[Takes a non-empty STRING as input to replace the ASCII logo]:STRING:_cmdstring' \ 33 | '*-c+[Colors (X X X...) to print the ascii art]:X: ' \ 34 | '*--ascii-colors=[Colors (X X X...) to print the ascii art]:X: ' \ 35 | '-a+[Which LANGUAGE'\''s ascii art to print]:LANGUAGE:(abnf abap ada agda arduino assembly autohotkey bash c cmake c# ceylon clojure coffeescript coldfusion coq c++ crystal css d dart dockerfile emacs-lisp elixir elm emojicode erlang f# fish forth fortran fortranmodern gdscript glsl go graphql groovy haskell haxe hcl hlsl holyc html idris java javascript json jsonnet jsx julia jupyter-notebooks kotlin llvm lisp lua makefile markdown nim nix ocaml objective-c odin org pascal perl raku php powershell processing prolog protocol-buffers purescript python qml r racket renpy ruby rust sass scala scheme shell solidity sql svelte swift systemverilog tcl tex toml tsx typescript vala verilog vhdl vimscript visualbasic vue webassembly wolfram xsl xaml xml yaml zig zsh)' \ 36 | '--ascii-language=[Which LANGUAGE'\''s ascii art to print]:LANGUAGE:(abnf abap ada agda arduino assembly autohotkey bash c cmake c# ceylon clojure coffeescript coldfusion coq c++ crystal css d dart dockerfile emacs-lisp elixir elm emojicode erlang f# fish forth fortran fortranmodern gdscript glsl go graphql groovy haskell haxe hcl hlsl holyc html idris java javascript json jsonnet jsx julia jupyter-notebooks kotlin llvm lisp lua makefile markdown nim nix ocaml objective-c odin org pascal perl raku php powershell processing prolog protocol-buffers purescript python qml r racket renpy ruby rust sass scala scheme shell solidity sql svelte swift systemverilog tcl tex toml tsx typescript vala verilog vhdl vimscript visualbasic vue webassembly wolfram xsl xaml xml yaml zig zsh)' \ 37 | '--true-color=[Specify when to use true color]:WHEN:(auto never always)' \ 38 | '-i+[Path to the IMAGE file]:IMAGE:_files' \ 39 | '--image=[Path to the IMAGE file]:IMAGE:_files' \ 40 | '--image-protocol=[Which image PROTOCOL to use]:PROTOCOL:(kitty sixel iterm)' \ 41 | '--color-resolution=[VALUE of color resolution to use with SIXEL backend]:VALUE:(16 32 64 128 256)' \ 42 | '-o+[Outputs Onefetch in a specific format]:FORMAT:(json yaml)' \ 43 | '--output=[Outputs Onefetch in a specific format]:FORMAT:(json yaml)' \ 44 | '--generate=[If provided, outputs the completion file for given SHELL]:SHELL:(bash elvish fish powershell zsh)' \ 45 | '--no-title[Hides the title]' \ 46 | '--no-merges[Ignores merge commits]' \ 47 | '-E[Show the email address of each author]' \ 48 | '--email[Show the email address of each author]' \ 49 | '--include-hidden[Count hidden files and directories]' \ 50 | '-z[Use ISO 8601 formatted timestamps]' \ 51 | '--iso-time[Use ISO 8601 formatted timestamps]' \ 52 | '--no-bold[Turns off bold formatting]' \ 53 | '--no-color-palette[Hides the color palette]' \ 54 | '--no-art[Hides the ascii art or image if provided]' \ 55 | '-l[Prints out supported languages]' \ 56 | '--languages[Prints out supported languages]' \ 57 | '-p[Prints out supported package managers]' \ 58 | '--package-managers[Prints out supported package managers]' \ 59 | '-h[Print help (see more with '\''--help'\'')]' \ 60 | '--help[Print help (see more with '\''--help'\'')]' \ 61 | '-V[Print version]' \ 62 | '--version[Print version]' \ 63 | '::input -- Run as if onefetch was started in instead of the current working directory:_files -/' \ 64 | && ret=0 65 | } 66 | 67 | (( $+functions[_onefetch_commands] )) || 68 | _onefetch_commands() { 69 | local commands; commands=() 70 | _describe -t commands 'onefetch commands' commands "$@" 71 | } 72 | 73 | if [ "$funcstack[1]" = "_onefetch" ]; then 74 | _onefetch "$@" 75 | else 76 | compdef _onefetch onefetch 77 | fi 78 | -------------------------------------------------------------------------------- /dot_config/zsh/dot_zshrc: -------------------------------------------------------------------------------- 1 | # .zshrc 2 | 3 | _zsh_compile() { 4 | local f 5 | for f; do 6 | zcompile -R -- "$f".zwc "$f" 7 | done 8 | } 9 | 10 | # Install plugins 11 | _zsh_plugins_installation() { 12 | unset -f "$0" 13 | 14 | # Suppress printing when launching background jobs: 15 | setopt no_notify local_options 16 | setopt no_monitor local_options 17 | 18 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 19 | local zsh_configs="${xdg_config_home}/zsh" 20 | local zsh_plugins="${zsh_configs}/plugins" 21 | local file 22 | for file in ${zsh_plugins}/*.install.zsh(.N); do 23 | "$file" & 24 | done 25 | # TODO: add an installer and loader for https://github.com/marlonrichert/zsh-autocomplete 26 | wait 27 | jobs > /dev/null 28 | } 29 | _zsh_plugins_installation 30 | 31 | # Perform partial integration of direnv before the instant prompt 32 | _zsh_integrations_pre() { 33 | unset -f "$0" 34 | 35 | # Set env vars so that aqua will provide direnv if needed 36 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 37 | local bash_configs="${xdg_config_home}/bash" 38 | local bash_integrations="${bash_configs}/integrations" 39 | if [ -f "${bash_integrations}/1-aqua.sh" ]; then 40 | source "${bash_integrations}/1-aqua.sh" 41 | fi 42 | 43 | # Set up direnv for instant prompt 44 | if command -v direnv &> /dev/null; then 45 | eval "$(direnv export zsh)" 46 | fi 47 | } 48 | _zsh_integrations_pre 49 | 50 | # Activate powerlevel10k instant prompt 51 | _zsh_instant_prompt() { 52 | unset -f "$0" 53 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 54 | 55 | if [[ -r "${xdg_cache_home}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then 56 | source "${xdg_cache_home}/p10k-instant-prompt-${(%):-%n}.zsh" 57 | fi 58 | } 59 | _zsh_instant_prompt 60 | # Note: after this line, nothing is allowed to use stdin! 61 | 62 | # Set up completions 63 | _zsh_completions() { 64 | unset -f "$0" 65 | 66 | # Add local completions 67 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 68 | local zsh_configs="${xdg_config_home}/zsh" 69 | fpath=("${zsh_configs}/completions" $fpath) 70 | 71 | # Add third-party completions 72 | local zsh_plugins="${zsh_configs}/plugins" 73 | local file 74 | for file in ${zsh_plugins}/*.completions.zsh(.N); do 75 | source "$file" 76 | done 77 | 78 | # Configure completion caching 79 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 80 | local zsh_cache="${xdg_cache_home}/zsh" 81 | zstyle ':completion:*' cache-path "${zsh_cache}/zcompcache" 82 | 83 | # Add more completion configuration 84 | zmodload zsh/complist # must be loaded before compinit 85 | bindkey -M menuselect 'h' vi-backward-char 86 | bindkey -M menuselect 'k' vi-up-line-or-history 87 | bindkey -M menuselect 'l' vi-forward-char 88 | bindkey -M menuselect 'j' vi-down-line-or-history 89 | 90 | # Compile completions 91 | local zsh_compdump="${zsh_cache}/zcompdump" 92 | autoload -Uz compinit && compinit -d "$zsh_compdump" 93 | if ! [[ "${zsh_compdump}.zwc" -nt "$zsh_compdump" ]]; then 94 | _zsh_compile "$zsh_compdump" 95 | fi 96 | 97 | # Add bash completions 98 | autoload -Uz bashcompinit 99 | bashcompinit 100 | } 101 | _zsh_completions 102 | 103 | unset -f _zsh_compile 104 | 105 | # Load plugins 106 | ZSH_AUTOSUGGEST_MANUAL_REBIND=1 107 | _zsh_plugins_loading() { 108 | unset -f "$0" 109 | 110 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 111 | local zsh_configs="${xdg_config_home}/zsh" 112 | local zsh_plugins="${zsh_configs}/plugins" 113 | local file 114 | for file in ${zsh_plugins}/*.load.zsh(.N); do 115 | source "$file" 116 | done 117 | } 118 | _zsh_plugins_loading 119 | 120 | # Set up integrations after instant prompt 121 | _zsh_integrations_post() { 122 | unset -f "$0" 123 | 124 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 125 | local bash_configs="${xdg_config_home}/bash" 126 | local bash_integrations="${bash_configs}/integrations" 127 | local file 128 | for file in ${bash_integrations}/*.sh(.N); do 129 | source "$file" 130 | done 131 | 132 | local zsh_configs="${xdg_config_home}/zsh" 133 | local zsh_integrations="${zsh_configs}/integrations" 134 | for file in ${zsh_integrations}/*.zsh(.N); do 135 | source "$file" 136 | done 137 | } 138 | _zsh_integrations_post 139 | 140 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/20-distrobox-host.zsh: -------------------------------------------------------------------------------- 1 | command_not_found_handler() { 2 | command_not_found_handle "$@" 3 | } 4 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/30-distrobox.zsh: -------------------------------------------------------------------------------- 1 | for file in /usr/share/bash-completion/completions/distrobox*(.N); do 2 | source "$file" 3 | done 4 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/30-marktext.zsh: -------------------------------------------------------------------------------- 1 | compdef _files marktext 2 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/40-atuin.zsh: -------------------------------------------------------------------------------- 1 | if command -v atuin &> /dev/null; then 2 | eval "$(atuin init zsh)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/40-direnv.zsh: -------------------------------------------------------------------------------- 1 | if command -v direnv &> /dev/null; then 2 | eval "$(direnv hook zsh)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/zsh/integrations/40-zoxide.zsh: -------------------------------------------------------------------------------- 1 | if command -v zoxide &> /dev/null; then 2 | eval "$(zoxide init zsh)" 3 | fi 4 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/0-zsh-completions.completions.zsh: -------------------------------------------------------------------------------- 1 | _zsh_plugins_zsh-completions_add() { 2 | unset -f "$0" 3 | 4 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 5 | local cached_plugin="${xdg_cache_home}/zsh/plugins/zsh-completions" 6 | export fpath=("${cached_plugin}/src" $fpath) 7 | } 8 | _zsh_plugins_zsh-completions_add 9 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/20-zsh-syntax-highlighting.load.zsh: -------------------------------------------------------------------------------- 1 | _zsh_plugins_zsh-syntax-highlighting_load() { 2 | unset -f "$0" 3 | 4 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 5 | local cached_plugin="${xdg_cache_home}/zsh/plugins/zsh-syntax-highlighting" 6 | source "${cached_plugin}/zsh-syntax-highlighting.zsh" 7 | } 8 | _zsh_plugins_zsh-syntax-highlighting_load 9 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/30-zsh-autosuggestions.load.zsh: -------------------------------------------------------------------------------- 1 | _zsh_plugins_zsh-autosuggestions_load() { 2 | unset -f "$0" 3 | 4 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 5 | local cached_plugin="${xdg_cache_home}/zsh/plugins/zsh-autosuggestions" 6 | source "${cached_plugin}/zsh-autosuggestions.zsh" 7 | } 8 | _zsh_plugins_zsh-autosuggestions_load 9 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/40-zsh-vim-mode.load.zsh: -------------------------------------------------------------------------------- 1 | _zsh_plugins_zsh-vim-mode_load() { 2 | unset -f "$0" 3 | 4 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 5 | local cached_plugin="${xdg_cache_home}/zsh/plugins/zsh-vim-mode" 6 | source "${cached_plugin}/zsh-vim-mode.plugin.zsh" 7 | bindkey -rpM viins '^[^[' # make go to normal mode immediately 8 | bindkey -M viins "^[[3;5~" kill-word # make Ctrl+Delete work 9 | bindkey -M vicmd "^[[3;5~" kill-word # make Ctrl+Delete work 10 | MODE_CURSOR_VIINS='fg steady bar' 11 | } 12 | _zsh_plugins_zsh-vim-mode_load 13 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/50-powerlevel10k.load.zsh: -------------------------------------------------------------------------------- 1 | _zsh_plugins_powerlevel10k_load() { 2 | unset -f "$0" 3 | 4 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 5 | local cached_plugin="${xdg_cache_home}/zsh/plugins/powerlevel10k" 6 | source "${cached_plugin}/powerlevel10k.zsh-theme" 7 | 8 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 9 | local zsh_configs="${xdg_config_home}/zsh" 10 | if [[ -f "${zsh_configs}/p10k.zsh" ]]; then 11 | source "${zsh_configs}/p10k.zsh" 12 | fi 13 | } 14 | _zsh_plugins_powerlevel10k_load 15 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/executable_0-zsh-completions.install.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plugin_name="zsh-completions" 4 | build() { 5 | } 6 | 7 | # Boilerplate: 8 | script_path="${0:A:h}" 9 | source "${script_path}/installer-utils.zsh" 10 | _install_from_zsh_configs "$plugin_name" build 11 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/executable_20-zsh-syntax-highlighting.install.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plugin_name="zsh-syntax-highlighting" 4 | build() { 5 | local cached_plugin="$1" 6 | 7 | _zsh_compile ${cached_plugin}/{zsh-syntax-highlighting.zsh,highlighters/*/*.zsh} 8 | } 9 | 10 | # Boilerplate: 11 | script_path="${0:A:h}" 12 | source "${script_path}/installer-utils.zsh" 13 | _install_from_zsh_configs "$plugin_name" build 14 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/executable_30-zsh-autosuggestions.install.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plugin_name="zsh-autosuggestions" 4 | build() { 5 | local cached_plugin="$1" 6 | 7 | _zsh_compile ${cached_plugin}/{zsh-autosuggestions.zsh,src/**/*.zsh} 8 | } 9 | 10 | # Boilerplate: 11 | script_path="${0:A:h}" 12 | source "${script_path}/installer-utils.zsh" 13 | _install_from_zsh_configs "$plugin_name" build 14 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/executable_40-zsh-vim-mode.install.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plugin_name="zsh-vim-mode" 4 | build() { 5 | local cached_plugin="$1" 6 | 7 | _zsh_compile ${cached_plugin}/zsh-vim-mode.plugin.zsh 8 | } 9 | 10 | # Boilerplate: 11 | script_path="${0:A:h}" 12 | source "${script_path}/installer-utils.zsh" 13 | _install_from_zsh_configs "$plugin_name" build 14 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/executable_50-powerlevel10k.install.zsh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | plugin_name="powerlevel10k" 4 | build() { 5 | local cached_plugin="$1" 6 | 7 | make -C "$cached_plugin" pkg &> /dev/null 8 | } 9 | 10 | # Boilerplate: 11 | script_path="${0:A:h}" 12 | source "${script_path}/installer-utils.zsh" 13 | _install_from_zsh_configs "$plugin_name" build 14 | -------------------------------------------------------------------------------- /dot_config/zsh/plugins/installer-utils.zsh: -------------------------------------------------------------------------------- 1 | # _install_from_zsh_configs will copy the specified plugin directory from ~/.config/zsh/plugins to 2 | # ~/.cache/zsh/plugins if needed, and then invoke the builder command with the path of the 3 | # cached plugin in ~/.cache/zsh/plugins . 4 | _install_from_zsh_configs() { 5 | local plugin_name="$1" 6 | local builder="$2" 7 | 8 | local xdg_config_home="${XDG_CONFIG_HOME:-$HOME/.config}" 9 | local plugin="${xdg_config_home}/zsh/plugins/${plugin_name}" 10 | if ! [[ -d "$plugin" ]]; then 11 | return 12 | fi 13 | local xdg_cache_home="${XDG_CACHE_HOME:-$HOME/.cache}" 14 | local cached_plugin="${xdg_cache_home}/zsh/plugins/${plugin_name}" 15 | if [[ -d "$cached_plugin" ]]; then 16 | return 17 | fi 18 | 19 | echo "Rebuilding cached plugin ${plugin_name}..." 20 | mkdir -p "$cached_plugin" 21 | cp -rT "$plugin" "$cached_plugin" 22 | "$builder" "$cached_plugin" 23 | } 24 | 25 | _zsh_compile() { 26 | local f 27 | for f; do 28 | zcompile -R -- "$f".zwc "$f" 29 | done 30 | } 31 | -------------------------------------------------------------------------------- /dot_gitconfig: -------------------------------------------------------------------------------- 1 | [filter "lfs"] 2 | clean = git-lfs clean -- %f 3 | smudge = git-lfs smudge -- %f 4 | process = git-lfs filter-process 5 | required = true 6 | [user] 7 | name = Ethan Li 8 | email = lietk12@gmail.com 9 | signingkey = /home/lietk12/.ssh/id_ed25519.pub 10 | [global] 11 | [credential] 12 | helper = cache 13 | helper = 14 | helper = /home/lietk12/.local/share/aquaproj-aqua/bin/git-credential-manager 15 | credentialStore = secretservice 16 | [diff] 17 | context = 5 18 | [commit] 19 | gpgsign = true 20 | [tag] 21 | forceSignAnnotated = true 22 | [gpg] 23 | format = ssh 24 | [gpg "ssh"] 25 | allowedSignersFile = /var/home/lietk12/.ssh/allowed_signers 26 | [credential "https://dev.azure.com"] 27 | useHttpPath = true 28 | [push] 29 | default = current 30 | autoSetupRemote = true 31 | [init] 32 | defaultBranch = main 33 | -------------------------------------------------------------------------------- /dot_gtkrc-2.0-kde4: -------------------------------------------------------------------------------- 1 | gtk-sound-theme-name="ocean" 2 | gtk-enable-animations=1 3 | gtk-primary-button-warps-slider=1 4 | gtk-toolbar-style=3 5 | gtk-menu-images=1 6 | gtk-button-images=1 7 | gtk-cursor-theme-size=24 8 | gtk-cursor-theme-name="PearDarkCursors" 9 | gtk-icon-theme-name="breeze-dark" 10 | gtk-font-name="Atkinson Hyperlegible, 11" 11 | include "/usr/share/themes/Adwaita/gtk-2.0/gtkrc" 12 | 13 | gtk-theme-name="Breeze-Dark" 14 | 15 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/alias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/alias -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/all-scroll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/all-scroll -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/bottom_left_corner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/bottom_left_corner -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/bottom_right_corner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/bottom_right_corner -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/bottom_side: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/bottom_side -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/cell: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/cell -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/center_ptr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/center_ptr -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/col-resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/col-resize -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/color-picker: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/color-picker -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/context-menu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/context-menu -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/copy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/copy -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/crosshair: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/crosshair -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/default: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/default -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/dnd-move: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/dnd-move -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/dnd-no-drop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/dnd-no-drop -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/down-arrow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/down-arrow -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/draft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/draft -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/fleur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/fleur -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/help: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/help -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/left-arrow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/left-arrow -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/left_side: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/left_side -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/no-drop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/no-drop -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/not-allowed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/not-allowed -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/openhand: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/openhand -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/pencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/pencil -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/pirate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/pirate -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/pointer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/pointer -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/progress: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/progress -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/right-arrow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/right-arrow -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/right_ptr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/right_ptr -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/right_side: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/right_side -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/row-resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/row-resize -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/size_bdiag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/size_bdiag -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/size_fdiag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/size_fdiag -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/size_hor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/size_hor -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/size_ver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/size_ver -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_00000000000000020006000e7e9ffc3f: -------------------------------------------------------------------------------- 1 | progress 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_00008160000006810000408080010102: -------------------------------------------------------------------------------- 1 | size_ver 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_03b6e0fcb3499374a867c041f52298f0: -------------------------------------------------------------------------------- 1 | circle 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_08e8e1c95fe2fc01f976f1e063a24ccd: -------------------------------------------------------------------------------- 1 | progress 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_1081e37283d90000800003c07f3ef6bf: -------------------------------------------------------------------------------- 1 | copy 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_3085a0e285430894940527032f8b26df: -------------------------------------------------------------------------------- 1 | alias 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_3ecb610c1bf2410f44200f48c40d3599: -------------------------------------------------------------------------------- 1 | progress 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_4498f0e0c1937ffe01fd06f973665830: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_5c6cd98b3f3ebcb1f9c7f1c204630408: -------------------------------------------------------------------------------- 1 | help 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_6407b0e94181790501fd1e167b474872: -------------------------------------------------------------------------------- 1 | copy 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_640fb0e74195791501fd1ed57b41487f: -------------------------------------------------------------------------------- 1 | alias 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_9081237383d90e509aa00f00170e968f: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_9d800788f1b08800ae810202380a0822: -------------------------------------------------------------------------------- 1 | pointer 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_a2a266d0498c3104214a47bd64ab0fc8: -------------------------------------------------------------------------------- 1 | alias 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_b66166c04f8c3109214a4fbd64a50fc8: -------------------------------------------------------------------------------- 1 | copy 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_circle: -------------------------------------------------------------------------------- 1 | not-allowed 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_closedhand: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_cross: -------------------------------------------------------------------------------- 1 | crosshair 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_crossed_circle: -------------------------------------------------------------------------------- 1 | not-allowed 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_d9ce0ab605698f320427677b458ad60b: -------------------------------------------------------------------------------- 1 | help 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_dnd-copy: -------------------------------------------------------------------------------- 1 | copy 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_dnd-none: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_e-resize: -------------------------------------------------------------------------------- 1 | size_hor 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_e29285e634086352946a0e7090d73106: -------------------------------------------------------------------------------- 1 | pointer 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_fcf21c00b30f7e3f83fe0dfd12e71cff: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_forbidden: -------------------------------------------------------------------------------- 1 | no-drop 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_h_double_arrow: -------------------------------------------------------------------------------- 1 | size_hor 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_half-busy: -------------------------------------------------------------------------------- 1 | progress 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_hand1: -------------------------------------------------------------------------------- 1 | pointer 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_hand2: -------------------------------------------------------------------------------- 1 | pointer 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_ibeam: -------------------------------------------------------------------------------- 1 | text 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_left_ptr: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_left_ptr_help: -------------------------------------------------------------------------------- 1 | help 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_left_ptr_watch: -------------------------------------------------------------------------------- 1 | progress 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_link: -------------------------------------------------------------------------------- 1 | alias 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_move: -------------------------------------------------------------------------------- 1 | dnd-move 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_n-resize: -------------------------------------------------------------------------------- 1 | size_ver 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_plus: -------------------------------------------------------------------------------- 1 | cell 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_pointing_hand: -------------------------------------------------------------------------------- 1 | pointer 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_question_arrow: -------------------------------------------------------------------------------- 1 | help 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_s-resize: -------------------------------------------------------------------------------- 1 | size_ver 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_sb_h_double_arrow: -------------------------------------------------------------------------------- 1 | size_hor 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_sb_v_double_arrow: -------------------------------------------------------------------------------- 1 | size_ver 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_size-bdiag: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_size-fdiag: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_size-hor: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_size-ver: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_size_all: -------------------------------------------------------------------------------- 1 | fleur 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_split_h: -------------------------------------------------------------------------------- 1 | col-resize 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_split_v: -------------------------------------------------------------------------------- 1 | row-resize 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_top_left_arrow: -------------------------------------------------------------------------------- 1 | default 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_v_double_arrow: -------------------------------------------------------------------------------- 1 | size_ver 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_w-resize: -------------------------------------------------------------------------------- 1 | size_hor 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_watch: -------------------------------------------------------------------------------- 1 | wait 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_whats_this: -------------------------------------------------------------------------------- 1 | help 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/symlink_xterm: -------------------------------------------------------------------------------- 1 | text 2 | -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/text -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/top_left_corner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/top_left_corner -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/top_right_corner: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/top_right_corner -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/top_side: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/top_side -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/up-arrow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/up-arrow -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/vertical-text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/vertical-text -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/wait: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/wait -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/wayland-cursor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/wayland-cursor -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/x-cursor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/x-cursor -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/zoom-in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/zoom-in -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/cursors/zoom-out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_icons/PearDarkCursors/cursors/zoom-out -------------------------------------------------------------------------------- /dot_icons/PearDarkCursors/executable_cursor.theme: -------------------------------------------------------------------------------- 1 | [Icon Theme] 2 | Name=PearDarkCursors 3 | Comment=Vibrance variation from Breeze cursors 4 | Inherits=breeze 5 | -------------------------------------------------------------------------------- /dot_local/bin/executable_attach-zellij.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # This script allows the user to attach to an existing or new Zellij session; if the user chooses 3 | # not to attach any Zellij session, it will instead start a login shell (chosen using $SHELL). 4 | 5 | if command -v zellij &> /dev/null && [ -z "${ZELLIJ}" ]; then 6 | zellij_sessions=$(zellij list-sessions --short --reverse) 7 | num_sessions=$(echo "${zellij_sessions}" | wc -l) 8 | if [ "${num_sessions}" -eq 0 ] && gum confirm "Start a new Zellij session?"; then 9 | zellij attach -c 10 | else 11 | echo 12 | echo " Attach to a Zellij session?" 13 | chosen_session=$(printf "(don't attach)\n(new session)\n%s" "${zellij_sessions}" | \ 14 | GUM_FILTER_HEADER_FOREGROUND="007" gum filter --header=' Attach to a Zellij session?') 15 | if [[ "${chosen_session}" == "(don't attach)" ]] || [[ "${chosen_session}" == "" ]]; then 16 | $SHELL --login 17 | elif [[ "${chosen_session}" == "(new session)" ]]; then 18 | zellij attach -c "$(gum input --placeholder "Name of new session")" 19 | else 20 | zellij attach "${chosen_session}" 21 | fi 22 | fi 23 | fi 24 | -------------------------------------------------------------------------------- /dot_local/bin/executable_batpager.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # This script is needed to allow lf to use bat as a pager via $PAGER. 3 | 4 | bat --pager="less" --paging="always" "$@" 5 | -------------------------------------------------------------------------------- /dot_local/bin/executable_nvim-open: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | server="$1" 4 | shift 5 | echo "$server" >"${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-last-server" 6 | nvim --server "${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-server-$server" --remote "$@" 7 | -------------------------------------------------------------------------------- /dot_local/bin/executable_nvim-open-last: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | server="$(cat "${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-last-server")" 4 | echo "Opening in server $server..." 5 | nvim --server "${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-server-$server" --remote $@ 6 | -------------------------------------------------------------------------------- /dot_local/bin/executable_nvim-server: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | server="$1" 4 | shift 5 | echo "$server" > "${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-last-server" 6 | nvim --listen "${XDG_RUNTIME_DIR:-$HOME/.cache/nvim}/nvim-server-$server" $@ 7 | -------------------------------------------------------------------------------- /dot_local/bin/executable_run-in-zsh.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env -S zsh -i 2 | # This script runs the specified binary in an interactive zsh session (so that dotfiles are loaded), 3 | # forwarding all command-line arguments to the binary in an exact manner. 4 | 5 | $@ 6 | -------------------------------------------------------------------------------- /dot_local/share/applications/private_LF.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Comment=Terminal file manager 3 | Exec=~/.local/bin/run-in-zsh.sh lf %u 4 | GenericName=File Manager 5 | Icon=system-file-manager 6 | Keywords=files;file management;file browsing;Explorer;Finder; 7 | MimeType=inode/directory; 8 | Name=LF 9 | NoDisplay=false 10 | Path= 11 | StartupNotify=true 12 | StartupWMClass=lf 13 | Terminal=true 14 | TerminalOptions= 15 | Type=Application 16 | X-KDE-SubstituteUID=false 17 | X-KDE-Username= 18 | -------------------------------------------------------------------------------- /dot_local/share/applications/private_Lazygit.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Comment=Simple Git TUI 3 | Exec=~/.local/bin/run-in-zsh.sh lazygit -p %u 4 | GenericName=Git TUI 5 | Icon=preferences-git 6 | Keywords=git 7 | MimeType=inode/directory; 8 | Name=Lazygit 9 | NoDisplay=false 10 | Path= 11 | StartupNotify=true 12 | StartupWMClass=lazygit 13 | Terminal=true 14 | TerminalOptions= 15 | Type=Application 16 | X-KDE-SubstituteUID=false 17 | X-KDE-Username= 18 | -------------------------------------------------------------------------------- /dot_local/share/applications/private_Neovim.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Comment=hyperextensible Vim-based text editor 3 | Exec=~/.local/bin/run-in-zsh.sh nvim -- %F 4 | GenericName=Text Editor 5 | Icon=/var/home/lietk12/.local/share/icons/applications/neovim.png 6 | Keywords=text;txt;editor;programming;programmer;development;developer;code; 7 | MimeType=text/plain;inode/directory; 8 | Name=Neovim 9 | NoDisplay=false 10 | Path= 11 | StartupNotify=true 12 | StartupWMClass=nvim 13 | Terminal=true 14 | TerminalOptions= 15 | Type=Application 16 | X-KDE-SubstituteUID=false 17 | X-KDE-Username= 18 | -------------------------------------------------------------------------------- /dot_local/share/applications/private_Zellij.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Comment=Zellij session selector 3 | Exec=~/.local/bin/attach-zellij.sh 4 | GenericName=Terminal Multiplexer 5 | Icon=/var/home/lietk12/.local/share/icons/applications/zellij.png 6 | Name=Zellij 7 | NoDisplay=false 8 | Path= 9 | StartupNotify=true 10 | Terminal=true 11 | TerminalOptions= 12 | Type=Application 13 | X-KDE-SubstituteUID=false 14 | X-KDE-Username= 15 | -------------------------------------------------------------------------------- /dot_local/share/aquaproj-aqua/policies/home/lietk12/dot_config/aquaproj-aqua/aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - type: standard 6 | ref: semver(">= 3.0.0") 7 | - name: ethanjli/dotfiles 8 | type: github_content 9 | repo_owner: ethanjli 10 | repo_name: dotfiles 11 | path: aqua-registry.yaml 12 | packages: 13 | - registry: standard 14 | - registry: ethanjli/dotfiles 15 | -------------------------------------------------------------------------------- /dot_local/share/aquaproj-aqua/policies/home/lietk12/dot_local/share/chezmoi/aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - name: local 6 | type: local 7 | path: aqua-registry.yaml 8 | - type: standard 9 | ref: semver(">= 3.0.0") 10 | packages: 11 | - registry: local 12 | - registry: standard 13 | -------------------------------------------------------------------------------- /dot_local/share/aquaproj-aqua/policies/var/home/lietk12/dot_config/aquaproj-aqua/aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - type: standard 6 | ref: semver(">= 3.0.0") 7 | - name: ethanjli/dotfiles 8 | type: github_content 9 | repo_owner: ethanjli 10 | repo_name: dotfiles 11 | path: aqua-registry.yaml 12 | packages: 13 | - registry: standard 14 | - registry: ethanjli/dotfiles 15 | -------------------------------------------------------------------------------- /dot_local/share/aquaproj-aqua/policies/var/home/lietk12/dot_local/share/chezmoi/aqua-policy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # aqua Policy 3 | # https://aquaproj.github.io/ 4 | registries: 5 | - name: local 6 | type: local 7 | path: aqua-registry.yaml 8 | - type: standard 9 | ref: semver(">= 3.0.0") 10 | packages: 11 | - registry: local 12 | - registry: standard 13 | -------------------------------------------------------------------------------- /dot_local/share/flatpak/overrides/com.github.flxzt.rnote: -------------------------------------------------------------------------------- 1 | [Context] 2 | filesystems=~/Dropbox/Drawings 3 | -------------------------------------------------------------------------------- /dot_local/share/flatpak/overrides/com.google.Chrome: -------------------------------------------------------------------------------- 1 | [Context] 2 | filesystems=~/.local/share/icons;~/.local/share/applications;home 3 | -------------------------------------------------------------------------------- /dot_local/share/flatpak/overrides/com.visualstudio.code: -------------------------------------------------------------------------------- 1 | [Context] 2 | sockets=wayland; 3 | filesystems=xdg-run/podman; 4 | -------------------------------------------------------------------------------- /dot_local/share/flatpak/overrides/global: -------------------------------------------------------------------------------- 1 | [Context] 2 | filesystems=xdg-config/gtk-4.0:ro;~/.icons:ro; 3 | unset-environment=QT_QPA_PLATFORMTHEME; 4 | 5 | [Environment] 6 | QT_QPA_PLATFORMTHEME= 7 | USE_POINTER_VIEWPORT=1 8 | -------------------------------------------------------------------------------- /dot_local/share/flatpak/overrides/org.kde.kdenlive: -------------------------------------------------------------------------------- 1 | [Context] 2 | filesystems=~/Projects/Art 3 | -------------------------------------------------------------------------------- /dot_local/share/icons/applications/distrobox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/icons/applications/distrobox.png -------------------------------------------------------------------------------- /dot_local/share/icons/applications/fedora-icon-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 28 | 29 | 47 | 52 | 53 | -------------------------------------------------------------------------------- /dot_local/share/icons/applications/fedora-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/icons/applications/fedora-logo.png -------------------------------------------------------------------------------- /dot_local/share/icons/applications/neovim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/icons/applications/neovim.png -------------------------------------------------------------------------------- /dot_local/share/icons/applications/zellij.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/icons/applications/zellij.png -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/colorschemes.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | One Dark Colours 6 | https://api.kde-look.org/ocs/v1/ 7 | prayagjain 8 | https://store.kde.org/p/1571635 9 | 10 | v1 11 | 64 12 | 13288 13 | /home/lietk12/.local/share/color-schemes/One-Dark-Blue.colors 14 | /home/lietk12/.local/share/color-schemes/One-Dark-Green.colors 15 | /home/lietk12/.local/share/color-schemes/One-Dark-Red.colors 16 | /home/lietk12/.local/share/color-schemes/One-Dark-Yellow.colors 17 | 1571635 18 | 2021-08-09 19 | -----<br /> 20 | Window Decorations/Aurorae Theme: https://www.pling.com/p/1571643/<br /> 21 | Icons: https://www.pling.com/p/1281798<br /> 22 | Wallpapers: https://www.pling.com/p/1571655/<br /> 23 | -----<br /> 24 | 4 dark colour schemes based on the "One Dark" colour palette! 25 | 26 | https://images.pling.com/cache/100x100-0/img/00/00/60/43/39/1571635/8990b50961dff436a86fcea8e3f3f18a5b358909fd36a16b07d3fa10b9500c3cebeb.png 27 | https://images.pling.com/cache/770x540-0/img/00/00/60/43/39/1571635/8990b50961dff436a86fcea8e3f3f18a5b358909fd36a16b07d3fa10b9500c3cebeb.png 28 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE2Mjg1MzIyNTAiLCJvIjoiMSIsInMiOiI5NTE5NGNlNWUzNmY2YThhZDFjNGIzNjI1OTU5MTJkYTg2ZDRiN2QwYTgwZGE0NzhkMWM2OTViMjhhYTZiZDkyNDMyZjBjMTU1Mzg4Zjk0MDEyNDZmMjZkNjdhYTRlNGM0NzI5Yjg0YjRiMzZjZDFhNTY2OTZjZTNiNTIwNTNlYiIsInQiOjE2OTk1NjkzMDUsInN0ZnAiOm51bGwsInN0aXAiOiIxMjguMTIuMTIyLjUzIn0.aGbIw01CaD4tSEq6uOopUXBwcVe1YzKdB-im6nwnuKk/One-Dark.tar.gz 29 | theme,unix,efi,gplv3,colorscheme,kde,linux,plasma 30 | installed 31 | 32 | 33 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/konsole.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Dark One Nuanced 6 | https://api.kde-look.org/ocs/v1/ 7 | ariasuni 8 | https://store.kde.org/p/1225908 9 | 10 | 1.1.0 11 | 69 12 | 20715 13 | /home/lietk12/.local/share/konsole/DarkOneNuanced.colorscheme 14 | 1225908 15 | 2018-03-30 16 | A port of Atom’s Dark One syntax theme for Konsole .<br /> 17 | <br /> 18 | Unlike many other port of Dark One:<br /> 19 | <br /> 20 | – Dark and white colors are adapted for terminal use<br /> 21 | – Other base color are exactly the same<br /> 22 | – Every color has a bright and a dim variant<br /> 23 | <br /> 24 | Programs... 25 | 26 | https://images.pling.com/cache/100x100-0/img/00/00/49/05/85/1225908/bbeb51e7676a67843b9b3c608190a8631b4a.png 27 | https://images.pling.com/cache/770x540-0/img/00/00/49/05/85/1225908/bbeb51e7676a67843b9b3c608190a8631b4a.png 28 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE1MjI0MjQzNDciLCJvIjoiMSIsInMiOiIxYmIwNWVlNjA4YmNmYzE0NzNmNDNlMTA3ZTAzMzkwYWM4NWZkMjE3NmFlYTQwYTZlNzQ1YTc2NjU1ZGU4MjQ2NmFhN2ZiZTk5M2Q5MDFlNWI0ZmZlNjY4MzA0OGU1OWQ1ZjI2MDBlOTFiOTgxODBlMWM2ZDY3MjMzNDgzYmVkZiIsInQiOjE2OTkzNDA2MjYsInN0ZnAiOm51bGwsInN0aXAiOiIxMjguMTIuMTIyLjg4In0.Z6QTYnZOqP199nYazvaMvpuag0SgohtvMq30Qk4cUNo/DarkOneNuanced-1.1.0.tar.gz 29 | gplv3,addon 30 | installed 31 | 32 | 33 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/kwinscripts.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/plasma-themes.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Arch 6 | https://api.kde-look.org/ocs/v1/ 7 | rkstrdee 8 | https://store.kde.org/p/1540609 9 | 10 | 1.1.0 11 | 58 12 | 47725 13 | /home/lietk12/.local/share/plasma/desktoptheme/Arch 14 | 1540609 15 | 2021-07-19 16 | KDE Plasma theme <br /> 17 | You'll need plasma 5.22 or above to enjoy full features like opaque/adaptive/translucent.<br /> 18 | To enable Glass effect go to settings -&gt; Desktop Effects -&gt; uncheck "Background Contrast"<br /> 19 | To disable Glass effect/change current theme go to settings -&gt; Desktop... 20 | 21 | https://images.pling.com/cache/100x100-0/img/00/00/61/50/12/1540609/95fd05ce442ff2cffa4e0bdbf59161a3fdf68848fddc9bc1a25dc754d29ea0024519.png 22 | https://images.pling.com/cache/770x540-0/img/00/00/61/50/12/1540609/95fd05ce442ff2cffa4e0bdbf59161a3fdf68848fddc9bc1a25dc754d29ea0024519.png 23 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE2MjY3MDA4MzIiLCJvIjoiMSIsInMiOiI5MzJiZjcxYWNmYThkZTdlODM3MzQ4NmNmNmYwYjFmNjA5NzhmNDdkZDExN2VhMDE3ZmJhMWYxMjk2OTIwNjk3ZWU2NDc0M2Q3NDBhMDI2OTdkOGJmMzVhY2MxNWY1NThkMDU5YzE0MzYyZTVmNDMwMzBmMjFlYTU4OWIxNzFmNSIsInQiOjE3MDM3MjAxOTcsInN0ZnAiOm51bGwsInN0aXAiOiIxMjguMTIuMTIzLjg4In0.ZgUiC62YJuYFdyD4UwAWCRRzd5-Wq62KDRCGyrc9ClY/Arch.tar.gz 24 | gplv2-later,efi,theme,unix,plasma,kde,linux,plasma##majorversion=4,plasma##majorversion=5,arch 25 | installed 26 | 27 | 28 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/plasmoids.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Desktop Indicator 6 | api.kde-look.org 7 | dhruv8sh 8 | https://store.kde.org/p/2131462 9 | 10 | v0.3 11 | 69 12 | 10744 13 | /var/home/lietk12/.local/share/plasma/plasmoids/org.kde.plasma.plasm6desktopindicator/ 14 | 2131462 15 | 2024-03-18 16 | <p>A minimal virtual desktop indicator to be used as an alternative for a Pager.</p> 17 | 18 | 19 | https://images.pling.com/cache/100x100-0/img/00/00/62/52/79/2131462/screenshot-20240221-034215-2.png 20 | https://images.pling.com/cache/770x540-0/img/00/00/62/52/79/2131462/screenshot-20240221-034215-2.png 21 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE3MTA3MjMxNzQiLCJvIjoiMSIsInMiOiJiZjQ2YzUyM2IzY2FmMTZjOTJmYTllMzk2YWZmZTM3Njk2MTM1ZjczMjI2YzFhZTY3NjU1NmVmNjk4MzM1MGRiNjZjOWU3NWUyMDhkMWI2Y2ZkMDY0MDM2NzM3MzRhZTllMDQ4MDk2OGRmZWUwY2JmNTk3Yjc4NTI4OTI2ZmYyYSIsInQiOjE3MTk4NzM3OTQsInN0ZnAiOm51bGwsInN0aXAiOiIxNzEuNjQuODMuMjQwIn0.Y-OMzIMVEELRcDL4DZ2KVivkKZvaN3RN7H8G_7PvZPs/v0.3.tar.gz 22 | original-product,pager,plasma,plasma##majorversion=6,applet,linux,gplv3,kde,kde-plasma,extension,unix,virtual-desktop,widget 23 | installed 24 | 25 | 26 | Panel Transparency Toggle 27 | api.kde-look.org 28 | sanjay-kr-xo 29 | https://store.kde.org/p/2107649 30 | 31 | 1.1 32 | 60 33 | 7315 34 | /var/home/lietk12/.local/share/plasma/plasmoids/org.kde.panel.transparency.toggle/ 35 | 2107649 36 | 2024-04-16 37 | <p>A plasma 6 widget to make desktop panel transaprent</p> 38 | 39 | 40 | https://images.pling.com/cache/100x100-0/img/00/00/75/03/12/2107649/screenshot-20231121-220911-21.png 41 | https://images.pling.com/cache/770x540-0/img/00/00/75/03/12/2107649/screenshot-20231121-220911-21.png 42 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE3MTMzMDcxMDMiLCJvIjoiMSIsInMiOiJmNjc3ZjMyY2Q1OWEyMzY4M2MxNDIzMjdmZGYxMTc0MTA2ZmMwMzg3NmMzMzgwODNhZDgxODYwMTViYjIwYWEwMDU0N2IzZmE4ODYxOTVlYzJlODMxMjNhOGYwNDQ1MTdjYzMzZjViMTU3NjUyODRmZDFlNTJkODdiOTk0ZWRjYiIsInQiOjE3MTk4NzQ0MzEsInN0ZnAiOm51bGwsInN0aXAiOiIxNzEuNjQuODMuMjQwIn0.PYc5yDIHzFQhlYBPatO5qToyO_zXlo-OdQqLn4nnddU/content.plasmoid 43 | widget,linux,original-product,transparency,plasma,plasma##majorversion=6,plasma6,plasmoid,unix,kde,gplv2-later,extension 44 | installed 45 | 46 | 47 | Ginti - Gnome Style Desktop Indicator 48 | api.kde-look.org 49 | dhruv8sh 50 | https://store.kde.org/p/2146553 51 | 52 | v0.6 53 | 61 54 | 4380 55 | /var/home/lietk12/.local/share/plasma/plasmoids/org.kde.plasma.ginti/ 56 | 2146553 57 | 2024-07-06 58 | <p>Desktop Indicator applet that uses Gnome Workspace switcher as an inspiration.</p> 59 | 60 | 61 | https://images.pling.com/cache/100x100-0/img/00/00/62/52/79/2146553/screenshot-20240707-045916.png 62 | https://images.pling.com/cache/770x540-0/img/00/00/62/52/79/2146553/screenshot-20240707-045916.png 63 | https://files06.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTcxMzQ0OTIwMiwibyI6IjEiLCJzIjoiNDUyY2Y1ODk3ODQ1ODY3MGMyMTZhM2JlYjYwNmNkMDBiZTRiNDViY2EwZWRlODRiM2VkOTY4Y2Y5NGRkYTIyZTBlODBiYWU3YTFiOWEyMDhkN2EyYjAyOTY3MWU1Yzk1ZTRiNGM2ZDcyMDFlMDU5NDcyNzMyZTAzZWIzY2NhZTEiLCJ0IjoxNzQzNDM4MjgwLCJzdGZwIjpudWxsLCJzdGlwIjoiMTI4LjEyLjEyMi41OCJ9.hRpQABQDfGUY8Qu1rY-pFYZXUMWCpRNnknm8abu5oBw/v0.4.tar.gz 64 | kde,desktop,extension,gplv3,linux,widget,workspace,workspaces,plasma##majorversion=6,plasma,original-product,pager,unix,virtual-desktop 65 | installed 66 | 67 | 68 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/symlink_aurorae.knsregistry: -------------------------------------------------------------------------------- 1 | /home/lietk12/.local/share/knewstuff3/window-decorations.knsregistry 2 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/wallpaper.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Black Mountain Dusk 1 6 | https://api.kde-look.org/ocs/v1/ 7 | ethanjli 8 | https://store.kde.org/p/2117226 9 | 10 | 11 | 50 12 | 1 13 | /home/lietk12/.local/share/wallpapers/Black-Mountain-Dusk-1.jpg 14 | 2117226 15 | 2023-12-28 16 | A view of clouds over the San Francisco Bay Area at sunset, from Black Mountain.<br /> 17 | <br /> 18 | Photographed on September 12, 2022. 19 | 20 | https://images.pling.com/cache/100x100-0/img/00/00/75/71/21/2117226/black-mountain-dusk-1.jpg 21 | https://images.pling.com/cache/770x540-0/img/00/00/75/71/21/2117226/black-mountain-dusk-1.jpg 22 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE3MDM3MjQ0MjIiLCJvIjoiMSIsInMiOiI4OGIwMDI4YmI0YmE2MTJkYjQzZDU4OTI4YTAzYjZhMWJmOGNlZWRiNGRhZDUzYmUxNTI0OWY4ZjgxNmRiZmZjMmY4Y2NkZTQ2ODgwYTVmMGQ0OTZhOTU1OTJlOWM2NDRiZGFiODdjOThkODI1NWFjOTYzNWVjNTljYzc0NTNhMyIsInQiOjE3MDM3MjgzNTMsInN0ZnAiOm51bGwsInN0aXAiOiIxMjguMTIuMTIzLjg4In0.nzRmhr9Y25t4NAPoPAKJxnJN47gApTmMPJO5JiNX0o4/Black-Mountain-Dusk-1.jpg 23 | citylights,dark,clouds,grassfield,cc-by,original-product,sunset 24 | installed 25 | 26 | 27 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/window-decorations.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Active Accent Frame 6 | https://api.kde-look.org/ocs/v1/ 7 | nclarius 8 | https://store.kde.org/p/1678088 9 | 10 | v9.0 11 | 57 12 | 5435 13 | /home/lietk12/.local/share/aurorae/themes/ActiveAccentFrame/* 14 | 1678088 15 | 2022-03-26 16 | Window theme without titlebar highlighting the active window in accent color and inactive windows in background color, for any color scheme.<br /> 17 | <br /> 18 | Alternatives:<ul><li> <a href="https://store.kde.org/p/1709568" target="_blank" rel="nofollow">Active Accent Dawn</a>: With titlebar, for schemes with light background and dark accent</li><li> <a href="https://store.kde.org/p/1709554" target="_blank" rel="nofollow">Active Accent Light</a>: With titlebar, for schemes with light background and light accent</li><li> <a href="https://store.kde.org/p/1709569" target="_blank" rel="nofollow">Active Accent Dusk</a>: With titlebar, for schemes with dark background and light accent</li><li> <a href="https://store.kde.org/p/1709567" target="_blank" rel="nofollow">Active Accent Dark</a>: With titlebar, for schemes with dark background and dark accent</li></ul><strong>If there are problems with the window decoration, please follow the sugggestions listed in the readme.</strong> For more information on installation and troubleshooting as well as any requests, please visit <a href="https://github.com/nclarius/Plasma-window-decorations" target="_blank" rel="nofollow">the GitHub page</a>.[newline 19 | 20 | https://images.pling.com/cache/100x100-0/img/00/00/63/33/24/1678088/screenshot6.png 21 | https://images.pling.com/cache/770x540-0/img/00/00/63/33/24/1678088/screenshot6.png 22 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE2NDgzMDI0NDMiLCJvIjoiMSIsInMiOiI0NmYzZTRjZGMzYzY1ZWExNjJmM2E1Mzg5NTcwYzY5YmJiYjI2YTFlNmU4ZWQ0ZGU0YjgwYmRiN2JhZDk4NzAyNTI3YTdmYTAwZTYwZWI5OTJlYmZhZWY3NzkxYzA4NWU1ZWUwM2ViOThkYzZiMTk3NmIwOWRkODVmZWZiZmRiZSIsInQiOjE2OTkxMDcyNjEsInN0ZnAiOm51bGwsInN0aXAiOiIxNzEuNjYuMTMuNTMifQ.MsU85Xyh1NVCJ1IfTEEdw6YMPOma2Mngx-MZjPbXPKE/ActiveAccentFrame_v9.0.zip 23 | border,plasma,theme,unix,color,efi,gplv3,hlighlight,frame,active,linux,kde 24 | installed 25 | 26 | 27 | -------------------------------------------------------------------------------- /dot_local/share/knewstuff3/xcursor.knsregistry: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PearDarkCursors 6 | https://api.kde-look.org/ocs/v1/ 7 | adhe 8 | https://store.kde.org/p/1312474 9 | 10 | 0.1 11 | 69 12 | 133614 13 | /home/lietk12/.icons/PearDarkCursors/* 14 | 1312474 15 | 2019-09-26 16 | Cursor theme based on a breeze and deepin theme cursor.<br /> 17 | <br /> 18 | Thanks to<br /> 19 | <ul><li> VDG KDE</li><li> Deepin team</li></ul> 20 | 21 | https://images.pling.com/cache/100x100-0/img/00/00/53/17/49/1312474/a0b361d058ed6cb2294c98cf87e5f383a0181.png 22 | https://images.pling.com/cache/770x540-0/img/00/00/53/17/49/1312474/a0b361d058ed6cb2294c98cf87e5f383a0181.png 23 | https://files04.pling.com/api/files/download/j/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjE1Njk1MjQ0OTYiLCJvIjoiMSIsInMiOiIzYWI2MDU4MzUyNjdlYjM3MzgxYmQ1ODlmZTk1ZTA4ZjYzNWE3ZTg0MWY2N2RjOWRlMmU4MmI3NGRiNDg5NzgwM2MwZDVlOTIzMDRlZWUwYWY4OWNlOGNkZjdhMjI5YTdjYmRiOGUxOGIzMjliMDIzY2Y5YTdkZjNiYTNhYzk2ZCIsInQiOjE2OTkxNTM5MzksInN0ZnAiOm51bGwsInN0aXAiOiIxMjguMTIuMTIyLjEyNiJ9.fmnjW0Qpox1OKjJGhfCNnWiyRpKPRQMolp1PKkNc7VY/PearDarkCursors.tar.gz 24 | linux,deepin,cursor,breeze,cc-by-sa,unix,theme 25 | installed 26 | 27 | 28 | -------------------------------------------------------------------------------- /dot_local/share/konsole/DarkOneNuanced.colorscheme: -------------------------------------------------------------------------------- 1 | [Background] 2 | Color=40,44,52 3 | 4 | [BackgroundFaint] 5 | Color=40,44,52 6 | 7 | [BackgroundIntense] 8 | Color=40,44,52 9 | 10 | [Color0] 11 | Color=63,68,81 12 | 13 | [Color0Faint] 14 | Color=40,44,52 15 | 16 | [Color0Intense] 17 | Color=79,86,102 18 | 19 | [Color1] 20 | Color=224,108,117 21 | 22 | [Color1Faint] 23 | Color=194,93,102 24 | 25 | [Color1Intense] 26 | Color=255,123,134 27 | 28 | [Color2] 29 | Color=152,195,121 30 | 31 | [Color2Faint] 32 | Color=130,165,102 33 | 34 | [Color2Intense] 35 | Color=177,225,139 36 | 37 | [Color3] 38 | Color=209,154,102 39 | 40 | [Color3Faint] 41 | Color=179,130,87 42 | 43 | [Color3Intense] 44 | Color=239,176,116 45 | 46 | [Color4] 47 | Color=97,175,239 48 | 49 | [Color4Faint] 50 | Color=84,153,209 51 | 52 | [Color4Intense] 53 | Color=103,205,255 54 | 55 | [Color5] 56 | Color=198,120,221 57 | 58 | [Color5Faint] 59 | Color=169,102,189 60 | 61 | [Color5Intense] 62 | Color=228,139,255 63 | 64 | [Color6] 65 | Color=86,182,194 66 | 67 | [Color6Faint] 68 | Color=68,145,154 69 | 70 | [Color6Intense] 71 | Color=99,212,224 72 | 73 | [Color7] 74 | Color=230,230,230 75 | 76 | [Color7Faint] 77 | Color=200,200,200 78 | 79 | [Color7Intense] 80 | Color=255,255,255 81 | 82 | [Foreground] 83 | Color=171,178,191 84 | 85 | [ForegroundFaint] 86 | Color=145,150,161 87 | 88 | [ForegroundIntense] 89 | Color=199,207,221 90 | 91 | [General] 92 | Description=Dark One Nuanced 93 | Opacity=1 94 | Wallpaper= 95 | -------------------------------------------------------------------------------- /dot_local/share/konsole/private_Host.profile: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | ColorScheme=DarkOneNuanced 3 | Font=IntoneMono Nerd Font,12,-1,5,50,0,0,0,0,0 4 | 5 | [Cursor Options] 6 | CursorShape=1 7 | 8 | [General] 9 | Command=/usr/bin/zsh 10 | Name=Host 11 | Parent=FALLBACK/ 12 | SemanticInputClick=true 13 | TerminalCenter=false 14 | 15 | [Interaction Options] 16 | UnderlineFilesEnabled=true 17 | 18 | [Scrolling] 19 | ScrollBarPosition=2 20 | 21 | [Terminal Features] 22 | VerticalLine=false 23 | VerticalLineAtChar=100 24 | -------------------------------------------------------------------------------- /dot_local/share/wallpapers/Black-Mountain-Dusk-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/Black-Mountain-Dusk-1.jpg -------------------------------------------------------------------------------- /dot_local/share/wallpapers/F18-alpha-wallpaper-standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/F18-alpha-wallpaper-standard.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/World Trade Center station dark bluer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/World Trade Center station dark bluer.jpg -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f28.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f29-00-dawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f29-00-dawn.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f29-01-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f29-01-day.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f29-02-dusk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f29-02-dusk.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f29-03-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f29-03-night.png -------------------------------------------------------------------------------- /dot_local/share/wallpapers/f39-01-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethanjli/dotfiles/d67ddad5bb49add3d264abf6279c876b1ae7aa6f/dot_local/share/wallpapers/f39-01-night.png -------------------------------------------------------------------------------- /dot_var/app/org.wezfurlong.wezterm/symlink_cache: -------------------------------------------------------------------------------- 1 | /home/lietk12/.cache 2 | -------------------------------------------------------------------------------- /dot_var/app/org.wezfurlong.wezterm/symlink_config: -------------------------------------------------------------------------------- 1 | /home/lietk12/.config 2 | -------------------------------------------------------------------------------- /dot_var/app/org.wezfurlong.wezterm/symlink_data: -------------------------------------------------------------------------------- 1 | /home/lietk12/.local/share/ 2 | -------------------------------------------------------------------------------- /dot_var/app/org.wezfurlong.wezterm/symlink_state: -------------------------------------------------------------------------------- 1 | /home/lietk12/.local/state 2 | -------------------------------------------------------------------------------- /dot_zshrc: -------------------------------------------------------------------------------- 1 | source "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshrc" 2 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended", 5 | "github>aquaproj/aqua-renovate-config#2.8.1" 6 | ], 7 | "packageRules": [ 8 | { 9 | "matchPackageNames": ["aquaproj/aqua-registry"], 10 | "extends": ["schedule:earlyMondays"], 11 | "automerge": true 12 | }, 13 | { 14 | "groupName": "all dependencies", 15 | "groupSlug": "all", 16 | "matchPackageNames": ["*"], 17 | "extends": ["schedule:earlyMondays"], 18 | "automerge": true 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /setup.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Additional setup instructions 4 | 5 | ## Work around graphics driver issues 6 | 7 | Using `sudo rpm-ostree kargs --editor`, add the following kernel arguments: 8 | 9 | - `amdgpu.sg_display=0`: from https://community.frame.work/t/tracking-graphical-corruption-in-fedora-39-amd-3-03-bios/39073/52 10 | 11 | ## Work around battery drainage issues 12 | 13 | Run: 14 | 15 | Using `sudo rpm-ostree kargs --editor`, add the following kernel arguments: 16 | 17 | - `acpi_osi="!Windows 2020"`: from https://wiki.archlinux.org/title/Framework_Laptop_13#Suspend 18 | - `rtc_cmos.use_acpi_alarm=1`: from https://wiki.archlinux.org/title/Framework_Laptop_13#Suspend-then-hibernate_on_AMD_version and https://community.frame.work/t/resolved-systemd-suspend-then-hibernate-wakes-up-after-5-minutes/39392 19 | - `rcutree.enable_rcu_lazy=1`: from https://community.frame.work/t/tracking-linux-battery-life-tuning/6665/595 20 | -------------------------------------------------------------------------------- /shortcuts.md: -------------------------------------------------------------------------------- 1 | # Lutho Keyboard Guide 2 | 3 | ## Design 4 | 5 | TODO 6 | 7 | ## Plasma Desktop 8 | 9 | Plasma Desktop shortcuts generally use Meta and the left hand, in order to keep the right hand free for mouse usage. We also keep some standard shortcuts with Alt. 10 | 11 | ### Layout 12 | 13 | We use manual quick-tiling for layout, with the idea that Shift causes a layout change, Ctrl causes a size change and Alt is a more "extreme" version of an action. We use `w`/`a`/`d`/`x` as the directions for tiling, while `s` is for the center. 14 | 15 | - Meta + `w`/`x`/`a`/`d`: switch to the next window to the above/below/left/right 16 | - Meta + `s`: lower the current window below other windows, and switch to the next active window 17 | - Meta + Alt + `s`: toggle whether to lower the current window below other windows, without switching the active window 18 | - Meta + Shift + `w`/`x`/`a`/`d`: quick-tile window to the upper/bottom/left/right half 19 | - Meta + Shift + `q`/`e`/`z`/`c`: quick-tile to the upper-left/upper-right/lower-left/lower-right quadrant 20 | - Meta + Shift + `s`: maximize window 21 | - Meta + Shift + Alt + `s`: toggle window fullscreen 22 | - Meta + `f`: send window to picture-in-picture mode (with the Thumbnail Aside desktop effect) 23 | - Meta + Esc: minimize window 24 | - Meta + Alt + Esc: close window 25 | 26 | Non-tiling layout actions use the arrow keys: 27 | 28 | - Meta + Up/Down/Left/Right: switch to the next window to the above/below/left/right 29 | - Meta + Shift + Up/Down/Left/Right: move window to the top/bottom/left/right edge 30 | 31 | - Meta + `/`: move the window with the mouse 32 | 33 | - Meta + Shift + `/`: move window to the center 34 | 35 | - Meta + Ctrl + `/`: resize the window with the mouse 36 | 37 | ### Navigation 38 | 39 | Layout-based navigation between windows uses `w`/`x`/`a`/`d`; navigation between desktops uses the Alt modifier with `q`/`e`; and navigation between screens uses the Alt modifier with `z`/`c`. With the Shift modifier, we move the current window. 40 | 41 | Relative: 42 | 43 | - Meta + `w`/`x`/`a`/`d`: switch to the next window to the left/below/above/right 44 | - Meta + Alt + `q`/`e`: switch to previous/next desktop 45 | - Meta + Alt + Shift + `q`/`e`: move current window while switching to previous/next desktop 46 | - Meta + Alt + `z`/`c`: switch to previous/next screen 47 | - Meta + Alt + Shift + `z`/`c`: move current window while switching to next/previous screen 48 | 49 | Absolute: 50 | 51 | - Meta + `1`/`2`/`3`/.../`9`/`0`: switch to window 1/2/3/.../9/10 on the taskbar 52 | - Meta + Alt + `1`/`2`/`3`/.../`9`/`0`: switch to desktop 1/2/3/.../9/10 53 | - Meta + Alt + Shift + `1`/`2`/`3`/..../`9`/`0`: move current window to desktop 0/2/3/.../9/10 54 | 55 | Windows can be also selected by walking through the main and alternate task switchers. In this context, the Alt modifier walks through all un-minimized windows on the current screen+desktop while the Meta modifier only walks through minimized windows on the current screen+desktop; and the Tab key walks through all windows while the ` key only walks through windows of the current application. 56 | 57 | - Alt + Tab: walk through windows on the current screen+desktop 58 | - Alt + `` ` ``: walk through windows on the current screen+desktop of the current application 59 | - Meta + Tab: walk through minimized windows on the current screen+desktop 60 | - Meta + `` ` ``: walk through minimized windows on the current screen+desktop of current application 61 | 62 | ### Accessibility 63 | 64 | The Zoom desktop effect is intentionally disabled because it causes problems with kwin wayland: opening menus in GNOME apps [causes a 25-second freeze](https://bugs.kde.org/show_bug.cgi?id=462346) when focus tracking is enabled, and even just having the Zoom desktop effect enabled causes a similarly long freeze when opening images in Gwenview. 65 | 66 | The Invert desktop effect can be controlled: 67 | 68 | - Meta + `v`: toggle invert window colors 69 | 70 | ### Launching 71 | 72 | Panel shortcuts: 73 | 74 | - Meta: Application Launcher 75 | - Alt + `F2`: Global Menu 76 | - Alt + `F3`: Window Operations Menu 77 | - Meta + Space: System Tray 78 | - Alt + Space: KRunner 79 | - Meta + Alt + Space: Overview 80 | - Meta + Shift + Space: Peek at Desktop 81 | - Meta + Ctrl + Space: Calendar 82 | 83 | Specific programs are launched with Meta + function keys: 84 | 85 | - Meta + `F1`: Google Chrome 86 | - Meta + `F2`: Dolphin 87 | - Meta + `F3`: lf (terminal-based file manager) 88 | - Meta + `F4`: Attach a Zellij session (terminal multiplexer) 89 | - Meta + `F5`: WezTerm (terminal) 90 | 91 | We also keep the following default program launch shortcuts for general utilities: 92 | 93 | - Meta + `.`: Emoji Selector 94 | - Meta + `,`: Crow Translate 95 | -------------------------------------------------------------------------------- /symlink_dot_vimrc: -------------------------------------------------------------------------------- 1 | .config/nvim/vimrc.vim 2 | --------------------------------------------------------------------------------