├── .gitignore ├── .gitmodules ├── README.md ├── assets ├── ascii.txt ├── lain_sq.jpeg ├── milc.jpg ├── milc_v2.jpg ├── nanachi-smoke.png ├── pfp.png └── pfp_sq.JPG ├── bin ├── cproject ├── cxxproject ├── getwifiname ├── trash └── xkbswitch ├── fastfetch └── config.jsonc ├── firefox ├── nighttab.json ├── userChrome.css └── vimium_themes │ ├── vimium-ctp-frappe.css │ ├── vimium-ctp-mocha-custom.css │ ├── vimium-nord.css │ ├── vimium-onedark.css │ └── vimium-options.json ├── kitty ├── kitty.app.icns ├── kitty.conf └── themes │ ├── ctp_frappe.conf │ ├── ctp_mocha.conf │ ├── ctp_v1.conf │ ├── decay.conf │ ├── everblush.conf │ ├── nord.conf │ ├── onedark.conf │ ├── rosepine.conf │ └── tokyonight.conf ├── neovide └── config.toml ├── p10k.zsh ├── ranger ├── commands.py ├── plugins │ ├── __init__.py │ └── zoxide │ │ ├── LICENSE.md │ │ ├── README.md │ │ └── __init__.py ├── rc.conf ├── rifle.conf └── scope.sh ├── sketchybar ├── colors ├── plugins │ ├── battery.sh │ ├── clock.sh │ ├── front_app.sh │ ├── icon_map.sh │ ├── keyboard.sh │ ├── space.sh │ ├── space_apps.sh │ └── wifi.sh ├── sketchybarrc └── sketchybarrc-gapless ├── skhd └── skhdrc ├── spacebar └── spacebarrc ├── wallpapers ├── blobgirl.png ├── lain.png ├── rainbow.png ├── relaxing.png ├── sakura_station.png ├── windows-error.jpg └── winter_is_here.jpg ├── yabai └── yabairc ├── yazi ├── flavors │ ├── .github │ │ └── workflows │ │ │ ├── lock.yml │ │ │ └── no-response.yml │ ├── .gitignore │ ├── catppuccin-frappe.yazi │ │ ├── LICENSE │ │ ├── LICENSE-tmtheme │ │ ├── README.md │ │ ├── flavor.toml │ │ ├── preview.png │ │ └── tmtheme.xml │ ├── catppuccin-latte.yazi │ │ ├── LICENSE │ │ ├── LICENSE-tmtheme │ │ ├── README.md │ │ ├── flavor.toml │ │ ├── preview.png │ │ └── tmtheme.xml │ ├── catppuccin-macchiato.yazi │ │ ├── LICENSE │ │ ├── LICENSE-tmtheme │ │ ├── README.md │ │ ├── flavor.toml │ │ ├── preview.png │ │ └── tmtheme.xml │ └── catppuccin-mocha.yazi │ │ ├── LICENSE │ │ ├── LICENSE-tmtheme │ │ ├── README.md │ │ ├── flavor.toml │ │ ├── preview.png │ │ └── tmtheme.xml ├── init.lua ├── keymap.toml ├── package.toml ├── plugins │ ├── full-border.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua │ ├── ouch.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua │ ├── relative-motions.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua │ ├── smart-enter.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua │ ├── toggle-pane.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua │ └── torrent-preview.yazi │ │ ├── LICENSE │ │ ├── README.md │ │ └── main.lua ├── theme.toml └── yazi.toml ├── zathura ├── themes │ ├── catppuccin-frappe │ ├── catppuccin-latte │ ├── catppuccin-macchiato │ └── catppuccin-mocha └── zathurarc ├── zimrc └── zshrc /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | **/__pycache__/** 3 | nvim/sessions 4 | nvim/plugin 5 | private.zsh 6 | discord/BetterDiscord/data/** 7 | discord/BetterDiscord/Dictionaries/** 8 | .luarc.json 9 | nvim/spell/** 10 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "nvim"] 2 | path = nvim 3 | url = https://github.com/lowerc4s3/nvim.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # milcfiles 🥛 2 | 3 | configs for milc (man i love catppuccin) macos rice 4 | 5 | ## info 6 | 7 | type | soft 8 | -|- 9 | **wm** | [yabai](https://github.com/koekeishiya/yabai) 10 | **bar** | [sketchybar](https://github.com/FelixKratz/SketchyBar) 11 | **hotkey daemon** | [skhd](https://github.com/koekeishiya/skhd) 12 | **terminal** | [kitty](https://github.com/kovidgoyal/kitty) 13 | **file manager** | [yazi](https://github.com/sxyazi/yazi) 14 | **editor** | [neovim](https://github.com/neovim/neovim) 15 | **theme** | [catppuccin](https://github.com/catppuccin) 16 | **prompt** | [powerline10k](https://github.com/romkatv/powerlevel10k) (theme inspired by _parsenoob#2556 on discord) 17 | **font** | [jetbrainsmono nerd font](https://www.nerdfonts.com/font-downloads) 18 | **wallpapers** | [here](/wallpapers) 19 | **browser**| [qutebrowser](https://github.com/qutebrowser/qutebrowser) 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | *also some terminal tools*: 28 | - [zoxide](https://github.com/ajeetdsouza/zoxide) 29 | - [eza](https://github.com/eza-community/eza) 30 | 31 | ## installation 32 | ```bash 33 | git clone https://github.com/lowerc4s3/.dotfiles.git --recurse-submodules 34 | # then link configs into .config/ 35 | ``` 36 | -------------------------------------------------------------------------------- /assets/ascii.txt: -------------------------------------------------------------------------------- 1 | TODO: create .lua file with ascii art for dashboard 2 | 3 | kitty 4 | " /| 、 ", 5 | "(°、 。 7 ", 6 | " |、 ~ヽ ", 7 | " じしf_,)〳 " 8 | 9 | uwu 10 | "⡆⣐⢕⢕⢕⢕⢕⢕⢕⢕⠅⢗⢕⢕⢕⢕⢕⢕⢕⠕⠕⢕⢕⢕⢕⢕⢕⢕⢕⢕", 11 | "⢐⢕⢕⢕⢕⢕⣕⢕⢕⠕⠁⢕⢕⢕⢕⢕⢕⢕⢕⠅⡄⢕⢕⢕⢕⢕⢕⢕⢕⢕", 12 | "⢕⢕⢕⢕⢕⠅⢗⢕⠕⣠⠄⣗⢕⢕⠕⢕⢕⢕⠕⢠⣿⠐⢕⢕⢕⠑⢕⢕⠵⢕", 13 | "⢕⢕⢕⢕⠁⢜⠕⢁⣴⣿⡇⢓⢕⢵⢐⢕⢕⠕⢁⣾⢿⣧⠑⢕⢕⠄⢑⢕⠅⢕", 14 | "⢕⢕⠵⢁⠔⢁⣤⣤⣶⣶⣶⡐⣕⢽⠐⢕⠕⣡⣾⣶⣶⣶⣤⡁⢓⢕⠄⢑⢅⢑", 15 | "⠍⣧⠄⣶⣾⣿⣿⣿⣿⣿⣿⣷⣔⢕⢄⢡⣾⣿⣿⣿⣿⣿⣿⣿⣦⡑⢕⢤⠱⢐", 16 | "⢠⢕⠅⣾⣿⠋⢿⣿⣿⣿⠉⣿⣿⣷⣦⣶⣽⣿⣿⠈⣿⣿⣿⣿⠏⢹⣷⣷⡅⢐", 17 | "⣔⢕⢥⢻⣿⡀⠈⠛⠛⠁⢠⣿⣿⣿⣿⣿⣿⣿⣿⡀⠈⠛⠛⠁⠄⣼⣿⣿⡇⢔", 18 | "⢕⢕⢽⢸⢟⢟⢖⢖⢤⣶⡟⢻⣿⡿⠻⣿⣿⡟⢀⣿⣦⢤⢤⢔⢞⢿⢿⣿⠁⢕", 19 | "⢕⢕⠅⣐⢕⢕⢕⢕⢕⣿⣿⡄⠛⢀⣦⠈⠛⢁⣼⣿⢗⢕⢕⢕⢕⢕⢕⡏⣘⢕", 20 | "⢕⢕⠅⢓⣕⣕⣕⣕⣵⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣷⣕⢕⢕⢕⢕⡵⢀⢕⢕", 21 | "⢑⢕⠃⡈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⢕⢕⢕", 22 | "⣆⢕⠄⢱⣄⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢁⢕⢕⠕⢁", 23 | "⣿⣦⡀⣿⣿⣷⣶⣬⣍⣛⣛⣛⡛⠿⠿⠿⠛⠛⢛⣛⣉⣭⣤⣂⢜⠕⢑⣡⣴⣿", 24 | 25 | pacman 26 | " ██████ ", 27 | " ████▒▒▒▒▒▒████ ", 28 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 29 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 30 | " ██▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ", 31 | " ██▒▒▒▒▒▒ ▒▒▓▓▒▒▒▒▒▒ ▓▓▓▓ ", 32 | " ██▒▒▒▒▒▒ ▒▒▓▓▒▒▒▒▒▒ ▒▒▓▓ ", 33 | " ██▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ██ ", 34 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 35 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 36 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 37 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██ ", 38 | " ██▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒██▒▒▒▒██ ", 39 | " ████ ██▒▒██ ██▒▒▒▒██ ██▒▒██ ", 40 | " ██ ██ ████ ████ ", 41 | 42 | hydra 43 | " ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ", 44 | " ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ", 45 | " ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ", 46 | " ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ", 47 | " ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ", 48 | " ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ", 49 | " ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ", 50 | " ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ", 51 | " ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ", 52 | " ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ", 53 | " ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ", 54 | 55 | duck 56 | " ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ", 57 | " ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣉⡥⠶⢶⣿⣿⣿⣿⣷⣆⠉⠛⠿⣿⣿⣿⣿⣿⣿⣿ ", 58 | " ⣿⣿⣿⣿⣿⣿⣿⡿⢡⡞⠁⠀⠀⠤⠈⠿⠿⠿⠿⣿⠀⢻⣦⡈⠻⣿⣿⣿⣿⣿ ", 59 | " ⣿⣿⣿⣿⣿⣿⣿⡇⠘⡁⠀⢀⣀⣀⣀⣈⣁⣐⡒⠢⢤⡈⠛⢿⡄⠻⣿⣿⣿⣿ ", 60 | " ⣿⣿⣿⣿⣿⣿⣿⡇⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠉⠐⠄⡈⢀⣿⣿⣿⣿ ", 61 | " ⣿⣿⣿⣿⣿⣿⣿⠇⢠⣿⣿⣿⣿⡿⢿⣿⣿⣿⠁⢈⣿⡄⠀⢀⣀⠸⣿⣿⣿⣿ ", 62 | " ⣿⣿⣿⣿⡿⠟⣡⣶⣶⣬⣭⣥⣴⠀⣾⣿⣿⣿⣶⣾⣿⣧⠀⣼⣿⣷⣌⡻⢿⣿ ", 63 | " ⣿⣿⠟⣋⣴⣾⣿⣿⣿⣿⣿⣿⣿⡇⢿⣿⣿⣿⣿⣿⣿⡿⢸⣿⣿⣿⣿⣷⠄⢻ ", 64 | " ⡏⠰⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢂⣭⣿⣿⣿⣿⣿⠇⠘⠛⠛⢉⣉⣠⣴⣾ ", 65 | " ⣿⣷⣦⣬⣍⣉⣉⣛⣛⣉⠉⣤⣶⣾⣿⣿⣿⣿⣿⣿⡿⢰⣿⣿⣿⣿⣿⣿⣿⣿ ", 66 | " ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡘⣿⣿⣿⣿⣿⣿⣿⣿⡇⣼⣿⣿⣿⣿⣿⣿⣿⣿ ", 67 | " ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⢸⣿⣿⣿⣿⣿⣿⣿⠁⣿⣿⣿⣿⣿⣿⣿⣿⣿ ", 68 | -------------------------------------------------------------------------------- /assets/lain_sq.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/lain_sq.jpeg -------------------------------------------------------------------------------- /assets/milc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/milc.jpg -------------------------------------------------------------------------------- /assets/milc_v2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/milc_v2.jpg -------------------------------------------------------------------------------- /assets/nanachi-smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/nanachi-smoke.png -------------------------------------------------------------------------------- /assets/pfp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/pfp.png -------------------------------------------------------------------------------- /assets/pfp_sq.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/assets/pfp_sq.JPG -------------------------------------------------------------------------------- /bin/cproject: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # template_dir="$HOME/bmstu_templates/c_project" 4 | template_dir="$HOME/bmstu/templates/cproject" 5 | 6 | # function seloption { 7 | # cat << EOF 8 | # 1. Компаратор, сравнивающий числа 9 | # 2. Компаратор, сравнивающий строки после 'Result: ' 10 | # EOF 11 | # 12 | # option=0 13 | # read -rp "Выберите вариант: " option 14 | # return "$option" 15 | # } 16 | 17 | # seloption 18 | # option=$? 19 | # 20 | # case $option in 21 | # 1) 22 | 23 | cp -r "$template_dir"/* ./ 24 | -------------------------------------------------------------------------------- /bin/cxxproject: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | projectname=myapp 4 | cxx_compiler=clang++ 5 | cxx_standart=20 6 | 7 | while getopts "qp:c:s:" opt; do 8 | case $opt in 9 | q) qtproject=1 10 | ;; 11 | p) projectname="$OPTARG" 12 | ;; 13 | c) cxx_compiler="$OPTARG" 14 | ;; 15 | s) cxx_standart="$OPTARG" 16 | ;; 17 | *) echo "Usage: $(basename "$0") [-q] [-p projectname] [-c compiler] [-s standart]" 18 | exit 1 19 | ;; 20 | esac 21 | done 22 | 23 | if [ -n "$qtproject" ]; then 24 | qtsetup=" 25 | find_package(Qt6 REQUIRED COMPONENTS Widgets) 26 | qt_standard_project_setup() 27 | " 28 | 29 | qtafter=" 30 | target_link_libraries($projectname PRIVATE Qt6::Widgets) 31 | 32 | set_target_properties($projectname PROPERTIES 33 | WIN32_EXECUTABLE ON 34 | MACOSX_BUNDLE ON 35 | )" 36 | fi 37 | 38 | mkdir -p build src include 39 | 40 | if [ -n "$qtproject" ]; then 41 | cat > src/main.cpp << EOF 42 | #include 43 | 44 | auto main(int argc, char** argv) -> int 45 | { 46 | QApplication app(argc, argv); 47 | 48 | return app.exec(); 49 | } 50 | EOF 51 | else 52 | cat > src/main.cpp << EOF 53 | auto main() -> int 54 | { 55 | } 56 | EOF 57 | fi 58 | 59 | cat > CMakeLists.txt << EOF 60 | cmake_minimum_required(VERSION 3.17) 61 | 62 | project($projectname CXX) 63 | set(CMAKE_CXX_STANDARD $cxx_standart) 64 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 65 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Wextra -Wfloat-conversion -Wfloat-equal -Wvla") 66 | $qtsetup 67 | add_executable(\${PROJECT_NAME} 68 | src/main.cpp 69 | ) 70 | 71 | target_include_directories(\${PROJECT_NAME} PRIVATE include) 72 | $qtafter 73 | EOF 74 | 75 | cat > .clang-format << EOF 76 | --- 77 | Language: Cpp 78 | BasedOnStyle: Microsoft 79 | AccessModifierOffset: -4 80 | AlignArrayOfStructures: Left 81 | AllowShortBlocksOnASingleLine: Empty 82 | AllowShortFunctionsOnASingleLine: Empty 83 | AlwaysBreakTemplateDeclarations: Yes 84 | BreakBeforeBinaryOperators: NonAssignment 85 | PointerAlignment: Left 86 | QualifierAlignment: Left 87 | SeparateDefinitionBlocks: Always 88 | SpaceAfterCStyleCast: true 89 | SpaceAfterTemplateKeyword: false 90 | EOF 91 | 92 | cd build || exit 1 93 | cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_COMPILER="$cxx_compiler" 94 | cd .. || exit 1 95 | ln -s build/compile_commands.json compile_commands.json 96 | -------------------------------------------------------------------------------- /bin/getwifiname: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Print current wi-fi connection name or "Not connected" if not connected 5 | # Used by spacebar 6 | # 7 | 8 | name=$(/Sy*/L*/Priv*/Apple8*/V*/C*/R*/airport -I | sed -n 's/^.*SSID: \(.*\)$/\1/p') 9 | 10 | if [ -z "$name" ]; then 11 | echo Not connected 12 | else 13 | echo "$name" 14 | fi 15 | -------------------------------------------------------------------------------- /bin/trash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Safe rm alternative (moves to trash) 5 | # Written by kaelzhang (https://github.com/kaelzhang/shell-safe-rm) 6 | # 7 | 8 | # You could modify these environment variables to change the default constants 9 | # Default to ~/.Trash on Mac, ~/.local/share/Trash/files on Linux. 10 | DEFAULT_TRASH="$HOME/.Trash" 11 | if [[ "$(uname -s)" == "Linux" ]]; then 12 | DEFAULT_TRASH="$HOME/.local/share/Trash/files" 13 | fi 14 | 15 | 16 | SAFE_RM_TRASH=${SAFE_RM_TRASH:="$DEFAULT_TRASH"} 17 | 18 | 19 | # Print debug info or not 20 | SAFE_RM_DEBUG=${SAFE_RM_DEBUG:=} 21 | # ------------------------------------------------------------------------------- 22 | 23 | # Simple basename: /bin/rm -> rm 24 | COMMAND=${0##*/} 25 | 26 | # pwd 27 | __DIRNAME=$(pwd) 28 | 29 | GUID=0 30 | TIME= 31 | date_time(){ 32 | TIME=$(date +%Y-%m-%d_%H:%M:%S)-$GUID 33 | (( GUID += 1 )) 34 | } 35 | 36 | # tools 37 | debug(){ 38 | if [[ -n "$SAFE_RM_DEBUG" ]]; then 39 | echo "[D] $@" >&2 40 | fi 41 | } 42 | 43 | 44 | # parse argv ------------------------------------------------------------------------------- 45 | 46 | invalid_option(){ 47 | # if there's an invalid option, `rm` only takes the second char of the option string 48 | # case: 49 | # rm -c 50 | # -> rm: illegal option -- c 51 | echo "rm: illegal option -- ${1:1:1}" 52 | usage 53 | } 54 | 55 | usage(){ 56 | echo "usage: rm [-f | -i | -I] [-dPRrvW] file ..." 57 | echo " unlink file" 58 | 59 | # if has an invalid option, exit with 64 60 | exit 64 61 | } 62 | 63 | 64 | if [[ "$#" = 0 ]]; then 65 | echo "safe-rm" 66 | usage 67 | fi 68 | 69 | ARG_END= 70 | FILE_NAME= 71 | ARG= 72 | 73 | file_i=0 74 | arg_i=0 75 | 76 | split_push_arg(){ 77 | # remove leading '-' and split combined short options 78 | # -vif -> vif -> v, i, f 79 | split=`echo ${1:1} | fold -w1` 80 | 81 | local arg 82 | for arg in ${split[@]}; do 83 | ARG[arg_i]="-$arg" 84 | ((arg_i += 1)) 85 | done 86 | } 87 | 88 | push_arg(){ 89 | ARG[arg_i]=$1 90 | ((arg_i += 1)) 91 | } 92 | 93 | push_file(){ 94 | FILE_NAME[file_i]=$1 95 | ((file_i += 1)) 96 | } 97 | 98 | # pre-parse argument vector 99 | while [[ -n $1 ]]; do 100 | # case: 101 | # rm -v abc -r --force 102 | # -> -r will be ignored 103 | # -> args: ['-v'], files: ['abc', '-r', 'force'] 104 | if [[ -n $ARG_END ]]; then 105 | push_file "$1" 106 | 107 | else 108 | case $1 in 109 | 110 | # case: 111 | # rm -v -f -i a b 112 | 113 | # case: 114 | # rm -vf -ir a b 115 | 116 | # ATTENTION: 117 | # Regex in bash is not perl regex, 118 | # in which `'*'` means "anything" (including nothing) 119 | -[a-zA-Z]*) 120 | split_push_arg $1; debug "short option $1" 121 | ;; 122 | 123 | # rm --force a 124 | --[a-zA-Z]*) 125 | push_arg $1; debug "option $1" 126 | ;; 127 | 128 | # rm -- -a 129 | --) 130 | ARG_END=1; debug "divider" 131 | ;; 132 | 133 | # case: 134 | # rm - 135 | # -> args: [], files: ['-'] 136 | *) 137 | push_file "$1"; debug "file $1" 138 | ARG_END=1 139 | ;; 140 | esac 141 | fi 142 | 143 | shift 144 | done 145 | 146 | # flags 147 | OPT_FORCE= 148 | OPT_INTERACTIVE= 149 | OPT_INTERACTIVE_ONCE= 150 | OPT_RECURSIVE= 151 | OPT_VERBOSE= 152 | 153 | # global exit code, default to 0 154 | EXIT_CODE=0 155 | 156 | # parse options 157 | for arg in ${ARG[@]}; do 158 | case $arg in 159 | 160 | # There's no --help|-h option for rm on Mac OS 161 | # [hH]|--[hH]elp) 162 | # help 163 | # shift 164 | # ;; 165 | 166 | -f|--force) 167 | OPT_FORCE=1; debug "force : $arg" 168 | ;; 169 | 170 | # interactive=always 171 | -i|--interactive|--interactive=always) 172 | OPT_INTERACTIVE=1; debug "interactive : $arg" 173 | OPT_INTERACTIVE_ONCE= 174 | ;; 175 | 176 | # interactive=once. interactive=once and interactive=always are exclusive 177 | -I|--interactive=once) 178 | OPT_INTERACTIVE_ONCE=1; debug "interactive_once : $arg" 179 | OPT_INTERACTIVE=; 180 | ;; 181 | 182 | # both r and R is allowed 183 | -[rR]|--[rR]ecursive) 184 | OPT_RECURSIVE=1; debug "recursive : $arg" 185 | ;; 186 | 187 | # only lowercase v is allowed 188 | -v|--verbose) 189 | OPT_VERBOSE=1; debug "verbose : $arg" 190 | ;; 191 | 192 | *) 193 | invalid_option $arg 194 | ;; 195 | esac 196 | done 197 | # /parse argv ------------------------------------------------------------------------------- 198 | 199 | 200 | # make sure recycled bin exists 201 | if [[ ! -e $SAFE_RM_TRASH ]]; then 202 | echo "Directory \"$SAFE_RM_TRASH\" does not exist, do you want create it?" 203 | echo -n "(yes/no): " 204 | 205 | read answer 206 | if [[ $answer = "yes" || ! -n $anwser ]]; then 207 | mkdir -p "$SAFE_RM_TRASH" 208 | else 209 | echo "Canceled!" 210 | exit 1 211 | fi 212 | fi 213 | 214 | # try to remove a file or directory 215 | remove(){ 216 | local file=$1 217 | 218 | # if is dir 219 | if [[ -d $file ]]; then 220 | 221 | # if a directory, and without '-r' option 222 | if [[ ! -n $OPT_RECURSIVE ]]; then 223 | debug "$LINENO: $file: is a directory" 224 | echo "$COMMAND: $file: is a directory" 225 | return 1 226 | fi 227 | 228 | if [[ $file = './' ]]; then 229 | echo "$COMMAND: $file: Invalid argument" 230 | return 1 231 | fi 232 | 233 | if [[ $OPT_INTERACTIVE = 1 ]]; then 234 | echo -n "examine files in directory $file? " 235 | read answer 236 | 237 | # actually, as long as the answer start with 'y', the file will be removed 238 | # default to no remove 239 | if [[ ${answer:0:1} =~ [yY] ]]; then 240 | 241 | # if choose to examine the dir, recursively check files first 242 | recursive_remove "$file" 243 | 244 | # interact with the dir at last 245 | echo -n "remove $file? " 246 | read answer 247 | if [[ ${answer:0:1} =~ [yY] ]]; then 248 | [[ $(ls -A "$file") ]] && { 249 | echo "$COMMAND: $file: Directory not empty" 250 | 251 | return 1 252 | 253 | } || { 254 | trash "$file" 255 | debug "$LINENO: trash returned status $?" 256 | } 257 | fi 258 | fi 259 | else 260 | trash "$file" 261 | debug "$LINENO: trash returned status $?" 262 | fi 263 | 264 | # if is a file 265 | else 266 | if [[ "$OPT_INTERACTIVE" = 1 ]]; then 267 | echo -n "remove $file? " 268 | read answer 269 | if [[ ${answer:0:1} =~ [yY] ]]; then 270 | : 271 | else 272 | return 0 273 | fi 274 | fi 275 | 276 | trash "$file" 277 | debug "$LINENO: trash returned status $?" 278 | fi 279 | } 280 | 281 | 282 | recursive_remove(){ 283 | local path 284 | 285 | # use `ls -A` instead of `for` to list hidden files. 286 | # and `for $1/*` is also weird if `$1` is neithor a dir nor existing that will print "$1/*" directly and rudely. 287 | # never use `find $1`, for the searching order is not what we want 288 | local list=$(ls -A "$1") 289 | 290 | [[ -n $list ]] && for path in "$list"; do 291 | remove "$1/$path" 292 | done 293 | } 294 | 295 | 296 | # trash a file or dir directly 297 | trash(){ 298 | debug "trash $1" 299 | 300 | # origin file path 301 | local file=$1 302 | 303 | # the first parameter to be passed to `mv` 304 | local move=$file 305 | local base=$(basename "$file") 306 | local travel= 307 | 308 | # basename ./ -> . 309 | # basename ../ -> .. 310 | # basename ../abc -> abc 311 | # basename ../.abc -> .abc 312 | if [[ -d "$file" && ${base:0:1} = '.' ]]; then 313 | # then file must be a relative dir 314 | cd $file 315 | 316 | # pwd can't be piped? 317 | move=$(pwd) 318 | move=$(basename "$move") 319 | cd .. 320 | travel=1 321 | fi 322 | 323 | local trash_name=$SAFE_RM_TRASH/$base 324 | 325 | # if already in the trash 326 | if [[ -e "$trash_name" ]]; then 327 | # renew $TIME 328 | date_time 329 | trash_name="$trash_name-$TIME" 330 | fi 331 | 332 | [[ "$OPT_VERBOSE" = 1 ]] && list_files "$file" 333 | 334 | debug "mv $move to $trash_name" 335 | mv "$move" "$trash_name" 336 | 337 | [[ "$travel" = 1 ]] && cd $__DIRNAME &> /dev/null 338 | 339 | #default status 340 | return 0 341 | } 342 | 343 | # list all files and maintain outward sequence 344 | # we can't just use `find $file`, 'coz `find` act a inward searching, unlike rm -v 345 | list_files(){ 346 | if [[ -d "$1" ]]; then 347 | local list=$(ls -A "$1") 348 | local f 349 | 350 | [[ -n $list ]] && for f in "$list"; do 351 | list_files "$1/$f" 352 | done 353 | fi 354 | 355 | echo $1 356 | } 357 | 358 | 359 | # debug: get $FILE_NAME array length 360 | debug "${#FILE_NAME[@]} files or directory to process: ${FILE_NAME[@]}" 361 | 362 | # test remove interactive_once: ask for 3 or more files or with recorsive option 363 | if [[ (${#FILE_NAME[@]} > 2 || $OPT_RECURSIVE = 1) && $OPT_INTERACTIVE_ONCE = 1 ]]; then 364 | echo -n "$COMMAND: remove all arguments? " 365 | read answer 366 | 367 | # actually, as long as the answer start with 'y', the file will be removed 368 | # default to no remove 369 | if [[ ! ${answer:0:1} =~ [yY] ]]; then 370 | debug "EXIT_CODE $EXIT_CODE" 371 | exit $EXIT_CODE 372 | fi 373 | fi 374 | 375 | for file in "${FILE_NAME[@]}"; do 376 | debug "result file $file" 377 | 378 | if [[ $file = "/" ]]; then 379 | echo "it is dangerous to operate recursively on /" 380 | echo "are you insane?" 381 | EXIT_CODE=1 382 | 383 | # Exit immediately 384 | debug "EXIT_CODE $EXIT_CODE" 385 | exit $EXIT_CODE 386 | fi 387 | 388 | if [[ $file = "." || $file = ".." ]]; then 389 | echo "$COMMAND: \".\" and \"..\" may not be removed" 390 | EXIT_CODE=1 391 | continue 392 | fi 393 | 394 | #the same check also apply on /. /.. 395 | if [[ $(basename $file) = "." || $(basename $file) = ".." ]]; then 396 | echo "$COMMAND: \".\" and \"..\" may not be removed" 397 | EXIT_CODE=1 398 | continue 399 | fi 400 | 401 | # deal with wildcard and also, redirect error output 402 | ls_result=$(ls -d "$file" 2> /dev/null) 403 | 404 | # debug 405 | debug "ls_result: $ls_result" 406 | 407 | if [[ -n "$ls_result" ]]; then 408 | for file in "$ls_result"; do 409 | remove "$file" 410 | status=$? 411 | debug "remove returned status: $status" 412 | 413 | if [[ ! $status == 0 ]]; then 414 | EXIT_CODE=1 415 | fi 416 | done 417 | else 418 | echo "$COMMAND: $file: No such file or directory" 419 | EXIT_CODE=1 420 | fi 421 | done 422 | 423 | debug "EXIT_CODE $EXIT_CODE" 424 | exit $EXIT_CODE 425 | -------------------------------------------------------------------------------- /bin/xkbswitch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/bin/xkbswitch -------------------------------------------------------------------------------- /fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "type": "kitty", 5 | "source": "$HOME/dots/assets/lain_sq.jpeg" 6 | }, 7 | "display": { 8 | "separator": " -> ", 9 | "color": { 10 | "separator": "1" // Bold 11 | }, 12 | "constants": [ 13 | "───────────────────────────" 14 | ], 15 | "key": { 16 | "type": "icon", 17 | "paddingLeft": 4 18 | } 19 | }, 20 | "modules": [ 21 | "break", 22 | { 23 | "type": "title", 24 | "format": "{user-name-colored}{at-symbol-colored}homepod-алиса" 25 | }, 26 | { 27 | "type": "custom", 28 | "format": "┌{$1}────────────────────{$1}┐" 29 | }, 30 | "break", 31 | { 32 | "key": "OS ", 33 | "keyColor": "red", 34 | "type": "os", 35 | "format": "{name} {codename} {version}" 36 | }, 37 | { 38 | "key": "Machine ", 39 | "keyColor": "green", 40 | "type": "host", 41 | "format": "{name}" 42 | }, 43 | { 44 | "key": "Kernel ", 45 | "keyColor": "magenta", 46 | "type": "kernel" 47 | }, 48 | { 49 | "key": "Uptime ", 50 | "keyColor": "red", 51 | "type": "uptime" 52 | }, 53 | { 54 | "key": "WM ", 55 | "keyColor": "blue", 56 | "type": "wm" 57 | }, 58 | { 59 | "key": "DE ", 60 | "keyColor": "green", 61 | "type": "de" 62 | }, 63 | { 64 | "key": "Shell ", 65 | "keyColor": "cyan", 66 | "type": "shell" 67 | }, 68 | { 69 | "key": "Terminal ", 70 | "keyColor": "red", 71 | "type": "terminal" 72 | }, 73 | { 74 | "key": "CPU ", 75 | "keyColor": "yellow", 76 | "type": "cpu" 77 | }, 78 | { 79 | "key": "GPU ", 80 | "keyColor": "blue", 81 | "type": "gpu" 82 | }, 83 | { 84 | "key": "Memory ", 85 | "keyColor": "magenta", 86 | "type": "memory" 87 | }, 88 | "break", 89 | { 90 | "type": "custom", 91 | "format": "└{$1}────────────────────{$1}┘" 92 | }, 93 | "break", 94 | { 95 | "type": "colors", 96 | "symbol": "circle" 97 | } 98 | ] 99 | } 100 | -------------------------------------------------------------------------------- /firefox/nighttab.json: -------------------------------------------------------------------------------- 1 | {"nightTab":true,"version":"7.3.0","state":{"layout":{"area":{"header":{"width":100,"justify":"left"},"bookmark":{"width":100,"justify":"left"}},"alignment":"center-center","order":"header-bookmark","direction":"vertical","size":100,"width":80,"padding":40,"gutter":20,"breakpoint":"xl","scrollbar":"none","title":"$HOME","favicon":"","overscroll":false},"header":{"item":{"justify":"left"},"greeting":{"show":false,"type":"good","custom":"","name":"","size":100,"newLine":false},"transitional":{"show":false,"type":"time-and-date","size":100,"newLine":false},"clock":{"hour":{"show":true,"display":"number"},"minute":{"show":true,"display":"number"},"second":{"show":false,"display":"number"},"separator":{"show":true,"text":""},"meridiem":{"show":false},"hour24":{"show":true},"size":100,"newLine":false},"date":{"day":{"show":false,"display":"word","weekStart":"monday","length":"long"},"date":{"show":true,"display":"number","ordinal":false},"month":{"show":true,"display":"number","length":"short","ordinal":false},"year":{"show":true,"display":"number"},"separator":{"show":true,"text":"|"},"format":"date-month","size":100,"newLine":false},"search":{"show":false,"width":{"by":"auto","size":30},"engine":{"selected":"duckduckgo","custom":{"name":"","url":"","queryName":""}},"text":{"justify":"left"},"size":100,"newLine":false,"newTab":false,"string":"ddg"},"order":["clock","date","toolbar"],"edit":false},"bookmark":{"size":100,"url":{"show":true},"line":{"show":false},"shadow":{"show":true},"hoverScale":{"show":true},"orientation":"bottom","style":"block","newTab":false,"edit":false,"add":false,"show":true,"item":{}},"group":{"area":{"justify":"left"},"order":"header-body","name":{"size":100},"toolbar":{"size":100},"edit":false,"add":false},"toolbar":{"location":"header","position":"bottom-right","size":100,"accent":{"show":false},"add":{"show":true},"edit":{"show":true},"newLine":false},"theme":{"color":{"range":{"primary":{"h":240,"s":21}},"contrast":{"start":14,"end":66},"shades":14},"accent":{"hsl":{"h":218,"s":90,"l":75},"rgb":{"r":135,"g":176,"b":249},"random":{"active":false,"style":"any"},"cycle":{"active":false,"speed":300,"step":10}},"font":{"display":{"name":"Roboto","weight":100,"style":"normal"},"ui":{"name":"Roboto","weight":300,"style":"normal"}},"background":{"type":"color","color":{"hsl":{"h":240,"s":21,"l":15},"rgb":{"r":30,"g":30,"b":46}},"gradient":{"angle":160,"start":{"hsl":{"h":206,"s":16,"l":40},"rgb":{"r":86,"g":104,"b":118}},"end":{"hsl":{"h":219,"s":28,"l":12},"rgb":{"r":22,"g":28,"b":39}}},"image":{"url":"https://github.com/foreverd34d/.dotfiles/wallpapers/rainbow.png","blur":0,"grayscale":0,"scale":100,"accent":0,"opacity":5,"vignette":{"opacity":0,"start":90,"end":70}},"video":{"url":"","blur":0,"grayscale":0,"scale":100,"accent":0,"opacity":100,"vignette":{"opacity":0,"start":90,"end":70}}},"opacity":{"general":0},"layout":{"color":{"by":"theme","blur":0,"opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"divider":{"size":0}},"header":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"search":{"opacity":60}},"bookmark":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"item":{"border":0,"opacity":60}},"group":{"toolbar":{"opacity":0}},"toolbar":{"opacity":0},"style":"dark","radius":50,"shadow":25,"shade":{"opacity":20,"blur":0},"custom":{"all":[{"name":"catppuccin blue","color":{"range":{"primary":{"h":240,"s":21,"l":20}},"contrast":{"start":14,"end":66}},"accent":{"hsl":{"h":207,"s":93,"l":79},"rgb":{"r":150,"g":205,"b":251}},"font":{"display":{"name":"Roboto","weight":100,"style":"normal"},"ui":{"name":"Roboto","weight":300,"style":"normal"}},"background":{"type":"color","color":{"hsl":{"h":240,"s":21,"l":15},"rgb":{"r":30,"g":30,"b":46}},"gradient":{"angle":160,"start":{"hsl":{"h":206,"s":16,"l":40},"rgb":{"r":86,"g":104,"b":118}},"end":{"hsl":{"h":219,"s":28,"l":12},"rgb":{"r":22,"g":28,"b":39}}},"image":{"url":"https://github.com/zombieFox/nightTabAssets/blob/main/images/1628356492462.jpeg?raw=true","blur":0,"grayscale":0,"scale":100,"accent":0,"opacity":5,"vignette":{"opacity":0,"start":90,"end":70}},"video":{"url":"","blur":0,"grayscale":0,"scale":100,"accent":0,"opacity":100,"vignette":{"opacity":0,"start":90,"end":70}}},"radius":0,"shadow":25,"style":"dark","shade":{"opacity":20,"blur":0},"opacity":{"general":0},"layout":{"color":{"by":"theme","blur":0,"opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"divider":{"size":0}},"header":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"search":{"opacity":60}},"bookmark":{"color":{"by":"theme","opacity":10,"hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"item":{"border":0,"opacity":60}},"group":{"toolbar":{"opacity":0}},"toolbar":{"opacity":0}}],"edit":false}},"search":false,"modal":false,"menu":true},"bookmark":[{"name":{"text":"bookmarks","show":true},"collapse":false,"toolbar":{"size":100,"openAll":{"show":false},"collapse":{"show":false}},"items":[{"url":"https://google.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"Google","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"google","prefix":"fab","label":"Google Logo"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968254959},{"url":"https://duckduckgo.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"DDG","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":"ddg"},"icon":{"name":"search","prefix":"fas","label":"Search"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968308522},{"url":"https://vk.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"VK","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"vk","prefix":"fab","label":"VK"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968332518},{"url":"https://music.yandex.ru/users/KKirill03/playlists","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"Музло","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"compact-disc","prefix":"fas","label":"Compact Disc"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968384661},{"url":"https://translate.google.ru/","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"Translate","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"language","prefix":"fas","label":"Language"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968435488},{"url":"https://www.youtube.com/","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"Youtube","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"youtube","prefix":"fab","label":"YouTube"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968458622},{"url":"https://student.bmstu.ru/?Skin=Samoware","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"BMSTU mail","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"envelope","prefix":"fas","label":"Envelope"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968501608},{"url":"https://e-learning.bmstu.ru//","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"BMSTU IU7","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"university","prefix":"fas","label":"University"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968633770},{"url":"https://git.iu7.bmstu.ru/","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"GitLab IU7","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"gitlab","prefix":"fab","label":"GitLab"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968410789},{"url":"https://github.com","display":{"alignment":"center-center","direction":"vertical","order":"visual-name","rotate":0,"translate":{"x":0,"y":0},"gutter":25,"name":{"show":true,"text":"GitHub","size":7},"visual":{"show":true,"type":"icon","size":25,"letter":{"text":""},"icon":{"name":"github-alt","prefix":"fab","label":"Alternate GitHub"},"image":{"url":""},"shadow":{"size":0}}},"accent":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0}},"color":{"by":"theme","hsl":{"h":0,"s":0,"l":0},"rgb":{"r":0,"g":0,"b":0},"opacity":60},"background":{"show":false,"type":"image","opacity":100,"image":{"url":""},"video":{"url":""}},"border":0,"shape":{"wide":false,"tall":false},"timestamp":1650968711731}]}]} -------------------------------------------------------------------------------- /firefox/vimium_themes/vimium-ctp-frappe.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --font-size: 15; 3 | --font-size-hints: 12; 4 | --font-size-url: 14; 5 | 6 | --font-weight: normal; 7 | --font-weight-medium: medium; 8 | --font-weight-bold: bold; 9 | 10 | /* --font: "Helvetica Neue", "Helvetica", "Arial", sans-serif; /* Font used in the UI */ */ 11 | --font: -moz-window; 12 | 13 | --padding: 2px; 14 | --padding-vomnibar: 6px; 15 | --shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); 16 | 17 | /* -------- VOMNIBAR & HUD -------- */ 18 | --fg: #C6D0F5; 19 | --fg-dark: #6C7086; 20 | --fg-url: #9399B2; 21 | --fg-match: #A6D189; 22 | --fg-source: #8CAAEE; 23 | 24 | --bg: #303446; 25 | --bg-searcharea: #414559; 26 | --bg-selected: #51576d; 27 | 28 | --border: #414559; 29 | 30 | /* -------- HINTS -------- */ 31 | --bg-hints: #babbf1; /* Background color of link hints */ 32 | --border-hints: #babbf1; /* Border color of link hints */ 33 | --fg-hints: #232634; /* Text color of link hints, (don't forget to change `#vimiumHintMarkerContainer div > .matchingCharacter ~ span`) */ 34 | } 35 | 36 | /* --------------------------------- CSS --------------------------------- */ 37 | 38 | /* -------- HINTS -------- */ 39 | #vimiumHintMarkerContainer div.internalVimiumHintMarker, #vimiumHintMarkerContainer div.vimiumHintMarker { 40 | background: var(--bg-hints); 41 | border: 1px solid var(--border-hints); 42 | box-shadow: var(--shadow); 43 | padding: 2px 3px; 44 | } 45 | 46 | #vimiumHintMarkerContainer div span { 47 | color: var(--fg-hints); 48 | /* font-family: var(--font); */ 49 | font-size: var(--font-size-hints); 50 | font-weight: var(--font-weight-bold); 51 | text-shadow: none; 52 | } 53 | 54 | #vimiumHintMarkerContainer div > .matchingCharacter { 55 | opacity: 0.3; 56 | } 57 | 58 | #vimiumHintMarkerContainer div > .matchingCharacter ~ span { 59 | color: var(--hints-main-fg); 60 | } 61 | 62 | /* -------- VOMNIBAR -------- */ 63 | #vomnibar { 64 | animation: show 150ms cubic-bezier(0, 0, 0.2, 1) forwards; 65 | background: var(--bg); 66 | border: 1px solid var(--border); 67 | box-shadow: var(--shadow); 68 | border-radius: 8px; 69 | } 70 | 71 | /* Animate Slide in */ 72 | @keyframes show { 73 | 0% { 74 | opacity: 0; 75 | /* transform: translateY(50px); */ 76 | } 77 | 100% { 78 | opacity: 1; 79 | /* transform: translateY(0); */ 80 | } 81 | } 82 | 83 | #vomnibar .vomnibarSearchArea, 84 | #vomnibar input { 85 | /* ALTERNATE BACKGROUND COLOR: 86 | background: transparent; */ 87 | background: var(--bg-searcharea); 88 | border: none; 89 | box-shadow: none; 90 | color: var(--fg); 91 | /* font-family: var(--font); */ 92 | font-size: var(--font-size); 93 | font-weight: var(--font-weight); 94 | } 95 | 96 | #vomnibar .vomnibarSearchArea { 97 | padding: 8px 30px; 98 | border-radius: 8px; 99 | } 100 | 101 | #vomnibar input { 102 | border: none; 103 | padding: var(--padding); 104 | } 105 | 106 | #vomnibar ul { 107 | background: var(--bg); 108 | border-top: 1px solid var(--border); 109 | margin: 0; 110 | padding: var(--padding-vomnibar); 111 | } 112 | 113 | #vomnibar li { 114 | border-bottom: none; 115 | padding-top: 8px; 116 | padding-left: var(--padding-vomnibar); 117 | padding-right: var(--padding-vomnibar); 118 | padding-bottom: 8px; 119 | } 120 | 121 | #vomnibar li .vomnibarTopHalf { 122 | padding-top: var(--padding); 123 | padding-bottom: var(--padding); 124 | } 125 | 126 | #vomnibar li .vomnibarBottomHalf { 127 | padding-top: var(--padding); 128 | padding-bottom: var(--padding); 129 | } 130 | 131 | #vomnibar li .vomnibarSource { 132 | color: var(--fg-source); 133 | /* color: var(--fg-dark); */ 134 | /* font-family: var(--font); */ 135 | font-size: 15; 136 | font-weight: var(--font-weight-bold); 137 | text-transform: uppercase; /* `.vomnibarSource` will be in all uppercase letters. Delete to revert to original */ 138 | } 139 | 140 | #vomnibar li em, 141 | #vomnibar li .vomnibarTitle { 142 | color: var(--fg); 143 | /* font-family: var(--font); */ 144 | font-size: var(--font-size); 145 | font-weight: var(--font-weight-medium); 146 | } 147 | 148 | #vomnibar li .vomnibarUrl { 149 | color: var(--fg-url); 150 | /* font-family: var(--font); */ 151 | font-size: var(--font-size-url); 152 | font-weight: var(--font-weight-medium); 153 | } 154 | 155 | #vomnibar li .vomnibarMatch { 156 | color: var(--fg-match); 157 | /* font-weight: normal; */ 158 | font-weight: bold; 159 | } 160 | 161 | #vomnibar li .vomnibarTitle .vomnibarMatch { 162 | color: var(--fg); 163 | font-weight: bold; 164 | } 165 | 166 | #vomnibar li.vomnibarSelected { 167 | background-color: var(--bg-selected); 168 | border-radius: 8px; 169 | } 170 | 171 | /* #vomnibar li.vomnibarSelected .vomnibarUrl { 172 | color: var(--fg); 173 | } 174 | 175 | #vomnibar li.vomnibarSelected .vomnibarMatch { 176 | color: var(--fg); 177 | } 178 | 179 | #vomnibar li.vomnibarSelected .vomnibarSource { 180 | color: var(--fg); 181 | } */ 182 | 183 | /* -------- HUD -------- */ 184 | div.vimiumHUD { 185 | background: var(--bg); 186 | border: 1px solid var(--border); 187 | box-shadow: var(--shadow); 188 | border-radius: 8px; 189 | } 190 | 191 | div.vimiumHUD span#hud-find-input, 192 | div.vimiumHUD .vimiumHUDSearchAreaInner { 193 | color: var(--fg); 194 | /* font-family: var(--font); */ 195 | font-size: 13; 196 | font-weight: var(--font-weight-medium); 197 | } 198 | 199 | div.vimiumHUD .hud-find { 200 | background-color: transparent; 201 | border: none; 202 | } 203 | 204 | div.vimiumHUD .vimiumHUDSearchArea { 205 | background-color: transparent; 206 | padding: 6px; 207 | } 208 | -------------------------------------------------------------------------------- /firefox/vimium_themes/vimium-ctp-mocha-custom.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --font-size: 15; 3 | --font-size-hints: 12; 4 | --font-size-url: 14; 5 | 6 | --font-weight: normal; 7 | --font-weight-medium: medium; 8 | --font-weight-bold: bold; 9 | 10 | /* --font: "Helvetica Neue", "Helvetica", "Arial", sans-serif; /* Font used in the UI */ */ 11 | --font: -moz-window; 12 | 13 | --padding: 2px; 14 | --padding-vomnibar: 6px; 15 | --shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); 16 | 17 | /* -------- VOMNIBAR & HUD -------- */ 18 | --fg: #CDD6F4; 19 | --fg-dark: #6C7086; 20 | --fg-url: #9399b2; 21 | --fg-match: #A6E3A1; 22 | --fg-source: #89b4fa; 23 | /* ALTERNATIVE `--fg-match' COLOR: 24 | --fg-match: #F29A4A; */ 25 | 26 | --bg: #1E1E2E; 27 | --bg-searcharea: #181825; 28 | --bg-selected: #11111B; 29 | 30 | --border: #313244; 31 | 32 | /* -------- HINTS -------- */ 33 | --bg-hints: #B4BEFE; /* Background color of link hints */ 34 | --border-hints: #B4BEFE; /* Border color of link hints */ 35 | --fg-hints: #1E1E2E; /* Text color of link hints, (don't forget to change `#vimiumHintMarkerContainer div > .matchingCharacter ~ span`) */ 36 | } 37 | 38 | /* --------------------------------- CSS --------------------------------- */ 39 | 40 | /* -------- HINTS -------- */ 41 | #vimiumHintMarkerContainer div.internalVimiumHintMarker, #vimiumHintMarkerContainer div.vimiumHintMarker { 42 | background: var(--bg-hints); 43 | border: 1px solid var(--border-hints); 44 | box-shadow: var(--shadow); 45 | padding: 2px 3px; 46 | } 47 | 48 | #vimiumHintMarkerContainer div span { 49 | color: var(--fg-hints); 50 | /* font-family: var(--font); */ 51 | font-size: var(--font-size-hints); 52 | font-weight: var(--font-weight-bold); 53 | text-shadow: none; 54 | } 55 | 56 | #vimiumHintMarkerContainer div > .matchingCharacter { 57 | opacity: 0.3; 58 | } 59 | 60 | #vimiumHintMarkerContainer div > .matchingCharacter ~ span { 61 | color: var(--hints-main-fg); 62 | } 63 | 64 | /* -------- VOMNIBAR -------- */ 65 | #vomnibar { 66 | animation: show 150ms cubic-bezier(0, 0, 0.2, 1) forwards; 67 | background: var(--bg); 68 | border: 1px solid var(--border); 69 | box-shadow: var(--shadow); 70 | border-radius: 8px; 71 | } 72 | 73 | /* Animate Slide in */ 74 | @keyframes show { 75 | 0% { 76 | opacity: 0; 77 | /* transform: translateY(50px); */ 78 | } 79 | 100% { 80 | opacity: 1; 81 | /* transform: translateY(0); */ 82 | } 83 | } 84 | 85 | #vomnibar .vomnibarSearchArea, 86 | #vomnibar input { 87 | /* ALTERNATE BACKGROUND COLOR: 88 | background: transparent; */ 89 | background: var(--bg-searcharea); 90 | border: none; 91 | box-shadow: none; 92 | color: var(--fg); 93 | /* font-family: var(--font); */ 94 | font-size: var(--font-size); 95 | font-weight: var(--font-weight); 96 | } 97 | 98 | #vomnibar .vomnibarSearchArea { 99 | padding: 8px 30px; 100 | border-radius: 8px; 101 | } 102 | 103 | #vomnibar input { 104 | border: none; 105 | padding: var(--padding); 106 | } 107 | 108 | #vomnibar ul { 109 | background: var(--bg); 110 | border-top: 1px solid var(--border); 111 | margin: 0; 112 | padding: var(--padding-vomnibar); 113 | } 114 | 115 | #vomnibar li { 116 | border-bottom: none; 117 | padding-top: 8px; 118 | padding-left: var(--padding-vomnibar); 119 | padding-right: var(--padding-vomnibar); 120 | padding-bottom: 8px; 121 | } 122 | 123 | #vomnibar li .vomnibarTopHalf { 124 | padding-top: var(--padding); 125 | padding-bottom: var(--padding); 126 | } 127 | 128 | #vomnibar li .vomnibarBottomHalf { 129 | padding-top: var(--padding); 130 | padding-bottom: var(--padding); 131 | } 132 | 133 | #vomnibar li .vomnibarSource { 134 | color: var(--fg-source); 135 | /* color: var(--fg-dark); */ 136 | /* font-family: var(--font); */ 137 | font-size: 15; 138 | font-weight: var(--font-weight-bold); 139 | text-transform: uppercase; /* `.vomnibarSource` will be in all uppercase letters. Delete to revert to original */ 140 | } 141 | 142 | #vomnibar li em, 143 | #vomnibar li .vomnibarTitle { 144 | color: var(--fg); 145 | /* font-family: var(--font); */ 146 | font-size: var(--font-size); 147 | font-weight: var(--font-weight-medium); 148 | } 149 | 150 | #vomnibar li .vomnibarUrl { 151 | color: var(--fg-url); 152 | /* font-family: var(--font); */ 153 | font-size: var(--font-size-url); 154 | font-weight: var(--font-weight-medium); 155 | } 156 | 157 | #vomnibar li .vomnibarMatch { 158 | color: var(--fg-match); 159 | /* font-weight: normal; */ 160 | font-weight: bold; 161 | } 162 | 163 | #vomnibar li .vomnibarTitle .vomnibarMatch { 164 | color: var(--fg); 165 | font-weight: bold; 166 | } 167 | 168 | #vomnibar li.vomnibarSelected { 169 | background-color: var(--bg-selected); 170 | border-radius: 8px; 171 | } 172 | 173 | /* #vomnibar li.vomnibarSelected .vomnibarUrl { 174 | color: var(--fg); 175 | } 176 | 177 | #vomnibar li.vomnibarSelected .vomnibarMatch { 178 | color: var(--fg); 179 | } 180 | 181 | #vomnibar li.vomnibarSelected .vomnibarSource { 182 | color: var(--fg); 183 | } */ 184 | 185 | /* -------- HUD -------- */ 186 | div.vimiumHUD { 187 | background: var(--bg); 188 | border: 1px solid var(--border); 189 | box-shadow: var(--shadow); 190 | border-radius: 8px; 191 | } 192 | 193 | div.vimiumHUD span#hud-find-input, 194 | div.vimiumHUD .vimiumHUDSearchAreaInner { 195 | color: var(--fg); 196 | /* font-family: var(--font); */ 197 | font-size: 13; 198 | font-weight: var(--font-weight-medium); 199 | } 200 | 201 | div.vimiumHUD .hud-find { 202 | background-color: transparent; 203 | border: none; 204 | } 205 | 206 | div.vimiumHUD .vimiumHUDSearchArea { 207 | background-color: transparent; 208 | padding: 6px; 209 | } 210 | -------------------------------------------------------------------------------- /firefox/vimium_themes/vimium-nord.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --font-size: 15; 3 | --font-size-hints: 12; 4 | --font-size-url: 14; 5 | 6 | --font-weight: normal; 7 | --font-weight-medium: medium; 8 | --font-weight-bold: bold; 9 | 10 | /* --font: "Helvetica Neue", "Helvetica", "Arial", sans-serif; /* Font used in the UI */ */ 11 | --font: -moz-window; 12 | 13 | --padding: 2px; 14 | --padding-vomnibar: 6px; 15 | --shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); 16 | 17 | /* -------- VOMNIBAR & HUD -------- */ 18 | --fg: #D8DEE9; 19 | --fg-dark: #4C566A; 20 | --fg-url: #5E81AC; 21 | --fg-match: #A3BE8C; 22 | --fg-source: #81A1C1; 23 | 24 | --bg: #2E3440; 25 | --bg-searcharea: #3B4252; 26 | --bg-selected: #434C5E; 27 | 28 | --border: #3B4252; 29 | 30 | /* -------- HINTS -------- */ 31 | --bg-hints: #EBCB8B; /* Background color of link hints */ 32 | --border-hints: #EBCB8B; /* Border color of link hints */ 33 | --fg-hints: #2E3440; /* Text color of link hints, (don't forget to change `#vimiumHintMarkerContainer div > .matchingCharacter ~ span`) */ 34 | } 35 | 36 | /* --------------------------------- CSS --------------------------------- */ 37 | 38 | /* -------- HINTS -------- */ 39 | #vimiumHintMarkerContainer div.internalVimiumHintMarker, #vimiumHintMarkerContainer div.vimiumHintMarker { 40 | background: var(--bg-hints); 41 | border: 1px solid var(--border-hints); 42 | box-shadow: var(--shadow); 43 | padding: 2px 3px; 44 | } 45 | 46 | #vimiumHintMarkerContainer div span { 47 | color: var(--fg-hints); 48 | /* font-family: var(--font); */ 49 | font-size: var(--font-size-hints); 50 | font-weight: var(--font-weight-bold); 51 | text-shadow: none; 52 | } 53 | 54 | #vimiumHintMarkerContainer div > .matchingCharacter { 55 | opacity: 0.3; 56 | } 57 | 58 | #vimiumHintMarkerContainer div > .matchingCharacter ~ span { 59 | color: var(--hints-main-fg); 60 | } 61 | 62 | /* -------- VOMNIBAR -------- */ 63 | #vomnibar { 64 | animation: show 150ms cubic-bezier(0, 0, 0.2, 1) forwards; 65 | background: var(--bg); 66 | border: 1px solid var(--border); 67 | box-shadow: var(--shadow); 68 | border-radius: 8px; 69 | } 70 | 71 | /* Animate Slide in */ 72 | @keyframes show { 73 | 0% { 74 | opacity: 0; 75 | /* transform: translateY(50px); */ 76 | } 77 | 100% { 78 | opacity: 1; 79 | /* transform: translateY(0); */ 80 | } 81 | } 82 | 83 | #vomnibar .vomnibarSearchArea, 84 | #vomnibar input { 85 | /* ALTERNATE BACKGROUND COLOR: 86 | background: transparent; */ 87 | background: var(--bg-searcharea); 88 | border: none; 89 | box-shadow: none; 90 | color: var(--fg); 91 | /* font-family: var(--font); */ 92 | font-size: var(--font-size); 93 | font-weight: var(--font-weight); 94 | } 95 | 96 | #vomnibar .vomnibarSearchArea { 97 | padding: 8px 30px; 98 | border-radius: 8px; 99 | } 100 | 101 | #vomnibar input { 102 | border: none; 103 | padding: var(--padding); 104 | } 105 | 106 | #vomnibar ul { 107 | background: var(--bg); 108 | border-top: 1px solid var(--border); 109 | margin: 0; 110 | padding: var(--padding-vomnibar); 111 | } 112 | 113 | #vomnibar li { 114 | border-bottom: none; 115 | padding-top: 8px; 116 | padding-left: var(--padding-vomnibar); 117 | padding-right: var(--padding-vomnibar); 118 | padding-bottom: 8px; 119 | } 120 | 121 | #vomnibar li .vomnibarTopHalf { 122 | padding-top: var(--padding); 123 | padding-bottom: var(--padding); 124 | } 125 | 126 | #vomnibar li .vomnibarBottomHalf { 127 | padding-top: var(--padding); 128 | padding-bottom: var(--padding); 129 | } 130 | 131 | #vomnibar li .vomnibarSource { 132 | color: var(--fg-source); 133 | /* color: var(--fg-dark); */ 134 | /* font-family: var(--font); */ 135 | font-size: 15; 136 | font-weight: var(--font-weight-bold); 137 | text-transform: uppercase; /* `.vomnibarSource` will be in all uppercase letters. Delete to revert to original */ 138 | } 139 | 140 | #vomnibar li em, 141 | #vomnibar li .vomnibarTitle { 142 | color: var(--fg); 143 | /* font-family: var(--font); */ 144 | font-size: var(--font-size); 145 | font-weight: var(--font-weight-medium); 146 | } 147 | 148 | #vomnibar li .vomnibarUrl { 149 | color: var(--fg-url); 150 | /* font-family: var(--font); */ 151 | font-size: var(--font-size-url); 152 | font-weight: var(--font-weight-medium); 153 | } 154 | 155 | #vomnibar li .vomnibarMatch { 156 | color: var(--fg-match); 157 | /* font-weight: normal; */ 158 | font-weight: bold; 159 | } 160 | 161 | #vomnibar li .vomnibarTitle .vomnibarMatch { 162 | color: var(--fg); 163 | font-weight: bold; 164 | } 165 | 166 | #vomnibar li.vomnibarSelected { 167 | background-color: var(--bg-selected); 168 | border-radius: 8px; 169 | } 170 | 171 | /* #vomnibar li.vomnibarSelected .vomnibarUrl { 172 | color: var(--fg); 173 | } 174 | 175 | #vomnibar li.vomnibarSelected .vomnibarMatch { 176 | color: var(--fg); 177 | } 178 | 179 | #vomnibar li.vomnibarSelected .vomnibarSource { 180 | color: var(--fg); 181 | } */ 182 | 183 | /* -------- HUD -------- */ 184 | div.vimiumHUD { 185 | background: var(--bg); 186 | border: 1px solid var(--border); 187 | box-shadow: var(--shadow); 188 | border-radius: 8px; 189 | } 190 | 191 | div.vimiumHUD span#hud-find-input, 192 | div.vimiumHUD .vimiumHUDSearchAreaInner { 193 | color: var(--fg); 194 | /* font-family: var(--font); */ 195 | font-size: 13; 196 | font-weight: var(--font-weight-medium); 197 | } 198 | 199 | div.vimiumHUD .hud-find { 200 | background-color: transparent; 201 | border: none; 202 | } 203 | 204 | div.vimiumHUD .vimiumHUDSearchArea { 205 | background-color: transparent; 206 | padding: 6px; 207 | } 208 | -------------------------------------------------------------------------------- /firefox/vimium_themes/vimium-onedark.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --font-size: 15; 3 | --font-size-hints: 12; 4 | --font-size-url: 14; 5 | 6 | --font-weight: normal; 7 | --font-weight-medium: medium; 8 | --font-weight-bold: bold; 9 | 10 | /* --font: "Helvetica Neue", "Helvetica", "Arial", sans-serif; /* Font used in the UI */ */ 11 | --font: -moz-window; 12 | 13 | --padding: 2px; 14 | --padding-vomnibar: 6px; 15 | --shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); 16 | 17 | /* -------- VOMNIBAR & HUD -------- */ 18 | --fg: #979FAD; 19 | --fg-dark: #6B727D; 20 | --fg-url: #59626F; 21 | --fg-match: #98C379; 22 | --fg-source: #61AFEF; 23 | 24 | --bg: #282C34; 25 | --bg-searcharea: #1F232B; 26 | --bg-selected: #3A3F4B; 27 | 28 | --border: #2F333D; 29 | 30 | /* -------- HINTS -------- */ 31 | --bg-hints: #E5C17C; /* Background color of link hints */ 32 | --border-hints: #E5C17C; /* Border color of link hints */ 33 | --fg-hints: #282C34; /* Text color of link hints, (don't forget to change `#vimiumHintMarkerContainer div > .matchingCharacter ~ span`) */ 34 | } 35 | 36 | /* --------------------------------- CSS --------------------------------- */ 37 | 38 | /* -------- HINTS -------- */ 39 | #vimiumHintMarkerContainer div.internalVimiumHintMarker, #vimiumHintMarkerContainer div.vimiumHintMarker { 40 | background: var(--bg-hints); 41 | border: 1px solid var(--border-hints); 42 | box-shadow: var(--shadow); 43 | padding: 2px 3px; 44 | } 45 | 46 | #vimiumHintMarkerContainer div span { 47 | color: var(--fg-hints); 48 | /* font-family: var(--font); */ 49 | font-size: var(--font-size-hints); 50 | font-weight: var(--font-weight-bold); 51 | text-shadow: none; 52 | } 53 | 54 | #vimiumHintMarkerContainer div > .matchingCharacter { 55 | opacity: 0.3; 56 | } 57 | 58 | #vimiumHintMarkerContainer div > .matchingCharacter ~ span { 59 | color: var(--hints-main-fg); 60 | } 61 | 62 | /* -------- VOMNIBAR -------- */ 63 | #vomnibar { 64 | animation: show 150ms cubic-bezier(0, 0, 0.2, 1) forwards; 65 | background: var(--bg); 66 | border: 1px solid var(--border); 67 | box-shadow: var(--shadow); 68 | border-radius: 8px; 69 | } 70 | 71 | /* Animate Slide in */ 72 | @keyframes show { 73 | 0% { 74 | opacity: 0; 75 | /* transform: translateY(50px); */ 76 | } 77 | 100% { 78 | opacity: 1; 79 | /* transform: translateY(0); */ 80 | } 81 | } 82 | 83 | #vomnibar .vomnibarSearchArea, 84 | #vomnibar input { 85 | /* ALTERNATE BACKGROUND COLOR: 86 | background: transparent; */ 87 | background: var(--bg-searcharea); 88 | border: none; 89 | box-shadow: none; 90 | color: var(--fg); 91 | /* font-family: var(--font); */ 92 | font-size: var(--font-size); 93 | font-weight: var(--font-weight); 94 | } 95 | 96 | #vomnibar .vomnibarSearchArea { 97 | padding: 8px 30px; 98 | border-radius: 8px; 99 | } 100 | 101 | #vomnibar input { 102 | border: none; 103 | padding: var(--padding); 104 | } 105 | 106 | #vomnibar ul { 107 | background: var(--bg); 108 | border-top: 1px solid var(--border); 109 | margin: 0; 110 | padding: var(--padding-vomnibar); 111 | } 112 | 113 | #vomnibar li { 114 | border-bottom: none; 115 | padding-top: 8px; 116 | padding-left: var(--padding-vomnibar); 117 | padding-right: var(--padding-vomnibar); 118 | padding-bottom: 8px; 119 | } 120 | 121 | #vomnibar li .vomnibarTopHalf { 122 | padding-top: var(--padding); 123 | padding-bottom: var(--padding); 124 | } 125 | 126 | #vomnibar li .vomnibarBottomHalf { 127 | padding-top: var(--padding); 128 | padding-bottom: var(--padding); 129 | } 130 | 131 | #vomnibar li .vomnibarSource { 132 | color: var(--fg-source); 133 | /* color: var(--fg-dark); */ 134 | /* font-family: var(--font); */ 135 | font-size: 15; 136 | font-weight: var(--font-weight-bold); 137 | text-transform: uppercase; /* `.vomnibarSource` will be in all uppercase letters. Delete to revert to original */ 138 | } 139 | 140 | #vomnibar li em, 141 | #vomnibar li .vomnibarTitle { 142 | color: var(--fg); 143 | /* font-family: var(--font); */ 144 | font-size: var(--font-size); 145 | font-weight: var(--font-weight-medium); 146 | } 147 | 148 | #vomnibar li .vomnibarUrl { 149 | color: var(--fg-url); 150 | /* font-family: var(--font); */ 151 | font-size: var(--font-size-url); 152 | font-weight: var(--font-weight-medium); 153 | } 154 | 155 | #vomnibar li .vomnibarMatch { 156 | color: var(--fg-match); 157 | /* font-weight: normal; */ 158 | font-weight: bold; 159 | } 160 | 161 | #vomnibar li .vomnibarTitle .vomnibarMatch { 162 | color: var(--fg); 163 | font-weight: bold; 164 | } 165 | 166 | #vomnibar li.vomnibarSelected { 167 | background-color: var(--bg-selected); 168 | border-radius: 8px; 169 | } 170 | 171 | /* #vomnibar li.vomnibarSelected .vomnibarUrl { 172 | color: var(--fg); 173 | } 174 | 175 | #vomnibar li.vomnibarSelected .vomnibarMatch { 176 | color: var(--fg); 177 | } 178 | 179 | #vomnibar li.vomnibarSelected .vomnibarSource { 180 | color: var(--fg); 181 | } */ 182 | 183 | /* -------- HUD -------- */ 184 | div.vimiumHUD { 185 | background: var(--bg); 186 | border: 1px solid var(--border); 187 | box-shadow: var(--shadow); 188 | border-radius: 8px; 189 | } 190 | 191 | div.vimiumHUD span#hud-find-input, 192 | div.vimiumHUD .vimiumHUDSearchAreaInner { 193 | color: var(--fg); 194 | /* font-family: var(--font); */ 195 | font-size: 13; 196 | font-weight: var(--font-weight-medium); 197 | } 198 | 199 | div.vimiumHUD .hud-find { 200 | background-color: transparent; 201 | border: none; 202 | } 203 | 204 | div.vimiumHUD .vimiumHUDSearchArea { 205 | background-color: transparent; 206 | padding: 6px; 207 | } 208 | -------------------------------------------------------------------------------- /firefox/vimium_themes/vimium-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "settingsVersion": "1.67.1", 3 | "exclusionRules": [], 4 | "filterLinkHints": false, 5 | "waitForEnterForFilteredHints": true, 6 | "hideHud": false, 7 | "keyMappings": "# map nextTab\n# map previousTab\nmap w nextTab\nmap q previousTab", 8 | "linkHintCharacters": "sadfjklewcmpgh", 9 | "linkHintNumbers": "0123456789", 10 | "newTabUrl": "about:newtab", 11 | "nextPatterns": "next,more,newer,>,›,→,»,≫,>>,следующая,вперед,дальше", 12 | "previousPatterns": "prev,previous,back,older,<,‹,←,«,≪,<<,предыдущая,назад", 13 | "regexFindMode": false, 14 | "ignoreKeyboardLayout": true, 15 | "scrollStepSize": 60, 16 | "smoothScroll": true, 17 | "grabBackFocus": false, 18 | "searchEngines": "w: https://www.wikipedia.org/w/index.php?title=Special:Search&search=%s Wikipedia\n\n# Google\ng: https://www.google.com/search?q=%s Google\nп: https://www.google.com/search?q=%s Google\n# l: https://www.google.com/search?q=%s&btnI I'm feeling lucky...\n\n# Youtube\ny: https://www.youtube.com/results?search_query=%s Youtube\nн: https://www.youtube.com/results?search_query=%s Youtube\n\n# DuckDuckGo\nd: https://duckduckgo.com/?q=%s DuckDuckGo\nв: https://duckduckgo.com/?q=%s DuckDuckGo", 19 | "searchUrl": "https://duckduckgo.com/?q=", 20 | "userDefinedLinkHintCss": ":root {\n --font-size: 15;\n --font-size-hints: 12;\n --font-size-url: 14;\n\n --font-weight: normal;\n --font-weight-medium: medium;\n --font-weight-bold: bold;\n\n /* --font: \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif; /* Font used in the UI */ */\n --font: -moz-window;\n \n --padding: 2px;\n --padding-vomnibar: 6px;\n --shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n\n/* -------- VOMNIBAR & HUD -------- */\n --fg: #CDD6F4;\n --fg-dark: #6C7086;\n --fg-url: #89B4FA; \n --fg-match: #A6E3A1;\n /* ALTERNATIVE `--fg-match' COLOR: \n --fg-match: #F29A4A; */\n\n --bg: #1E1E2E;\n --bg-searcharea: #181825;\n --bg-selected: #45475A;\n\n --border: #313244;\n\n/* -------- HINTS -------- */\n --bg-hints: #B4BEFE; /* Background color of link hints */\n --border-hints: #B4BEFE; /* Border color of link hints */\n --fg-hints: #1E1E2E; /* Text color of link hints, (don't forget to change `#vimiumHintMarkerContainer div > .matchingCharacter ~ span`) */\n}\n\n/* --------------------------------- CSS --------------------------------- */\n\n/* -------- HINTS -------- */\n#vimiumHintMarkerContainer div.internalVimiumHintMarker, #vimiumHintMarkerContainer div.vimiumHintMarker {\n background: var(--bg-hints);\n border: 1px solid var(--border-hints);\n box-shadow: var(--shadow);\n padding: 2px 3px;\n}\n\n#vimiumHintMarkerContainer div span {\n color: var(--fg-hints);\n /* font-family: var(--font); */\n font-size: var(--font-size-hints);\n font-weight: var(--font-weight-bold);\n text-shadow: none;\n}\n\n#vimiumHintMarkerContainer div > .matchingCharacter {\n opacity: 0.3;\n}\n\n#vimiumHintMarkerContainer div > .matchingCharacter ~ span {\n color: var(--hints-main-fg);\n}\n\n/* -------- VOMNIBAR -------- */\n#vomnibar {\n animation: show 150ms cubic-bezier(0, 0, 0.2, 1) forwards;\n background: var(--bg);\n border: 1px solid var(--border);\n box-shadow: var(--shadow);\n border-radius: 8px;\n}\n\n/* Animate Slide in */\n@keyframes show {\n 0% {\n opacity: 0;\n /* transform: translateY(50px); */\n }\n 100% {\n opacity: 1;\n /* transform: translateY(0); */\n }\n}\n\n#vomnibar .vomnibarSearchArea,\n#vomnibar input {\n /* ALTERNATE BACKGROUND COLOR:\n background: transparent; */\n background: var(--bg-searcharea);\n border: none;\n box-shadow: none;\n color: var(--fg);\n /* font-family: var(--font); */\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n}\n\n#vomnibar .vomnibarSearchArea {\n padding: 8px 30px;\n border-radius: 8px;\n}\n\n#vomnibar input {\n border: none;\n padding: var(--padding);\n}\n\n#vomnibar ul {\n background: var(--bg);\n border-top: 1px solid var(--border);\n margin: 0;\n padding: var(--padding-vomnibar);\n}\n\n#vomnibar li {\n border-bottom: none;\n padding-top: 8px;\n padding-left: var(--padding-vomnibar);\n padding-right: var(--padding-vomnibar);\n padding-bottom: 8px;\n}\n\n#vomnibar li .vomnibarTopHalf {\n padding: var(--padding);\n}\n\n#vomnibar li .vomnibarBottomHalf {\n padding-top: 0px;\n padding-bottom: 1px;\n}\n\n#vomnibar li .vomnibarSource {\n color: #B4BEFE;\n /* color: var(--fg-dark); */\n /* font-family: var(--font); */\n font-size: 12;\n font-weight: var(--font-weight-bold);\n text-transform: uppercase; /* `.vomnibarSource` will be in all uppercase letters. Delete to revert to original */\n}\n\n#vomnibar li em,\n#vomnibar li .vomnibarTitle {\n color: var(--fg);\n /* font-family: var(--font); */\n font-size: var(--font-size);\n font-weight: var(--font-weight-medium);\n}\n\n#vomnibar li .vomnibarUrl {\n color: var(--fg-url);\n /* font-family: var(--font); */\n font-size: var(--font-size-url);\n font-weight: var(--font-weight-medium);\n}\n\n#vomnibar li .vomnibarMatch {\n color: var(--fg-match);\n /* font-weight: normal; */\n font-weight: bold;\n}\n\n#vomnibar li .vomnibarTitle .vomnibarMatch {\n color: var(--fg);\n font-weight: bold; \n}\n\n#vomnibar li.vomnibarSelected {\n background-color: var(--bg-selected);\n border-radius: 8px;\n}\n\n#vomnibar li.vomnibarSelected .vomnibarUrl { /* Changes '.vomnibarURL' to '--fg-match' when selected */\n /* color: var(--fg-match); */\n}\n\n#vomnibar li.vomnibarSelected .vomnibarMatch { /* Changes '.vomnibarMatch' to '--fg' when selected */\n color: var(--fg);\n}\n\n/* -------- HUD -------- */\ndiv.vimiumHUD {\n background: var(--bg);\n border: 1px solid var(--border);\n box-shadow: var(--shadow);\n border-radius: 8px;\n}\n\ndiv.vimiumHUD span#hud-find-input,\ndiv.vimiumHUD .vimiumHUDSearchAreaInner {\n color: var(--fg);\n /* font-family: var(--font); */\n font-size: 13;\n font-weight: var(--font-weight-medium);\n}\n\ndiv.vimiumHUD .hud-find {\n background-color: transparent;\n border: none;\n}\n\ndiv.vimiumHUD .vimiumHUDSearchArea {\n background-color: transparent;\n padding: 6px;\n}" 21 | } 22 | -------------------------------------------------------------------------------- /kitty/kitty.app.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/kitty/kitty.app.icns -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # vim:fileencoding=utf-8:foldmethod=marker 2 | 3 | # Theme 4 | include themes/ctp_mocha.conf 5 | 6 | # Fonts 7 | 8 | # font_family Iosevka Nerd Font Medium 9 | # bold_font Iosevka Nerd Font Bold 10 | # italic_font Iosevka Nerd Font Medium Italic 11 | # bold_italic_font Iosevka Nerd Font Bold Italic 12 | 13 | font_family JetBrains Mono Regular 14 | bold_font JetBrains Mono Bold 15 | italic_font JetBrains Mono Medium Italic 16 | bold_italic_font JetBrains Mono Bold Italic 17 | 18 | font_size 11.5 19 | # font_size 12.0 20 | 21 | # Always show ligatures 22 | disable_ligatures never 23 | 24 | # Line height 25 | adjust_line_height 13 26 | adjust_column_width 0 27 | 28 | # Cursor options 29 | cursor_shape beam 30 | cursor_beam_thickness 1.5 31 | cursor_underline_thickness 2.0 32 | 33 | # Disable cursor blinking 34 | cursor_blink_interval 0 35 | 36 | # Scrollback history 37 | scrollback_lines 2500 38 | 39 | # Faster touchpad scrolling 40 | touch_scroll_multiplier 3 41 | 42 | # Hide mouse when typing 43 | mouse_hide_wait -1 44 | 45 | # Open URLs with default system app 46 | open_url_with default 47 | 48 | # Highlight URLs 49 | detect_urls yes 50 | copy_on_select no 51 | 52 | # Remove trailng spaces at the end of lines 53 | strip_trailing_spaces smart 54 | focus_follows_mouse no 55 | 56 | # Pointer shape 57 | default_pointer_shape beam 58 | pointer_shape_when_dragging beam 59 | 60 | # Delay between screen updates 61 | repaint_delay 5 62 | 63 | # Window options 64 | remember_window_size no 65 | window_padding_width 6 66 | hide_window_decorations titlebar-only 67 | confirm_os_window_close 0 68 | 69 | # Tab bar options 70 | tab_bar_style powerline 71 | tab_bar_align left 72 | tab_powerline_style slanted 73 | 74 | close_on_child_death no 75 | allow_remote_control yes 76 | 77 | # Check for kitty updates 78 | update_check_interval 24 79 | 80 | # Enable shell integration 81 | shell_integration no-prompt-mark 82 | # shell_integration no-prompt-mark no-cursor 83 | 84 | # Set $TERM env 85 | term xterm-kitty 86 | 87 | # Macos opions 88 | macos_custom_beam_cursor yes 89 | -------------------------------------------------------------------------------- /kitty/themes/ctp_frappe.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Frappe 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/frappe.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #C6D0F5 13 | background #303446 14 | selection_foreground #303446 15 | selection_background #F2D5CF 16 | 17 | # Cursor colors 18 | cursor #BABBF1 19 | # cursor #F2D5CF 20 | cursor_text_color #303446 21 | 22 | # URL underline color when hovering with mouse 23 | url_color #F2D5CF 24 | 25 | # Kitty window border colors 26 | active_border_color #BABBF1 27 | inactive_border_color #737994 28 | bell_border_color #E5C890 29 | 30 | # OS Window titlebar colors 31 | wayland_titlebar_color system 32 | macos_titlebar_color system 33 | 34 | # Tab bar colors 35 | active_tab_foreground #232634 36 | active_tab_background #CA9EE6 37 | inactive_tab_foreground #C6D0F5 38 | inactive_tab_background #292C3C 39 | tab_bar_background #232634 40 | 41 | # Colors for marks (marked text in the terminal) 42 | mark1_foreground #303446 43 | mark1_background #BABBF1 44 | mark2_foreground #303446 45 | mark2_background #CA9EE6 46 | mark3_foreground #303446 47 | mark3_background #85C1DC 48 | 49 | # The 16 terminal colors 50 | 51 | # black 52 | color0 #51576D 53 | color8 #626880 54 | 55 | # red 56 | color1 #E78284 57 | color9 #E78284 58 | 59 | # green 60 | color2 #A6D189 61 | color10 #A6D189 62 | 63 | # yellow 64 | color3 #E5C890 65 | color11 #E5C890 66 | 67 | # blue 68 | color4 #8CAAEE 69 | color12 #8CAAEE 70 | 71 | # magenta 72 | color5 #F4B8E4 73 | color13 #F4B8E4 74 | 75 | # cyan 76 | color6 #81C8BE 77 | color14 #81C8BE 78 | 79 | # white 80 | color7 #B5BFE2 81 | color15 #A5ADCE 82 | -------------------------------------------------------------------------------- /kitty/themes/ctp_mocha.conf: -------------------------------------------------------------------------------- 1 | ## name: Catppuccin-Mocha 2 | ## author: Pocco81 (https://github.com/Pocco81) 3 | ## license: MIT 4 | ## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf 5 | ## blurb: Soothing pastel theme for the high-spirited! 6 | 7 | 8 | 9 | # The basic colors 10 | foreground #CDD6F4 11 | background #1E1E2E 12 | selection_foreground #CDD6F4 13 | selection_background #45475A 14 | # selection_foreground #1E1E2E 15 | # selection_background #F5E0DC 16 | 17 | # Cursor colors 18 | # cursor #F5E0DC 19 | cursor #B4BEFE 20 | cursor_text_color #1E1E2E 21 | 22 | # URL underline color when hovering with mouse 23 | # url_color #F5E0DC 24 | url_color #B4BEFE 25 | 26 | # Kitty window border colors 27 | active_border_color #B4BEFE 28 | inactive_border_color #6C7086 29 | bell_border_color #F9E2AF 30 | 31 | # OS Window titlebar colors 32 | wayland_titlebar_color system 33 | macos_titlebar_color system 34 | 35 | # Tab bar colors 36 | active_tab_foreground #11111B 37 | active_tab_background #CBA6F7 38 | inactive_tab_foreground #CDD6F4 39 | inactive_tab_background #181825 40 | tab_bar_background #11111B 41 | 42 | # Colors for marks (marked text in the terminal) 43 | mark1_foreground #1E1E2E 44 | mark1_background #B4BEFE 45 | mark2_foreground #1E1E2E 46 | mark2_background #CBA6F7 47 | mark3_foreground #1E1E2E 48 | mark3_background #74C7EC 49 | 50 | # The 16 terminal colors 51 | 52 | # black 53 | color0 #45475A 54 | color8 #585B70 55 | 56 | # red 57 | color1 #F38BA8 58 | color9 #F38BA8 59 | 60 | # green 61 | color2 #A6E3A1 62 | color10 #A6E3A1 63 | 64 | # yellow 65 | color3 #F9E2AF 66 | color11 #F9E2AF 67 | 68 | # blue 69 | color4 #89B4FA 70 | color12 #89B4FA 71 | 72 | # magenta 73 | color5 #F5C2E7 74 | color13 #F5C2E7 75 | 76 | # cyan 77 | color6 #94E2D5 78 | color14 #94E2D5 79 | 80 | # white 81 | color7 #BAC2DE 82 | color15 #A6ADC8 83 | -------------------------------------------------------------------------------- /kitty/themes/ctp_v1.conf: -------------------------------------------------------------------------------- 1 | # vim:fileencoding=utf-8:foldmethod=marker 2 | 3 | ## name: Catppuccin 4 | ## author: Pocco81 (https://github.com/Pocco81) 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/catppuccin.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # The basic colors 10 | foreground #D9E0EE 11 | background #1E1E2E 12 | selection_foreground #D9E0EE 13 | selection_background #575268 14 | 15 | # Cursor colors 16 | cursor #F5E0DC 17 | cursor_text_color #1E1E2E 18 | 19 | # URL underline color when hovering with mouse 20 | url_color #F5E0DC 21 | 22 | # kitty window border colors 23 | active_border_color #C9CBFF 24 | inactive_border_color #575268 25 | bell_border_color #FAE3B0 26 | 27 | # OS Window titlebar colors 28 | wayland_titlebar_color system 29 | macos_titlebar_color system 30 | 31 | #: Tab bar colors 32 | active_tab_foreground #F5C2E7 33 | active_tab_background #575268 34 | inactive_tab_foreground #D9E0EE 35 | inactive_tab_background #1E1E2E 36 | tab_bar_background #161320 37 | 38 | # Colors for marks (marked text in the terminal) 39 | 40 | mark1_foreground #1E1E2E 41 | mark1_background #96CDFB 42 | mark2_foreground #1E1E2E 43 | mark2_background #F5C2E7 44 | mark3_foreground #1E1E2E 45 | mark3_background #B5E8E0 46 | 47 | #: The 16 terminal colors 48 | 49 | #: black 50 | color0 #6E6C7E 51 | color8 #988BA2 52 | 53 | #: red 54 | color1 #F28FAD 55 | color9 #F28FAD 56 | 57 | #: green 58 | color2 #ABE9B3 59 | color10 #ABE9B3 60 | 61 | #: yellow 62 | color3 #FAE3B0 63 | color11 #FAE3B0 64 | 65 | #: blue 66 | color4 #96CDFB 67 | color12 #96CDFB 68 | 69 | #: magenta 70 | color5 #F5C2E7 71 | color13 #F5C2E7 72 | 73 | #: cyan 74 | color6 #89DCEB 75 | color14 #89DCEB 76 | 77 | #: white 78 | color7 #D9E0EE 79 | color15 #D9E0EE 80 | -------------------------------------------------------------------------------- /kitty/themes/decay.conf: -------------------------------------------------------------------------------- 1 | # Eye Friendly Colors 2 | # Created by https://github.com/decaycs 3 | 4 | # Special 5 | foreground #a9b1d6 6 | background #171a1f 7 | 8 | # Black 9 | color0 #1c252c 10 | color8 #384148 11 | 12 | # Red 13 | color1 #e05f65 14 | color9 #fc7b81 15 | 16 | # Green 17 | color2 #78dba9 18 | color10 #94f7c5 19 | 20 | # Yellow 21 | color3 #f1cf8a 22 | color11 #ffeba6 23 | 24 | # Blue 25 | color4 #70a5eb 26 | color12 #8cc1ff 27 | 28 | # Magenta 29 | color5 #c68aee 30 | color13 #e2a6ff 31 | 32 | # Cyan 33 | color6 #74bee9 34 | color14 #90daff 35 | 36 | # White 37 | color7 #dee1e6 38 | color15 #fafdff 39 | 40 | # Cursor 41 | cursor #f5f5f5 42 | cursor_text_color #a9b1d6 43 | 44 | # Selection highlight 45 | selection_foreground #a9b1d6 46 | selection_background #22262e 47 | -------------------------------------------------------------------------------- /kitty/themes/everblush.conf: -------------------------------------------------------------------------------- 1 | font_family CaskaydiaCove Nerd Font Mono 2 | font_size 10 3 | 4 | window_padding_width 5 5 | 6 | foreground #dadada 7 | background #181f21 8 | cursor #bdc3c2 9 | color0 #22292b 10 | color1 #e06e6e 11 | color2 #8ccf7e 12 | color3 #e5c76b 13 | color4 #67b0e8 14 | color5 #c47fd5 15 | color6 #6da4cd 16 | color7 #b3b9b8 17 | color8 #3b4244 18 | color9 #ef7d7d 19 | color10 #9bdead 20 | color11 #f4d67a 21 | color12 #6cb5ed 22 | color13 #ce89df 23 | color14 #67cbe7 24 | color15 #bdc3c2 25 | selection_foreground #dadada 26 | selection_background #3b4244 27 | 28 | # Tabs 29 | 30 | tab_bar_edge bottom 31 | tab_bar_style powerline 32 | 33 | tab_separator "|" 34 | 35 | active_tab_foreground #E182E0 36 | active_tab_background #1b2224 37 | inactive_tab_foreground #CD69CC 38 | inactive_tab_background #232a2c 39 | active_tab_font_style italic 40 | -------------------------------------------------------------------------------- /kitty/themes/nord.conf: -------------------------------------------------------------------------------- 1 | # Nord Colorscheme for Kitty 2 | # Based on: 3 | # - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192 4 | # - https://github.com/arcticicestudio/nord-hyper 5 | 6 | foreground #D8DEE9 7 | background #2E3440 8 | selection_foreground #000000 9 | selection_background #FFFACD 10 | url_color #0087BD 11 | cursor #81A1C1 12 | 13 | # black 14 | color0 #3B4252 15 | color8 #4C566A 16 | 17 | # red 18 | color1 #BF616A 19 | color9 #BF616A 20 | 21 | # green 22 | color2 #A3BE8C 23 | color10 #A3BE8C 24 | 25 | # yellow 26 | color3 #EBCB8B 27 | color11 #EBCB8B 28 | 29 | # blue 30 | color4 #81A1C1 31 | color12 #81A1C1 32 | 33 | # magenta 34 | color5 #B48EAD 35 | color13 #B48EAD 36 | 37 | # cyan 38 | color6 #88C0D0 39 | color14 #8FBCBB 40 | 41 | # white 42 | color7 #E5E9F0 43 | color15 #ECEFF4 44 | -------------------------------------------------------------------------------- /kitty/themes/onedark.conf: -------------------------------------------------------------------------------- 1 | # one dark 2 | 3 | # special 4 | foreground #abb2bf 5 | cursor #cccccc 6 | background #282c34 7 | 8 | # black 9 | # color0 #282c34 10 | color0 #1F232B 11 | color8 #5c6370 12 | 13 | # red 14 | color1 #e06c75 15 | color9 #e06c75 16 | # color9 #be5046 17 | 18 | # green 19 | color2 #98c379 20 | color10 #98c379 21 | # color10 #7a9f60 22 | 23 | # yellow 24 | color3 #e5c07b 25 | color11 #e5c07b 26 | # color11 #d19a66 27 | 28 | # blue 29 | color4 #61afef 30 | color12 #61afef 31 | # color12 #3b84c0 32 | 33 | # magenta 34 | color5 #c678dd 35 | color13 #c678dd 36 | # color13 #9a52af 37 | 38 | # cyan 39 | color6 #56b6c2 40 | color14 #56b6c2 41 | # color14 #3c909b 42 | 43 | # white 44 | color7 #abb2bf 45 | color15 #abb2bf 46 | # color15 #828997 47 | 48 | active_tab_foreground #282c34 49 | active_tab_background #979eab 50 | inactive_tab_foreground #abb2bf 51 | inactive_tab_background #282c34 52 | -------------------------------------------------------------------------------- /kitty/themes/rosepine.conf: -------------------------------------------------------------------------------- 1 | ## name: Rosé Pine 2 | ## author: mvllow 3 | ## license: MIT 4 | ## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf 5 | ## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist 6 | 7 | foreground #e0def4 8 | background #191724 9 | selection_foreground #e0def4 10 | selection_background #403d52 11 | 12 | cursor #524f67 13 | cursor_text_color #e0def4 14 | 15 | url_color #c4a7e7 16 | 17 | active_tab_foreground #e0def4 18 | active_tab_background #26233a 19 | inactive_tab_foreground #6e6a86 20 | inactive_tab_background #191724 21 | 22 | # black 23 | color0 #26233a 24 | color8 #6e6a86 25 | 26 | # red 27 | color1 #eb6f92 28 | color9 #eb6f92 29 | 30 | # green 31 | color2 #31748f 32 | color10 #31748f 33 | 34 | # yellow 35 | color3 #f6c177 36 | color11 #f6c177 37 | 38 | # blue 39 | color4 #9ccfd8 40 | color12 #9ccfd8 41 | 42 | # magenta 43 | color5 #c4a7e7 44 | color13 #c4a7e7 45 | 46 | # cyan 47 | color6 #ebbcba 48 | color14 #ebbcba 49 | 50 | # white 51 | color7 #e0def4 52 | color15 #e0def4 53 | 54 | -------------------------------------------------------------------------------- /kitty/themes/tokyonight.conf: -------------------------------------------------------------------------------- 1 | foreground #a9b1d6 2 | background #1a1b26 3 | cursor #a9b1d6 4 | 5 | color0 #1a1b26 6 | color8 #4e5173 7 | 8 | color1 #F7768E 9 | color9 #F7768E 10 | 11 | color2 #9ECE6A 12 | color10 #9ECE6A 13 | 14 | color3 #E0AF68 15 | color11 #E0AF68 16 | 17 | color4 #7AA2F7 18 | color12 #7AA2F7 19 | 20 | color5 #9a7ecc 21 | color13 #9a7ecc 22 | 23 | color6 #4abaaf 24 | color14 #4abaaf 25 | 26 | color7 #acb0d0 27 | color15 #acb0d0 28 | -------------------------------------------------------------------------------- /neovide/config.toml: -------------------------------------------------------------------------------- 1 | frame = "buttonless" 2 | title-hidden = true 3 | srgb = true 4 | 5 | [font] 6 | size = 11.5 7 | 8 | [font.normal] 9 | family = "JetBrainsMono Nerd Font" 10 | style = "Regular" 11 | 12 | [font.bold] 13 | family = "JetBrainsMono Nerd Font" 14 | style = "Bold" 15 | 16 | [font.italic] 17 | family = "JetBrainsMono Nerd Font" 18 | style = "Medium Italic" 19 | 20 | [font.bold_italic] 21 | family = "JetBrainsMono Nerd Font" 22 | style = "Bold Italic" 23 | -------------------------------------------------------------------------------- /ranger/commands.py: -------------------------------------------------------------------------------- 1 | from __future__ import (absolute_import, division, print_function) 2 | 3 | # You always need to import ranger.api.commands here to get the Command class: 4 | from ranger.api.commands import Command 5 | 6 | class show_in_finder(Command): 7 | """ 8 | :show_in_finder 9 | 10 | Present selected files in finder 11 | """ 12 | 13 | def execute(self): 14 | self.fm.run('open .', flags='f') 15 | 16 | class mkcd(Command): 17 | """ 18 | :mkcd 19 | 20 | Creates a directory with the name and enters it. 21 | """ 22 | 23 | def execute(self): 24 | from os.path import join, expanduser, lexists 25 | from os import makedirs 26 | import re 27 | 28 | dirname = join(self.fm.thisdir.path, expanduser(self.rest(1))) 29 | if not lexists(dirname): 30 | makedirs(dirname) 31 | 32 | match = re.search('^/|^~[^/]*/', dirname) 33 | if match: 34 | self.fm.cd(match.group(0)) 35 | dirname = dirname[match.end(0):] 36 | 37 | for m in re.finditer('[^/]+', dirname): 38 | s = m.group(0) 39 | if s == '..' or (s.startswith('.') and not self.fm.settings['show_hidden']): 40 | self.fm.cd(s) 41 | else: 42 | ## We force ranger to load content before calling `scout`. 43 | self.fm.thisdir.load_content(schedule=False) 44 | self.fm.execute_console('scout -ae ^{}$'.format(s)) 45 | else: 46 | self.fm.notify("file/directory exists!", bad=True) 47 | -------------------------------------------------------------------------------- /ranger/plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lowerc4s3/.dotfiles/6fc2bcc6a056793671d8b3a264bdb674eb6dd0ed/ranger/plugins/__init__.py -------------------------------------------------------------------------------- /ranger/plugins/zoxide/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2020 Wesley Roberts 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /ranger/plugins/zoxide/README.md: -------------------------------------------------------------------------------- 1 | # ranger-zoxide 2 | 3 | A [`zoxide`](https://github.com/ajeetdsouza/zoxide) (aka `z`) plugin for 4 | [`ranger`](https://github.com/ranger/ranger). 5 | 6 | Easily jump between commonly visited directories by running this in ranger: 7 | 8 | ``` 9 | :z 10 | ``` 11 | 12 | Or use interactive mode: 13 | 14 | ``` 15 | :zi 16 | ``` 17 | 18 | ## Features 19 | 20 | - Very simple & fast thanks to zoxide 21 | - Supports tab completion 22 | - Works with Python >= 2.7, or >= 3.1 23 | 24 | ## Install 25 | 26 | For ranger >= 1.9.3, use Git to clone this repository into your 27 | `~/.config/ranger/plugins` folder. For example: 28 | 29 | ```sh 30 | git clone git@github.com:jchook/ranger-zoxide.git ~/.config/ranger/plugins/zoxide 31 | ``` 32 | 33 | **Legacy Install** 34 | 35 | For ranger versions older than 1.9.3, or to install without Git, download 36 | `__init__.py` to your `~/.config/ranger/plugins` directory. For example: 37 | 38 | ```sh 39 | mkdir -p ~/.config/ranger/plugins 40 | wget -O ~/.config/ranger/plugins/zoxide.py https://raw.githubusercontent.com/jchook/ranger-zoxide/master/zoxide.py 41 | ``` 42 | 43 | ## Keyboard Shortcut 44 | 45 | You may wish to add a keyboard shortcut to quickly `z` between common 46 | directories. Simply add a binding to your `~/.config/ranger/rc.conf` file: 47 | 48 | ``` 49 | map cz console z%space 50 | ``` 51 | 52 | Or for interactive use: 53 | 54 | ``` 55 | map cz zi 56 | ``` 57 | 58 | ## See Also 59 | 60 | - [ranger-zjumper](https://github.com/ask1234560/ranger-zjumper). 61 | 62 | ## License 63 | 64 | MIT 65 | -------------------------------------------------------------------------------- /ranger/plugins/zoxide/__init__.py: -------------------------------------------------------------------------------- 1 | import os.path 2 | import ranger.api 3 | import ranger.core.fm 4 | import ranger.ext.signals 5 | from subprocess import Popen, PIPE, run 6 | 7 | hook_init_prev = ranger.api.hook_init 8 | 9 | def hook_init(fm): 10 | def zoxide_add(signal): 11 | Popen(["zoxide", "add", signal.new.path]) 12 | 13 | fm.signal_bind("cd", zoxide_add) 14 | fm.commands.alias("zi", "z -i") 15 | return hook_init_prev(fm) 16 | 17 | 18 | ranger.api.hook_init = hook_init 19 | 20 | class z(ranger.api.commands.Command): 21 | """ 22 | :z 23 | 24 | Jump around with zoxide (z) 25 | """ 26 | def execute(self): 27 | results = self.query(self.args[1:]) 28 | if not results: 29 | return 30 | 31 | if os.path.isdir(results[0]): 32 | self.fm.cd(results[0]) 33 | 34 | def query(self, args): 35 | try: 36 | zoxide = self.fm.execute_command(f"zoxide query {' '.join(self.args[1:])}", 37 | stdout=PIPE 38 | ) 39 | stdout, stderr = zoxide.communicate() 40 | 41 | if zoxide.returncode == 0: 42 | output = stdout.decode("utf-8").strip() 43 | return output.splitlines() 44 | elif zoxide.returncode == 1: # nothing found 45 | return None 46 | elif zoxide.returncode == 130: # user cancelled 47 | return None 48 | else: 49 | output = stderr.decode("utf-8").strip() or f"zoxide: unexpected error (exit code {zoxide.returncode})" 50 | self.fm.notify(output, bad=True) 51 | except Exception as e: 52 | self.fm.notify(e, bad=True) 53 | 54 | def tab(self, tabnum): 55 | results = self.query(self.args[1:]) 56 | return ["z {}".format(x) for x in results] 57 | 58 | -------------------------------------------------------------------------------- /ranger/rc.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Custom ranger options 3 | # 4 | 5 | # Git info 6 | set vcs_aware true 7 | 8 | # Case insensetive cd completion 9 | set cd_tab_case insensitive 10 | 11 | # Enable image preview (disabled atm) 12 | set preview_images false 13 | set preview_images_method kitty 14 | 15 | # Window borders 16 | set draw_borders both 17 | 18 | # Line numbers in main column 19 | set line_numbers relative 20 | 21 | # Start line numbers from 1 instead of 0 22 | set one_indexed true 23 | 24 | # Disable padding when no preview available 25 | set padding_right false 26 | 27 | # Shorten $HOME to ~ 28 | set tilde_in_titlebar true 29 | 30 | # Set icons 31 | # default_linemode devicons 32 | 33 | # Travel cmd mapping 34 | map gt console travel%space 35 | 36 | # 37 | # Mappings 38 | # 39 | 40 | # Map zoxide 41 | map cz console z%space 42 | map cZ zi 43 | 44 | # Reveal files in finder 45 | map O show_in_finder 46 | 47 | # Go to last directory 48 | map g- cd - 49 | 50 | # 51 | # Aliases 52 | # 53 | 54 | # Abbrev for mkdir 55 | alias md mkdir 56 | -------------------------------------------------------------------------------- /ranger/rifle.conf: -------------------------------------------------------------------------------- 1 | # vim: ft=cfg 2 | # 3 | # This is the configuration file of "rifle", ranger's file executor/opener. 4 | # Each line consists of conditions and a command. For each line the conditions 5 | # are checked and if they are met, the respective command is run. 6 | # 7 | # Syntax: 8 | # , , ... = command 9 | # 10 | # The command can contain these environment variables: 11 | # $1-$9 | The n-th selected file 12 | # $@ | All selected files 13 | # 14 | # If you use the special command "ask", rifle will ask you what program to run. 15 | # 16 | # Prefixing a condition with "!" will negate its result. 17 | # These conditions are currently supported: 18 | # match | The regexp matches $1 19 | # ext | The regexp matches the extension of $1 20 | # mime | The regexp matches the mime type of $1 21 | # name | The regexp matches the basename of $1 22 | # path | The regexp matches the absolute path of $1 23 | # has | The program is installed (i.e. located in $PATH) 24 | # env | The environment variable "variable" is non-empty 25 | # file | $1 is a file 26 | # directory | $1 is a directory 27 | # number | change the number of this command to n 28 | # terminal | stdin, stderr and stdout are connected to a terminal 29 | # X | A graphical environment is available (darwin, Xorg, or Wayland) 30 | # 31 | # There are also pseudo-conditions which have a "side effect": 32 | # flag | Change how the program is run. See below. 33 | # label