├── x ├── .xinitrc ├── .Xresources └── .xprofile ├── ranger └── .config │ └── ranger │ ├── plugins │ ├── __init__.py │ └── __pycache__ │ │ └── __init__.cpython-39.opt-1.pyc │ ├── .gitignore │ └── rc.conf ├── skhd └── .config │ └── skhd │ └── skhdrc ├── scripts └── .local │ └── bin │ ├── suckless-install │ ├── sb-pacupdate │ ├── sb-volume │ ├── sb-kernel │ ├── sb-memory │ ├── mach-zsh-plugins-update │ ├── sb-clock │ ├── sb-upt │ ├── dmenu_run_desktop │ ├── linkgrabber │ ├── mach-supports-256 │ ├── mach-ls-installed-progs │ ├── st-urlhandler │ ├── ueberzug │ ├── xurls │ └── getnf ├── gtk └── .config │ └── gtk-3.0 │ └── gtk.css ├── machfiles.png ├── .gitignore ├── git └── .gitconfig ├── stylua └── .config │ └── stylua │ └── stylua.toml ├── zsh ├── .config │ └── zsh │ │ ├── functions.zsh │ │ ├── exports.zsh │ │ └── aliases.zsh └── .zshrc ├── .stow-local-ignore ├── ghostty └── .config │ └── ghostty │ ├── themes │ └── void │ └── config ├── rofi └── .config │ └── rofi │ ├── config.rasi │ ├── onedarker_dmenu.rasi │ ├── onedarker.rasi │ └── center.rasi ├── README.md ├── fontconfig └── .config │ └── fontconfig │ └── fonts.conf ├── brew └── .Brewfile ├── programs ├── packages.list └── .pacman.list ├── skippy └── .config │ └── skippy │ └── skippy-xd.rc ├── alacritty └── .config │ └── alacritty │ └── alacritty.yml ├── waybar └── .config │ └── waybar │ ├── scripts │ ├── spotify.sh │ └── mediaplayer.py │ ├── config │ └── style.css ├── nvim └── .config │ └── nvim │ └── lv-config.lua ├── kitty └── .config │ └── kitty │ └── kitty.conf ├── wezterm.lua ├── cava └── .config │ └── cava │ └── config ├── codium └── .config │ └── VSCodium │ └── User │ ├── keybindings.json │ └── settings.json ├── hyprland └── .config │ └── hypr │ └── hyprland.conf ├── picom └── .config │ └── picom │ └── picom.conf ├── sway └── .config │ └── sway │ └── config ├── amfora └── .config │ └── amfora │ └── config.toml └── dunst └── .config └── dunst └── dunstrc /x/.xinitrc: -------------------------------------------------------------------------------- 1 | dwm 2 | -------------------------------------------------------------------------------- /ranger/.config/ranger/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ranger/.config/ranger/.gitignore: -------------------------------------------------------------------------------- 1 | **/*.pyc 2 | -------------------------------------------------------------------------------- /skhd/.config/skhd/skhdrc: -------------------------------------------------------------------------------- 1 | cmd - return : open -n -a "Ghostty" 2 | -------------------------------------------------------------------------------- /scripts/.local/bin/suckless-install: -------------------------------------------------------------------------------- 1 | rm -rf config.h && sudo make clean install 2 | -------------------------------------------------------------------------------- /gtk/.config/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | headerbar.titlebar { 2 | background: #282c34; 3 | } 4 | 5 | -------------------------------------------------------------------------------- /machfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChristianChiarulli/machfiles/HEAD/machfiles.png -------------------------------------------------------------------------------- /scripts/.local/bin/sb-pacupdate: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cupd=$(checkupdates | wc -l) 4 | echo "$cupd " 5 | -------------------------------------------------------------------------------- /scripts/.local/bin/sb-volume: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | vol="$(pamixer --get-volume)" 4 | echo "${vol}% " 5 | -------------------------------------------------------------------------------- /scripts/.local/bin/sb-kernel: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | kern="$(uname -r | cut -d '-' -f1)" 4 | echo -e "$kern " 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | scripts/.local/bin/rust-analyzer 3 | scripts/.local/bin 4 | getnf/ 5 | lazygit/.config/lazygit 6 | -------------------------------------------------------------------------------- /scripts/.local/bin/sb-memory: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | mem="$(free -h | awk '/^Mem:/ {print $3 "/" $2}')" 4 | echo -e "$mem " 5 | -------------------------------------------------------------------------------- /git/.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | email = chris.machine@pm.me 3 | name = Christian Chiarulli 4 | 5 | [core] 6 | editor = nvim 7 | [color] 8 | ui = true 9 | -------------------------------------------------------------------------------- /scripts/.local/bin/mach-zsh-plugins-update: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | find "$ZDOTDIR/plugins" -type d -exec test -e '{}/.git' ';' -print0 | xargs -I {} -0 git -C {} pull" 4 | 5 | -------------------------------------------------------------------------------- /scripts/.local/bin/sb-clock: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | #dte="$(date +"%a %B %d %l:%M%p"| sed 's/ / /g')" 4 | dte="$(date +"%a %B %d"| sed 's/ / /g')" 5 | echo -e "$dte " 6 | -------------------------------------------------------------------------------- /stylua/.config/stylua/stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 120 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 2 5 | quote_style = "AutoPreferDouble" 6 | no_call_parentheses = true 7 | -------------------------------------------------------------------------------- /ranger/.config/ranger/plugins/__pycache__/__init__.cpython-39.opt-1.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChristianChiarulli/machfiles/HEAD/ranger/.config/ranger/plugins/__pycache__/__init__.cpython-39.opt-1.pyc -------------------------------------------------------------------------------- /scripts/.local/bin/sb-upt: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | upt="$(uptime --pretty | sed -e 's/up //g' -e 's/ days/d/g' -e 's/ day/d/g' -e 's/ hours/h/g' -e 's/ hour/h/g' -e 's/ minutes/m/g' -e 's/, / /g')" 4 | echo -e "$upt " 5 | -------------------------------------------------------------------------------- /scripts/.local/bin/dmenu_run_desktop: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | run=$( 3 | ( 4 | ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -; 5 | ls ~/.local/share/applications | awk -F '.desktop' ' { print $1}' -; 6 | ) | dmenu 7 | ) 8 | gtk-launch $run 9 | -------------------------------------------------------------------------------- /scripts/.local/bin/linkgrabber: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | regex='(((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]' 3 | url=$(grep -Po "$regex" | dmenu -p "Go:" -w "$WINDOWID") || exit 4 | echo $BROWSER 5 | echo $url 6 | $BROWSER "$url" 7 | -------------------------------------------------------------------------------- /scripts/.local/bin/mach-supports-256: -------------------------------------------------------------------------------- 1 | for COLOR in {0..255} 2 | do 3 | for STYLE in "38;5" 4 | do 5 | TAG="\033[${STYLE};${COLOR}m" 6 | STR="${STYLE};${COLOR}" 7 | echo -ne "${TAG}${STR}${NONE} " 8 | done 9 | echo 10 | done 11 | -------------------------------------------------------------------------------- /zsh/.config/zsh/functions.zsh: -------------------------------------------------------------------------------- 1 | function brew() { 2 | if [[ $1 == "add" ]]; then 3 | # Remove the first argument ("add") 4 | shift 5 | # Install the package 6 | command brew install "$@" 7 | # Update the global Brewfile 8 | command brew bundle dump --global --force 9 | else 10 | # Call the original brew command with all original arguments 11 | command brew "$@" 12 | fi 13 | } 14 | -------------------------------------------------------------------------------- /.stow-local-ignore: -------------------------------------------------------------------------------- 1 | # ~./dotfiles/.stow.local.ignore: Files to be ignored by gnu 'stow' 2 | # 3 | # Comments and blank lines are allowed. 4 | # 5 | # See 'info stow' section "4 Ignore Lists" for more information 6 | 7 | RCS 8 | .+,v 9 | 10 | CVS 11 | \.\#.+ # CVS conflict files / emacs lock files 12 | \.cvsignore 13 | 14 | \.svn 15 | _darcs 16 | \.hg 17 | 18 | \.git 19 | \.gitignore 20 | 21 | .+~ # emacs backup files 22 | \#.*\# # emacs autosave files 23 | 24 | ^/README.* 25 | ^/LICENSE.* 26 | ^/COPYING 27 | -------------------------------------------------------------------------------- /scripts/.local/bin/mach-ls-installed-progs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | all_packages=( $(pacman -Qqe) ) 3 | base_devel_packages=( $(pacman -Sg base-devel | cut -f 2 -d " ") ) 4 | # Removes dupes from other array 5 | for i in "${base_devel_packages[@]}"; do 6 | all_packages=(${all_packages[@]//*$i*}) 7 | done 8 | #delete=(linux linux -headers linux -firmware base) 9 | # ignore stuff I installed when installing arch 10 | #for del in "${delete[@]}"; do 11 | all_packages=("${all_packages[@]/"$del"}") 12 | #done 13 | printf "%s\n" "${all_packages[@]}" > ~/.pacman.list 14 | 15 | cat ~/.pacman.list 16 | -------------------------------------------------------------------------------- /ghostty/.config/ghostty/themes/void: -------------------------------------------------------------------------------- 1 | palette = 0=#1E1E1E 2 | palette = 1=#b2555b 3 | palette = 2=#A6E3A1 4 | palette = 3=#ff9e64 5 | palette = 4=#6a92d7 6 | palette = 5=#bb9af7 7 | palette = 6=#7ccdfd 8 | palette = 7=#c0caf5 9 | palette = 8=#545c7e 10 | palette = 9=#b2555b 11 | palette = 10=#A6E3A1 12 | palette = 11=#d9ba73 13 | palette = 12=#6a92d7 14 | palette = 13=#bb9af7 15 | palette = 14=#7ccdfd 16 | palette = 15=#c0caf5 17 | background = #14161b 18 | foreground = #c6d0f5 19 | cursor-color = #f2d5cf 20 | cursor-text = #c6d0f5 21 | selection-background = #FFFACD 22 | selection-foreground = #14161b 23 | -------------------------------------------------------------------------------- /rofi/.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | show-icons: true; 3 | terminal: "kitty"; 4 | click-to-exit: true; 5 | steal-focus: true; 6 | display-drun: ""; 7 | kb-remove-to-eol: ""; 8 | kb-accept-entry: "Control+m,Return,KP_Enter"; 9 | kb-row-up: "Up,Control+p,Control+k"; 10 | kb-row-down: "Down,Control+n,Control+j"; 11 | me-select-entry: "MouseDPrimary"; 12 | me-accept-entry: "MousePrimary"; 13 | timeout { 14 | action: "kb-cancel"; 15 | // delay: 10; 16 | } 17 | filebrowser { 18 | directories-first: true; 19 | sorting-method: "name"; 20 | } 21 | } 22 | @theme "center" 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Machfiles 2 | 3 | ![machfiles image](./machfiles.png) 4 | 5 | ## Installing 6 | 7 | You will need `git` and GNU `stow` 8 | 9 | Clone into your `$HOME` directory or `~` 10 | 11 | ```bash 12 | git clone https://github.com/ChristianChiarulli/machfiles.git ~/.machfiles 13 | ``` 14 | 15 | Run `stow` to symlink everything or just select what you want 16 | 17 | ```bash 18 | stow */ # Everything (the '/' ignores the README) 19 | ``` 20 | 21 | ```bash 22 | stow zsh # Just my zsh config 23 | ``` 24 | 25 | MacOS 26 | 27 | All of my packages for MacOS can be found in `brew/.Brewfile` 28 | 29 | - Install 30 | 31 | ``` 32 | stow ~/.machfiles/brew 33 | 34 | brew bundle --global 35 | ``` 36 | 37 | ## Linux 38 | 39 | An updated list of all the programs I use can be found in the `programs` directory 40 | -------------------------------------------------------------------------------- /fontconfig/.config/fontconfig/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | serif 6 | 7 | Noto Color Emoji 8 | 9 | 10 | 11 | sans-serif 12 | 13 | Noto Color Emoji 14 | 15 | 16 | 17 | monospace 18 | 19 | Comic Code Ligatures 20 | 21 | 22 | 23 | 24 | MonoLisa-Regular 25 | 26 | 27 | 100 28 | 29 | 30 | 31 | 32 | MonoLisa-Bold 33 | 34 | 35 | 100 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /rofi/.config/rofi/onedarker_dmenu.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * ROFI Color theme 3 | * User: Qball 4 | * Copyright: Dave Davenport 5 | */ 6 | 7 | * { 8 | background-color: rgb(30,34,42, 0.5); 9 | border-color: White; 10 | text-color: #AbAbAf; 11 | font: "Comic Code Ligatures 12"; 12 | } 13 | window { 14 | anchor: north; 15 | location: north; 16 | width: 100%; 17 | padding: 4px; 18 | children: [ horibox ]; 19 | } 20 | horibox { 21 | orientation: horizontal; 22 | children: [ prompt, entry, listview ]; 23 | } 24 | listview { 25 | layout: horizontal; 26 | spacing: 5px; 27 | lines: 100; 28 | } 29 | entry { 30 | expand: false; 31 | width: 10em; 32 | } 33 | element { 34 | padding: 0px 2px; 35 | } 36 | element selected { 37 | background-color: #083C5A; 38 | } 39 | 40 | element-text, element-icon { 41 | background-color: inherit; 42 | text-color: inherit; 43 | } 44 | -------------------------------------------------------------------------------- /x/.Xresources: -------------------------------------------------------------------------------- 1 | xterm*selectToClipboard: true 2 | xterm*disallowedWindowOps: 20,21,SetXProp 3 | *.font: Monospace:pixelsize=25:antialias=true:autohint=true; 4 | *.fontalt0:Braille:pixelsize=24:antialias=true:autohint=true; 5 | /* *.fontalt1:JoyPixels:pixelsize=24:antialias=true:autohint=true; */ 6 | *.alpha: 0.90 7 | 8 | ! colors 9 | 10 | ! special 11 | *.foreground: #B8BEC9 12 | *.background: #212121 13 | *.cursorColor: #ECEFF4 14 | *.revCursorColor: #555555 15 | 16 | ! black 17 | *.color0: #4C566A 18 | *.color8: #6C768A 19 | 20 | ! red 21 | *.color1: #BF616A 22 | *.color9: #af7370 23 | 24 | ! green 25 | *.color2: #A3BE8C 26 | *.color10: #B5CEA8 27 | 28 | ! yellow 29 | *.color3: #D7BA7D 30 | *.color11: #E7cb93 31 | 32 | ! blue 33 | *.color4: #5e81ac 34 | *.color12: #69A8C6 35 | 36 | ! magenta 37 | *.color5: #B48EAD 38 | *.color13: #939ede 39 | 40 | ! cyan 41 | *.color6: #88c0d0 42 | *.color14: #69BAC8 43 | 44 | ! white 45 | *.color7: #ABB2BF 46 | *.color15: #D8DEE9 47 | 48 | -------------------------------------------------------------------------------- /scripts/.local/bin/st-urlhandler: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | urlregex="(((http|https|gopher|gemini|ftp|ftps|git)://|www\\.)[a-zA-Z0-9.]*[:]?[a-zA-Z0-9./@$&%?$\#=_~-]*)|((magnet:\\?xt=urn:btih:)[a-zA-Z0-9]*)" 4 | 5 | urls="$(sed 's/.*│//g' | tr -d '\n' | # First remove linebreaks and mutt sidebars: 6 | echo "hi" 7 | grep -aEo "$urlregex" | # grep only urls as defined above. 8 | uniq | # Ignore neighboring duplicates. 9 | sed "s/\(\.\|,\|;\|\!\\|\?\)$//; 10 | s/^www./http:\/\/www\./")" # xdg-open will not detect url without http 11 | 12 | [ -z "$urls" ] && exit 1 13 | 14 | while getopts "hoc" o; do case "${o}" in 15 | h) printf "Optional arguments for custom use:\\n -c: copy\\n -o: xdg-open\\n -h: Show this message\\n" && exit 1 ;; 16 | # o) chosen="$(echo "$urls" | dmenu -i -p 'Follow which url?' -l 10)" 17 | o) chosen="$(echo "$urls" | dmenu -p 'Follow which url?' -l 10)" 18 | setsid xdg-open "$chosen" >/dev/null 2>&1 & ;; 19 | c) echo "$urls" | dmenu -p 'Copy which url?' -l 10 | tr -d '\n' | xclip -selection clipboard ;; 20 | *) printf "Invalid option: -%s\\n" "$OPTARG" && exit 1 ;; 21 | esac done 22 | -------------------------------------------------------------------------------- /scripts/.local/bin/ueberzug: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # EASY-INSTALL-ENTRY-SCRIPT: 'ueberzug==18.1.9','console_scripts','ueberzug' 3 | import re 4 | import sys 5 | 6 | # for compatibility with easy_install; see #2198 7 | __requires__ = 'ueberzug==18.1.9' 8 | 9 | try: 10 | from importlib.metadata import distribution 11 | except ImportError: 12 | try: 13 | from importlib_metadata import distribution 14 | except ImportError: 15 | from pkg_resources import load_entry_point 16 | 17 | 18 | def importlib_load_entry_point(spec, group, name): 19 | dist_name, _, _ = spec.partition('==') 20 | matches = ( 21 | entry_point 22 | for entry_point in distribution(dist_name).entry_points 23 | if entry_point.group == group and entry_point.name == name 24 | ) 25 | return next(matches).load() 26 | 27 | 28 | globals().setdefault('load_entry_point', importlib_load_entry_point) 29 | 30 | 31 | if __name__ == '__main__': 32 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) 33 | sys.exit(load_entry_point('ueberzug==18.1.9', 'console_scripts', 'ueberzug')()) 34 | -------------------------------------------------------------------------------- /ghostty/.config/ghostty/config: -------------------------------------------------------------------------------- 1 | # Docs: https://ghostty.org/docs/config. 2 | 3 | # Reload by pressing: 4 | # ctrl+shift+, (Linux) 5 | # cmd+shift+, (macOS) 6 | 7 | # font-family = MonoLisa 8 | font-family = Comic Code Ligatures 9 | font-family = AppleColorEmoji 10 | font-size = 18 11 | window-padding-x = 8 12 | window-padding-y = 8 13 | window-decoration = auto 14 | window-width = 70 15 | window-height = 16 16 | mouse-hide-while-typing = true 17 | theme = void 18 | adjust-cell-height = 35% 19 | # confirm-close-surface = always 20 | # adjust-cell-width = 5% 21 | bold-is-bright = true 22 | 23 | adjust-cursor-height = 35% 24 | font-thicken = false 25 | cursor-style = block 26 | cursor-style-blink = false 27 | cursor-invert-fg-bg = true 28 | shell-integration-features = no-cursor 29 | 30 | ## macOS 31 | macos-option-as-alt = true 32 | macos-titlebar-style = tabs 33 | macos-non-native-fullscreen = visible-menu 34 | keybind = cmd+w=quit 35 | 36 | ## Clipboard 37 | clipboard-write = allow 38 | clipboard-read = ask 39 | clipboard-paste-protection = false 40 | 41 | ## Shell integration 42 | shell-integration = zsh 43 | shell-integration-features = no-cursor 44 | 45 | -------------------------------------------------------------------------------- /zsh/.config/zsh/exports.zsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # HISTFILE="$XDG_DATA_HOME"/zsh/history 3 | HISTSIZE=1000000 4 | SAVEHIST=1000000 5 | export EDITOR="nvim" 6 | export TERMINAL="kitty" 7 | # export BROWSER="firefox" 8 | export PATH="$HOME/.local/bin":$PATH 9 | export PATH="$HOME/.docker/bin":$PATH 10 | # export PATH="$HOME/.local/nvim-macos-arm64/bin":$PATH 11 | export MANPAGER='nvim +Man!' 12 | export MANWIDTH=999 13 | export PATH=$HOME/.cargo/bin:$PATH 14 | export PATH=$HOME/.local/share/go/bin:$PATH 15 | export GOPATH=$HOME/.local/share/go 16 | export PATH=$HOME/.fnm:$PATH 17 | export PATH="$HOME/.local/share/neovim/bin":$PATH 18 | export PATH="$HOME/.local/share/bob/nvim-bin":$PATH 19 | export XDG_CURRENT_DESKTOP="Wayland" 20 | export HOMEBREW_NO_ANALYTICS=1 21 | export HOMEBREW_NO_ENV_HINTS=1 22 | #export PATH="$PATH:./node_modules/.bin" 23 | eval "$(fnm env)" 24 | eval "$(zoxide init zsh)" 25 | # eval "`pip completion --zsh`" 26 | 27 | case "$(uname -s)" in 28 | 29 | Darwin) 30 | # echo 'Mac OS X' 31 | export DYLD_LIBRARY_PATH=/opt/homebrew/lib/ 32 | export DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib 33 | ;; 34 | 35 | Linux) 36 | ;; 37 | 38 | CYGWIN* | MINGW32* | MSYS* | MINGW*) 39 | # echo 'MS Windows' 40 | ;; 41 | *) 42 | # echo 'Other OS' 43 | ;; 44 | esac 45 | -------------------------------------------------------------------------------- /zsh/.config/zsh/aliases.zsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | alias j='z' 3 | alias f='zi' 4 | alias g='lazygit' 5 | alias zsh-update-plugins="find "$ZDOTDIR/plugins" -type d -exec test -e '{}/.git' ';' -print0 | xargs -I {} -0 git -C {} pull -q" 6 | alias nvimrc='nvim ~/.config/nvim/' 7 | alias nman='bob' 8 | alias sshk="kitty +kitten ssh" 9 | # alias lvim="env TERM=wezterm lvim" 10 | # alias nvim="env TERM=wezterm nvim" 11 | 12 | # Remarkable 13 | alias remarkable_ssh='ssh root@10.11.99.1' 14 | alias restream='restream -p' 15 | 16 | # Colorize grep output (good for log files) 17 | alias grep='grep --color=auto' 18 | alias egrep='egrep --color=auto' 19 | alias fgrep='fgrep --color=auto' 20 | 21 | # confirm before overwriting something 22 | alias cp="cp -i" 23 | alias mv='mv -i' 24 | alias rm='rm -i' 25 | 26 | # easier to read disk 27 | alias df='df -h' # human-readable sizes 28 | alias free='free -m' # show sizes in MB 29 | 30 | # get top process eating memory 31 | alias psmem='ps auxf | sort -nr -k 4 | head -5' 32 | 33 | # get top process eating cpu ## 34 | alias pscpu='ps auxf | sort -nr -k 3 | head -5' 35 | 36 | # systemd 37 | alias mach_list_systemctl="systemctl list-unit-files --state=enabled" 38 | 39 | alias mach_java_mode="export SDKMAN_DIR="$HOME/.sdkman" && [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"" 40 | 41 | 42 | case "$(uname -s)" in 43 | 44 | Darwin) 45 | # echo 'Mac OS X' 46 | alias ls='ls -G' 47 | ;; 48 | 49 | Linux) 50 | alias ls='ls --color=auto' 51 | ;; 52 | 53 | CYGWIN* | MINGW32* | MSYS* | MINGW*) 54 | # echo 'MS Windows' 55 | ;; 56 | *) 57 | # echo 'Other OS' 58 | ;; 59 | esac 60 | -------------------------------------------------------------------------------- /x/.xprofile: -------------------------------------------------------------------------------- 1 | # Status Bar 2 | dwmblocks & 3 | 4 | # Random Photo Every Login 5 | # feh --bg-fill --randomize ~/Pictures/wallpapers/* & 6 | 7 | feh --bg-fill ~/Pictures/wallpapers/mac/Mojave\ Night.jpg --bg-fill ~/Pictures/wallpapers/macos-cataline-night-6k.jpg/ 8 | 9 | # Monitor Config 10 | # xrandr --auto --output DVI-D-0 --mode 2560x1440 --left-of HDMI-0 11 | 12 | xrandr --output DVI-D-0 --mode 2560x1440 --rate 59.95 13 | xrandr --auto --output HDMI-0 --mode 2560x1440 --right-of DVI-D-0 14 | 15 | # Network Manager Applet 16 | nm-applet --indicator & 17 | 18 | # Don't Randomly Turn off 19 | xset s off 20 | xset -dpms 21 | xset s noblank 22 | 23 | # Speedy keys 24 | xset r rate 210 40 25 | 26 | # Environment variables set everywhere 27 | export EDITOR="nvim" 28 | export TERMINAL="kitty" 29 | export BROWSER="brave" 30 | 31 | # For QT Themes 32 | # export QT_QPA_PLATFORMTHEME=qt5ct 33 | 34 | # XDG Paths 35 | export XDG_CONFIG_HOME=$HOME/.config 36 | export XDG_CACHE_HOME=$HOME/.cache 37 | export XDG_DATA_HOME=$HOME/.local/share 38 | 39 | # Compositor 40 | picom -b 41 | 42 | # Hide mouse when typing 43 | # xbanish & 44 | 45 | # Screenshots 46 | flameshot & 47 | 48 | # Bluetooth systray icon 49 | # blueman-applet & 50 | 51 | # helps with puls audio 52 | # pasystray & 53 | 54 | # Easy file sharing 55 | # pcloudcc -u chris.machine@pm.me -m ~/Cloud -d 56 | 57 | # Screenkey applet (this will break everything) 58 | # screenkey --start-disabled 59 | 60 | # remap caps to escape 61 | setxkbmap -option caps:escape 62 | # swap escape and caps 63 | # setxkbmap -option caps:swapescape 64 | 65 | # load Xresources 66 | # xrdb ~/.Xresources 67 | 68 | # zsh config dir 69 | # export ZDOTDIR=$HOME/.config/zsh 70 | -------------------------------------------------------------------------------- /brew/.Brewfile: -------------------------------------------------------------------------------- 1 | tap "filosottile/musl-cross" 2 | tap "homebrew/bundle" 3 | tap "koekeishiya/formulae" 4 | tap "tako8ki/tap" 5 | brew "libpng" 6 | brew "freetype" 7 | brew "fontconfig" 8 | brew "cairo" 9 | brew "create-dmg" 10 | brew "eza" 11 | brew "fd" 12 | brew "flyctl" 13 | brew "fnm" 14 | brew "fzf" 15 | brew "gh" 16 | brew "git" 17 | brew "gitui" 18 | brew "gnupg" 19 | brew "go" 20 | brew "gobject-introspection" 21 | brew "graphene" 22 | brew "gum" 23 | brew "helix" 24 | brew "htop" 25 | brew "imagemagick" 26 | brew "jpeg" 27 | brew "jq" 28 | brew "just" 29 | brew "lazygit" 30 | brew "libffi" 31 | brew "luajit" 32 | brew "luarocks" 33 | brew "makensis" 34 | brew "nginx" 35 | brew "ollama" 36 | brew "pango" 37 | brew "pdm" 38 | brew "pipx" 39 | brew "pngquant" 40 | brew "pyenv" 41 | brew "python@3.11" 42 | brew "ripgrep" 43 | brew "sqlc" 44 | brew "stow" 45 | brew "tree" 46 | brew "typescript" 47 | brew "wget" 48 | brew "zlib" 49 | brew "zoxide" 50 | brew "filosottile/musl-cross/musl-cross" 51 | brew "koekeishiya/formulae/skhd" 52 | cask "alt-tab" 53 | cask "chromium" 54 | cask "db-browser-for-sqlite" 55 | cask "discord" 56 | cask "element" 57 | cask "firefox" 58 | cask "firefox@nightly" 59 | cask "gimp" 60 | cask "inkscape" 61 | cask "ivpn" 62 | cask "keycastr" 63 | cask "kitty" 64 | cask "krita" 65 | cask "logi-options-plus" 66 | cask "mullvad-browser" 67 | cask "obs" 68 | cask "obsidian" 69 | cask "raycast" 70 | cask "rectangle" 71 | cask "scroll-reverser" 72 | cask "signal" 73 | cask "slack" 74 | cask "spotify" 75 | cask "tableplus" 76 | cask "telegram" 77 | cask "utm" 78 | cask "visual-studio-code" 79 | vscode "1yib.rust-bundle" 80 | vscode "dustypomerleau.rust-syntax" 81 | vscode "rust-lang.rust-analyzer" 82 | vscode "serayuzgur.crates" 83 | vscode "tamasfe.even-better-toml" 84 | vscode "vscodevim.vim" 85 | -------------------------------------------------------------------------------- /zsh/.zshrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ -f "$HOME/.local/share/zap/zap.zsh" ] && source "$HOME/.local/share/zap/zap.zsh" 3 | 4 | 5 | # history 6 | HISTFILE=~/.zsh_history 7 | 8 | # source 9 | plug "$HOME/.config/zsh/aliases.zsh" 10 | plug "$HOME/.config/zsh/exports.zsh" 11 | # plug "$HOME/.config/zsh/functions.zsh" 12 | 13 | # plugins 14 | plug "esc/conda-zsh-completion" 15 | plug "zsh-users/zsh-autosuggestions" 16 | plug "hlissner/zsh-autopair" 17 | plug "zap-zsh/supercharge" 18 | plug "zap-zsh/vim" 19 | plug "zap-zsh/zap-prompt" 20 | # plug "zap-zsh/atmachine" 21 | plug "zap-zsh/fzf" 22 | plug "zap-zsh/exa" 23 | plug "zsh-users/zsh-syntax-highlighting" 24 | plug "zsh-users/zsh-history-substring-search" 25 | 26 | # keybinds 27 | bindkey '^ ' autosuggest-accept 28 | 29 | export PATH="$HOME/.local/bin":$PATH 30 | 31 | if command -v bat &> /dev/null; then 32 | alias cat="bat -pp --theme \"Visual Studio Dark+\"" 33 | alias catt="bat --theme \"Visual Studio Dark+\"" 34 | fi 35 | 36 | bindkey '^[[A' history-substring-search-up 37 | bindkey '^[[B' history-substring-search-down 38 | 39 | bindkey -M vicmd 'k' history-substring-search-up 40 | bindkey -M vicmd 'j' history-substring-search-down 41 | 42 | #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! 43 | export SDKMAN_DIR="$HOME/.sdkman" 44 | [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" 45 | 46 | # bun completions 47 | [ -s "/Users/chris/.bun/_bun" ] && source "/Users/chris/.bun/_bun" 48 | 49 | # bun 50 | export BUN_INSTALL="$HOME/.bun" 51 | export PATH="$BUN_INSTALL/bin:$PATH" 52 | 53 | # pnpm 54 | export PNPM_HOME="/home/christian/.local/share/pnpm" 55 | case ":$PATH:" in 56 | *":$PNPM_HOME:"*) ;; 57 | *) export PATH="$PNPM_HOME:$PATH" ;; 58 | esac 59 | # pnpm end 60 | 61 | # bun 62 | export BUN_INSTALL="$HOME/.bun" 63 | export PATH="$BUN_INSTALL/bin:$PATH" 64 | -------------------------------------------------------------------------------- /programs/packages.list: -------------------------------------------------------------------------------- 1 | amd-ucode 2 | pacman-contrib 3 | arc-gtk-theme 4 | blueman 5 | bluez 6 | bluez-utils 7 | brave-bin 8 | cava-git 9 | chromium 10 | cmatrix 11 | cmus 12 | colorpicker 13 | cowsay 14 | cups 15 | dialog 16 | discord 17 | docker 18 | dosfstools 19 | dunst 20 | efibootmgr 21 | element-desktop-nightly-bin 22 | fd 23 | feh 24 | figlet 25 | flameshot 26 | fnm-bin 27 | fzf 28 | gimp 29 | git 30 | github-cli 31 | glances 32 | gotop 33 | gping 34 | grub 35 | htop 36 | kdenlive 37 | kvantum-theme-arc 38 | lazygit 39 | librewolf-bin 40 | libxft-bgra 41 | linux 42 | linux-firmware 43 | linux-headers 44 | lxappearance 45 | mediainfo 46 | mpv 47 | mtools 48 | nautilus 49 | ncdu 50 | ncmpcpp 51 | neofetch 52 | neovide-bin 53 | network-manager-applet 54 | networkmanager 55 | newsboat 56 | nmon 57 | noto-fonts-emoji 58 | npm 59 | ntfs-3g 60 | nvidia 61 | nvidia-settings 62 | nvtop 63 | obs-studio 64 | obs-multi-rtmp 65 | openssh 66 | os-prober 67 | pamixer 68 | pandoc-bin 69 | pasystray 70 | pavucontrol 71 | pcloudcc-git 72 | picom-ibhagwan-git 73 | prettier 74 | python-pip 75 | ranger 76 | reflector 77 | rofi 78 | ruby 79 | scrcpy 80 | screenkey 81 | session-desktop-bin 82 | shfmt 83 | signal-desktop-beta-bin 84 | skippy-xd-git 85 | slock 86 | snownews 87 | solidity 88 | spotify 89 | stow 90 | syncthing 91 | telegram-desktop-bin 92 | tree 93 | ttf-dejavu 94 | ttf-joypixels 95 | ttf-ms-fonts 96 | ttf-ubraille 97 | ttf-unifont 98 | ueberzug 99 | unzip 100 | ventoy-bin 101 | vi 102 | vim 103 | virtualbox 104 | virtualbox-bin-guest-iso 105 | vscodium-bin 106 | vscodium-bin-marketplace 107 | wget 108 | wireless_tools 109 | wpa_supplicant 110 | xbanish 111 | xcape 112 | xclip 113 | xorg-bdftopcf 114 | xorg-docs 115 | xorg-font-util 116 | xorg-fonts-100dpi 117 | xorg-fonts-75dpi 118 | xorg-iceauth 119 | xorg-mkfontscale 120 | xorg-server-devel 121 | xorg-server-xephyr 122 | xorg-server-xnest 123 | xorg-server-xvfb 124 | xorg-sessreg 125 | xorg-smproxy 126 | xorg-x11perf 127 | xorg-xbacklight 128 | xorg-xcmsdb 129 | xorg-xcursorgen 130 | xorg-xdpyinfo 131 | xorg-xdriinfo 132 | xorg-xev 133 | xorg-xgamma 134 | xorg-xhost 135 | xorg-xinit 136 | xorg-xinput 137 | xorg-xkbevd 138 | xorg-xkbutils 139 | xorg-xkill 140 | xorg-xlsatoms 141 | xorg-xlsclients 142 | xorg-xpr 143 | xorg-xprop 144 | xorg-xrandr 145 | xorg-xrefresh 146 | xorg-xset 147 | xorg-xsetroot 148 | xorg-xvinfo 149 | xorg-xwayland 150 | xorg-xwd 151 | xorg-xwininfo 152 | xorg-xwud 153 | xterm 154 | yapf 155 | yarn 156 | youtube-dl 157 | zathura 158 | zip 159 | zsh 160 | zsh-completions-git 161 | -------------------------------------------------------------------------------- /scripts/.local/bin/xurls: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use warnings; 4 | 5 | $hostchars = '[a-z0-9-._+]'; 6 | $pathchars = '[a-z0-9-._+#=?&:;%/!,~]'; 7 | 8 | sub scan($$$) 9 | { 10 | my ($file, $lineno, $line) = @_; 11 | 12 | chomp $line; 13 | 14 | while($line =~ s! 15 | ([a-z]+://)? 16 | 17 | # http:// 18 | 19 | $hostchars+\.[a-z]+ 20 | 21 | # www.tim.google.com - the [a-z].com is the main anchor for the whole regex - incase http:// is omitted 22 | # note no trailing slash 23 | 24 | ($pathchars+/\?)* 25 | 26 | # check for the index.php? part 27 | 28 | ($pathchars+|\($pathchars+\))* 29 | 30 | # check for pathchars, or a set of nested parens 31 | !!xoi){ # allow space + comments, compile once, strcasecmp 32 | 33 | my($p,$m,$e) = ($`,$&,$'); 34 | 35 | $e = '.' . $e if $m =~ s/\.$//; 36 | 37 | if($opt{fname} && $file){ 38 | print "$col{red}$file$col{none}:"; 39 | } 40 | 41 | if($opt{lineno}){ 42 | print "$col{green}$lineno$col{none}: "; 43 | }elsif($opt{fname} && $file){ 44 | print ' '; 45 | } 46 | 47 | if($opt{hl}){ 48 | print "$p$col{brown}$m$col{none}$e\n"; 49 | }else{ 50 | print "$m\n"; 51 | } 52 | } 53 | } 54 | 55 | sub usage(){ 56 | $printme =<<"!"; 57 | Usage: $0 -[Chn] [FILES...] 58 | -h: highlight 59 | -c: force colour on (for pipes) 60 | -C: colour off (only makes sense with -h) 61 | -n: show line number 62 | ! 63 | print STDERR $printme; 64 | exit 1; 65 | } 66 | 67 | 68 | %opt = ( 69 | colour => 1, 70 | lineno => 0, 71 | fname => 0, 72 | hl => 0 73 | ); 74 | %col = ( 75 | brown => "\e[0;31m", # hl 76 | red => "\e[0;35m", # fname 77 | green => "\e[0;32m", # lineno 78 | none => "\e[0;0m" 79 | ); 80 | 81 | for $arg (@ARGV){ 82 | if($arg eq '-h'){ 83 | $opt{hl} = 1; 84 | }elsif($arg eq '-n'){ 85 | $opt{lineno} = 1; 86 | }elsif($arg eq '-C'){ 87 | $opt{colour} = 0; 88 | }elsif($arg eq '-c'){ 89 | usage() if $opt{colour} == 0; 90 | $opt{colour} = 2; # force on 91 | }elsif($arg eq '--help'){ 92 | usage(); 93 | }else{ 94 | push @files, $arg; 95 | } 96 | } 97 | 98 | usage() if $opt{hl} && !$opt{colour}; 99 | 100 | $opt{fname} = 1 if $#files > 0 || $opt{lineno}; 101 | if(!$opt{colour} || ($opt{colour} == 1 && !-t STDOUT)){ 102 | $col{$_} = '' for keys %col; 103 | } 104 | 105 | $| = 1; 106 | 107 | if(@files){ 108 | for my $f (@files){ 109 | my $n = 1; 110 | open F, '<', $f or warn "$f: $!\n"; 111 | scan($f, $n++, $_) for ; 112 | close F; 113 | } 114 | }else{ 115 | scan(undef, $., $_) while ; 116 | } 117 | -------------------------------------------------------------------------------- /skippy/.config/skippy/skippy-xd.rc: -------------------------------------------------------------------------------- 1 | # Copy this to ~/.config/skippy-xd/skippy-xd.rc and edit it to your liking 2 | # 3 | # Notes: 4 | # 5 | # - colors can be anything XAllocNamedColor can handle 6 | # (like "black" or "#000000") 7 | # 8 | # - distance is a relative number, and is scaled according to the scale 9 | # factor applied to windows 10 | # 11 | # - fonts are Xft font descriptions 12 | # 13 | # - booleans are "true" or anything but "true" (-> false) 14 | # 15 | # - opacity is an integer in the range of 0-255 16 | # 17 | # - brighness is a floating point number (with 0.0 as neutral) 18 | # 19 | # - if the update frequency is a negative value, the mini-windows will only 20 | # be updated when they're explicitly rendered (like, when they gain or 21 | # lose focus). 22 | # 23 | # - the 'shadowText' option can be a color or 'none', in which case the 24 | # drop-shadow effect is disabled 25 | # 26 | # - Picture specification: 27 | # [WIDTHxHEIGHT] [orig|scale|scalek|tile] [left|mid|right] [left|mid|right] 28 | # [COLOR|#FFFFFFFF] [PATH] 29 | # 30 | # Examples: 31 | # background = 500x400 tile right mid #FF0000 /home/richard/screenshots/256.png 32 | # background = orig mid mid #FF000080 33 | # 34 | # - Bindings in [bindings] section can bind to "no" (do nothing), "focus" 35 | # (focus to window), "iconify", "shade-ewmh" (toggle window shade state), 36 | # "close-icccm" (close window with ICCCM method), "close-ewmh" (close 37 | # window with EWMH method), or "destroy" (forcefully destroy the window). 38 | # 39 | 40 | [general] 41 | distance = 50 42 | useNetWMFullscreen = true 43 | ignoreSkipTaskbar = true 44 | updateFreq = 10.0 45 | lazyTrans = false 46 | pipePath = /tmp/skippy-xd-fifo 47 | movePointerOnStart = true 48 | movePointerOnSelect = true 49 | movePointerOnRaise = true 50 | switchDesktopOnActivate = false 51 | useNameWindowPixmap = false 52 | forceNameWindowPixmap = false 53 | includeFrame = true 54 | allowUpscale = true 55 | showAllDesktops = false 56 | showUnmapped = true 57 | preferredIconSize = 48 58 | clientDisplayModes = thumbnail icon filled none 59 | iconFillSpec = orig mid mid #00FFFF 60 | fillSpec = orig mid mid #FFFFFF 61 | background = 62 | 63 | [xinerama] 64 | showAll = true 65 | 66 | [normal] 67 | tint = black 68 | tintOpacity = 0 69 | opacity = 200 70 | 71 | [highlight] 72 | tint = #101020 73 | tintOpacity = 64 74 | opacity = 255 75 | 76 | [tooltip] 77 | show = false 78 | followsMouse = true 79 | offsetX = 20 80 | offsetY = 20 81 | align = left 82 | border = #ffffff 83 | background = #404040 84 | opacity = 128 85 | text = #ffffff 86 | textShadow = black 87 | font = fixed-11:weight=bold 88 | 89 | [bindings] 90 | miwMouse1 = focus 91 | miwMouse2 = close-ewmh 92 | miwMouse3 = iconify 93 | -------------------------------------------------------------------------------- /rofi/.config/rofi/onedarker.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * ROFI Color theme 3 | * User: Qball 4 | * Copyright: Dave Davenport 5 | */ 6 | 7 | * { 8 | font: "Times New Roman 15"; 9 | text-color: #abb2bf; 10 | background-color: #2c2c2c; 11 | dark: #1b1f27; 12 | // Black 13 | black: #212121; 14 | lightblack: #777777; 15 | // 16 | // Red 17 | red: #bf616a; 18 | lightred: #bf616a; 19 | // 20 | // Green 21 | green: #A3BE8C; 22 | lightgreen: #A3BE8C; 23 | // 24 | // Yellow 25 | yellow: #C68A75; 26 | lightyellow: #D7BA7D; 27 | // 28 | // Blue 29 | blue: #2d4059; 30 | lightblue: #3281ea; 31 | // 32 | // Magenta 33 | magenta: #B48EAD; 34 | lightmagenta: #B48EAD; 35 | // 36 | // Cyan 37 | cyan: #88c0d0; 38 | lightcyan: #88c0d0; 39 | // 40 | // White 41 | white: #abb2bf; 42 | lightwhite: #abb2bf; 43 | // 44 | // Bold, Italic, Underline 45 | highlight: bold #D7BA7D; 46 | } 47 | 48 | element-icon { 49 | /** change size to 128 pixels. */ 50 | size: 18px; 51 | cursor: inherit; 52 | padding: 0.2em; 53 | } 54 | 55 | window { 56 | height: 30%; 57 | width: 15em; 58 | location: northwest; 59 | anchor: northwest; 60 | border: 1px 1px 1px 1px; 61 | border-color: @lightblack; 62 | text-color: @lightwhite; 63 | margin: 0.3em; 64 | border-radius: 0.4em; 65 | } 66 | /* mode-switcher { */ 67 | /* border: 2px 0px 0px 0px; */ 68 | /* background-color: @lightblack; */ 69 | /* padding: 4px; */ 70 | /* } */ 71 | button selected { 72 | border-color: @lightgreen; 73 | text-color: @lightgreen; 74 | } 75 | inputbar { 76 | /* background-color: @lightyellow; */ 77 | text-color: @lightgreen; 78 | /* padding: 1px; */ 79 | /* border: 0px 0px 2px 0px; */ 80 | } 81 | /* mainbox { */ 82 | /* expand: true; */ 83 | /* background-color: #1c1c1cee; */ 84 | /* spacing: 1em; */ 85 | /* } */ 86 | listview { 87 | padding: 0em 0.2em 0em 0.7em; 88 | dynamic: false; 89 | lines: 0; 90 | } 91 | element-text { 92 | background-color: inherit; 93 | text-color: inherit; 94 | } 95 | element selected normal { 96 | background-color: @blue; 97 | } 98 | element normal active { 99 | text-color: @lightblue; 100 | } 101 | element normal urgent { 102 | text-color: @lightred; 103 | } 104 | element alternate normal { 105 | } 106 | element alternate active { 107 | text-color: @lightblue; 108 | } 109 | element alternate urgent { 110 | text-color: @lightred; 111 | } 112 | element selected active { 113 | background-color: @lightblue; 114 | text-color: @dark; 115 | } 116 | element selected urgent { 117 | background-color: @lightred; 118 | text-color: @dark; 119 | } 120 | error-message { 121 | expand: true; 122 | background-color: red; 123 | border-color: darkred; 124 | border: 2px; 125 | padding: 1em; 126 | } 127 | -------------------------------------------------------------------------------- /scripts/.local/bin/getnf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #defining variables 4 | nerdfontsrepo='https://api.github.com/repos/ryanoasis/nerd-fonts' 5 | aFontInstalled="False" 6 | keepArchives="False" 7 | distDir="$HOME/.local/share/fonts" 8 | downDir="$HOME/Downloads/NerdFonts" 9 | 10 | # help message 11 | usage() { 12 | echo "getNF: A Better way to install NerdFonts" 13 | echo "" 14 | echo "Usage:" 15 | echo "-h print this help message and exit" 16 | echo "-k Keep the downloaded archives" 17 | echo "" 18 | } 19 | 20 | # setting flags 21 | while getopts :hk option; do 22 | case "${option}" in 23 | h) usage && exit 0 ;; 24 | k) keepArchives="True" ;; 25 | *) usage && exit 0 26 | esac 27 | done 28 | 29 | # Check if the distDir exists, if it doesn't, creat it 30 | [ -e "$distDir" ] && echo "Fonts Directory exists, good" || mkdir -p $HOME/.local/share/fonts 31 | 32 | # get font names 33 | nerdFonts=$(curl --silent "$nerdfontsrepo/contents/patched-fonts?ref=master" | \ 34 | grep "name" | \ 35 | awk -F":" '{print $2}' | \ 36 | sed 's/["",]//g;/install\.ps1/d') 37 | 38 | #get the latest release number from NerdFonts github repo 39 | release=$(curl --silent "$nerdfontsrepo/releases/latest" | \ 40 | grep -Po '"tag_name": "\K.*?(?=")') 41 | 42 | # use fzf to select the fonts to be installed 43 | listFonts=$(printf '%s\n' "${nerdFonts[@]}" | fzf -m) 44 | 45 | #loop over the selected fonts in listFonts, download and install them 46 | for i in $listFonts; do 47 | checkFont=$(fc-list | grep -i "$i") 48 | if [ -z "$checkFont" ]; then #If the font already is installed, skip it 49 | echo "$i font download started" && 50 | #download the font 51 | curl -LJO -\# "https://github.com/ryanoasis/nerd-fonts/releases/download/$release/$i.zip" \ 52 | -o $i.zip --output-dir "$downDir" --create-dirs && 53 | echo "$i font download finished" && 54 | echo "$i font unziping started" && 55 | #Unzipe the downloaded archive 56 | unzip -qq $downDir/$i.zip -d $distDir && 57 | echo "$i font unzipping finished" && 58 | echo "Font $i Installed" && 59 | echo "$i provides:" && 60 | installedFontName=$(curl --silent "$nerdfontsrepo/contents/patched-fonts/$i/Regular/complete?ref=master" | \ 61 | grep ".ttf" | \ 62 | awk -F ":" 'FNR == 1 {print $2}' | \ 63 | awk '{print $1}' | \ 64 | sed 's/"//g') && 65 | fc-list | grep -i $installedFontName | \ 66 | awk -F "/" '{print $7}' | \ 67 | sed 's/style\=//' | \ 68 | awk -F ":" 'BEGIN {print "FONT NAME" " | " "FILE NAME" " | " "STYLE"} {print $2 " | " $1 " | " $3}' | \ 69 | column -s "|" -t -o "|" && 70 | #set this variable to true so that the font cache get's updated 71 | aFontInstalled=True 72 | else 73 | echo "Font $i already installed" 74 | fi 75 | done 76 | 77 | # If a font was installed, Update the cach and remove the archive 78 | if [ "$aFontInstalled" = "True" ]; then 79 | fc-cache -fv >/dev/null 2>&1 && echo "fc-chache: succeeded" 80 | #check if the user hasn't chooen to keep the updated, if not, remove them 81 | if [ "$keepArchives" = "False" ]; then 82 | rm $downDir/*.zip 83 | else 84 | echo "The archive files are in $downDir" 85 | fi 86 | fi 87 | 88 | echo "done" 89 | -------------------------------------------------------------------------------- /alacritty/.config/alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | # Colors (One Darker) 2 | # Note I am using alacritty-ligatures until ligatures make it upstream 3 | colors: 4 | # Default colors 5 | primary: 6 | # background: "#232731" 7 | background: "#1f2227" 8 | foreground: "#abb2bf" 9 | 10 | # Normal colors 11 | # Nord 12 | normal: 13 | black: "#4C566A" 14 | red: "#bf616a" 15 | green: "#A3BE8C" 16 | yellow: "#D7BA7D" 17 | blue: "#5e81ac" 18 | magenta: "#B48EAD" 19 | cyan: "#88c0d0" 20 | white: "#abb2bf" 21 | 22 | # Bright colors 23 | bright: 24 | black: "#4C566A" 25 | red: "#bf616a" 26 | green: "#A3BE8C" 27 | yellow: "#D7BA7D" 28 | blue: "#5e81ac" 29 | magenta: "#B48EAD" 30 | cyan: "#88c0d0" 31 | white: "#abb2bf" 32 | 33 | # normal: 34 | # black: "#4b5263" 35 | # red: "#e06c75" 36 | # green: "#98C379" 37 | # yellow: "#E5C07B" 38 | # blue: "#61AFEF" 39 | # magenta: "#C678DD" 40 | # cyan: "#56B6C2" 41 | # white: "#abb2bf" 42 | # 43 | # # Bright colors 44 | # bright: 45 | # black: "#4b5263" 46 | # red: "#e06c75" 47 | # green: "#98C379" 48 | # yellow: "#E5C07B" 49 | # blue: "#61AFEF" 50 | # magenta: "#C678DD" 51 | # cyan: "#56B6C2" 52 | # white: "#abb2bf" 53 | 54 | # background_opacity: 1.0 55 | 56 | # Change cursor colors 57 | cursor: 58 | text: "#3B4252" 59 | cursor: "#ECEFF4" 60 | 61 | cursor: 62 | style: 63 | blinking: Never 64 | 65 | font: 66 | # The normal (roman) font face to use. 67 | normal: 68 | family: monospace 69 | # Style can be specified to pick a specific face. 70 | style: Regular 71 | 72 | # The bold font face 73 | bold: 74 | family: monospace 75 | # Style can be specified to pick a specific face. 76 | style: Bold 77 | 78 | # The italic font face 79 | italic: 80 | family: monospace 81 | # Style can be specified to pick a specific face. 82 | style: Italic 83 | 84 | size: 13.0 85 | 86 | ligatures: true 87 | 88 | offset: 89 | x: 0 90 | y: 0 91 | glyph_offset: 92 | x: 0 93 | y: 0 94 | window: 95 | padding: 96 | x: 2 97 | y: 2 98 | # scrolling: 99 | # # Maximum number of lines in the scrollback buffer. 100 | # # Specifying '0' will disable scrolling. 101 | history: 10000 102 | # # Number of lines the viewport will move for every line scrolled when 103 | # # scrollback is enabled (history > 0). 104 | # multiplier: 10 105 | 106 | # Allow terminal applications to change Alacritty's window title. 107 | dynamic_title: true 108 | 109 | # # If `true`, bold text is drawn using the bright color variants. 110 | # draw_bold_text_with_bright_colors: true 111 | 112 | # selection: 113 | semantic_escape_chars: ',│`|:"'' ()[]{}<>' 114 | save_to_clipboard: true 115 | live_config_reload: true 116 | key_bindings: 117 | - { key: V, mods: Control|Shift, action: Paste } 118 | - { key: C, mods: Control|Shift, action: Copy } 119 | - { key: Key0, mods: Control, action: ResetFontSize } 120 | - { key: Equals, mods: Control, action: IncreaseFontSize } 121 | - { key: Minus, mods: Control, action: DecreaseFontSize } 122 | # - { key: Add, mods: Control, action: IncreaseFontSize } 123 | # - { key: Subtract, mods: Control, action: DecreaseFontSize } 124 | # - { key: N, mods: Control, action: SpawnNewInstance } 125 | -------------------------------------------------------------------------------- /waybar/.config/waybar/scripts/spotify.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # install playerctl 3 | 4 | # player_status=$(playerctl status 2> /dev/null) 5 | # if [ "$player_status" = "Playing" ]; then 6 | # echo "$(playerctl metadata artist) - $(playerctl metadata title)" 7 | # elif [ "$player_status" = "Paused" ]; then 8 | # echo " $(playerctl metadata artist) - $(playerctl metadata title)" 9 | # fi 10 | 11 | #!/usr/bin/env bash 12 | # exec 2>"$XDG_RUNTIME_DIR/waybar-playerctl.log" 13 | # IFS=$'\n\t' 14 | # 15 | # while true; do 16 | # 17 | # while read -r playing position length name artist title arturl hpos hlen; do 18 | # # remove leaders 19 | # playng=${playing:1} position=${position:1} length=${length:1} name=${name:1} 20 | # artist=${artist:1} title=${title:1} arturl=${arturl:1} hpos=${hpos:1} hlen=${hlen:1} 21 | # 22 | # # build line 23 | # line="${artist:+$artist ${title:+- }}${title:+$title }${hpos:+$hpos${hlen:+|}}$hlen" 24 | # 25 | # # json escaping 26 | # line="${line//\"/\\\"}" 27 | # ((percentage = length ? (100 * (position % length)) / length : 0)) 28 | # 29 | # if [ -z "$line" ] 30 | # then 31 | # text="" 32 | # else 33 | # text=" $line" 34 | # fi 35 | # # 36 | # # integrations for other services (nwg-wrapper) 37 | # if [[ $title != "$ptitle" || $artist != "$partist" || $parturl != "$arturl" ]]; then 38 | # typeset -p playing length name artist title arturl >"$XDG_RUNTIME_DIR/waybar-playerctl.info" 39 | # pkill -8 nwg-wrapper 40 | # ptitle=$title partist=$artist parturl=$arturl 41 | # fi 42 | # 43 | # # exit if print fails 44 | # printf '{"text":"%s","tooltip":"%s","class":"%s","percentage":%s}\n' \ 45 | # "$text" "$playing $name | $line" "$percentage" "$percentage" || break 2 46 | # 47 | # done < <( 48 | # # requires playerctl>=2.0 49 | # # Add non-space character ":" before each parameter to prevent 'read' from skipping over them 50 | # playerctl --follow metadata --player playerctld --format \ 51 | # $':{{emoji(status)}}\t:{{position}}\t:{{mpris:length}}\t:{{playerName}}\t:{{markup_escape(artist)}}\t:{{markup_escape(title)}}\t:{{mpris:artUrl}}\t:{{duration(position)}}\t:{{duration(mpris:length)}}' & 52 | # echo $! >"$XDG_RUNTIME_DIR/waybar-playerctl.pid" 53 | # ) 54 | # 55 | # # no current players 56 | # # exit if print fails 57 | # echo '' || break 58 | # sleep 15 59 | # 60 | # done 61 | # 62 | # kill "$(<"$XDG_RUNTIME_DIR/waybar-playerctl.pid")" 63 | 64 | #!/usr/bin/env bash 65 | # exec 2>"$XDG_RUNTIME_DIR/waybar-playerctl.log" 66 | # IFS=$'\n\t' 67 | # 68 | # while true; do 69 | # 70 | # while read -r playing position length name artist title arturl hpos hlen; do 71 | 72 | while true; do 73 | 74 | player_status=$(playerctl status 2>/dev/null) 75 | 76 | if [ -z "$(playerctl metadata album)" ]; then 77 | if [ "$player_status" = "Playing" ]; then 78 | echo "$(playerctl metadata artist) - $(playerctl metadata title)" 79 | elif [ "$player_status" = "Paused" ]; then 80 | echo " $(playerctl metadata artist) - $(playerctl metadata title)" 81 | else 82 | echo "" 83 | fi 84 | else 85 | if [ "$player_status" = "Playing" ]; then 86 | echo " $(playerctl metadata artist) - $(playerctl metadata title)" 87 | elif [ "$player_status" = "Paused" ]; then 88 | echo "  $(playerctl metadata artist) - $(playerctl metadata title)" 89 | else 90 | echo "" 91 | fi 92 | fi 93 | 94 | sleep 1 95 | 96 | done 97 | 98 | # done 99 | # 100 | # kill "$(<"$XDG_RUNTIME_DIR/waybar-playerctl.pid")" 101 | -------------------------------------------------------------------------------- /programs/.pacman.list: -------------------------------------------------------------------------------- 1 | alacritty 2 | amd-ucode 3 | amdgpu-pro-libgl 4 | arc-gtk-theme 5 | asciiquarium 6 | aura-bin 7 | base 8 | bat 9 | bibata-cursor-theme 10 | blender 11 | bluedevil 12 | blueman 13 | bluez-utils 14 | bottom 15 | brave-bin 16 | btop 17 | buildah 18 | calcurse 19 | cava-git 20 | chromium 21 | cmatrix 22 | cmus 23 | colorpicker 24 | cowsay 25 | cups 26 | dialog 27 | discord 28 | dmenu 29 | docker 30 | dunst 31 | efibootmgr 32 | element-desktop-nightly-bin 33 | exa 34 | exfat-utils 35 | fastfetch 36 | fd 37 | feh 38 | figlet 39 | flake8 40 | flameshot 41 | fnm-bin 42 | fuse-overlayfs 43 | fzf 44 | gammastep 45 | gdb 46 | gimp 47 | git 48 | github-cli 49 | gitui 50 | glances 51 | google-java-format 52 | gotop 53 | gping 54 | grim-git 55 | grub 56 | gst-plugin-pipewire 57 | helix 58 | hollywood 59 | htop 60 | hyprpicker-git 61 | inetutils 62 | iwd 63 | joycond-git 64 | jq 65 | kdenlive 66 | kitty 67 | kvantum-theme-arc 68 | lazygit 69 | libpulse 70 | librewolf-bin 71 | libxft-bgra 72 | linux 73 | linux-firmware 74 | linux-headers 75 | lldb 76 | lutris 77 | lxappearance 78 | ly 79 | macchina-bin 80 | mediainfo 81 | micro 82 | mpv 83 | nano 84 | ncdu 85 | ncmpcpp 86 | neofetch 87 | net-tools 88 | network-manager-applet 89 | networkmanager 90 | newsboat 91 | nmap 92 | nmon 93 | noto-fonts-cjk 94 | noto-fonts-sc 95 | npm 96 | ntfs-3g 97 | nushell 98 | obs-linuxbrowser-bin 99 | obs-studio 100 | obsidian 101 | openboard 102 | orchis-theme-git 103 | os-prober 104 | p7zip 105 | pamixer 106 | pandoc-bin 107 | paru 108 | pasystray 109 | pavucontrol 110 | pcloudcc-git 111 | pcmanfm 112 | pipewire 113 | pipewire-alsa 114 | pipewire-enable-bluez5 115 | pipewire-jack 116 | pipewire-pulse 117 | podman 118 | podman-tui 119 | polkit-gnome 120 | prettier 121 | protonmail-bridge 122 | python-black 123 | python-pip 124 | qt5ct 125 | qt6-wayland 126 | ranger 127 | redshift-wayland-git 128 | reflector 129 | rofi-lbonn-wayland-git 130 | rpi-imager 131 | rsync 132 | ruby 133 | scrcpy 134 | screenfetch 135 | screenkey 136 | session-desktop-bin 137 | shellcheck-bin 138 | shfmt 139 | showmethekey 140 | signal-desktop-beta-bin 141 | skippy-xd-git 142 | slock 143 | slurp-git 144 | smartmontools 145 | snownews 146 | solidity 147 | spotify 148 | steam 149 | stow 150 | stylua 151 | swappy-git 152 | swaybg 153 | syncthing 154 | telegram-desktop-bin 155 | tree 156 | ttf-cascadia-code 157 | ttf-dejavu 158 | ttf-iosevka 159 | ttf-joypixels 160 | ttf-ms-fonts 161 | ttf-ubraille 162 | ttf-victor-mono 163 | ueberzug 164 | unzip 165 | ventoy-bin 166 | vi 167 | vim 168 | virtualbox 169 | virtualbox-bin-guest-iso 170 | virtualbox-guest-iso 171 | vscodium-bin 172 | vscodium-bin-marketplace 173 | vulkan-amdgpu-pro 174 | vulkan-radeon 175 | vulkan-tools 176 | waybar-hyprland-git 177 | wayland-protocols 178 | wezterm 179 | wf-recorder 180 | wget 181 | wine 182 | wine-mono 183 | wireless_tools 184 | wireplumber 185 | wl-clipboard 186 | wlrobs 187 | wlroots 188 | wshowkeys-git 189 | xbanish 190 | xcape 191 | xclip 192 | xdg-desktop-portal-hyprland-git 193 | xdg-utils 194 | xf86-video-amdgpu 195 | xorg-bdftopcf 196 | xorg-docs 197 | xorg-font-util 198 | xorg-fonts-100dpi 199 | xorg-fonts-75dpi 200 | xorg-iceauth 201 | xorg-mkfontscale 202 | xorg-server 203 | xorg-server-devel 204 | xorg-server-xephyr 205 | xorg-server-xnest 206 | xorg-server-xvfb 207 | xorg-sessreg 208 | xorg-smproxy 209 | xorg-x11perf 210 | xorg-xbacklight 211 | xorg-xcmsdb 212 | xorg-xcursorgen 213 | xorg-xdpyinfo 214 | xorg-xdriinfo 215 | xorg-xev 216 | xorg-xgamma 217 | xorg-xinit 218 | xorg-xinput 219 | xorg-xkbevd 220 | xorg-xkbutils 221 | xorg-xkill 222 | xorg-xlsatoms 223 | xorg-xlsclients 224 | xorg-xpr 225 | xorg-xrefresh 226 | xorg-xsetroot 227 | xorg-xvinfo 228 | xorg-xwayland 229 | xorg-xwd 230 | xorg-xwininfo 231 | xorg-xwud 232 | xterm 233 | yapf 234 | yarn 235 | youtube-dl 236 | zathura 237 | zip 238 | zoxide 239 | zram-generator 240 | zsh 241 | zsh-completions-git 242 | -------------------------------------------------------------------------------- /nvim/.config/nvim/lv-config.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | O is the global options object 3 | 4 | Formatters and linters should be 5 | filled in as strings with either 6 | a global executable or a path to 7 | an executable 8 | ]] -- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT 9 | -- general 10 | O.auto_complete = true 11 | O.colorscheme = 'spacegray' 12 | O.auto_close_tree = 0 13 | O.wrap_lines = false 14 | O.timeoutlen = 100 15 | O.document_highlight = true 16 | O.leader_key = ' ' 17 | O.ignore_case = true 18 | O.smart_case = true 19 | O.lushmode = true 20 | 21 | -- After changing plugin config it is recommended to run :PackerCompile 22 | O.plugin.hop.active = true 23 | O.plugin.dial.active = true 24 | O.plugin.dashboard.active = true 25 | O.plugin.matchup.active = true 26 | O.plugin.colorizer.active = true 27 | O.plugin.numb.active = true 28 | O.plugin.ts_playground.active = true 29 | O.plugin.indent_line.active = false 30 | O.plugin.gitlinker.active = true 31 | O.plugin.debug.active = true 32 | O.plugin.bqf.active = true 33 | O.plugin.ranger.active = true 34 | O.plugin.spectre.active = true 35 | O.plugin.dap_install.active = true 36 | O.plugin.telescope_project.active = true 37 | O.plugin.trouble.active = true 38 | O.plugin.telescope_fzy.active = true 39 | O.plugin.lsp_rooter.active = true 40 | O.plugin.lazygit.active = true 41 | O.plugin.zen.active = true 42 | O.plugin.markdown_preview.active = true 43 | 44 | -- dashboard 45 | -- O.dashboard.custom_header = {""} 46 | -- O.dashboard.footer = {""} 47 | 48 | -- if you don't want all the parsers change this to a table of the ones you want 49 | O.treesitter.ensure_installed = "all" 50 | O.treesitter.ignore_install = {"haskell"} 51 | O.treesitter.highlight.enabled = true 52 | 53 | O.lang.clang.diagnostics.virtual_text = false 54 | O.lang.clang.diagnostics.signs = false 55 | O.lang.clang.diagnostics.underline = false 56 | 57 | -- python 58 | -- add things like O.python.formatter.yapf.exec_path 59 | -- add things like O.python.linter.flake8.exec_path 60 | -- add things like O.python.formatter.isort.exec_path 61 | O.lang.python.formatter = 'yapf' 62 | -- O.python.linter = 'flake8' 63 | O.lang.python.isort = true 64 | O.lang.python.autoformat = true 65 | O.lang.python.diagnostics.virtual_text = true 66 | O.lang.python.diagnostics.signs = true 67 | O.lang.python.diagnostics.underline = true 68 | O.lang.python.analysis.type_checking = "off" 69 | O.lang.python.analysis.auto_search_paths = true 70 | O.lang.python.analysis.use_library_code_types = true 71 | 72 | 73 | -- lua 74 | -- TODO look into stylua 75 | O.lang.lua.formatter = 'lua-format' 76 | -- O.lua.formatter = 'lua-format' 77 | O.lang.lua.autoformat = false 78 | 79 | -- javascript 80 | O.lang.tsserver.formatter = 'prettier' 81 | O.lang.tsserver.linter = nil 82 | O.lang.tsserver.autoformat = true 83 | 84 | -- json 85 | O.lang.json.autoformat = true 86 | 87 | -- ruby 88 | O.lang.ruby.autoformat = true 89 | 90 | -- go 91 | O.lang.go.autoformat = true 92 | 93 | -- rust 94 | O.lang.rust.autoformat = true 95 | -- create custom autocommand field (This would be easy with lua) 96 | 97 | -- Turn off relative_numbers 98 | -- O.relative_number = false 99 | 100 | -- Turn off cursorline 101 | -- O.cursorline = false 102 | 103 | -- Neovim turns the default cursor to 'Block' 104 | -- when switched back into terminal. 105 | -- This below line fixes that. Uncomment if needed. 106 | 107 | -- vim.cmd('autocmd VimLeave,VimSuspend * set guicursor=a:ver90') -- Beam 108 | -- vim.cmd('autocmd VimLeave,VimSuspend * set guicursor=a:hor20') -- Underline 109 | 110 | -- NOTE: Above code doesn't take a value from the terminal's cursor and 111 | -- replace it. It hardcodes the cursor shape. 112 | -- And I think `ver` means vertical and `hor` means horizontal. 113 | -- The numbers didn't make a difference in alacritty. Please change 114 | -- the number to something that suits your needs if it looks weird. 115 | 116 | -- TODO 117 | -- custom autocommands 118 | -- user defined plugin config 119 | -- custom settings 120 | 121 | -------------------------------------------------------------------------------- /waybar/.config/waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | // NOTE: Icons: https://github.com/Alexays/Waybar/issues/350 3 | "height": 30, // Waybar height (to be removed for auto height) 4 | "spacing": 4, // Gaps between modules (4px) 5 | // "modules-left": ["custom/launcher", "wlr/workspaces", "hyprland/window"], 6 | // "modules-left": ["custom/launcher", "wlr/workspaces"], 7 | "modules-left": ["custom/launcher", "wlr/workspaces"], 8 | /* "modules-center": ["custom/spotify"], */ 9 | "modules-right": ["tray", "pulseaudio", "network", "clock"], 10 | "wlr/workspaces": { 11 | "format": "{icon}", 12 | "on-click": "activate", 13 | /* "format-icons": { */ 14 | /* "1": "", */ 15 | /* "2": "", */ 16 | /* "3": "", */ 17 | /* "4": "", */ 18 | /* "5": "", */ 19 | /* "urgent": "", */ 20 | /* "active": "", */ 21 | /* "default": "" */ 22 | /* } */ 23 | }, 24 | "hyprland/window": { 25 | "format": "{}" 26 | }, 27 | "tray": { 28 | // "icon-size": 21, 29 | "spacing": 10 30 | }, 31 | "clock": { 32 | // "format": " {:%a %b %d}", 33 | // "format-alt": " {:%I:%M %p}" 34 | "format": "{:%a %b %d}", 35 | "format-alt": "{:%I:%M %p}" 36 | }, 37 | // "clock": { 38 | // // "timezone": "America/New_York", 39 | // "tooltip-format": "{:%Y %B}\n{calendar}", 40 | // "format-alt": "{:%Y-%m-%d}" 41 | // }, 42 | "backlight": { 43 | // "device": "acpi_video1", 44 | "format": "{icon} {percent}%", 45 | "format-icons": ["", "", "", "", "", "", "", "", ""] 46 | }, 47 | "network": { 48 | // "interface": "wlp2*", // (Optional) To force the use of this interface 49 | 50 | "format-wifi": "直 {signalStrength}%", 51 | // "format-ethernet": " {ifname}: {ipaddr}/{cidr}", 52 | // "format-ethernet": " {ifname}", 53 | // "format-ethernet": " wired", 54 | "format-ethernet": "", 55 | "format-disconnected": "睊", 56 | // "on-click": "nmtui" 57 | // "format-wifi": "{essid} ({signalStrength}%) ", 58 | // "format-ethernet": "{ipaddr}/{cidr} ", 59 | // "tooltip-format": "{ifname} via {gwaddr} ", 60 | // "format-linked": "{ifname} (No IP) ", 61 | // "format-disconnected": "Disconnected ⚠", 62 | "format-alt": "{ifname}: {ipaddr}/{cidr}" 63 | }, 64 | "pulseaudio": { 65 | // "scroll-step": 1, // %, can be a float 66 | // "format": "{volume}% {icon} {format_source}", 67 | // "format": "{volume}% {icon}", 68 | "format": "{icon} {volume}%", 69 | "format-bluetooth": "{icon} {volume}% {format_source}", 70 | "format-bluetooth-muted": " {icon} {format_source}", 71 | "format-muted": "婢", 72 | // "format-source": "{volume}% ", 73 | // "format-source-muted": "", 74 | "format-icons": { 75 | "headphone": "", 76 | "hands-free": "", 77 | "headset": "", 78 | "phone": "", 79 | "portable": "", 80 | "car": "", 81 | "default": ["", "", ""] 82 | }, 83 | "on-click": "pavucontrol" 84 | }, 85 | "custom/launcher": { 86 | // "exec": "$HOME/.config/waybar/scripts/spotify.sh", 87 | // "return-type": "json", 88 | // "max-length": 40, 89 | // "format": " ", 90 | // "format": "", 91 | // "format": "", 92 | "format": "", 93 | // "format": " ", 94 | // "format": " ", 95 | "on-click": "rofi -show drun", 96 | }, 97 | "custom/spotify": { 98 | "exec": "$HOME/.config/waybar/scripts/spotify.sh", 99 | // "return-type": "json", 100 | "max-length": 40, 101 | "format": " {}", 102 | "on-click": "playerctl play-pause", 103 | "on-double-click": "playerctl next", 104 | "on-right-click": "on-click-right" 105 | }, 106 | } 107 | 108 | -------------------------------------------------------------------------------- /rofi/.config/rofi/center.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | foreground: #ffffff; 3 | backlight: #ccffeedd; 4 | background-color: transparent; 5 | dark: #1c1c1c; 6 | // Black 7 | black: #2c2c2c; 8 | lightblack: #2c2c2c; 9 | tlightblack: #1a1a1add; 10 | // 11 | // Red 12 | red: #cd5c5c; 13 | lightred: #cc5533; 14 | // 15 | // Green 16 | green: #86af80; 17 | lightgreen: #88cc22; 18 | // 19 | // Yellow 20 | yellow: #e8ae5b; 21 | lightyellow: #ffa75d; 22 | // 23 | // Blue 24 | /* blue: #3c3c3c; */ 25 | blue: #444444; 26 | lightblue: #87ceeb; 27 | // 28 | // Magenta 29 | magenta: #deb887; 30 | lightmagenta: #996600; 31 | // 32 | // Cyan 33 | cyan: #b0c4de; 34 | tcyan: #ccb0c4de; 35 | lightcyan: #b0c4de; 36 | // 37 | // White 38 | white: #bbaa99; 39 | lightwhite: #ddccbb; 40 | // 41 | // Bold, Italic, Underline 42 | /* highlight: underline bold #ffffff; */ 43 | highlight: #ffffff; 44 | 45 | transparent: rgba(0,0,0,0); 46 | font: "Source Code Pro 18"; 47 | } 48 | window { 49 | height: 20%; 50 | width: 20%; 51 | location: center; 52 | anchor: center; 53 | transparency: "screenshot"; 54 | border: 0px; 55 | border-radius: 10px; 56 | /* color: @magenta; */ 57 | background-color: @transparent; 58 | spacing: 0; 59 | children: [mainbox]; 60 | orientation: horizontal; 61 | } 62 | mainbox { 63 | spacing: 0; 64 | children: [ inputbar, message, listview ]; 65 | } 66 | message { 67 | border-color: @foreground; 68 | border: 1px; 69 | // border-radius: 10px; 70 | padding: 5; 71 | background-color: @tcyan; 72 | } 73 | 74 | message { 75 | font: "Source Code Pro 8"; 76 | color: @black; 77 | } 78 | 79 | inputbar { 80 | color: @foreground; 81 | padding: 11px; 82 | background-color: @tlightblack; 83 | border: 1px; 84 | border-radius: 15px 15px 0px 0px; 85 | border-color: #666666; 86 | font: "Source Code Pro 18"; 87 | } 88 | 89 | entry,prompt,case-indicator { 90 | text-font: inherit; 91 | text-color:inherit; 92 | } 93 | 94 | prompt { 95 | margin: 0px 0.3em 0em 0em ; 96 | } 97 | 98 | listview { 99 | padding: 8px 8px 0 8px; 100 | border-radius: 0px 0px 15px 15px; 101 | border-color: #666666; 102 | border: 0px 1px 1px 1px; 103 | background-color: @tlightblack; 104 | dynamic: false; 105 | lines: 10; 106 | } 107 | 108 | element { 109 | padding: 0.3em; 110 | vertical-align: 0.5; 111 | border-radius: 0.3em; 112 | background-color: transparent; 113 | color: @foreground; 114 | font:inherit; 115 | } 116 | 117 | element-icon { 118 | /** change size to 128 pixels. */ 119 | size: 28; 120 | cursor: inherit; 121 | padding: 0 0.3em 0 0; 122 | } 123 | 124 | element-text { 125 | background-color: inherit; 126 | text-color: inherit; 127 | } 128 | 129 | element selected.normal { 130 | background-color: @blue; 131 | } 132 | 133 | element normal active { 134 | foreground: @lightblue; 135 | } 136 | 137 | element normal urgent { 138 | foreground: @lightred; 139 | } 140 | 141 | element alternate normal { 142 | } 143 | 144 | element alternate active { 145 | foreground: @lightblue; 146 | } 147 | 148 | element alternate urgent { 149 | foreground: @lightred; 150 | } 151 | 152 | element selected active { 153 | background-color: @lightblue; 154 | foreground: @dark; 155 | } 156 | 157 | element selected urgent { 158 | background-color: @lightred; 159 | foreground: @dark; 160 | } 161 | 162 | element normal normal { 163 | 164 | } 165 | 166 | vertb { 167 | expand: false; 168 | children: [ dummy0, mode-switcher, dummy1 ]; 169 | } 170 | 171 | mode-switcher { 172 | expand: false; 173 | orientation: vertical; 174 | spacing: 0px; 175 | border: 0px 0px 0px 0px; 176 | } 177 | button selected normal { 178 | color: @dark; 179 | border: 2px 0px 2px 2px; 180 | background-color: @backlight; 181 | border-color: @foreground; 182 | } 183 | error-message { 184 | expand: true; 185 | background-color: red; 186 | border-color: darkred; 187 | border: 2px; 188 | padding: 1em; 189 | } 190 | 191 | -------------------------------------------------------------------------------- /waybar/.config/waybar/scripts/mediaplayer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import argparse 3 | import logging 4 | import sys 5 | import signal 6 | import gi 7 | import json 8 | gi.require_version('Playerctl', '2.0') 9 | from gi.repository import Playerctl, GLib 10 | 11 | logger = logging.getLogger(__name__) 12 | 13 | 14 | def write_output(text, player): 15 | logger.info('Writing output') 16 | 17 | output = {'text': text, 18 | 'class': 'custom-' + player.props.player_name, 19 | 'alt': player.props.player_name} 20 | 21 | sys.stdout.write(json.dumps(output) + '\n') 22 | sys.stdout.flush() 23 | 24 | 25 | def on_play(player, status, manager): 26 | logger.info('Received new playback status') 27 | on_metadata(player, player.props.metadata, manager) 28 | 29 | 30 | def on_metadata(player, metadata, manager): 31 | logger.info('Received new metadata') 32 | track_info = '' 33 | 34 | if player.props.player_name == 'spotify' and \ 35 | 'mpris:trackid' in metadata.keys() and \ 36 | ':ad:' in player.props.metadata['mpris:trackid']: 37 | track_info = 'AD PLAYING' 38 | elif player.get_artist() != '' and player.get_title() != '': 39 | track_info = '{artist} - {title}'.format(artist=player.get_artist(), 40 | title=player.get_title()) 41 | else: 42 | track_info = player.get_title() 43 | 44 | if player.props.status != 'Playing' and track_info: 45 | track_info = ' ' + track_info 46 | write_output(track_info, player) 47 | 48 | 49 | def on_player_appeared(manager, player, selected_player=None): 50 | if player is not None and (selected_player is None or player.name == selected_player): 51 | init_player(manager, player) 52 | else: 53 | logger.debug("New player appeared, but it's not the selected player, skipping") 54 | 55 | 56 | def on_player_vanished(manager, player): 57 | logger.info('Player has vanished') 58 | sys.stdout.write('\n') 59 | sys.stdout.flush() 60 | 61 | 62 | def init_player(manager, name): 63 | logger.debug('Initialize player: {player}'.format(player=name.name)) 64 | player = Playerctl.Player.new_from_name(name) 65 | player.connect('playback-status', on_play, manager) 66 | player.connect('metadata', on_metadata, manager) 67 | manager.manage_player(player) 68 | on_metadata(player, player.props.metadata, manager) 69 | 70 | 71 | def signal_handler(sig, frame): 72 | logger.debug('Received signal to stop, exiting') 73 | sys.stdout.write('\n') 74 | sys.stdout.flush() 75 | # loop.quit() 76 | sys.exit(0) 77 | 78 | 79 | def parse_arguments(): 80 | parser = argparse.ArgumentParser() 81 | 82 | # Increase verbosity with every occurrence of -v 83 | parser.add_argument('-v', '--verbose', action='count', default=0) 84 | 85 | # Define for which player we're listening 86 | parser.add_argument('--player') 87 | 88 | return parser.parse_args() 89 | 90 | 91 | def main(): 92 | arguments = parse_arguments() 93 | 94 | # Initialize logging 95 | logging.basicConfig(stream=sys.stderr, level=logging.DEBUG, 96 | format='%(name)s %(levelname)s %(message)s') 97 | 98 | # Logging is set by default to WARN and higher. 99 | # With every occurrence of -v it's lowered by one 100 | logger.setLevel(max((3 - arguments.verbose) * 10, 0)) 101 | 102 | # Log the sent command line arguments 103 | logger.debug('Arguments received {}'.format(vars(arguments))) 104 | 105 | manager = Playerctl.PlayerManager() 106 | loop = GLib.MainLoop() 107 | 108 | manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player)) 109 | manager.connect('player-vanished', on_player_vanished) 110 | 111 | signal.signal(signal.SIGINT, signal_handler) 112 | signal.signal(signal.SIGTERM, signal_handler) 113 | signal.signal(signal.SIGPIPE, signal.SIG_DFL) 114 | 115 | for player in manager.props.player_names: 116 | if arguments.player is not None and arguments.player != player.name: 117 | logger.debug('{player} is not the filtered player, skipping it' 118 | .format(player=player.name) 119 | ) 120 | continue 121 | 122 | init_player(manager, player) 123 | 124 | loop.run() 125 | 126 | 127 | if __name__ == '__main__': 128 | main() 129 | -------------------------------------------------------------------------------- /kitty/.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # Reload: fn+ctrl+shift+f5 2 | cursor_blink_interval 0 3 | wayland_titlebar_color background 4 | linux_display_server X11 5 | window_border_width 1 6 | window_margin_width 6 7 | window_padding_width 1 8 | update_check_interval 0 9 | macos_titlebar_color background 10 | macos_option_as_alt yes 11 | remember_window_size no 12 | initial_window_width 900 13 | initial_window_height 600 14 | allow_remote_control yes 15 | 16 | # symbol_map U+e000-U+f8ff JetBrainsMono Nerd Font Mono 17 | # symbol_map U+f0000-U+ffffd JetBrainsMono Nerd Font Mono 18 | # symbol_map U+100000-U+10fffd JetBrainsMono Nerd Font Mono 19 | 20 | font_size 18.0 21 | # font_family Monolisa Nerd Font 22 | font_family Comic Code Ligatures 23 | # font_family FiraCode Nerd Font Mono 24 | # font_family JetBrainsMono Nerd Font Mono 25 | 26 | # 0 g 27 | font_features MonolisaNF-Regular calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 28 | font_features MonolisaNF-Medium calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 29 | font_features MonolisaNF-Black calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 30 | font_features MonolisaNF-BlackItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 31 | font_features MonolisaNF-Bold calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 32 | font_features MonolisaNF-BoldItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 33 | font_features MonolisaNF-ExtraBold calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 34 | font_features MonolisaNF-ExtraBoldItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 35 | font_features MonolisaNF-ExtraLight calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 36 | font_features MonolisaNF-ExtraLightItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 37 | font_features MonolisaNF-Italic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 38 | font_features MonolisaNF-Light calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 39 | font_features MonolisaNF-LightItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 40 | font_features MonolisaNF-Medium calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 41 | font_features MonolisaNF-MediumItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 42 | font_features MonolisaNF-SemiBold calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 43 | font_features MonolisaNF-SemiBoldItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 44 | font_features MonolisaNF-Thin calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 45 | font_features MonolisaNF-ThinItalic calt liga zero -ss01 ss02 -ss03 ss04 ss05 -ss06 -ss07 -ss08 -ss09 ss10 ss11 ss12 -ss13 ss14 ss15 ss16 ss17 ss18 46 | 47 | # font_features FiraCodeNFM-Reg ss02 48 | # font_features FiraCodeNFM-Med ss02 49 | # font_features FiraCodeNF-Ret ss02 50 | 51 | # background #1e1e1e 52 | background #14161b 53 | foreground #c8c8c8 54 | 55 | color0 #1E1E1E 56 | color8 #545c7e 57 | color1 #b2555b 58 | color9 #b2555b 59 | color2 #A6E3A1 60 | color10 #A6E3A1 61 | color3 #ff9e64 62 | color11 #e0af68 63 | color4 #6a92d7 64 | color12 #6a92d7 65 | color5 #bb9af7 66 | color13 #bb9af7 67 | color6 #7ccdfd 68 | color14 #7ccdfd 69 | color7 #c0caf5 70 | color15 #c0caf5 71 | 72 | ## Tab Bar 73 | tab_bar_edge top 74 | tab_bar_style fade 75 | tab_fade 0 1 1 1 76 | 77 | active_tab_foreground #c8c8c8 78 | active_tab_background #303030 79 | active_tab_font_style bold 80 | inactive_tab_foreground #808080 81 | inactive_tab_background #252525 82 | inactive_tab_font_style normal 83 | 84 | map ctrl+shift+t new_tab 85 | map ctrl+shift+w close_tab 86 | map ctrl+right next_tab 87 | map ctrl+left previous_tab 88 | 89 | map ctrl+shift+l next_tab 90 | map ctrl+shift+h previous_tab 91 | # map ctrl+shift+j new_tab 92 | # map ctrl+shift+k close_tab 93 | 94 | -------------------------------------------------------------------------------- /wezterm.lua: -------------------------------------------------------------------------------- 1 | local wezterm = require("wezterm") 2 | 3 | local config = {} 4 | 5 | if wezterm.config_builder then 6 | config = wezterm.config_builder() 7 | end 8 | 9 | local fonts = { 10 | "MonoLisa", 11 | "Geist Mono", 12 | "SF Mono", 13 | "Monaspace Neon", 14 | "Monaspace Xenon", 15 | "Monaspace Krypton", 16 | "Monaspace Radon", 17 | "Monaspace Argon", 18 | "Comic Code Ligatures", 19 | -- "Liga SFMono Nerd Font", 20 | -- "Fira Code Retina", 21 | -- "DankMono Nerd Font", 22 | -- "Monego Ligatures", 23 | -- "Operator Mono Lig", 24 | -- "Gintronic", 25 | -- "Cascadia Code", 26 | -- "JetBrainsMono Nerd Font Mono", 27 | -- "Victor Mono", 28 | -- "Inconsolata", 29 | -- "TempleOS", 30 | -- "Apercu Pro", 31 | } 32 | local emoji_fonts = { "Apple Color Emoji", "Joypixels", "Twemoji", "Noto Color Emoji", "Noto Emoji" } 33 | 34 | -- https://www.monolisa.dev/playground 35 | -- https://fontdrop.info/#/?darkmode=true 36 | -- https://helpx.adobe.com/fonts/using/open-type-syntax.html 37 | -- SF Mono 38 | -- config.harfbuzz_features = 39 | -- { "-c2sc", "liga", "ccmp", "locl", "-smcp", "-ss03", "-ss04", "ss05", "ss06", "ss07", "-ss08", "-ss09" } 40 | -- Fira Code 41 | -- https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets 42 | -- config.harfbuzz_features = { "cv01", "cv02", "cv06", "cv10", "cv13", "ss01", "ss04", "ss05", "ss02" } 43 | -- monaspace 44 | -- config.harfbuzz_features = 45 | -- { "calt", "liga", "dlig", "zero", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06", "ss07", "ss08" } 46 | -- geist /> === // 0O 47 | -- config.harfbuzz_features = 48 | -- { "calt", "liga", "dlig", "zero", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06", "ss07", "ss08", "-ss09" } 49 | -- monolisa 50 | -- @ <=0xF \\ \n 51 | config.harfbuzz_features = 52 | { "calt", "liga", "zero", "-ss01", "ss02", "-ss03", "ss04", "ss05", "-ss06", "-ss07", "-ss08", "-ss09", "ss10", "ss11", "ss12", "-ss13", "ss14", "ss15", "ss16", "ss17", "ss18" } 53 | config.font = wezterm.font_with_fallback({ fonts[1], emoji_fonts[1], emoji_fonts[2] }) 54 | -- config.disable_default_key_bindings = true 55 | config.front_end = "WebGpu" 56 | config.enable_scroll_bar = false 57 | config.scrollback_lines = 10240 58 | config.font_size = 18 59 | config.enable_tab_bar = false 60 | config.hide_tab_bar_if_only_one_tab = false 61 | config.automatically_reload_config = true 62 | config.default_cursor_style = "BlinkingBar" 63 | config.initial_cols = 80 64 | config.initial_rows = 25 65 | config.use_fancy_tab_bar = true 66 | config.tab_bar_at_bottom = false 67 | -- config.window_decorations = "RESIZE|TITLE" 68 | -- config.window_decorations = "INTEGRATED_BUTTONS|RESIZE" 69 | config.window_padding = { 70 | left = 30, 71 | right = 30, 72 | top = 30, 73 | bottom = 30, 74 | } 75 | config.window_frame = { 76 | font = wezterm.font({ family = "SF Mono" }), 77 | -- font = wezterm.font({ family = "Geist Mono" }), 78 | active_titlebar_bg = "#1e1e1e", 79 | inactive_titlebar_bg = "#1e1e1e", 80 | font_size = 15.0, 81 | } 82 | 83 | config.color_scheme = "OneDark (base16)" 84 | config.color_scheme = "OneDark" 85 | config.color_schemes = { 86 | ["OneDark"] = { 87 | foreground = "#f0f6fc", 88 | background = "#1e1e1e", 89 | -- background = "#21262d", 90 | -- background = "#1e1e2e", 91 | -- background = "#1a1b26", 92 | cursor_bg = "#b1cad8", 93 | cursor_fg = "#21262d", 94 | cursor_border = "#CF7277", 95 | selection_fg = "#21262d", 96 | selection_bg = "#2A4668", 97 | scrollbar_thumb = "#30363d", 98 | split = "#6e7681", 99 | 100 | ansi = { 101 | "#8b949e", 102 | "#ff7b72", 103 | "#aff5b4", 104 | "#FFE08C", 105 | "#79c0ff", 106 | "#d2a8ff", 107 | "#a5d6ff", 108 | "#c9d1d9", 109 | }, 110 | brights = { 111 | 112 | "#8b949e", 113 | "#ff7b72", 114 | "#aff5b4", 115 | "#FFE08C", 116 | "#79c0ff", 117 | "#d2a8ff", 118 | "#a5d6ff", 119 | "#c9d1d9", 120 | }, 121 | }, 122 | } 123 | 124 | config.colors = { 125 | tab_bar = { 126 | background = "#808080", 127 | active_tab = { 128 | bg_color = "#1e1e1e", 129 | fg_color = "#c8c8c8", 130 | }, 131 | inactive_tab = { 132 | bg_color = "#30363d", 133 | fg_color = "#8b949e", 134 | }, 135 | inactive_tab_hover = { 136 | bg_color = "#484f58", 137 | fg_color = "#b1bac4", 138 | }, 139 | new_tab = { 140 | bg_color = "#30363d", 141 | fg_color = "#8b949e", 142 | }, 143 | new_tab_hover = { 144 | bg_color = "#484f58", 145 | fg_color = "#b1bac4", 146 | }, 147 | }, 148 | } 149 | 150 | -- local act = wezterm.action 151 | 152 | -- config.keys = { 153 | -- { key = "a", mods = "ctrl", action = act.ActivateTabRelative(-1) }, 154 | -- { key = "b", mods = "ctrl", action = act.ActivateTabRelative(1) }, 155 | -- } 156 | 157 | return config 158 | 159 | -------------------------------------------------------------------------------- /cava/.config/cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. 2 | 3 | 4 | [general] 5 | 6 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 7 | ; mode = normal 8 | 9 | # Accepts only non-negative values. 10 | ; framerate = 60 11 | 12 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 13 | # new as of 0.6.0 autosens of low values (dynamic range) 14 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 15 | ; autosens = 1 16 | ; overshoot = 20 17 | 18 | # Manual sensitivity in %. Autosens must be turned off for this to take effect. 19 | # 200 means double height. Accepts only non-negative values. 20 | ; sensitivity = 100 21 | 22 | # The number of bars (0-200). 0 sets it to auto (fill up console). 23 | # Bars' width and space between bars in number of characters. 24 | ; bars = 0 25 | ; bar_width = 2 26 | ; bar_spacing = 1 27 | 28 | 29 | # Lower and higher cutoff frequencies for lowest and highest bars 30 | # the bandwidth of the visualizer. 31 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 32 | # Cava will automatically increase the higher cutoff if a too low band is specified. 33 | ; lower_cutoff_freq = 50 34 | ; higher_cutoff_freq = 10000 35 | 36 | 37 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 38 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 39 | ; sleep_timer = 0 40 | 41 | 42 | [input] 43 | 44 | # Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' 45 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 46 | # 47 | # All input methods uses the same config variable 'source' 48 | # to define where it should get the audio. 49 | # 50 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 51 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 52 | # 53 | # For alsa 'source' will be the capture device. 54 | # For fifo 'source' will be the path to fifo-file. 55 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 56 | ; method = pulse 57 | ; source = auto 58 | 59 | ; method = alsa 60 | ; source = hw:Loopback,1 61 | 62 | ; method = fifo 63 | ; source = /tmp/mpd.fifo 64 | ; sample_rate = 44100 65 | ; sample_bits = 16 66 | 67 | ; method = shmem 68 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 69 | 70 | ; method = portaudio 71 | ; source = auto 72 | 73 | 74 | [output] 75 | 76 | # Output method. Can be 'ncurses', 'noncurses' or 'raw'. 77 | # 'noncurses' uses a custom framebuffer technique and draws only changes 78 | # from frame to frame. 'ncurses' is default if supported 79 | # 80 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 81 | # stream of the bar heights that can be used to send to other applications. 82 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 83 | ; method = ncurses 84 | 85 | # Visual channels. Can be 'stereo' or 'mono'. 86 | # 'stereo' mirrors both channels with low frequencies in center. 87 | # 'mono' outputs left to right lowest to highest frequencies. 88 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 89 | ; channels = stereo 90 | ; mono_option = average 91 | 92 | # Raw output target. A fifo will be created if target does not exist. 93 | ; raw_target = /dev/stdout 94 | 95 | # Raw data format. Can be 'binary' or 'ascii'. 96 | ; data_format = binary 97 | 98 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 99 | ; bit_format = 16bit 100 | 101 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 102 | ; ascii_max_range = 1000 103 | 104 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 105 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 106 | ; bar_delimiter = 59 107 | ; frame_delimiter = 10 108 | 109 | 110 | 111 | [color] 112 | 113 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 114 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 115 | # ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. 116 | # if supported, ncurses mode will be forced on if user defined colors are used. 117 | # default is to keep current terminal color 118 | ; background = default 119 | ; foreground = default 120 | 121 | # Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, 122 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 123 | # You can define as many as 8 different colors. They range from bottom to top of screen 124 | gradient = 1 125 | gradient_count = 8 126 | gradient_color_1 = '#f7768e' 127 | gradient_color_2 = '#9d7cd8' 128 | gradient_color_3 = '#2ac3de' 129 | gradient_color_4 = '#0db9d7' 130 | gradient_color_5 = '#7dcfff' 131 | gradient_color_6 = '#ff9e64' 132 | gradient_color_7 = '#e0af68' 133 | gradient_color_8 = '#9ece6a' 134 | 135 | 136 | 137 | [smoothing] 138 | 139 | # Percentage value for integral smoothing. Takes values from 0 - 100. 140 | # Higher values means smoother, but less precise. 0 to disable. 141 | ; integral = 77 142 | 143 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 144 | ; monstercat = 0 145 | ; waves = 0 146 | 147 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 148 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 149 | ; gravity = 100 150 | 151 | 152 | # In bar height, bars that would have been lower that this will not be drawn. 153 | ; ignore = 0 154 | 155 | 156 | [eq] 157 | 158 | # This one is tricky. You can have as much keys as you want. 159 | # Remember to uncomment more then one key! More keys = more precision. 160 | # Look at readme.md on github for further explanations and examples. 161 | ; 1 = 1 # bass 162 | ; 2 = 1 163 | ; 3 = 1 # midtone 164 | ; 4 = 1 165 | ; 5 = 1 # treble 166 | -------------------------------------------------------------------------------- /codium/.config/VSCodium/User/keybindings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "shift+ctrl+e", 4 | "command": "actions.findWithSelection" 5 | }, 6 | { 7 | "key": "ctrl+e", 8 | "command": "-actions.findWithSelection" 9 | }, 10 | { 11 | "key": "ctrl+e", 12 | "command": "workbench.view.explorer" 13 | }, 14 | { 15 | "key": "shift+ctrl+e", 16 | "command": "-workbench.view.explorer" 17 | }, 18 | { 19 | "key": "r", 20 | "command": "renameFile", 21 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" 22 | }, 23 | { 24 | "key": "enter", 25 | "command": "-renameFile", 26 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" 27 | }, 28 | { 29 | "key": "j", 30 | "command": "list.focusDown", 31 | "when": "listFocus && !inputFocus" 32 | }, 33 | { 34 | "key": "k", 35 | "command": "list.focusUp", 36 | "when": "listFocus && !inputFocus" 37 | }, 38 | { 39 | "key": "ctrl+j", 40 | "command": "selectNextSuggestion", 41 | "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible" 42 | }, 43 | { 44 | "key": "ctrl+k", 45 | "command": "selectPrevSuggestion", 46 | "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible" 47 | }, 48 | { 49 | "key": "ctrl+j", 50 | "command": "workbench.action.quickOpenNavigateNext", 51 | "when": "inQuickOpen" 52 | }, 53 | { 54 | "key": "tab", 55 | "command": "selectNextSuggestion", 56 | "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible" 57 | }, 58 | { 59 | "key": "tab", 60 | "command": "workbench.action.quickOpenNavigateNext", 61 | "when": "inQuickOpen" 62 | }, 63 | { 64 | "key": "shift+tab", 65 | "command": "selectPrevSuggestion", 66 | "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible" 67 | }, 68 | { 69 | "key": "shift+tab", 70 | "command": "selectPrevSuggestion", 71 | "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible" 72 | }, 73 | { 74 | "key": "shift+tab", 75 | "command": "workbench.action.quickOpenNavigatePrevious", 76 | "when": "inQuickOpen" 77 | }, 78 | { 79 | "key": "ctrl+k", 80 | "command": "workbench.action.quickOpenNavigatePrevious", 81 | "when": "inQuickOpen" 82 | }, 83 | { 84 | "key": "enter", 85 | "command": "list.select", 86 | "when": "explorerViewletVisible && filesExplorerFocus" 87 | }, 88 | { 89 | "key": "l", 90 | "command": "list.select", 91 | "when": "!inputFocus" 92 | }, 93 | { 94 | "key": "o", 95 | "command": "list.toggleExpand", 96 | "when": "!inputFocus" 97 | }, 98 | { 99 | "key": "h", 100 | "command": "list.collapse", 101 | "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus" 102 | }, 103 | { 104 | "key": "d", 105 | "command": "deleteFile", 106 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" 107 | }, 108 | { 109 | "key": "y", 110 | "command": "filesExplorer.copy", 111 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" 112 | }, 113 | { 114 | "key": "x", 115 | "command": "filesExplorer.cut", 116 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus" 117 | }, 118 | { 119 | "key": "p", 120 | "command": "filesExplorer.paste", 121 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" 122 | }, 123 | { 124 | "key": "v", 125 | "command": "explorer.openToSide", 126 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" 127 | }, 128 | { 129 | "key": "a", 130 | "command": "explorer.newFile", 131 | "when": "filesExplorerFocus && !inputFocus" 132 | }, 133 | { 134 | "key": "shift+a", 135 | "command": "explorer.newFolder", 136 | "when": "filesExplorerFocus && !inputFocus" 137 | }, 138 | { 139 | "key": "shift+;", 140 | "command": "insertPrevSuggestion", 141 | "when": "hasOtherSuggestions && textInputFocus && textInputFocus && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'" 142 | }, 143 | { 144 | "key": "ctrl+l", 145 | "when": "sideBarFocus", 146 | "command": "workbench.action.focusActiveEditorGroup" 147 | }, 148 | { 149 | "key": "ctrl+k", 150 | "command": "workbench.action.focusActiveEditorGroup", 151 | "when": "terminalFocus" 152 | }, 153 | { 154 | "key": "ctrl+j", 155 | "command": "-editor.action.insertLineAfter", 156 | "when": "editorTextFocus && neovim.ctrlKeysInsert && !neovim.recording && neovim.mode == 'insert'" 157 | }, 158 | { 159 | "key": "alt+j", 160 | "command": "workbench.action.terminal.focus", 161 | "when": "!terminalFocus" 162 | }, 163 | { 164 | "key": "ctrl+t", 165 | "command": "workbench.action.togglePanel" 166 | }, 167 | { 168 | "key": "ctrl+j", 169 | "command": "-workbench.action.togglePanel" 170 | }, 171 | { 172 | "key": "shift+k", 173 | "command": "editor.action.showHover", 174 | "when": "editorTextFocus && neovim.mode != 'insert'" 175 | }, 176 | { 177 | "key": "ctrl+k ctrl+i", 178 | "command": "-editor.action.showHover", 179 | "when": "editorTextFocus" 180 | }, 181 | { 182 | "key": "shift+tab", 183 | "command": "-acceptAlternativeSelectedSuggestion", 184 | "when": "suggestWidgetVisible && textInputFocus && textInputFocus" 185 | }, 186 | { 187 | "key": "ctrl+f", 188 | "command": "-vscode-neovim.ctrl-f", 189 | "when": "editorTextFocus && neovim.ctrlKeysNormal && neovim.init && neovim.mode != 'insert'" 190 | }, 191 | { 192 | "key": "shift+delete", 193 | "command": "-deleteFile", 194 | "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus" 195 | }, 196 | { 197 | "key": "shift+escape", 198 | "command": "notebook.cell.quitEdit", 199 | "when": "inputFocus && notebookEditorFocused && !editorHasSelection && !editorHoverVisible" 200 | }, 201 | { 202 | "key": "escape", 203 | "command": "-notebook.cell.quitEdit", 204 | "when": "inputFocus && notebookEditorFocused && !editorHasSelection && !editorHoverVisible" 205 | }, 206 | { 207 | "key": "ctrl+shift+l", 208 | "command": "workbench.action.increaseViewSize" 209 | }, 210 | { 211 | "key": "ctrl+shift+h", 212 | "command": "workbench.action.decreaseViewSize" 213 | }, 214 | { 215 | "key": "ctrl+shift+t", 216 | "command": "-workbench.action.reopenClosedEditor" 217 | }, 218 | { 219 | "key": "ctrl+shift+t", 220 | "command": "workbench.action.toggleMaximizedPanel" 221 | }, 222 | { 223 | "key": "space", 224 | "command": "whichkey.show", 225 | "when": "neovim.mode != 'insert' && !inputFocus" 226 | }, 227 | ] 228 | 229 | -------------------------------------------------------------------------------- /waybar/.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | /* `otf-font-awesome` is required to be installed for icons */ 3 | font-family: 'Roboto Mono Medium', 'Ubuntu Nerd Font'; 4 | font-size: 22; 5 | border: none; 6 | padding: 0; 7 | margin: 0; 8 | } 9 | 10 | window#waybar { 11 | background-color: rgba(0, 0, 0, 0.3); 12 | /* background-color: rgba(26, 27, 38, 0); */ 13 | /* background-color: #1e1e1e; */ 14 | /* background-color: #1e1e1e; */ 15 | /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ 16 | color: #ffffff; 17 | transition-property: background-color; 18 | transition-duration: 0.5s; 19 | } 20 | 21 | window#waybar.hidden { 22 | opacity: 0.2; 23 | } 24 | 25 | #workspaces { 26 | background-color: rgba(0, 0, 0, 0.15); 27 | border-radius: 10px; 28 | } 29 | 30 | #workspaces button { 31 | padding: 0 10px; 32 | /* padding-right: 10px; */ 33 | background-color: transparent; 34 | color: #a9a9a9; 35 | /* Use box-shadow instead of border so the text isn't offset */ 36 | box-shadow: inset 0 -3px transparent; 37 | /* Avoid rounded borders under each workspace name */ 38 | border: none; 39 | border-radius: 0; 40 | } 41 | 42 | /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ 43 | #workspaces button:hover { 44 | /* cursor: pointer; */ 45 | border-radius: 10px; 46 | background: rgba(0, 0, 0, 0.2); 47 | /* box-shadow: inset 0 -3px #ffffff; */ 48 | /* color: #bf616a; */ 49 | color: #ffffff; 50 | } 51 | 52 | #workspaces button.focused { 53 | /* background-color: #64727d; */ 54 | color: #ffffff; 55 | /* box-shadow: inset 0 -3px #ffffff; */ 56 | } 57 | 58 | #workspaces button.active { 59 | /* color: #ff9e64; */ 60 | color: #ffffff; 61 | } 62 | 63 | #workspaces button.urgent { 64 | background-color: #eb4d4b; 65 | } 66 | 67 | /* #mode { */ 68 | /* background-color: #64727d; */ 69 | /* border-bottom: 3px solid #ffffff; */ 70 | /* } */ 71 | 72 | #window { 73 | /* border-radius: 20px; */ 74 | /* padding-left: 10px; */ 75 | /* padding-right: 10px; */ 76 | color: #64727d; 77 | } 78 | 79 | #clock, 80 | #battery, 81 | #cpu, 82 | #memory, 83 | #disk, 84 | #temperature, 85 | #backlight, 86 | #network, 87 | #pulseaudio, 88 | #custom-media, 89 | #tray, 90 | #mode, 91 | #idle_inhibitor, 92 | #mpd { 93 | padding: 0 10px; 94 | color: #ffffff; 95 | } 96 | 97 | #window, 98 | #workspaces { 99 | margin: 0 4px; 100 | } 101 | 102 | /* If workspaces is the leftmost module, omit left margin */ 103 | .modules-left > widget:first-child > #workspaces { 104 | margin-left: 0; 105 | } 106 | 107 | /* If workspaces is the rightmost module, omit right margin */ 108 | .modules-right > widget:last-child > #workspaces { 109 | margin-right: 0; 110 | } 111 | 112 | #clock { 113 | /* color: #c0caf5; */ 114 | color: #ffffff; 115 | /* color: #bf616a; */ 116 | } 117 | 118 | #clock:hover { 119 | /* cursor: pointer; */ 120 | background: rgba(0, 0, 0, 0.2); 121 | /* border: None; */ 122 | box-shadow: None; 123 | /* box-shadow: inset 0 -3px #ffffff; */ 124 | /* color: #bf616a; */ 125 | } 126 | 127 | #battery { 128 | color: #a3be8c; 129 | /* background-color: #90b1b1; */ 130 | } 131 | 132 | #battery.charging, 133 | #battery.plugged { 134 | color: #26a65b; 135 | /* background-color: #26a65b; */ 136 | } 137 | 138 | @keyframes blink { 139 | to { 140 | background-color: rgba(30, 34, 42, 0.5); 141 | color: #abb2bf; 142 | } 143 | } 144 | 145 | #battery.critical:not(.charging) { 146 | background-color: #f53c3c; 147 | color: #abb2bf; 148 | animation-name: blink; 149 | animation-duration: 0.5s; 150 | animation-timing-function: linear; 151 | animation-iteration-count: infinite; 152 | animation-direction: alternate; 153 | } 154 | 155 | label:focus { 156 | background-color: #000000; 157 | } 158 | 159 | #cpu { 160 | background-color: #2ecc71; 161 | color: #000000; 162 | } 163 | 164 | #memory { 165 | background-color: #9b59b6; 166 | } 167 | 168 | #disk { 169 | background-color: #964b00; 170 | } 171 | 172 | #backlight { 173 | /* background-color: #90b1b1; */ 174 | color: #d7ba7d; 175 | } 176 | 177 | #network { 178 | padding: 2.5px; 179 | /* color: #1abc9c; */ 180 | color: #ffffff; 181 | } 182 | 183 | #network:hover { 184 | /* cursor: pointer; */ 185 | background: rgba(0, 0, 0, 0.2); 186 | /* border: None; */ 187 | box-shadow: None; 188 | /* box-shadow: inset 0 -3px #ffffff; */ 189 | /* color: #bf616a; */ 190 | } 191 | 192 | #custom-launcher { 193 | color: #ffffff; 194 | /* border: None; */ 195 | /* margin-right: 0px; */ 196 | /* padding-right: 0px; */ 197 | padding: 0 10px; 198 | } 199 | 200 | #custom-launcher:hover { 201 | /* padding-right: 1px; */ 202 | /* cursor: pointer; */ 203 | background: rgba(0, 0, 0, 0.2); 204 | /* border: None; */ 205 | box-shadow: None; 206 | /* box-shadow: inset 0 -3px #ffffff; */ 207 | /* color: #bf616a; */ 208 | } 209 | 210 | #network.disconnected { 211 | background-color: #f53c3c; 212 | } 213 | 214 | #pulseaudio { 215 | /* padding: 1px; */ 216 | /* background-color: #B48EAD; */ 217 | /* color: #bb9af7; */ 218 | color: #ffffff; 219 | } 220 | 221 | #pulseaudio:hover { 222 | /* cursor: pointer; */ 223 | background: rgba(0, 0, 0, 0.2); 224 | /* border: None; */ 225 | box-shadow: None; 226 | /* box-shadow: inset 0 -3px #ffffff; */ 227 | /* color: #bf616a; */ 228 | } 229 | 230 | #pulseaudio.muted { 231 | /* background-color: #90b1b1; */ 232 | /* color: #2a5c45; */ 233 | color: #f53c3c; 234 | } 235 | 236 | #custom-media { 237 | background-color: #66cc99; 238 | color: #2a5c45; 239 | min-width: 100px; 240 | } 241 | 242 | #custom-media.custom-spotify { 243 | background-color: #66cc99; 244 | } 245 | 246 | #custom-media.custom-vlc { 247 | background-color: #ffa000; 248 | } 249 | 250 | #temperature { 251 | background-color: #f0932b; 252 | } 253 | 254 | #temperature.critical { 255 | background-color: #eb4d4b; 256 | } 257 | 258 | #tray > .passive { 259 | -gtk-icon-effect: dim; 260 | } 261 | 262 | #tray > .needs-attention { 263 | -gtk-icon-effect: highlight; 264 | background-color: #eb4d4b; 265 | } 266 | 267 | #idle_inhibitor { 268 | background-color: #2d3436; 269 | } 270 | 271 | #idle_inhibitor.activated { 272 | background-color: #ecf0f1; 273 | color: #2d3436; 274 | } 275 | 276 | #mpd { 277 | background-color: #66cc99; 278 | color: #2a5c45; 279 | } 280 | 281 | #mpd.disconnected { 282 | background-color: #f53c3c; 283 | } 284 | 285 | #mpd.stopped { 286 | background-color: #90b1b1; 287 | } 288 | 289 | #mpd.paused { 290 | background-color: #51a37a; 291 | } 292 | 293 | #language { 294 | background: #00b093; 295 | color: #740864; 296 | padding: 0 5px; 297 | margin: 0 5px; 298 | min-width: 16px; 299 | } 300 | 301 | #keyboard-state { 302 | background: #97e1ad; 303 | color: #000000; 304 | padding: 0 0px; 305 | margin: 0 5px; 306 | min-width: 16px; 307 | } 308 | 309 | #keyboard-state > label { 310 | padding: 0 5px; 311 | } 312 | 313 | #custom-spotify { 314 | padding: 0 10px; 315 | margin: 0 4px; 316 | /* background-color: #1db954; */ 317 | color: #abb2bf; 318 | } 319 | 320 | #keyboard-state > label.locked { 321 | background: rgba(0, 0, 0, 0.2); 322 | } 323 | -------------------------------------------------------------------------------- /hyprland/.config/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | monitor=DP-2,1920x1080@60,0x0,1 2 | monitor=DP-1,3840x2160@60,1920x0,1 3 | exec-once=waybar 4 | exec-once=swaybg -o "DP-2" -i ~/Pictures/wallpapers/catalina.jpg 5 | exec-once=swaybg -o "DP-1" -i ~/Pictures/wallpapers/bigsur.jpg 6 | # exec-once=swaybg -o "DP-2" -i ~/Pictures/wallpapers/cat-waves.png 7 | exec-once=dunst 8 | # gsettings set org.gnome.desktop.interface gtk-theme "Orchis-Dark" 9 | # gsettings set org.gnome.desktop.wm.preferences theme "Orchis-dark" 10 | # gsettings set org.gnome.desktop.interface icon-theme "Arc-X-D" 11 | 12 | input { 13 | 14 | kb_options=caps:escape 15 | repeat_rate=50 16 | repeat_delay=240 17 | 18 | touchpad { 19 | 20 | disable_while_typing=1 21 | natural_scroll=1 22 | clickfinger_behavior=1 23 | middle_button_emulation=0 24 | tap-to-click=0 25 | } 26 | } 27 | 28 | gestures { 29 | workspace_swipe=true 30 | workspace_swipe_min_speed_to_force=4 31 | workspace_swipe_create_new=false 32 | workspace_swipe_forever=true 33 | } 34 | 35 | general { 36 | 37 | layout=master 38 | sensitivity=1.8 # for mouse cursor 39 | main_mod=SUPER 40 | 41 | gaps_in=5 42 | gaps_out=20 43 | border_size=2 44 | # col.active_border=0xff7aacdf 45 | # col.active_border=0x66ee8131 46 | col.active_border=0xff5e81ac 47 | col.inactive_border=0x66333333 48 | 49 | apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) 50 | } 51 | 52 | decoration { 53 | rounding=10 54 | blur=1 55 | blur_size=3 # minimum 1 56 | blur_passes=1 # minimum 1, more passes = more resource intensive. 57 | # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. 58 | # if you want heavy blur, you need to up the blur_passes. 59 | # the more passes, the more you can up the blur_size without noticing artifacts. 60 | } 61 | 62 | animations { 63 | enabled=1 64 | animation=windows,1,7,default 65 | animation=fade,1,10,default 66 | animation=workspaces,1,6,default 67 | } 68 | 69 | dwindle { 70 | pseudotile=0 # enable pseudotiling on dwindle 71 | force_split=2 72 | # preserve_split=1 73 | } 74 | 75 | master { 76 | new_on_top=true 77 | no_gaps_when_only = true 78 | } 79 | 80 | misc { 81 | disable_hyprland_logo=true 82 | disable_splash_rendering=true 83 | mouse_move_enables_dpms=true 84 | } 85 | 86 | # example window rules 87 | # for windows named/classed as abc and xyz 88 | #windowrule=move 69 420,abc 89 | #windowrule=size 420 69,abc 90 | windowrule=tile,kitty 91 | windowrule=tile,reStream 92 | windowrule=tile,ffplay 93 | blurls=rofi 94 | # windowrule=pinned,class:^(kitty)$,title:^(kitty)$ 95 | # windowrulev2 = opacity 0.80,class:^(kitty)$ 96 | # windowrulev2 = opacity 0.80,class:^(kitty)$,title:^.*(nvim).*$ 97 | 98 | windowrule=tile,librewolf 99 | windowrule=tile,discord 100 | windowrule=tile,spotify 101 | # windowrule=opacity 0.90,zsh 102 | # windowrule=opacity 0.90,kitty 103 | # windowrule=opacity 1,neovim 104 | windowrule=opacity 0.80,alacritty 105 | windowrule=opacity 0.80,rofi 106 | # windowrule=animation popin,kitty 107 | # windowrule=animation slide right,kitty 108 | windowrule=size 50%,pavucontrol 109 | windowrule=float,pavucontrol 110 | windowrule=center,pavucontrol 111 | windowrule=size 50%,blueman-manager 112 | windowrule=float,blueman-manager 113 | windowrule=center,blueman-manager 114 | #windowrule=pseudo,abc 115 | #windowrule=monitor 0,xyz 116 | # windowrule=opacity 0.2,kitty 117 | bindm=SUPER,mouse:272,movewindow 118 | bindm=SUPER,mouse:273,resizewindow 119 | 120 | # example binds 121 | bind=SUPER,Q,killactive 122 | bind=SUPER,F,fullscreen,1 123 | bind=SUPERSHIFT,F,fullscreen,0 124 | bind=SUPER,g,exec,/home/chris/.local/bin/toggle_gaps.sh 125 | bind=SUPER,s,exec,/home/chris/.local/bin/shorts.sh 126 | bind=SUPER,RETURN,exec,kitty 127 | bind=SUPER,C,killactive, 128 | bind=SUPERSHIFT,Q,exit, 129 | bind=SUPER,E,exec,pcmanfm 130 | bind=SUPER,P,exec,pavucontrol 131 | bind=SUPER,O,exec,obs 132 | bind=SUPER,W,killactive 133 | bind=SUPER,b,exec,brave 134 | bind=SUPERSHIFT,b,exec,/home/chris/.local/bin/toggle_waybar.sh 135 | bind=SUPERSHIFT,V,togglefloating, 136 | bind=SUPER,space,exec,rofi -show drun 137 | bind=SUPER,d,exec,blueman-manager 138 | # bindsym $mod+space exec wofi --show drun --insensitive --allow-images --prompt="" 139 | # bind=SUPER,P,pseudo, 140 | bind=SUPER,R,exec,/home/chris/Repos/reStream/reStream.sh 141 | bind=SUPER,ESCAPE,exec,sudo systemctl suspend 142 | bind=SUPER,Y,exec,grim -g "$(slurp)" - | swappy -f - 143 | bind=,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle 144 | bind=,XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -5% 145 | bind=,XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +5% 146 | bind=,XF86AudioMicMute,exec,pactl set-source-mute @DEFAULT_SOURCE@ toggle 147 | # bind=,F10,exec,pactl set-source-mute @DEFAULT_SOURCE@ toggle 148 | bind=,F10,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle 149 | bind=,F11,exec,pactl set-sink-volume @DEFAULT_SINK@ -5% 150 | bind=,F12,exec,pactl set-sink-volume @DEFAULT_SINK@ +5% 151 | bind=,XF86MonBrightnessUp,exec,brightnessctl -q set +5% # increase screen brightness 152 | bind=,XF86MonBrightnessDown,exec,brightnessctl -q set 5%- # decrease screen brightnes 153 | bind=SUPERSHIFT,R,exec,wf-recorder -g "$(slurp)" 154 | bind=SUPERSHIFT,E,exec,wlogout 155 | # bind=SUPERSHIFT,L,exec,swaylock 156 | 157 | bind=SUPERSHIFT,RETURN,layoutmsg,swapwithmaster 158 | bind=SUPER,j,layoutmsg,cyclenext 159 | bind=SUPER,k,layoutmsg,cycleprev 160 | 161 | bind=SUPER,h,movefocus,l 162 | bind=SUPER,l,movefocus,r 163 | 164 | bind=SUPER,left,resizeactive,-40 0 165 | bind=SUPER,right,resizeactive,40 0 166 | 167 | bind=SUPERSHIFT,h,movewindow,l 168 | bind=SUPERSHIFT,l,movewindow,r 169 | bind=SUPERSHIFT,k,movewindow,u 170 | bind=SUPERSHIFT,j,movewindow,d 171 | 172 | # bind=SUPER,s,movetoworkspace,special 173 | # bind=SUPER,n,togglespecialworkspace, 174 | 175 | wsbind=1,DP-1 176 | wsbind=2,DP-1 177 | wsbind=3,DP-1 178 | wsbind=4,DP-1 179 | wsbind=5,DP-1 180 | wsbind=6,DP-1 181 | wsbind=7,DP-1 182 | wsbind=8,DP-1 183 | wsbind=9,DP-2 184 | 185 | workspace=DP-1,1 186 | # workspace=DP-1,2 187 | # workspace=DP-1,3 188 | # workspace=DP-1,4 189 | # workspace=DP-1,5 190 | # workspace=DP-1,6 191 | # workspace=DP-1,7 192 | # workspace=DP-1,8 193 | workspace=DP-2,9 194 | 195 | bind=SUPER,1,focusmonitor,DP-1 196 | bind=SUPER,1,workspace,1 197 | bind=SUPER,2,focusmonitor,DP-1 198 | bind=SUPER,2,workspace,2 199 | bind=SUPER,3,focusmonitor,DP-1 200 | bind=SUPER,3,workspace,3 201 | bind=SUPER,4,focusmonitor,DP-1 202 | bind=SUPER,4,workspace,4 203 | bind=SUPER,5,focusmonitor,DP-1 204 | bind=SUPER,5,workspace,5 205 | bind=SUPER,6,focusmonitor,DP-1 206 | bind=SUPER,6,workspace,6 207 | bind=SUPER,7,focusmonitor,DP-1 208 | bind=SUPER,7,workspace,7 209 | bind=SUPER,8,focusmonitor,DP-1 210 | bind=SUPER,8,workspace,8 211 | bind=SUPER,9,focusmonitor,DP-2 212 | bind=SUPER,9,workspace,9 213 | 214 | bind=SUPERSHIFT,1,movetoworkspacesilent,1 215 | bind=SUPERSHIFT,2,movetoworkspacesilent,2 216 | bind=SUPERSHIFT,3,movetoworkspacesilent,3 217 | bind=SUPERSHIFT,4,movetoworkspacesilent,4 218 | bind=SUPERSHIFT,5,movetoworkspacesilent,5 219 | bind=SUPERSHIFT,6,movetoworkspacesilent,6 220 | bind=SUPERSHIFT,7,movetoworkspacesilent,7 221 | bind=SUPERSHIFT,8,movetoworkspacesilent,8 222 | bind=SUPERSHIFT,9,movetoworkspacesilent,9 223 | bind=SUPERSHIFT,0,movetoworkspacesilent,10 224 | 225 | 226 | # bind=SUPER,left,resizeactive,-20 0 227 | # bind=SUPER,right,resizeactive,20 0 228 | 229 | 230 | -------------------------------------------------------------------------------- /picom/.config/picom/picom.conf: -------------------------------------------------------------------------------- 1 | ################################# 2 | # 3 | # Backend 4 | # 5 | ################################# 6 | 7 | # Backend to use: "xrender" or "glx". 8 | # GLX backend is typically much faster but depends on a sane driver. 9 | # backend = "xrender"; 10 | backend = "glx"; 11 | # backend = "xrender" 12 | 13 | ################################# 14 | # 15 | # GLX backend 16 | # 17 | ################################# 18 | 19 | glx-no-stencil = false; 20 | 21 | # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. 22 | # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, 23 | # but a 20% increase when only 1/4 is. 24 | # My tests on nouveau show terrible slowdown. 25 | glx-copy-from-front = false; 26 | 27 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. 28 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. 29 | # May break VSync and is not available on some drivers. 30 | # Overrides --glx-copy-from-front. 31 | # glx-use-copysubbuffermesa = true; 32 | 33 | # GLX backend: Avoid rebinding pixmap on window damage. 34 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). 35 | # Recommended if it works. 36 | # glx-no-rebind-pixmap = true; 37 | 38 | # GLX backend: GLX buffer swap method we assume. 39 | # Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). 40 | # undefined is the slowest and the safest, and the default value. 41 | # copy is fastest, but may fail on some drivers, 42 | # 2-6 are gradually slower but safer (6 is still faster than 0). 43 | # Usually, double buffer means 2, triple buffer means 3. 44 | # buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. 45 | # Useless with --glx-use-copysubbuffermesa. 46 | # Partially breaks --resize-damage. 47 | # Defaults to undefined. 48 | #glx-swap-method = "undefined"; 49 | 50 | ################################# 51 | # 52 | # Shadows 53 | # 54 | ################################# 55 | # shadow = true; 56 | # no-dnd-shadow = true; 57 | # no-dock-shadow = true; 58 | # clear-shadow = true; 59 | # shadow-radius = 10; 60 | # shadow-offset-x = 0; 61 | # shadow-offset-y = 0; 62 | 63 | log-level = "warn"; 64 | #change your username here 65 | #log-file = "/home/erik/.config/compton.log"; 66 | 67 | # The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches 68 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). 69 | # This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. 70 | shadow-exclude = [ 71 | "! name~=''", 72 | "name = 'Notification'", 73 | "name = 'Plank'", 74 | "name = 'Docky'", 75 | "name = 'Kupfer'", 76 | "name = 'xfce4-notifyd'", 77 | "name *= 'VLC'", 78 | "name *= 'compton'", 79 | # "name *= 'Chromium'", 80 | # "name *= 'Chrome'", 81 | # "class_g = 'Firefox' && argb", 82 | "class_g = 'Conky'", 83 | "class_g = 'Kupfer'", 84 | "class_g = 'Synapse'", 85 | "class_g ?= 'Notify-osd'", 86 | "class_g ?= 'Cairo-dock'", 87 | "class_g = 'Cairo-clock'", 88 | "class_g ?= 'Xfce4-notifyd'", 89 | "class_g ?= 'Xfce4-power-manager'", 90 | # "_GTK_FRAME_EXTENTS@:c", 91 | # "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" 92 | ]; 93 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) 94 | shadow-ignore-shaped = false; 95 | 96 | ################################# 97 | # 98 | # Opacity 99 | # 100 | ################################# 101 | 102 | # inactive-opacity = 1; 103 | # active-opacity = 1; 104 | # frame-opacity = 1; 105 | # inactive-opacity-override = false; 106 | 107 | # Dim inactive windows. (0.0 - 1.0) 108 | # inactive-dim = 0.2; 109 | # Do not let dimness adjust based on window opacity. 110 | # inactive-dim-fixed = true; 111 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. 112 | corner-radius = 5; 113 | # blur-background = true; 114 | # # blur 115 | # blur: { 116 | # method = "dual_kawase"; 117 | # strength = 12; 118 | # background = true; 119 | # background-frame = true; 120 | # background-fixed = false; 121 | # kern = "3x3box"; 122 | # } 123 | # blur: 124 | # { 125 | # method = "kawase"; 126 | # strength = 100; 127 | # background = true; 128 | # background-frame = true; 129 | # background-fixed = true; 130 | # } 131 | # Blur background of opaque windows with transparent frames as well. 132 | # blur-background-frame = true; 133 | # Do not let blur radius adjust based on window opacity. 134 | # blur-background-fixed = true; 135 | blur-background-exclude = [ 136 | "window_type = 'dock'", 137 | "window_type = 'desktop'", 138 | "_GTK_FRAME_EXTENTS@:c" 139 | ]; 140 | 141 | ################################# 142 | # 143 | # Fading 144 | # 145 | ################################# 146 | 147 | # Fade windows during opacity changes. 148 | fading = true; 149 | # The time between steps in a fade in milliseconds. (default 10). 150 | fade-delta = 3; 151 | # Opacity change between steps while fading in. (default 0.028). 152 | fade-in-step = 0.03; 153 | # Opacity change between steps while fading out. (default 0.03). 154 | fade-out-step = 0.03; 155 | # Fade windows in/out when opening/closing 156 | # no-fading-openclose = true; 157 | 158 | # Specify a list of conditions of windows that should not be faded. 159 | fade-exclude = [ ]; 160 | 161 | ################################# 162 | # 163 | # Other 164 | # 165 | ################################# 166 | 167 | # Try to detect WM windows and mark them as active. 168 | mark-wmwin-focused = true; 169 | # Mark all non-WM but override-redirect windows active (e.g. menus). 170 | mark-ovredir-focused = true; 171 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 172 | # Usually more reliable but depends on a EWMH-compliant WM. 173 | use-ewmh-active-win = true; 174 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 175 | detect-rounded-corners = true; 176 | 177 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. 178 | # This prevents opacity being ignored for some apps. 179 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. 180 | detect-client-opacity = true; 181 | 182 | # Specify refresh rate of the screen. 183 | # If not specified or 0, compton will try detecting this with X RandR extension. 184 | refresh-rate = 0; 185 | 186 | # Vertical synchronization: match the refresh rate of the monitor 187 | # this breaks transparency in virtualbox - put a "#" before next line to fix that 188 | vsync = false; 189 | 190 | # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. 191 | # Reported to have no effect, though. 192 | dbe = false; 193 | 194 | # Limit compton to repaint at most once every 1 / refresh_rate second to boost performance. 195 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, 196 | # unless you wish to specify a lower refresh rate than the actual value. 197 | #sw-opti = true; 198 | 199 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. 200 | # Known to cause flickering when redirecting/unredirecting windows. 201 | unredir-if-possible = false; 202 | 203 | # Specify a list of conditions of windows that should always be considered focused. 204 | focus-exclude = [ ]; 205 | 206 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. 207 | detect-transient = true; 208 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. 209 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. 210 | detect-client-leader = true; 211 | 212 | ################################# 213 | # 214 | # Window type settings 215 | # 216 | ################################# 217 | 218 | wintypes: 219 | { 220 | tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true;}; 221 | dock = { shadow = false; } 222 | dnd = { shadow = false; } 223 | popup_menu = { opacity = 0.9; } 224 | dropdown_menu = { opacity = 0.9; } 225 | }; 226 | 227 | rounded-corners-exclude = [ 228 | "class_g = 'dwm'", 229 | "class_g = 'dwmsystray'", 230 | "window_type = 'dock'" 231 | ]; 232 | 233 | ###################### 234 | # 235 | # XSync 236 | # See: https://github.com/yshui/compton/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d 237 | # 238 | ###################### 239 | 240 | # Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. 241 | xrender-sync-fence = false; 242 | 243 | opacity-rule = [ 244 | # "90:class_g = 'alacitty' && focused", 245 | # "60:class_g = 'alacitty' && !focused" 246 | # "100:name *?= 'zsh' && focused", 247 | "100:name *?= 'nvim'", 248 | "100:name *?= 'vim'", 249 | "100:name *?= 'vi'", 250 | "100:name *?= 'nano'", 251 | "90:class_g = 'Alacritty'", 252 | # "95:class_g = 'st'", 253 | "95:class_g = 'Dunst'", 254 | "100:class_g = 'dwm'", 255 | "100:class_g = 'dwmsystray'", 256 | "90:class_g = 'kitty'" 257 | ]; 258 | 259 | # blur:{ method = "dual_kawase"; strength = 3;} 260 | 261 | -------------------------------------------------------------------------------- /sway/.config/sway/config: -------------------------------------------------------------------------------- 1 | # https://github.com/swaywm/sway/wiki 2 | 3 | ### Dynamic behavior 4 | exec_always $HOME/.local/bin/i3ipc-dynamic-tiling --tabbed-hide-polybar true 5 | ### Autotiling 6 | # exec_always autotiling 7 | 8 | exec nm-applet --indicator 9 | exec libinput-gestures-setup autostart start 10 | exec protonmail-bridge 11 | exec pcloudcc -u chris.machine@pm.me -m ~/Cloud -d 12 | exec blueman-applet 13 | exec pasystray & 14 | exec sh $HOME/.config/sway/export_vars.sh 15 | 16 | ### Clamshell Mode 17 | set $laptop eDP-1 18 | bindswitch --reload --locked lid:on output $laptop disable 19 | bindswitch --reload --locked lid:off output $laptop enable 20 | # exec_always $HOME/.local/bin/sway_toggle_laptop 21 | 22 | ### use xwayland 23 | xwayland enable 24 | exec mako 25 | 26 | ### Variables 27 | 28 | set $mod Mod4 29 | # set $mod Mod1 # Alt 30 | 31 | workspace_auto_back_and_forth yes 32 | show_marks yes 33 | 34 | set $left h 35 | set $down j 36 | set $up k 37 | set $right l 38 | 39 | set $term kitty 40 | set $browser brave 41 | set $music spotify 42 | set $files io.elementary.files 43 | set $email thunderbird 44 | # set $record wf-recorder --audio --file=$HOME/Video/recordings/recording_with_audio.mp4 45 | 46 | # set $menu dmenu_path | dmenu | xargs swaymsg exec -- 47 | 48 | ### Output configuration 49 | # 50 | # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) 51 | # output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill 52 | output * bg $HOME/Pictures/wallpapers/GO2KU7M.jpg fill 53 | # feh --bg-fill --randomize ~/Pictures/wallpapers/* & 54 | 55 | # 56 | # Example configuration: 57 | # 58 | # output HDMI-A-1 resolution 1920x1080 position 1920,0 59 | # 60 | # You can get the names of your outputs by running: swaymsg -t get_outputs 61 | 62 | ### Idle configuration 63 | # 64 | # Example configuration: 65 | # 66 | exec swayidle -w \ 67 | timeout 2700 'swaylock -f -c 000000' \ 68 | timeout 5400 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ 69 | before-sleep 'swaylock -f -c 000000' 70 | # 71 | # This will lock your screen after 45 mins of inactivity, then turn off 72 | # your displays after another 45 mins, and turn your screens back on when 73 | # resumed. It will also lock your screen before your computer goes to sleep. 74 | 75 | ### Input configuration 76 | 77 | input "type:keyboard" { 78 | repeat_delay 210 79 | repeat_rate 40 80 | xkb_options caps:escape 81 | } 82 | 83 | input "type:touchpad" { 84 | natural_scroll enabled 85 | dwt enabled 86 | middle_emulation disabled 87 | click_method clickfinger 88 | tap enabled 89 | tap_button_map lrm 90 | } 91 | 92 | # You can get the names of your inputs by running: swaymsg -t get_inputs 93 | 94 | ### Key bindings 95 | # 96 | # Basics: 97 | # 98 | # Start a terminal 99 | bindsym $mod+Return exec $term 100 | 101 | # Kill focused window 102 | bindsym $mod+q kill 103 | 104 | # Start your launcher 105 | # bindsym $mod+d exec $menu 106 | bindsym $mod+space exec wofi --show drun --insensitive --allow-images --prompt="" 107 | 108 | # Drag floating windows by holding down $mod and left mouse button. 109 | # Resize them with right mouse button + $mod. 110 | # Despite the name, also works for non-floating windows. 111 | # Change normal to inverse to use left mouse button for resizing and right 112 | # mouse button for dragging. 113 | floating_modifier $mod normal 114 | 115 | # Reload the configuration file 116 | bindsym $mod+Shift+c reload 117 | 118 | # Exit sway (logs you out of your Wayland session) 119 | # bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' 120 | 121 | # Logout 122 | bindsym $mod+Shift+e exec wlogout 123 | 124 | # 125 | # Moving around: 126 | # 127 | 128 | # Focus next cycle. 129 | bindsym $mod+j nop i3ipc_focus next 130 | 131 | # Move next. 132 | # bindsym $mod+shift+j nop i3ipc_move next 133 | 134 | # Focus previous cycle. 135 | bindsym $mod+k nop i3ipc_focus prev 136 | 137 | # Move previous. 138 | # bindsym $mod+shift+k nop i3ipc_move prev 139 | 140 | # Focus previous window toggle. 141 | bindsym $mod+i nop i3ipc_focus toggle 142 | 143 | # Focus the other container. 144 | bindsym $mod+o nop i3ipc_focus other 145 | 146 | # Move to the other container. 147 | bindsym $mod+shift+o nop i3ipc_move other 148 | 149 | # Swap window with the other container. 150 | bindsym $mod+Shift+Return nop i3ipc_move swap 151 | 152 | # Toggle tabbed mode. 153 | bindsym $mod+Shift+t nop i3ipc_tabbed_toggle 154 | 155 | # Toggle fullscreen mode. 156 | bindsym $mod+Shift+f fullscreen toggle 157 | 158 | # Toggle monocle mode. 159 | bindsym $mod+f nop i3ipc_monocle_toggle 160 | 161 | # Toggle workspace. 162 | bindsym $mod+Tab workspace back_and_forth 163 | 164 | # Move your focus around 165 | bindsym $mod+$left focus left 166 | # bindsym $mod+$down focus down 167 | # bindsym $mod+$up focus up 168 | bindsym $mod+$right focus right 169 | 170 | # Arrow keys 171 | bindsym Shift+Left exec swaymsg -t command workspace prev_on_output 172 | bindsym Shift+Right exec swaymsg -t command workspace next_on_output 173 | bindsym $mod+Left exec swaymsg -t command workspace prev_on_output 174 | bindsym $mod+Right exec swaymsg -t command workspace next_on_output 175 | bindsym $mod+Up exec --no-startup-id pactl set-sink-volume 0 +5% 176 | bindsym $mod+Down exec --no-startup-id pactl set-sink-volume 0 -5% 177 | 178 | # Swap Windows 179 | bindsym $mod+Shift+$left mark --add "_swap", focus left, swap container with mark "_swap", focus left, unmark "_swap" 180 | bindsym $mod+Shift+$down mark --add "_swap", focus down, swap container with mark "_swap", focus down, unmark "_swap" 181 | bindsym $mod+Shift+$up mark --add "_swap", focus up, swap container with mark "_swap", focus up, unmark "_swap" 182 | bindsym $mod+Shift+$right mark --add "_swap", focus right, swap container with mark "_swap", focus right, unmark "_swap" 183 | 184 | 185 | # Move the focused window with the same, but add Shift 186 | bindsym $mod+Shift+Left move left 187 | bindsym $mod+Shift+Down move down 188 | bindsym $mod+Shift+Up move up 189 | bindsym $mod+Shift+Right move right 190 | 191 | # Brightness controls 192 | bindsym XF86MonBrightnessUp exec brightnessctl -q set +5% # increase screen brightness 193 | bindsym XF86MonBrightnessDown exec brightnessctl -q set 5%- # decrease screen brightnes 194 | 195 | # Pulse Audio controls 196 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume 197 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume 198 | bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound 199 | # 200 | # Workspaces: 201 | # 202 | # Switch to workspace 203 | bindsym $mod+1 workspace number 1 204 | bindsym $mod+2 workspace number 2 205 | bindsym $mod+3 workspace number 3 206 | bindsym $mod+4 workspace number 4 207 | bindsym $mod+5 workspace number 5 208 | bindsym $mod+6 workspace number 6 209 | bindsym $mod+7 workspace number 7 210 | bindsym $mod+8 workspace number 8 211 | bindsym $mod+9 workspace number 9 212 | bindsym $mod+0 workspace number 10 213 | # Move focused container to workspace 214 | bindsym $mod+Shift+1 move container to workspace number 1 215 | bindsym $mod+Shift+2 move container to workspace number 2 216 | bindsym $mod+Shift+3 move container to workspace number 3 217 | bindsym $mod+Shift+4 move container to workspace number 4 218 | bindsym $mod+Shift+5 move container to workspace number 5 219 | bindsym $mod+Shift+6 move container to workspace number 6 220 | bindsym $mod+Shift+7 move container to workspace number 7 221 | bindsym $mod+Shift+8 move container to workspace number 8 222 | bindsym $mod+Shift+9 move container to workspace number 9 223 | bindsym $mod+Shift+0 move container to workspace number 10 224 | # Note: workspaces can have any name you want, not just numbers. 225 | # We just use 1-10 as the default. 226 | # 227 | # Layout stuff: 228 | # 229 | # You can "split" the current object of your focus with 230 | # $mod+b or $mod+v, for horizontal and vertical splits 231 | # respectively. 232 | # bindsym $mod+b splith 233 | # bindsym $mod+v splitv 234 | 235 | bindsym $mod+w exec $browser 236 | bindsym $mod+m exec $music 237 | bindsym $mod+b exec $email 238 | bindsym $mod+e exec $files 239 | # bindsym $mod+v exec $record 240 | 241 | # Switch the current container between different layout styles 242 | # bindsym $mod+s layout stacking 243 | # bindsym $mod+w layout tabbed 244 | bindsym $mod+t layout toggle split 245 | 246 | # Make the current focus fullscreen 247 | # bindsym $mod+f fullscreen 248 | 249 | bindsym $mod+y exec grim -g "$(slurp)" - | swappy -f - 250 | 251 | # Toggle the current focus between tiling and floating mode 252 | bindsym $mod+semicolon floating toggle 253 | 254 | # Swap focus between the tiling area and the floating area 255 | bindsym $mod+Shift+semicolon focus mode_toggle 256 | 257 | # Move focus to the parent container 258 | bindsym $mod+a focus parent 259 | # 260 | # Scratchpad: 261 | # 262 | # Sway has a "scratchpad", which is a bag of holding for windows. 263 | # You can send windows there and get them back later. 264 | 265 | # Move the currently focused window to the scratchpad 266 | bindsym $mod+Shift+minus move scratchpad 267 | 268 | # Show the next scratchpad window or hide the focused scratchpad window. 269 | # If there are multiple scratchpad windows, this command cycles through them. 270 | bindsym $mod+minus scratchpad show 271 | # 272 | # Resizing containers: 273 | # 274 | mode "resize" { 275 | # left will shrink the containers width 276 | # right will grow the containers width 277 | # up will shrink the containers height 278 | # down will grow the containers height 279 | bindsym $left resize shrink width 10px 280 | bindsym $down resize grow height 10px 281 | bindsym $up resize shrink height 10px 282 | bindsym $right resize grow width 10px 283 | 284 | # Ditto, with arrow keys 285 | bindsym Left resize shrink width 10px 286 | bindsym Down resize grow height 10px 287 | bindsym Up resize shrink height 10px 288 | bindsym Right resize grow width 10px 289 | 290 | # Return to default mode 291 | bindsym Return mode "default" 292 | bindsym Escape mode "default" 293 | } 294 | bindsym $mod+r mode "resize" 295 | 296 | ### No titlebars 297 | # default_border none 298 | default_border pixel 3 299 | for_window [title="^.*"] title_format " " 300 | #default_border normal 0 301 | # default_floating_border normal 0 302 | default_border pixel 3 303 | 304 | ### Gaps 305 | 306 | gaps inner 10 307 | gaps outer 10 308 | gaps horizontal 10 309 | gaps vertical 10 310 | gaps top 10 311 | gaps right 10 312 | gaps bottom 10 313 | gaps left 10 314 | 315 | ### Opacity 316 | # set $opacity 0.97 317 | # for_window [class="kitty"] opacity $opacity 318 | # for_window [class="nvim"] opacity 1 319 | # for_window [app_id="nvim"] opacity .5 320 | 321 | ### Status Bar: 322 | 323 | bar { 324 | swaybar_command waybar 325 | } 326 | 327 | # bar { 328 | # position top 329 | # 330 | # # When the status_command prints a new line to stdout, swaybar updates. 331 | # # The default just shows the current date and time. 332 | # status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done 333 | # 334 | # colors { 335 | # statusline #ffffff 336 | # background #323232 337 | # inactive_workspace #32323200 #32323200 #5c5c5c 338 | # } 339 | # } 340 | 341 | seat * hide_cursor when-typing enable 342 | # seat * hide_cursor 8000 343 | 344 | include /etc/sway/config.d/* 345 | -------------------------------------------------------------------------------- /amfora/.config/amfora/config.toml: -------------------------------------------------------------------------------- 1 | # This is the default config file. 2 | # It also shows all the default values, if you don't create the file. 3 | 4 | # All URL values may omit the scheme and/or port, as well as the beginning double slash 5 | # Valid URL examples: 6 | # gemini://example.com 7 | # //example.com 8 | # example.com 9 | # example.com:123 10 | 11 | 12 | [a-general] 13 | # Press Ctrl-H to access it 14 | home = "gemini://gemini.circumlunar.space" 15 | 16 | # Follow up to 5 Gemini redirects without prompting. 17 | # A prompt is always shown after the 5th redirect and for redirects to protocols other than Gemini. 18 | # If set to false, a prompt will be shown before following redirects. 19 | auto_redirect = false 20 | 21 | # What command to run to open a HTTP(S) URL. 22 | # Set to "default" to try to guess the browser, or set to "off" to not open HTTP(S) URLs. 23 | # If a command is set, than the URL will be added (in quotes) to the end of the command. 24 | # A space will be prepended to the URL. 25 | # 26 | # The best to define a command is using a string array. 27 | # Examples: 28 | # http = ['firefox'] 29 | # http = ['custom-browser', '--flag', '--option=2'] 30 | # http = ['/path/with spaces/in it/firefox'] 31 | # 32 | # Note the use of single quotes, so that backslashes will not be escaped. 33 | # Using just a string will also work, but it is deprecated, and will degrade if 34 | # you use paths with spaces. 35 | 36 | http = 'librewolf' 37 | 38 | # Any URL that will accept a query string can be put here 39 | search = "gemini://geminispace.info/search" 40 | 41 | # Whether colors will be used in the terminal 42 | color = true 43 | 44 | # Whether ANSI color codes from the page content should be rendered 45 | ansi = true 46 | 47 | # Whether to replace list asterisks with unicode bullets 48 | bullets = true 49 | 50 | # Whether to show link after link text 51 | show_link = false 52 | 53 | # A number from 0 to 1, indicating what percentage of the terminal width the left margin should take up. 54 | left_margin = 0.10 55 | 56 | # The max number of columns to wrap a page's text to. Preformatted blocks are not wrapped. 57 | max_width = 140 58 | 59 | # 'downloads' is the path to a downloads folder. 60 | # An empty value means the code will find the default downloads folder for your system. 61 | # If the path does not exist it will be created. 62 | # Note the use of single quotes, so that backslashes will not be escaped. 63 | downloads = '' 64 | 65 | # Max size for displayable content in bytes - after that size a download window pops up 66 | page_max_size = 2097152 # 2 MiB 67 | # Max time it takes to load a page in seconds - after that a download window pops up 68 | page_max_time = 10 69 | 70 | # Whether to replace tab numbers with emoji favicons, which are cached. 71 | emoji_favicons = true 72 | 73 | # When a scrollbar appears. "never", "auto", and "always" are the only valid values. 74 | # "auto" means the scrollbar only appears when the page is longer than the window. 75 | scrollbar = "auto" 76 | 77 | 78 | [auth] 79 | # Authentication settings 80 | # Note the use of single quotes for values, so that backslashes will not be escaped. 81 | 82 | [auth.certs] 83 | # Client certificates 84 | # Set domain name equal to path to client cert 85 | # "example.com" = 'mycert.crt' 86 | 87 | [auth.keys] 88 | # Client certificate keys 89 | # Set domain name equal to path to key for the client cert above 90 | # "example.com" = 'mycert.key' 91 | 92 | 93 | [keybindings] 94 | # If you have a non-US keyboard, use bind_tab1 through bind_tab0 to 95 | # setup the shift-number bindings: Eg, for US keyboards (the default): 96 | # bind_tab1 = "!" 97 | # bind_tab2 = "@" 98 | # bind_tab3 = "#" 99 | # bind_tab4 = "$" 100 | # bind_tab5 = "%" 101 | # bind_tab6 = "^" 102 | # bind_tab7 = "&" 103 | # bind_tab8 = "*" 104 | # bind_tab9 = "(" 105 | # bind_tab0 = ")" 106 | 107 | # Whitespace is not allowed in any of the keybindings! Use 'Space' and 'Tab' to bind to those keys. 108 | # Multiple keys can be bound to one command, just use a TOML array. 109 | # To add the Alt modifier, the binding must start with Alt-, should be reasonably universal 110 | # Ctrl- won't work on all keys, see this for a list: 111 | # https://github.com/gdamore/tcell/blob/cb1e5d6fa606/key.go#L83 112 | 113 | # An example of a TOML array for multiple keys being bound to one command is the default 114 | # binding for reload: 115 | # bind_reload = ["R","Ctrl-R"] 116 | # One thing to note here is that "R" is capitalization sensitive, so it means shift-r. 117 | # "Ctrl-R" means both ctrl-r and ctrl-shift-R (this is a quirk of what ctrl-r means on 118 | # an ANSI terminal) 119 | 120 | # The default binding for opening the bottom bar for entering a URL or link number is: 121 | # bind_bottom = "Space" 122 | # This is how to get the Spacebar as a keybinding, if you try to use " ", it won't work. 123 | # And, finally, an example of a simple, unmodified character is: 124 | # bind_edit = "e" 125 | # This binds the "e" key to the command to edit the current URL. 126 | 127 | # The bind_link[1-90] options are for the commands to go to the first 10 links on a page, 128 | # typically these are bound to the number keys: 129 | # bind_link1 = "1" 130 | # bind_link2 = "2" 131 | # bind_link3 = "3" 132 | # bind_link4 = "4" 133 | # bind_link5 = "5" 134 | # bind_link6 = "6" 135 | # bind_link7 = "7" 136 | # bind_link8 = "8" 137 | # bind_link9 = "9" 138 | # bind_link0 = "0" 139 | 140 | # All keybindings: 141 | # 142 | # bind_bottom 143 | # bind_edit 144 | # bind_home 145 | # bind_bookmarks 146 | # bind_add_bookmark 147 | # bind_save 148 | # bind_reload 149 | # bind_back 150 | # bind_forward 151 | # bind_pgup 152 | # bind_pgdn 153 | # bind_new_tab 154 | # bind_close_tab 155 | # bind_next_tab 156 | # bind_prev_tab 157 | # bind_quit 158 | # bind_help 159 | # bind_sub: for viewing the subscriptions page 160 | # bind_add_sub 161 | 162 | [url-handlers] 163 | # Allows setting the commands to run for various URL schemes. 164 | # E.g. to open FTP URLs with FileZilla set the following key: 165 | # ftp = 'filezilla' 166 | # You can set any scheme to "off" or "" to disable handling it, or 167 | # just leave the key unset. 168 | # 169 | # DO NOT use this for setting the HTTP command. 170 | # Use the http setting in the "a-general" section above. 171 | # 172 | # NOTE: These settings are overrided by the ones in the proxies section. 173 | # Note the use of single quotes, so that backslashes will not be escaped. 174 | 175 | # This is a special key that defines the handler for all URL schemes for which 176 | # no handler is defined. 177 | other = 'off' 178 | 179 | 180 | # [[mediatype-handlers]] section 181 | # --------------------------------- 182 | # 183 | # Specify what applications will open certain media types. 184 | # By default your default application will be used to open the file when you select "Open". 185 | # You only need to configure this section if you want to override your default application, 186 | # or do special things like streaming. 187 | # 188 | # Note the use of single quotes for commands, so that backslashes will not be escaped. 189 | # 190 | # 191 | # To open jpeg files with the feh command: 192 | # 193 | # [[mediatype-handlers]] 194 | # cmd = ['feh'] 195 | # types = ["image/jpeg"] 196 | # 197 | # Each command that you specify must come under its own [[mediatype-handlers]]. You may 198 | # specify as many [[mediatype-handlers]] as you want to setup multiple commands. 199 | # 200 | # If the subtype is omitted then the specified command will be used for the 201 | # entire type: 202 | # 203 | # [[mediatype-handlers]] 204 | # command = ['vlc', '--flag'] 205 | # types = ["audio", "video"] 206 | # 207 | # A catch-all handler can by specified with "*". 208 | # Note that there are already catch-all handlers in place for all OSes, 209 | # that open the file using your default application. This is only if you 210 | # want to override that. 211 | # 212 | # [[mediatype-handlers]] 213 | # cmd = ['some-command'] 214 | # types = [ 215 | # "application/pdf", 216 | # "*", 217 | # ] 218 | # 219 | # You can also choose to stream the data instead of downloading it all before 220 | # opening it. This is especially useful for large video or audio files, as 221 | # well as radio streams, which will never complete. You can do this like so: 222 | # 223 | # [[mediatype-handlers]] 224 | # cmd = ['vlc', '-'] 225 | # types = ["audio", "video"] 226 | # stream = true 227 | # 228 | # This uses vlc to stream all video and audio content. 229 | # By default stream is set to off for all handlers 230 | # 231 | # 232 | # If you want to always open a type in its viewer without the download or open 233 | # prompt appearing, you can add no_prompt = true 234 | # 235 | # [[mediatype-handlers]] 236 | # cmd = ['feh'] 237 | # types = ["image"] 238 | # no_prompt = true 239 | # 240 | # Note: Multiple handlers cannot be defined for the same full media type, but 241 | # still there needs to be an order for which handlers are used. The following 242 | # order applies regardless of the order written in the config: 243 | # 244 | # 1. Full media type: "image/jpeg" 245 | # 2. Just type: "image" 246 | # 3. Catch-all: "*" 247 | 248 | 249 | [cache] 250 | # Options for page cache - which is only for text pages 251 | # Increase the cache size to speed up browsing at the expense of memory 252 | # Zero values mean there is no limit 253 | 254 | max_size = 0 # Size in bytes 255 | max_pages = 30 # The maximum number of pages the cache will store 256 | 257 | # How long a page will stay in cache, in seconds. 258 | timeout = 1800 # 30 mins 259 | 260 | [proxies] 261 | # Allows setting a Gemini proxy for different schemes. 262 | # The settings are similar to the url-handlers section above. 263 | # E.g. to open a gopher page by connecting to a Gemini proxy server: 264 | # gopher = "example.com:123" 265 | # 266 | # Port 1965 is assumed if no port is specified. 267 | # 268 | # NOTE: These settings override any external handlers specified in 269 | # the url-handlers section. 270 | # 271 | # Note that HTTP and HTTPS are treated as separate protocols here. 272 | 273 | 274 | [subscriptions] 275 | # For tracking feeds and pages 276 | 277 | # Whether a pop-up appears when viewing a potential feed 278 | popup = true 279 | 280 | # How often to check for updates to subscriptions in the background, in seconds. 281 | # Set it to 0 to disable this feature. You can still update individual feeds 282 | # manually, or restart the browser. 283 | # 284 | # Note Amfora will check for updates on browser start no matter what this setting is. 285 | update_interval = 1800 # 30 mins 286 | 287 | # How many subscriptions can be checked at the same time when updating. 288 | # If you have many subscriptions you may want to increase this for faster 289 | # update times. Any value below 1 will be corrected to 1. 290 | workers = 3 291 | 292 | # The number of subscription updates displayed per page. 293 | entries_per_page = 20 294 | 295 | 296 | [theme] 297 | # This section is for changing the COLORS used in Amfora. 298 | # These colors only apply if 'color' is enabled above. 299 | # Colors can be set using a W3C color name, or a hex value such as "#ffffff". 300 | 301 | # Note that not all colors will work on terminals that do not have truecolor support. 302 | # If you want to stick to the standard 16 or 256 colors, you can get 303 | # a list of those here: https://jonasjacek.github.io/colors/ 304 | # DO NOT use the names from that site, just the hex codes. 305 | 306 | # Definitions: 307 | # dl = download 308 | # btn = button 309 | # bkmk = bookmark 310 | # modal = a popup window/box in the middle of the screen 311 | 312 | # btn_bg: The bg color for all modal buttons 313 | # btn_text: The text color for all modal buttons 314 | 315 | # dl_choice_modal_bg 316 | # dl_choice_modal_text 317 | # dl_modal_bg 318 | # dl_modal_text 319 | # info_modal_bg 320 | # info_modal_text 321 | # error_modal_bg 322 | # error_modal_text 323 | # yesno_modal_bg 324 | # yesno_modal_text 325 | # tofu_modal_bg 326 | # tofu_modal_text 327 | # subscription_modal_bg 328 | # subscription_modal_text 329 | 330 | # input_modal_bg 331 | # input_modal_text 332 | # input_modal_field_bg: The bg of the input field, where you type the text 333 | # input_modal_field_text: The color of the text you type 334 | 335 | # bkmk_modal_bg 336 | # bkmk_modal_text 337 | # bkmk_modal_label 338 | # bkmk_modal_field_bg 339 | # bkmk_modal_field_text 340 | 341 | # Definitions: 342 | bg = "#232731" 343 | fg = "#D8DEE9" 344 | # dl = download 345 | # btn = button 346 | # bkmk = bookmark 347 | # modal = a popup window/box in the middle of the screen 348 | hdg_1 = "#5e81ac" 349 | hdg_2 = "#5e81ac" 350 | hdg_3 = "#5e81ac" 351 | preformatted_text = "#D7BA7D" 352 | list_text = "#B48EAD" 353 | quote_text = "#A3BE8C" 354 | amfora_link = "#88c0d0" 355 | foreign_link = "#88c0d0" 356 | link_number = "#C68A75" 357 | bottombar_text = "#D8DEE9" 358 | bottombar_bg = "#4C566A" 359 | tab_num = "#4C566A" 360 | scrollbar = "#4C566A" 361 | tab_divider = "#bf616a" 362 | regular_text = "#D8DEE9" 363 | bottombar_label = "#D8DEE9" 364 | -------------------------------------------------------------------------------- /ranger/.config/ranger/rc.conf: -------------------------------------------------------------------------------- 1 | ###SETTINGS### 2 | ####!!!!!! REMEMBER TO CLONE DEVICONS 3 | 4 | # set column_ratios 1,3,4 5 | set column_ratios 1,1 6 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 7 | set show_hidden false 8 | set confirm_on_delete multiple 9 | set use_preview_script true 10 | set automatically_count_files true 11 | set open_all_images true 12 | set vcs_aware false 13 | set vcs_backend_git enabled 14 | set vcs_backend_hg disabled 15 | set vcs_backend_bzr disabled 16 | set preview_images true 17 | # set preview_images_method w3m 18 | # set preview_images_method ueberzug 19 | set preview_images_method kitty 20 | set unicode_ellipsis false 21 | set show_hidden_bookmarks false 22 | set colorscheme default 23 | set preview_files true 24 | set preview_directories true 25 | set collapse_preview true 26 | set save_console_history false 27 | set status_bar_on_top false 28 | set draw_progress_bar_in_status_bar true 29 | # set draw_borders true 30 | set dirname_in_tabs true 31 | set mouse_enabled true 32 | set display_size_in_main_column true 33 | set display_size_in_status_bar true 34 | set display_tags_in_all_columns true 35 | set update_title false 36 | set update_tmux_title true 37 | set shorten_title 3 38 | set tilde_in_titlebar true 39 | set max_history_size 20 40 | set max_console_history_size 50 41 | set scroll_offset 8 42 | set flushinput true 43 | set padding_right true 44 | set autosave_bookmarks false 45 | set autoupdate_cumulative_size false 46 | set show_cursor false 47 | set sort natural 48 | set sort_reverse false 49 | set sort_case_insensitive true 50 | set sort_directories_first true 51 | set sort_unicode false 52 | set xterm_alt_key false 53 | set cd_bookmarks false 54 | set preview_max_size 0 55 | set show_selection_in_titlebar true 56 | set idle_delay 2000 57 | set metadata_deep_search false 58 | 59 | # ICONS 60 | default_linemode devicons 61 | 62 | ###ALIASES### 63 | alias e edit 64 | alias q quit 65 | alias q! quitall 66 | alias qa quitall 67 | alias qall quitall 68 | alias setl setlocal 69 | 70 | alias filter scout -prt 71 | alias find scout -aeit 72 | alias mark scout -mr 73 | alias unmark scout -Mr 74 | alias search scout -rs 75 | alias search_inc scout -rts 76 | alias travel scout -aefiklst 77 | 78 | ###BASIC KEYS### 79 | 80 | #BASIC 81 | map Q quit! 82 | map q quit 83 | copymap q ZZ ZQ 84 | 85 | #map R reload_cwd 86 | map reset 87 | #map redraw_window 88 | map abort 89 | map change_mode normal 90 | 91 | map i display_file 92 | map ? help 93 | #map W display_log 94 | map w taskview_open 95 | map S shell $SHELL 96 | 97 | map : console 98 | map ; console 99 | map ! console shell%space 100 | map @ console -p6 shell %s 101 | map # console shell -p%space 102 | #map s console shell%space 103 | map r chain draw_possible_programs; console open_with%%space 104 | map f console find%space 105 | map cd console cd%space 106 | 107 | # Tagging / Marking 108 | map at tag_toggle 109 | map ut tag_remove 110 | map " tag_toggle tag=%any 111 | map mark_files toggle=True 112 | map va mark_files all=True toggle=True 113 | map uv mark_files all=True val=False 114 | map vs toggle_visual_mode 115 | map uV toggle_visual_mode reverse=True 116 | 117 | # For the nostalgics: Midnight Commander bindings 118 | map help 119 | map display_file 120 | map edit 121 | map copy 122 | map console shell echo "require(rmarkdown); render_site()" | R --vanilla 123 | map cut 124 | map console mkdir%space 125 | map console delete 126 | map exit 127 | 128 | # VIM-like 129 | copymap k 130 | copymap j 131 | copymap h 132 | copymap l 133 | copymap gg 134 | copymap G 135 | copymap 136 | copymap 137 | 138 | map J move down=0.5 pages=True 139 | map K move up=0.5 pages=True 140 | copymap J 141 | copymap K 142 | 143 | # Jumping around 144 | map H history_go -1 145 | map L history_go 1 146 | map ] move_parent 1 147 | map [ move_parent -1 148 | map } traverse 149 | 150 | #DEFAULT MOVEMENT 151 | map ge cd /etc 152 | map gu cd /usr 153 | #map gl cd -r . 154 | map gL cd -r %f 155 | #map gv cd /var 156 | map gM cd /mnt 157 | map gr cd / 158 | map gR eval fm.cd(ranger.RANGERDIR) 159 | map g? cd /usr/share/doc/ranger 160 | 161 | # Tabs 162 | map tab_new ~ 163 | map tab_close 164 | map tab_move 1 165 | map tab_move -1 166 | map tab_move 1 167 | map tab_move -1 168 | #map gt tab_move 1 169 | #map gT tab_move -1 170 | map gn tab_new ~ 171 | #map gc tab_close 172 | map tt tab_close 173 | map uq tab_restore 174 | map tab_open 1 175 | map tab_open 2 176 | map tab_open 3 177 | map tab_open 4 178 | map tab_open 5 179 | map tab_open 6 180 | map tab_open 7 181 | map tab_open 8 182 | map tab_open 9 183 | 184 | 185 | # External Programs 186 | map E edit 187 | map du shell -p du --max-depth=1 -h --apparent-size 188 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh 189 | map yp shell -f echo -n %%d/%%f | xsel -i; xsel -o | xsel -i -b 190 | map yd shell -f echo -n %%d | xsel -i; xsel -o | xsel -i -b 191 | map yn shell -f echo -n %%f | xsel -i; xsel -o | xsel -i -b 192 | 193 | 194 | # Filesystem Operations 195 | map = chmod 196 | map cw console rename%space 197 | map aa rename_append 198 | map r eval fm.open_console('rename ' + fm.thisfile.relative_path) 199 | map R eval fm.open_console('rename ' + fm.thisfile.relative_path, position=7) 200 | map pp paste 201 | map po paste overwrite=True 202 | map pP paste append=True 203 | map pO paste overwrite=True append=True 204 | map pl paste_symlink relative=False 205 | map pL paste_symlink relative=True 206 | map phl paste_hardlink 207 | map pht paste_hardlinked_subtree 208 | 209 | map dD console delete 210 | 211 | map dd cut 212 | map ud uncut 213 | map da cut mode=add 214 | map dr cut mode=remove 215 | 216 | map yy copy 217 | map uy uncut 218 | map ya copy mode=add 219 | map yr copy mode=remove 220 | 221 | 222 | # Temporary workarounds 223 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) 224 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) 225 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) 226 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) 227 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) 228 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) 229 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) 230 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) 231 | 232 | 233 | # Searching 234 | map / console search%space 235 | map n search_next 236 | map N search_next forward=False 237 | map ct search_next order=tag 238 | map cs search_next order=size 239 | map ci search_next order=mimetype 240 | map cc search_next order=ctime 241 | map cm search_next order=mtime 242 | map ca search_next order=atime 243 | 244 | 245 | # Sorting 246 | map or toggle_option sort_reverse 247 | map oz set sort=random 248 | map os chain set sort=size; set sort_reverse=False 249 | map ob chain set sort=basename; set sort_reverse=False 250 | map on chain set sort=natural; set sort_reverse=False 251 | map om chain set sort=mtime; set sort_reverse=False 252 | map oc chain set sort=ctime; set sort_reverse=False 253 | map oa chain set sort=atime; set sort_reverse=False 254 | map ot chain set sort=type; set sort_reverse=False 255 | map oe chain set sort=extension; set sort_reverse=False 256 | 257 | map oS chain set sort=size; set sort_reverse=True 258 | map oB chain set sort=basename; set sort_reverse=True 259 | map oN chain set sort=natural; set sort_reverse=True 260 | map oM chain set sort=mtime; set sort_reverse=True 261 | map oC chain set sort=ctime; set sort_reverse=True 262 | map oA chain set sort=atime; set sort_reverse=True 263 | map oT chain set sort=type; set sort_reverse=True 264 | map oE chain set sort=extension; set sort_reverse=True 265 | 266 | map dc get_cumulative_size 267 | 268 | 269 | # Settings 270 | map zc toggle_option collapse_preview 271 | map zd toggle_option sort_directories_first 272 | map zh toggle_option show_hidden 273 | map toggle_option show_hidden 274 | map zi toggle_option flushinput 275 | map zm toggle_option mouse_enabled 276 | map zp toggle_option preview_files 277 | map zP toggle_option preview_directories 278 | map zs toggle_option sort_case_insensitive 279 | map zu toggle_option autoupdate_cumulative_size 280 | map zv toggle_option use_preview_script 281 | map zf console filter%space 282 | 283 | 284 | # Generate all the chmod bindings with some python help: 285 | eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) 286 | eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) 287 | eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) 288 | eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) 289 | eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) 290 | 291 | eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) 292 | eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) 293 | eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) 294 | eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) 295 | eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) 296 | 297 | 298 | ###CONSOLE KEYS### 299 | # Basic 300 | cmap eval fm.ui.console.tab() 301 | cmap eval fm.ui.console.tab(-1) 302 | cmap eval fm.ui.console.close() 303 | cmap eval fm.ui.console.execute() 304 | #cmap redraw_window 305 | 306 | copycmap 307 | copycmap 308 | 309 | 310 | # Move around 311 | cmap eval fm.ui.console.history_move(-1) 312 | cmap eval fm.ui.console.history_move(1) 313 | cmap eval fm.ui.console.move(left=1) 314 | cmap eval fm.ui.console.move(right=1) 315 | cmap eval fm.ui.console.move(right=0, absolute=True) 316 | cmap eval fm.ui.console.move(right=-1, absolute=True) 317 | 318 | 319 | # Line Editing 320 | cmap eval fm.ui.console.delete(-1) 321 | cmap eval fm.ui.console.delete(0) 322 | cmap eval fm.ui.console.delete_word() 323 | cmap eval fm.ui.console.delete_word(backward=False) 324 | cmap eval fm.ui.console.delete_rest(1) 325 | cmap eval fm.ui.console.delete_rest(-1) 326 | cmap eval fm.ui.console.paste() 327 | 328 | # Note: There are multiple ways to express backspaces. (code 263) 329 | # and (code 127). To be sure, use both. 330 | copycmap 331 | 332 | # This special expression allows typing in numerals: 333 | cmap false 334 | 335 | 336 | 337 | ###PAGER KEYS### 338 | # Movement 339 | pmap pager_move down=1 340 | pmap pager_move up=1 341 | pmap pager_move left=4 342 | pmap pager_move right=4 343 | pmap pager_move to=0 344 | pmap pager_move to=-1 345 | pmap pager_move down=1.0 pages=True 346 | pmap pager_move up=1.0 pages=True 347 | pmap pager_move down=0.5 pages=True 348 | pmap pager_move up=0.5 pages=True 349 | 350 | copypmap k 351 | copypmap j 352 | copypmap h 353 | copypmap l 354 | copypmap g 355 | copypmap G 356 | copypmap d 357 | copypmap u 358 | copypmap n f 359 | copypmap p b 360 | 361 | 362 | # Basic 363 | #pmap redraw_window 364 | pmap pager_close 365 | copypmap q Q i 366 | pmap E edit_file 367 | 368 | # =================================================================== 369 | # == Taskview Keybindings 370 | # =================================================================== 371 | 372 | # Movement 373 | tmap taskview_move up=1 374 | tmap taskview_move down=1 375 | tmap taskview_move to=0 376 | tmap taskview_move to=-1 377 | tmap taskview_move down=1.0 pages=True 378 | tmap taskview_move up=1.0 pages=True 379 | tmap taskview_move down=0.5 pages=True 380 | tmap taskview_move up=0.5 pages=True 381 | 382 | copytmap k 383 | copytmap j 384 | copytmap g 385 | copytmap G 386 | copytmap u 387 | copytmap n f 388 | copytmap p b 389 | 390 | # Changing priority and deleting tasks 391 | tmap J eval -q fm.ui.taskview.task_move(-1) 392 | tmap K eval -q fm.ui.taskview.task_move(0) 393 | tmap dd eval -q fm.ui.taskview.task_remove() 394 | tmap eval -q fm.ui.taskview.task_move(-1) 395 | tmap eval -q fm.ui.taskview.task_move(0) 396 | tmap eval -q fm.ui.taskview.task_remove() 397 | 398 | # Basic 399 | #tmap redraw_window 400 | tmap taskview_close 401 | copytmap q Q w 402 | 403 | 404 | map sp console shell bash speedvid.sh %f%space 405 | map x shell chmod -x %s 406 | 407 | #General 408 | map V console shell vim%space 409 | map cW bulkrename %s 410 | map mkd console mkdir%space 411 | map sc console shell ln -sT%space 412 | map D console delete 413 | map X shell atool -x %f 414 | map Z shell tar -cvzf %f.tar.gz %s 415 | map fzf_select 416 | map fzf_locate 417 | 418 | -------------------------------------------------------------------------------- /dunst/.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | timeout = 10 3 | ### Display ### 4 | 5 | # Which monitor should the notifications be displayed on. 6 | monitor = 0 7 | 8 | # Display notification on focused monitor. Possible modes are: 9 | # mouse: follow mouse pointer 10 | # keyboard: follow window with keyboard focus 11 | # none: don't follow anything 12 | # 13 | # "keyboard" needs a window manager that exports the 14 | # _NET_ACTIVE_WINDOW property. 15 | # This should be the case for almost all modern window managers. 16 | # 17 | # If this option is set to mouse or keyboard, the monitor option 18 | # will be ignored. 19 | follow = mouse 20 | 21 | # The geometry of the window: 22 | # [{width}]x{height}[+/-{x}+/-{y}] 23 | # The geometry of the message window. 24 | # The height is measured in number of notifications everything else 25 | # in pixels. If the width is omitted but the height is given 26 | # ("-geometry x2"), the message window expands over the whole screen 27 | # (dmenu-like). If width is 0, the window expands to the longest 28 | # message displayed. A positive x is measured from the left, a 29 | # negative from the right side of the screen. Y is measured from 30 | # the top and down respectively. 31 | # The width can be negative. In this case the actual width is the 32 | # screen width minus the width defined in within the geometry option. 33 | # geometry = "300x5-30+20" 34 | 35 | 36 | # width = 300 37 | # height = 100 38 | offset = 20x20 39 | origin = "top-right" 40 | 41 | 42 | # Turn on the progess bar 43 | progress_bar = true 44 | 45 | # Set the progress bar height. This includes the frame, so make sure 46 | # it's at least twice as big as the frame width. 47 | progress_bar_height = 10 48 | 49 | # Set the frame width of the progress bar 50 | progress_bar_frame_width = 1 51 | 52 | # Set the minimum width for the progress bar 53 | progress_bar_min_width = 150 54 | 55 | # Set the maximum width for the progress bar 56 | progress_bar_max_width = 300 57 | 58 | 59 | # Show how many messages are currently hidden (because of geometry). 60 | indicate_hidden = yes 61 | 62 | # Shrink window if it's smaller than the width. Will be ignored if 63 | # width is 0. 64 | shrink = no 65 | 66 | # The transparency of the window. Range: [0; 100]. 67 | # This option will only work if a compositing window manager is 68 | # present (e.g. xcompmgr, compiz, etc.). 69 | transparency = 80 70 | 71 | # The height of the entire notification. If the height is smaller 72 | # than the font height and padding combined, it will be raised 73 | # to the font height and padding. 74 | # notification_height = 0 75 | 76 | # Draw a line of "separator_height" pixel height between two 77 | # notifications. 78 | # Set to 0 to disable. 79 | separator_height = 3 80 | 81 | # Padding between text and separator. 82 | padding = 10 83 | 84 | # Horizontal padding. 85 | horizontal_padding = 10 86 | 87 | # Padding between text and icon. 88 | text_icon_padding = 0 89 | 90 | # Defines width in pixels of frame around the notification window. 91 | # Set to 0 to disable. 92 | frame_width = 1 93 | 94 | # Defines color of the frame around the notification window. 95 | # frame_color = "#0c7d9d" 96 | frame_color = "#88c0d0" 97 | 98 | # Define a color for the separator. 99 | # possible values are: 100 | # * auto: dunst tries to find a color fitting to the background; 101 | # * foreground: use the same color as the foreground; 102 | # * frame: use the same color as the frame; 103 | # * anything else will be interpreted as a X color. 104 | separator_color = frame 105 | 106 | # Sort messages by urgency. 107 | sort = yes 108 | 109 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 110 | # for longer than idle_threshold seconds. 111 | # Set to 0 to disable. 112 | # A client can set the 'transient' hint to bypass this. See the rules 113 | # section for how to disable this if necessary 114 | idle_threshold = 120 115 | 116 | ### Text ### 117 | 118 | font = Monospace 12 119 | 120 | # The spacing between lines. If the height is smaller than the 121 | # font height, it will get raised to the font height. 122 | line_height = 0 123 | 124 | # Possible values are: 125 | # full: Allow a small subset of html markup in notifications: 126 | # bold 127 | # italic 128 | # strikethrough 129 | # underline 130 | # 131 | # For a complete reference see 132 | # . 133 | # 134 | # strip: This setting is provided for compatibility with some broken 135 | # clients that send markup even though it's not enabled on the 136 | # server. Dunst will try to strip the markup but the parsing is 137 | # simplistic so using this option outside of matching rules for 138 | # specific applications *IS GREATLY DISCOURAGED*. 139 | # 140 | # no: Disable markup parsing, incoming notifications will be treated as 141 | # plain text. Dunst will not advertise that it has the body-markup 142 | # capability if this is set as a global setting. 143 | # 144 | # It's important to note that markup inside the format option will be parsed 145 | # regardless of what this is set to. 146 | markup = full 147 | 148 | # The format of the message. Possible variables are: 149 | # %a appname 150 | # %s summary 151 | # %b body 152 | # %i iconname (including its path) 153 | # %I iconname (without its path) 154 | # %p progress value if set ([ 0%] to [100%]) or nothing 155 | # %n progress value if set without any extra characters 156 | # %% Literal % 157 | # Markup is allowed 158 | format = "%s\n%b" 159 | 160 | # Alignment of message text. 161 | # Possible values are "left", "center" and "right". 162 | alignment = left 163 | 164 | # Vertical alignment of message text and icon. 165 | # Possible values are "top", "center" and "bottom". 166 | vertical_alignment = center 167 | 168 | # Show age of message if message is older than show_age_threshold 169 | # seconds. 170 | # Set to -1 to disable. 171 | show_age_threshold = 60 172 | 173 | # Split notifications into multiple lines if they don't fit into 174 | # geometry. 175 | word_wrap = yes 176 | 177 | # When word_wrap is set to no, specify where to make an ellipsis in long lines. 178 | # Possible values are "start", "middle" and "end". 179 | ellipsize = middle 180 | 181 | # Ignore newlines '\n' in notifications. 182 | ignore_newline = no 183 | 184 | # Stack together notifications with the same content 185 | stack_duplicates = true 186 | 187 | # Hide the count of stacked notifications with the same content 188 | hide_duplicate_count = false 189 | 190 | # Display indicators for URLs (U) and actions (A). 191 | show_indicators = yes 192 | 193 | ### Icons ### 194 | 195 | # Align icons left/right/off 196 | icon_position = left 197 | 198 | # Scale small icons up to this size, set to 0 to disable. Helpful 199 | # for e.g. small files or high-dpi screens. In case of conflict, 200 | # max_icon_size takes precedence over this. 201 | min_icon_size = 0 202 | 203 | # Scale larger icons down to this size, set to 0 to disable 204 | max_icon_size = 72 205 | 206 | # Paths to default icons. 207 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 208 | 209 | ### History ### 210 | 211 | # Should a notification popped up from history be sticky or timeout 212 | # as if it would normally do. 213 | sticky_history = yes 214 | 215 | # Maximum amount of notifications kept in history 216 | history_length = 20 217 | 218 | ### Misc/Advanced ### 219 | 220 | # dmenu path. 221 | dmenu = /usr/bin/dmenu -p dunst: 222 | 223 | # Browser for opening urls in context menu. 224 | browser = /usr/bin/brave -new-tab 225 | 226 | # Always run rule-defined scripts, even if the notification is suppressed 227 | always_run_script = true 228 | 229 | # Define the title of the windows spawned by dunst 230 | title = Dunst 231 | 232 | # Define the class of the windows spawned by dunst 233 | class = Dunst 234 | 235 | # Print a notification on startup. 236 | # This is mainly for error detection, since dbus (re-)starts dunst 237 | # automatically after a crash. 238 | # startup_notification = false 239 | 240 | # Manage dunst's desire for talking 241 | # Can be one of the following values: 242 | # crit: Critical features. Dunst aborts 243 | # warn: Only non-fatal warnings 244 | # mesg: Important Messages 245 | # info: all unimportant stuff 246 | # debug: all less than unimportant stuff 247 | # verbosity = mesg 248 | 249 | # Define the corner radius of the notification window 250 | # in pixel size. If the radius is 0, you have no rounded 251 | # corners. 252 | # The radius will be automatically lowered if it exceeds half of the 253 | # notification height to avoid clipping text and/or icons. 254 | corner_radius = 20 255 | 256 | # Ignore the dbus closeNotification message. 257 | # Useful to enforce the timeout set by dunst configuration. Without this 258 | # parameter, an application may close the notification sent before the 259 | # user defined timeout. 260 | ignore_dbusclose = false 261 | 262 | ### Wayland ### 263 | # These settings are Wayland-specific. They have no effect when using X11 264 | 265 | # Uncomment this if you want to let notications appear under fullscreen 266 | # applications (default: overlay) 267 | # layer = top 268 | 269 | # Set this to true to use X11 output on Wayland. 270 | force_xwayland = false 271 | 272 | ### Legacy 273 | 274 | # Use the Xinerama extension instead of RandR for multi-monitor support. 275 | # This setting is provided for compatibility with older nVidia drivers that 276 | # do not support RandR and using it on systems that support RandR is highly 277 | # discouraged. 278 | # 279 | # By enabling this setting dunst will not be able to detect when a monitor 280 | # is connected or disconnected which might break follow mode if the screen 281 | # layout changes. 282 | force_xinerama = false 283 | 284 | ### mouse 285 | 286 | # Defines list of actions for each mouse event 287 | # Possible values are: 288 | # * none: Don't do anything. 289 | # * do_action: If the notification has exactly one action, or one is marked as default, 290 | # invoke it. If there are multiple and no default, open the context menu. 291 | # * close_current: Close current notification. 292 | # * close_all: Close all notifications. 293 | # These values can be strung together for each mouse event, and 294 | # will be executed in sequence. 295 | mouse_left_click = close_current 296 | mouse_middle_click = do_action, close_current 297 | mouse_right_click = close_all 298 | 299 | # Experimental features that may or may not work correctly. Do not expect them 300 | # to have a consistent behaviour across releases. 301 | [experimental] 302 | # Calculate the dpi to use on a per-monitor basis. 303 | # If this setting is enabled the Xft.dpi value will be ignored and instead 304 | # dunst will attempt to calculate an appropriate dpi value for each monitor 305 | # using the resolution and physical size. This might be useful in setups 306 | # where there are multiple screens with very different dpi values. 307 | per_monitor_dpi = false 308 | 309 | # The internal keyboard shortcut support in dunst is now considered deprecated 310 | # and should be replaced by dunstctl calls. You can use the configuration of your 311 | # WM or DE to bind these to shortcuts of your choice. 312 | # Check the dunstctl manual page for more info. 313 | [shortcuts] 314 | 315 | # Shortcuts are specified as [modifier+][modifier+]...key 316 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", 317 | # "mod3" and "mod4" (windows-key). 318 | # Xev might be helpful to find names for keys. 319 | 320 | # Close notification. Equivalent dunstctl command: 321 | # dunstctl close 322 | # close = ctrl+space 323 | 324 | # Close all notifications. Equivalent dunstctl command: 325 | # dunstctl close-all 326 | # close_all = ctrl+shift+space 327 | 328 | # Redisplay last message(s). Equivalent dunstctl command: 329 | # dunstctl history-pop 330 | # history = ctrl+grave 331 | 332 | # Context menu. Equivalent dunstctl command: 333 | # dunstctl context 334 | # context = ctrl+shift+period 335 | 336 | 337 | [urgency_low] 338 | # IMPORTANT: colors have to be defined in quotation marks. 339 | # Otherwise the "#" and following would be interpreted as a comment. 340 | background = "#2c2c2c" 341 | foreground = "#d8dee9" 342 | timeout = 12 343 | # Icon for notifications with low urgency, uncomment to enable 344 | #icon = /path/to/icon 345 | 346 | [urgency_normal] 347 | background = "#2c2c2c" 348 | foreground = "#d8dee9" 349 | timeout = 12 350 | # Icon for notifications with normal urgency, uncomment to enable 351 | #icon = /path/to/icon 352 | 353 | [urgency_critical] 354 | background = "#900000" 355 | foreground = "#ffffff" 356 | frame_color = "#ff0000" 357 | timeout = 5 358 | # Icon for notifications with critical urgency, uncomment to enable 359 | #icon = /path/to/icon 360 | 361 | # Every section that isn't one of the above is interpreted as a rules to 362 | # override settings for certain messages. 363 | # 364 | # Messages can be matched by 365 | # appname (discouraged, see desktop_entry) 366 | # body 367 | # category 368 | # desktop_entry 369 | # icon 370 | # match_transient 371 | # msg_urgency 372 | # stack_tag 373 | # summary 374 | # 375 | # and you can override the 376 | # background 377 | # foreground 378 | # format 379 | # frame_color 380 | # fullscreen 381 | # new_icon 382 | # set_stack_tag 383 | # set_transient 384 | # timeout 385 | # urgency 386 | # 387 | # Shell-like globbing will get expanded. 388 | # 389 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 390 | # GLib based applications export their desktop-entry name. In comparison to the appname, 391 | # the desktop-entry won't get localized. 392 | # 393 | # SCRIPTING 394 | # You can specify a script that gets run when the rule matches by 395 | # setting the "script" option. 396 | # The script will be called as follows: 397 | # script appname summary body icon urgency 398 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 399 | # 400 | # NOTE: if you don't want a notification to be displayed, set the format 401 | # to "". 402 | # NOTE: It might be helpful to run dunst -print in a terminal in order 403 | # to find fitting options for rules. 404 | 405 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 406 | # client 407 | #[transient_disable] 408 | # match_transient = yes 409 | # set_transient = no 410 | # 411 | # Make the handling of transient notifications more strict by making them not 412 | # be placed in history. 413 | #[transient_history_ignore] 414 | # match_transient = yes 415 | # history_ignore = yes 416 | 417 | # fullscreen values 418 | # show: show the notifications, regardless if there is a fullscreen window opened 419 | # delay: displays the new notification, if there is no fullscreen window active 420 | # If the notification is already drawn, it won't get undrawn. 421 | # pushback: same as delay, but when switching into fullscreen, the notification will get 422 | # withdrawn from screen again and will get delayed like a new notification 423 | #[fullscreen_delay_everything] 424 | # fullscreen = delay 425 | #[fullscreen_show_critical] 426 | # msg_urgency = critical 427 | # fullscreen = show 428 | 429 | #[espeak] 430 | # summary = "*" 431 | # script = dunst_espeak.sh 432 | 433 | #[script-test] 434 | # summary = "*script*" 435 | # script = dunst_test.sh 436 | 437 | #[ignore] 438 | # # This notification will not be displayed 439 | # summary = "foobar" 440 | # format = "" 441 | 442 | #[history-ignore] 443 | # # This notification will not be saved in history 444 | # summary = "foobar" 445 | # history_ignore = yes 446 | 447 | #[skip-display] 448 | # # This notification will not be displayed, but will be included in the history 449 | # summary = "foobar" 450 | # skip_display = yes 451 | 452 | #[signed_on] 453 | # appname = Pidgin 454 | # summary = "*signed on*" 455 | # urgency = low 456 | # 457 | #[signed_off] 458 | # appname = Pidgin 459 | # summary = *signed off* 460 | # urgency = low 461 | # 462 | #[says] 463 | # appname = Pidgin 464 | # summary = *says* 465 | # urgency = critical 466 | # 467 | #[twitter] 468 | # appname = Pidgin 469 | # summary = *twitter.com* 470 | # urgency = normal 471 | # 472 | #[stack-volumes] 473 | # appname = "some_volume_notifiers" 474 | # set_stack_tag = "volume" 475 | # 476 | # vim: ft=cfg 477 | -------------------------------------------------------------------------------- /codium/.config/VSCodium/User/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "vscode-neovim.neovimExecutablePaths.darwin": "/usr/local/bin/nvim", 3 | "vscode-neovim.neovimExecutablePaths.linux": "/usr/bin/nvim", 4 | "vscode-neovim.neovimInitVimPaths.darwin": "$HOME/.config/nvim/utils/lv-vscode/init.vim", 5 | "vscode-neovim.neovimInitVimPaths.linux": "$HOME/.config/nvim/utils/lv-vscode/init.vim", 6 | "whichkey.sortOrder": "alphabetically", 7 | "whichkey.delay": 0, 8 | "whichkey.bindings": [ 9 | { 10 | "key": ";", 11 | "name": "commands", 12 | "type": "command", 13 | "command": "workbench.action.showCommands" 14 | }, 15 | { 16 | "key": "/", 17 | "name": "comment", 18 | "type": "command", 19 | "command": "vscode-neovim.send", 20 | "args": "" 21 | }, 22 | { 23 | "key": "?", 24 | "name": "View All References", 25 | "type": "command", 26 | "command": "references-view.find", 27 | "when": "editorHasReferenceProvider" 28 | }, 29 | { 30 | "key": "b", 31 | "name": "Buffers/Editors...", 32 | "type": "bindings", 33 | "bindings": [ 34 | { 35 | "key": "b", 36 | "name": "Show all buffers/editors", 37 | "type": "command", 38 | "command": "workbench.action.showAllEditors" 39 | }, 40 | { 41 | "key": "d", 42 | "name": "Close active editor", 43 | "type": "command", 44 | "command": "workbench.action.closeActiveEditor" 45 | }, 46 | { 47 | "key": "h", 48 | "name": "Move editor into left group", 49 | "type": "command", 50 | "command": "workbench.action.moveEditorToLeftGroup" 51 | }, 52 | { 53 | "key": "j", 54 | "name": "Move editor into below group", 55 | "type": "command", 56 | "command": "workbench.action.moveEditorToBelowGroup" 57 | }, 58 | { 59 | "key": "k", 60 | "name": "Move editor into above group", 61 | "type": "command", 62 | "command": "workbench.action.moveEditorToAboveGroup" 63 | }, 64 | { 65 | "key": "l", 66 | "name": "Move editor into right group", 67 | "type": "command", 68 | "command": "workbench.action.moveEditorToRightGroup" 69 | }, 70 | { 71 | "key": "m", 72 | "name": "Close other editors", 73 | "type": "command", 74 | "command": "workbench.action.closeOtherEditors" 75 | }, 76 | { 77 | "key": "n", 78 | "name": "Next editor", 79 | "type": "command", 80 | "command": "workbench.action.nextEditor" 81 | }, 82 | { 83 | "key": "p", 84 | "name": "Previous editor", 85 | "type": "command", 86 | "command": "workbench.action.previousEditor" 87 | }, 88 | { 89 | "key": "N", 90 | "name": "New untitled editor", 91 | "type": "command", 92 | "command": "workbench.action.files.newUntitledFile" 93 | }, 94 | { 95 | "key": "u", 96 | "name": "Reopen closed editor", 97 | "type": "command", 98 | "command": "workbench.action.reopenClosedEditor" 99 | }, 100 | { 101 | "key": "y", 102 | "name": "Copy buffer to clipboard", 103 | "type": "commands", 104 | "commands": [ 105 | "editor.action.selectAll", 106 | "editor.action.clipboardCopyAction", 107 | "cancelSelection" 108 | ] 109 | } 110 | ] 111 | }, 112 | { 113 | "key": "d", 114 | "name": "Debug...", 115 | "type": "bindings", 116 | "bindings": [ 117 | { 118 | "key": "d", 119 | "name": "Start debug", 120 | "type": "command", 121 | "command": "workbench.action.debug.start" 122 | }, 123 | { 124 | "key": "S", 125 | "name": "Stop debug", 126 | "type": "command", 127 | "command": "workbench.action.debug.stop" 128 | }, 129 | { 130 | "key": "c", 131 | "name": "Continue debug", 132 | "type": "command", 133 | "command": "workbench.action.debug.continue" 134 | }, 135 | { 136 | "key": "p", 137 | "name": "Pause debug", 138 | "type": "command", 139 | "command": "workbench.action.debug.pause" 140 | }, 141 | { 142 | "key": "r", 143 | "name": "Run without debugging", 144 | "type": "command", 145 | "command": "workbench.action.debug.run" 146 | }, 147 | { 148 | "key": "R", 149 | "name": "Restart debug", 150 | "type": "command", 151 | "command": "workbench.action.debug.restart" 152 | }, 153 | { 154 | "key": "i", 155 | "name": "Step into", 156 | "type": "command", 157 | "command": "workbench.action.debug.stepInto" 158 | }, 159 | { 160 | "key": "s", 161 | "name": "Step over", 162 | "type": "command", 163 | "command": "workbench.action.debug.stepOver" 164 | }, 165 | { 166 | "key": "o", 167 | "name": "Step out", 168 | "type": "command", 169 | "command": "workbench.action.debug.stepOut" 170 | }, 171 | { 172 | "key": "b", 173 | "name": "Toggle breakpoint", 174 | "type": "command", 175 | "command": "editor.debug.action.toggleBreakpoint" 176 | }, 177 | { 178 | "key": "B", 179 | "name": "Toggle inline breakpoint", 180 | "type": "command", 181 | "command": "editor.debug.action.toggleInlineBreakpoint" 182 | }, 183 | { 184 | "key": "j", 185 | "name": "Jump to cursor", 186 | "type": "command", 187 | "command": "debug.jumpToCursor" 188 | }, 189 | { 190 | "key": "v", 191 | "name": "REPL", 192 | "type": "command", 193 | "command": "workbench.debug.action.toggleRepl" 194 | }, 195 | { 196 | "key": "w", 197 | "name": "Focus on watch window", 198 | "type": "command", 199 | "command": "workbench.debug.action.focusWatchView" 200 | }, 201 | { 202 | "key": "W", 203 | "name": "Add to watch", 204 | "type": "command", 205 | "command": "editor.debug.action.selectionToWatch" 206 | } 207 | ] 208 | }, 209 | { 210 | "key": "e", 211 | "name": "Toggle Explorer", 212 | "type": "command", 213 | "command": "workbench.action.toggleSidebarVisibility" 214 | }, 215 | { 216 | "key": "f", 217 | "name": "Find & Replace...", 218 | "type": "bindings", 219 | "bindings": [ 220 | { 221 | "key": "f", 222 | "name": "File", 223 | "type": "command", 224 | "command": "editor.action.startFindReplaceAction" 225 | }, 226 | { 227 | "key": "s", 228 | "name": "Symbol", 229 | "type": "command", 230 | "command": "editor.action.rename", 231 | "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" 232 | }, 233 | { 234 | "key": "p", 235 | "name": "Project", 236 | "type": "command", 237 | "command": "workbench.action.replaceInFiles" 238 | } 239 | ] 240 | }, 241 | { 242 | "key": "g", 243 | "name": "Git...", 244 | "type": "bindings", 245 | "bindings": [ 246 | { 247 | "key": "/", 248 | "name": "Search Commits", 249 | "command": "gitlens.showCommitSearch", 250 | "type": "command", 251 | "when": "gitlens:enabled && config.gitlens.keymap == 'alternate'" 252 | }, 253 | { 254 | "key": "a", 255 | "name": "Stage", 256 | "type": "command", 257 | "command": "git.stage" 258 | }, 259 | { 260 | "key": "b", 261 | "name": "Checkout", 262 | "type": "command", 263 | "command": "git.checkout" 264 | }, 265 | { 266 | "key": "B", 267 | "name": "Browse", 268 | "type": "command", 269 | "command": "gitlens.openFileInRemote" 270 | }, 271 | { 272 | "key": "c", 273 | "name": "Commit", 274 | "type": "command", 275 | "command": "git.commit" 276 | }, 277 | { 278 | "key": "C", 279 | "name": "Cherry Pick", 280 | "type": "command", 281 | "command": "gitlens.views.cherryPick" 282 | }, 283 | { 284 | "key": "d", 285 | "name": "Delete Branch", 286 | "type": "command", 287 | "command": "git.deleteBranch" 288 | }, 289 | { 290 | "key": "f", 291 | "name": "Fetch", 292 | "type": "command", 293 | "command": "git.fetch" 294 | }, 295 | { 296 | "key": "F", 297 | "name": "Pull From", 298 | "type": "command", 299 | "command": "git.pullFrom" 300 | }, 301 | { 302 | "key": "g", 303 | "name": "Graph", 304 | "type": "command", 305 | "command": "git-graph.view" 306 | }, 307 | { 308 | "key": "h", 309 | "name": "Heatmap", 310 | "type": "command", 311 | "command": "gitlens.toggleFileHeatmap" 312 | }, 313 | { 314 | "key": "H", 315 | "name": "History", 316 | "type": "command", 317 | "command": "git.viewFileHistory" 318 | }, 319 | { 320 | "key": "i", 321 | "name": "Init", 322 | "type": "command", 323 | "command": "git.init" 324 | }, 325 | { 326 | "key": "j", 327 | "name": "Next Change", 328 | "type": "command", 329 | "command": "workbench.action.editor.nextChange" 330 | }, 331 | { 332 | "key": "k", 333 | "name": "Previous Change", 334 | "type": "command", 335 | "command": "workbench.action.editor.previousChange" 336 | }, 337 | { 338 | "key": "l", 339 | "name": "Toggle Line Blame", 340 | "type": "command", 341 | "command": "gitlens.toggleLineBlame", 342 | "when": "editorTextFocus && gitlens:canToggleCodeLens && gitlens:enabled && config.gitlens.keymap == 'alternate'" 343 | }, 344 | { 345 | "key": "L", 346 | "name": "Toggle GitLens", 347 | "type": "command", 348 | "command": "gitlens.toggleCodeLens", 349 | "when": "editorTextFocus && gitlens:canToggleCodeLens && gitlens:enabled && config.gitlens.keymap == 'alternate'" 350 | }, 351 | { 352 | "key": "m", 353 | "name": "Merge", 354 | "type": "command", 355 | "command": "git.merge" 356 | }, 357 | { 358 | "key": "p", 359 | "name": "Push", 360 | "type": "command", 361 | "command": "git.push" 362 | }, 363 | { 364 | "key": "P", 365 | "name": "Push", 366 | "type": "command", 367 | "command": "git.pull" 368 | }, 369 | { 370 | "key": "s", 371 | "name": "Stash", 372 | "type": "command", 373 | "command": "workbench.view.scm" 374 | }, 375 | { 376 | "key": "S", 377 | "name": "Status", 378 | "type": "command", 379 | "command": "gitlens.showQuickRepoStatus", 380 | "when": "gitlens:enabled && config.gitlens.keymap == 'alternate'" 381 | }, 382 | { 383 | "key": "t", 384 | "name": "Create Tag", 385 | "type": "command", 386 | "command": "git.createTag" 387 | }, 388 | { 389 | "key": "T", 390 | "name": "Delete Tag", 391 | "type": "command", 392 | "command": "git.deleteTag" 393 | }, 394 | { 395 | "key": "U", 396 | "name": "Unstage", 397 | "type": "command", 398 | "command": "git.unstage" 399 | } 400 | ] 401 | }, 402 | { 403 | "key": "h", 404 | "name": "Split Horizontal", 405 | "type": "command", 406 | "command": "workbench.action.splitEditorDown" 407 | }, 408 | { 409 | "key": "i", 410 | "name": "Insert...", 411 | "type": "bindings", 412 | "bindings": [ 413 | { 414 | "key": "j", 415 | "name": "Insert line below", 416 | "type": "command", 417 | "command": "editor.action.insertLineAfter" 418 | }, 419 | { 420 | "key": "k", 421 | "name": "Insert line above", 422 | "type": "command", 423 | "command": "editor.action.insertLineBefore" 424 | }, 425 | { 426 | "key": "s", 427 | "name": "Insert snippet", 428 | "type": "command", 429 | "command": "editor.action.insertSnippet" 430 | } 431 | ] 432 | }, 433 | { 434 | "key": "l", 435 | "name": "LSP...", 436 | "type": "bindings", 437 | "bindings": [ 438 | { 439 | "key": ";", 440 | "name": "Refactor", 441 | "type": "command", 442 | "command": "editor.action.refactor", 443 | "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly" 444 | }, 445 | { 446 | "key": "a", 447 | "name": "Auto Fix", 448 | "type": "command", 449 | "command": "editor.action.autoFix", 450 | "when": "editorTextFocus && !editorReadonly && supportedCodeAction =~ /(\\s|^)quickfix\\b/" 451 | }, 452 | { 453 | "key": "d", 454 | "name": "Definition", 455 | "type": "command", 456 | "command": "editor.action.revealDefinition", 457 | "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor" 458 | }, 459 | { 460 | "key": "D", 461 | "name": "Declaration", 462 | "type": "command", 463 | "command": "editor.action.revealDeclaration" 464 | }, 465 | { 466 | "key": "e", 467 | "name": "Errors", 468 | "type": "command", 469 | "command": "workbench.actions.view.problems" 470 | }, 471 | { 472 | "key": "f", 473 | "name": "Format", 474 | "type": "command", 475 | "command": "editor.action.formatDocument", 476 | "when": "editorHasDocumentFormattingProvider && editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor" 477 | }, 478 | { 479 | "key": "i", 480 | "name": "Implementation", 481 | "type": "command", 482 | "command": "editor.action.goToImplementation", 483 | "when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor" 484 | }, 485 | { 486 | "key": "l", 487 | "name": "Code Lens", 488 | "type": "command", 489 | "command": "codelens.showLensesInCurrentLine" 490 | }, 491 | { 492 | "key": "n", 493 | "name": "Next Problem", 494 | "type": "command", 495 | "command": "editor.action.marker.next", 496 | "when": "editorFocus" 497 | }, 498 | { 499 | "key": "N", 500 | "name": "Next Problem (Proj)", 501 | "type": "command", 502 | "command": "editor.action.marker.nextInFiles", 503 | "when": "editorFocus" 504 | }, 505 | { 506 | "key": "o", 507 | "name": "Outline", 508 | "type": "command", 509 | "command": "outline.focus" 510 | }, 511 | { 512 | "key": "p", 513 | "name": "Prev Problem", 514 | "type": "command", 515 | "command": "editor.action.marker.prevInFiles", 516 | "when": "editorFocus" 517 | }, 518 | { 519 | "key": "P", 520 | "name": "Prev Problem (Proj)", 521 | "type": "command", 522 | "command": "editor.action.marker.prev", 523 | "when": "editorFocus" 524 | }, 525 | { 526 | "key": "q", 527 | "name": "Quick Fix", 528 | "type": "command", 529 | "command": "editor.action.quickFix", 530 | "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly" 531 | }, 532 | { 533 | "key": "r", 534 | "name": "References", 535 | "type": "command", 536 | "command": "editor.action.goToReferences", 537 | "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" 538 | }, 539 | { 540 | "key": "R", 541 | "name": "Rename", 542 | "type": "command", 543 | "command": "editor.action.rename", 544 | "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" 545 | }, 546 | { 547 | "key": "v", 548 | "name": "View All References", 549 | "type": "command", 550 | "command": "references-view.find", 551 | "when": "editorHasReferenceProvider" 552 | }, 553 | { 554 | "key": "s", 555 | "name": "Go To Symbol", 556 | "type": "command", 557 | "command": "workbench.action.gotoSymbol" 558 | }, 559 | { 560 | "key": "S", 561 | "name": "Show All Symbols", 562 | "type": "command", 563 | "command": "workbench.action.showAllSymbols" 564 | } 565 | ] 566 | }, 567 | { 568 | "key": "m", 569 | "name": "Mark...", 570 | "type": "bindings", 571 | "bindings": [ 572 | { 573 | "key": "c", 574 | "name": "Clear Bookmarks", 575 | "type": "command", 576 | "command": "bookmarks.clear" 577 | }, 578 | { 579 | "key": "j", 580 | "name": "Next Bookmark", 581 | "type": "command", 582 | "command": "bookmarks.jumpToNext", 583 | "when": "editorTextFocus" 584 | }, 585 | { 586 | "key": "k", 587 | "name": "Previous Bookmark", 588 | "type": "command", 589 | "command": "bookmarks.jumpToPrevious", 590 | "when": "editorTextFocus" 591 | }, 592 | { 593 | "key": "l", 594 | "name": "List Bookmarks", 595 | "type": "command", 596 | "command": "bookmarks.listFromAllFiles", 597 | "when": "editorTextFocus" 598 | }, 599 | { 600 | "key": "r", 601 | "name": "Refresh Bookmarks", 602 | "type": "command", 603 | "command": "bookmarks.refresh" 604 | }, 605 | { 606 | "key": "t", 607 | "name": "Toggle Bookmark", 608 | "type": "command", 609 | "command": "bookmarks.toggle", 610 | "when": "editorTextFocus" 611 | }, 612 | { 613 | "key": "s", 614 | "name": "Show Bookmarks", 615 | "type": "command", 616 | "command": "workbench.view.extension.bookmarks" 617 | } 618 | ] 619 | }, 620 | { 621 | "key": "M", 622 | "name": "Minimap", 623 | "type": "command", 624 | "command": "editor.action.toggleMinimap" 625 | }, 626 | { 627 | "key": "n", 628 | "name": "No Highlight", 629 | "type": "command", 630 | "command": "vscode-neovim.send", 631 | "args": ":noh" 632 | }, 633 | { 634 | "key": "o", 635 | "name": "Open...", 636 | "type": "bindings", 637 | "bindings": [ 638 | { 639 | "key": "d", 640 | "name": "Directory", 641 | "type": "command", 642 | "command": "workbench.action.files.openFolder" 643 | }, 644 | { 645 | "key": "r", 646 | "name": "Recent", 647 | "type": "command", 648 | "command": "workbench.action.openRecent" 649 | }, 650 | { 651 | "key": "f", 652 | "name": "File", 653 | "type": "command", 654 | "command": "workbench.action.files.openFile" 655 | } 656 | ] 657 | }, 658 | { 659 | "key": "p", 660 | "name": "Peek...", 661 | "type": "bindings", 662 | "bindings": [ 663 | { 664 | "key": "d", 665 | "name": "Definition", 666 | "type": "command", 667 | "command": "editor.action.peekDefinition", 668 | "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" 669 | }, 670 | { 671 | "key": "D", 672 | "name": "Declaration", 673 | "type": "command", 674 | "command": "editor.action.peekDeclaration" 675 | }, 676 | { 677 | "key": "i", 678 | "name": "Implementation", 679 | "type": "command", 680 | "command": "editor.action.peekImplementation", 681 | "when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" 682 | }, 683 | { 684 | "key": "p", 685 | "name": "Toggle Focus", 686 | "type": "command", 687 | "command": "togglePeekWidgetFocus", 688 | "when": "inReferenceSearchEditor || referenceSearchVisible" 689 | }, 690 | { 691 | "key": "r", 692 | "name": "References", 693 | "type": "command", 694 | "command": "editor.action.referenceSearch.trigger" 695 | }, 696 | { 697 | "key": "t", 698 | "name": "Type Definition", 699 | "type": "command", 700 | "command": "editor.action.peekTypeDefinition" 701 | } 702 | ] 703 | }, 704 | { 705 | "key": "s", 706 | "name": "Search...", 707 | "type": "bindings", 708 | "bindings": [ 709 | { 710 | "key": "f", 711 | "name": "Files", 712 | "type": "command", 713 | "command": "workbench.action.quickOpen" 714 | }, 715 | { 716 | "key": "t", 717 | "name": "Text", 718 | "type": "command", 719 | "command": "workbench.action.findInFiles" 720 | } 721 | ] 722 | }, 723 | { 724 | "key": "S", 725 | "name": "Show...", 726 | "type": "bindings", 727 | "bindings": [ 728 | { 729 | "key": "e", 730 | "name": "Show explorer", 731 | "type": "command", 732 | "command": "workbench.view.explorer" 733 | }, 734 | { 735 | "key": "s", 736 | "name": "Show search", 737 | "type": "command", 738 | "command": "workbench.view.search" 739 | }, 740 | { 741 | "key": "g", 742 | "name": "Show source control", 743 | "type": "command", 744 | "command": "workbench.view.scm" 745 | }, 746 | { 747 | "key": "t", 748 | "name": "Show test", 749 | "type": "command", 750 | "command": "workbench.view.extension.test" 751 | }, 752 | { 753 | "key": "r", 754 | "name": "Show remote explorer", 755 | "type": "command", 756 | "command": "workbench.view.remote" 757 | }, 758 | { 759 | "key": "x", 760 | "name": "Show extensions", 761 | "type": "command", 762 | "command": "workbench.view.extensions" 763 | }, 764 | { 765 | "key": "p", 766 | "name": "Show problem", 767 | "type": "command", 768 | "command": "workbench.actions.view.problems" 769 | }, 770 | { 771 | "key": "o", 772 | "name": "Show output", 773 | "type": "command", 774 | "command": "workbench.action.output.toggleOutput" 775 | }, 776 | { 777 | "key": "d", 778 | "name": "Show debug console", 779 | "type": "command", 780 | "command": "workbench.debug.action.toggleRepl" 781 | } 782 | ] 783 | }, 784 | { 785 | "key": "t", 786 | "name": "Terminal...", 787 | "type": "bindings", 788 | "bindings": [ 789 | { 790 | "key": "t", 791 | "name": "Toggle Terminal", 792 | "type": "command", 793 | "command": "workbench.action.togglePanel" 794 | }, 795 | { 796 | "key": "T", 797 | "name": "Focus Terminal", 798 | "type": "command", 799 | "command": "workbench.action.terminal.toggleTerminal", 800 | "when": "!terminalFocus" 801 | } 802 | ] 803 | }, 804 | { 805 | "key": "u", 806 | "name": "UI toggles...", 807 | "type": "bindings", 808 | "bindings": [ 809 | { 810 | "key": "a", 811 | "name": "Toggle tool/activity bar visibility", 812 | "type": "command", 813 | "command": "workbench.action.toggleActivityBarVisibility" 814 | }, 815 | { 816 | "key": "b", 817 | "name": "Toggle side bar visibility", 818 | "type": "command", 819 | "command": "workbench.action.toggleSidebarVisibility" 820 | }, 821 | { 822 | "key": "j", 823 | "name": "Toggle panel visibility", 824 | "type": "command", 825 | "command": "workbench.action.togglePanel" 826 | }, 827 | { 828 | "key": "F", 829 | "name": "Toggle full screen", 830 | "type": "command", 831 | "command": "workbench.action.toggleFullScreen" 832 | }, 833 | { 834 | "key": "s", 835 | "name": "Select theme", 836 | "type": "command", 837 | "command": "workbench.action.selectTheme" 838 | }, 839 | { 840 | "key": "m", 841 | "name": "Toggle maximized panel", 842 | "type": "command", 843 | "command": "workbench.action.toggleMaximizedPanel" 844 | }, 845 | { 846 | "key": "T", 847 | "name": "Toggle tab visibility", 848 | "type": "command", 849 | "command": "workbench.action.toggleTabsVisibility" 850 | } 851 | ] 852 | }, 853 | { 854 | "key": "v", 855 | "name": "Split Vertical", 856 | "type": "command", 857 | "command": "workbench.action.splitEditor" 858 | }, 859 | { 860 | "key": "w", 861 | "name": "Window...", 862 | "type": "bindings", 863 | "bindings": [ 864 | { 865 | "key": "W", 866 | "name": "Focus previous editor group", 867 | "type": "command", 868 | "command": "workbench.action.focusPreviousGroup" 869 | }, 870 | { 871 | "key": "h", 872 | "name": "Move editor group left", 873 | "type": "command", 874 | "command": "workbench.action.moveActiveEditorGroupLeft" 875 | }, 876 | { 877 | "key": "j", 878 | "name": "Move editor group down", 879 | "type": "command", 880 | "command": "workbench.action.moveActiveEditorGroupDown" 881 | }, 882 | { 883 | "key": "k", 884 | "name": "Move editor group up", 885 | "type": "command", 886 | "command": "workbench.action.moveActiveEditorGroupUp" 887 | }, 888 | { 889 | "key": "l", 890 | "name": "Move editor group right", 891 | "type": "command", 892 | "command": "workbench.action.moveActiveEditorGroupRight" 893 | }, 894 | { 895 | "key": "t", 896 | "name": "Toggle editor group sizes", 897 | "type": "command", 898 | "command": "workbench.action.toggleEditorWidths" 899 | }, 900 | { 901 | "key": "m", 902 | "name": "Maximize editor group", 903 | "type": "command", 904 | "command": "workbench.action.minimizeOtherEditors" 905 | }, 906 | { 907 | "key": "M", 908 | "name": "Maximize editor group and hide side bar", 909 | "type": "command", 910 | "command": "workbench.action.maximizeEditor" 911 | }, 912 | { 913 | "key": "=", 914 | "name": "Reset editor group sizes", 915 | "type": "command", 916 | "command": "workbench.action.evenEditorWidths" 917 | }, 918 | { 919 | "key": "z", 920 | "name": "Combine all editors", 921 | "type": "command", 922 | "command": "workbench.action.joinAllGroups" 923 | }, 924 | { 925 | "key": "d", 926 | "name": "Close editor group", 927 | "type": "command", 928 | "command": "workbench.action.closeEditorsInGroup" 929 | }, 930 | { 931 | "key": "x", 932 | "name": "Close all editor groups", 933 | "type": "command", 934 | "command": "workbench.action.closeAllGroups" 935 | } 936 | ] 937 | }, 938 | { 939 | "key": "x", 940 | "name": "Extensions", 941 | "type": "command", 942 | "command": "workbench.view.extensions" 943 | }, 944 | { 945 | "key": "y", 946 | "name": "Sync...", 947 | "type": "bindings", 948 | "bindings": [ 949 | { 950 | "key": "d", 951 | "name": "Download Settings", 952 | "type": "command", 953 | "command": "extension.downloadSettings" 954 | }, 955 | { 956 | "key": "u", 957 | "name": "Upload Settings", 958 | "type": "command", 959 | "command": "extension.updateSettings" 960 | } 961 | ] 962 | }, 963 | { 964 | "key": "z", 965 | "name": "Toggle zen mode", 966 | "type": "command", 967 | "command": "workbench.action.toggleZenMode" 968 | } 969 | ], 970 | "sync.gist": "939951904a077b97f8001bc35f6b5948", 971 | "gitlens.hovers.currentLine.over": "line", 972 | "editor.suggestSelection": "first", 973 | "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", 974 | "python.pythonPath": "/home/chris/.miniconda/envs/todo/bin/python", 975 | "workbench.list.automaticKeyboardNavigation": false, 976 | "oneDarkPro.editorTheme": "onedarkPro", 977 | "python.languageServer": "Pylance", 978 | "editor.scrollbar.horizontal": "hidden", 979 | "editor.scrollbar.vertical": "hidden", 980 | "kite.showWelcomeNotificationOnStartup": false, 981 | "python.terminal.activateEnvironment": false, 982 | "editor.cursorBlinking": "solid", 983 | "editor.fontFamily": "JetBrainsMono Nerd Font, Hack, Menlo, Monaco, 'Courier New', monospace", 984 | "files.exclude": { 985 | "**/.classpath": true, 986 | "**/.project": true, 987 | "**/.settings": true, 988 | "**/.factorypath": true 989 | }, 990 | "terminal.external.osxExec": "iTerm.app", 991 | "editor.minimap.enabled": false, 992 | "leetcode.workspaceFolder": "/Users/chris/Repos/leetcode", 993 | "leetcode.defaultLanguage": "javascript", 994 | "leetcode.hint.configWebviewMarkdown": false, 995 | "leetcode.hint.commentDescription": false, 996 | "window.menuBarVisibility": "compact", 997 | "python.condaPath": "$HOME/.miniconda/bin/conda", 998 | "python.formatting.provider": "black", 999 | "python.insidersChannel": "off", 1000 | "terminal.integrated.shell.linux": "/bin/zsh", 1001 | "terminal.external.linuxExec": "/usr/bin/alacritty", 1002 | "code-runner.executorMap": { 1003 | "python": "$pythonPath $fileName", 1004 | "java": "cd $dir && javac $fileName && java $fileNameWithoutExt", 1005 | "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt" 1006 | }, 1007 | "editor.tokenColorCustomizations": { 1008 | "[One Dark Pro]": { 1009 | "textMateRules": [ 1010 | { 1011 | "scope": [ 1012 | "support.class.component.open.jsx", 1013 | "support.class.component.close.jsx", 1014 | "entity.name.function.js" 1015 | ], 1016 | "settings": { 1017 | "foreground": "#61afef" 1018 | } 1019 | }, 1020 | 1021 | { 1022 | "scope": [ 1023 | "variable.other.constant.object.js", 1024 | 1025 | "punctuation.section.embedded.begin.jsx", 1026 | "punctuation.section.embedded.end.jsx" 1027 | ], 1028 | "settings": { 1029 | "foreground": "#abb2bf" 1030 | } 1031 | }, 1032 | { 1033 | "scope": ["punctuation.definition.tag.jsx"], 1034 | "settings": { 1035 | "foreground": "#5c6370" 1036 | } 1037 | }, 1038 | { 1039 | "scope": [ 1040 | "variable.other.readwrite.js", 1041 | "variable.other.property.js", 1042 | "variable.parameter", 1043 | "variable.other.object.js" 1044 | ], 1045 | "settings": { 1046 | "foreground": "#56b6c2" 1047 | } 1048 | }, 1049 | { 1050 | "scope": ["entity.other.attribute-name.jsx"], 1051 | "settings": { 1052 | "foreground": "#e5c07b" 1053 | } 1054 | }, 1055 | { 1056 | "scope": [ 1057 | "keyword.operator.assignment.js", 1058 | "keyword.operator.assignment.jsx", 1059 | "string.unquoted.js", 1060 | "keyword.operator.typeof.js", 1061 | "meta.embedded.expression.js", 1062 | "constant.other.object.key.js", 1063 | "keyword.operator.logical.js" 1064 | ], 1065 | "settings": { 1066 | "foreground": "#c678dd" 1067 | } 1068 | }, 1069 | { 1070 | "scope": ["variable.other.constant.object.js"], 1071 | "settings": { 1072 | "foreground": "#e06c75" 1073 | } 1074 | } 1075 | ] 1076 | } 1077 | }, 1078 | 1079 | "workbench.colorCustomizations": { 1080 | "[Default Dark+]": { 1081 | "statusBar.background": "#2E2E2E", 1082 | "statusBar.foreground": "#8C8C8C", 1083 | "statusBarItem.remoteBackground": "#2E2E2E", 1084 | "statusBarItem.remoteForeground": "#8C8C8C", 1085 | "activityBar.background": "#2E2E2E", 1086 | "tab.inactiveBackground": "#2E2E2E" 1087 | }, 1088 | "[One Dark Pro]": { 1089 | "editor.background": "#1e2127", 1090 | "terminal.foreground": "#abb2bf", 1091 | "terminal.ansiBlack": "#1e2127", 1092 | "terminal.ansiBlue": "#61afef", 1093 | "terminal.ansiCyan": "#56b6c2", 1094 | "terminal.ansiGreen": "#98C379", 1095 | "terminal.ansiMagenta": "#c678dd", 1096 | "terminal.ansiRed": "#e06c75", 1097 | "terminal.ansiWhite": "#abb2bf", 1098 | "terminal.ansiYellow": "#d19a66", 1099 | "terminal.ansiBrightBlack": "#5c6370", 1100 | "terminal.ansiBrightBlue": "#61afef", 1101 | "terminal.ansiBrightCyan": "#56b6c2", 1102 | "terminal.ansiBrightGreen": "#98c379", 1103 | "terminal.ansiBrightMagenta": "#c678dd", 1104 | "terminal.ansiBrightRed": "#e06c75", 1105 | "terminal.ansiBrightWhite": "#ffffff", 1106 | "terminal.ansiBrightYellow": "#d19a66" 1107 | } 1108 | }, 1109 | "gitlens.currentLine.enabled": false, 1110 | "[javascript]": { 1111 | "editor.defaultFormatter": "esbenp.prettier-vscode" 1112 | }, 1113 | "emmet.showSuggestionsAsSnippets": true, 1114 | "material-icon-theme.showWelcomeMessage": false, 1115 | "workbench.iconTheme": "material-icon-theme", 1116 | "git.autofetch": true, 1117 | "workbench.startupEditor": "newUntitledFile", 1118 | "python.showStartPage": false, 1119 | "editor.snippetSuggestions": "bottom", 1120 | "editor.fontLigatures": true, 1121 | "javascript.referencesCodeLens.enabled": true, 1122 | "workbench.editorAssociations": { 1123 | "*.ipynb": "jupyter-notebook" 1124 | }, 1125 | "jupyter.alwaysTrustNotebooks": true, 1126 | "jupyter.insidersChannel": "off", 1127 | "debug.inlineValues": true, 1128 | "gitlens.codeLens.enabled": false, 1129 | "gitlens.hovers.annotations.over": "annotation", 1130 | "gitlens.hovers.enabled": false, 1131 | "window.zoomLevel": 1, 1132 | "java.configuration.runtimes": [ 1133 | 1134 | 1135 | { 1136 | "name": "JavaSE-1.8", 1137 | "path": "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home" 1138 | }, 1139 | ], 1140 | "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -javaagent:\"/Users/cchiar706/.vscode-oss/extensions/gabrielbb.vscode-lombok-1.0.0/server/lombok.jar\"", 1141 | "redhat.telemetry.enabled": false, 1142 | "security.workspace.trust.untrustedFiles": "open", 1143 | "notebook.cellToolbarLocation": { 1144 | "default": "right", 1145 | "jupyter-notebook": "left" 1146 | }, 1147 | } 1148 | --------------------------------------------------------------------------------