├── profile ├── signature └── profile ├── csgo ├── launch-options.txt └── autoexec.cfg ├── bspwm ├── wallpaper.jpg ├── lockscreen └── bspwmrc ├── ergodox ├── layout.png └── README.md ├── vim ├── spell │ ├── nl.utf-8.spl │ └── nl.utf-8.sug └── vimrc ├── sxhkd ├── prs-rofi-copy ├── show-binds └── sxhkdrc ├── awesome ├── themes │ └── default │ │ ├── submenu.png │ │ ├── background.jpg │ │ ├── layouts │ │ ├── fairh.png │ │ ├── fairv.png │ │ ├── max.png │ │ ├── maxw.png │ │ ├── tile.png │ │ ├── tilew.png │ │ ├── dwindle.png │ │ ├── fairhw.png │ │ ├── fairvw.png │ │ ├── spiral.png │ │ ├── spiralw.png │ │ ├── tiletop.png │ │ ├── cornerne.png │ │ ├── cornernew.png │ │ ├── cornernw.png │ │ ├── cornernww.png │ │ ├── cornerse.png │ │ ├── cornersew.png │ │ ├── cornersw.png │ │ ├── cornersww.png │ │ ├── dwindlew.png │ │ ├── floating.png │ │ ├── floatingw.png │ │ ├── fullscreen.png │ │ ├── magnifier.png │ │ ├── magnifierw.png │ │ ├── tilebottom.png │ │ ├── tileleft.png │ │ ├── tileleftw.png │ │ ├── tiletopw.png │ │ ├── fullscreenw.png │ │ └── tilebottomw.png │ │ ├── taglist │ │ ├── squarew.png │ │ └── squarefw.png │ │ ├── titlebar │ │ ├── close_focus.png │ │ ├── close_normal.png │ │ ├── minimize_focus.png │ │ ├── minimize_normal.png │ │ ├── ontop_focus_active.png │ │ ├── ontop_normal_active.png │ │ ├── sticky_focus_active.png │ │ ├── floating_focus_active.png │ │ ├── ontop_focus_inactive.png │ │ ├── ontop_normal_inactive.png │ │ ├── sticky_focus_inactive.png │ │ ├── sticky_normal_active.png │ │ ├── floating_focus_inactive.png │ │ ├── floating_normal_active.png │ │ ├── floating_normal_inactive.png │ │ ├── maximized_focus_active.png │ │ ├── maximized_focus_inactive.png │ │ ├── maximized_normal_active.png │ │ ├── sticky_normal_inactive.png │ │ └── maximized_normal_inactive.png │ │ └── theme.lua └── locker ├── nvim └── coc-settings.json ├── .gitignore ├── .github └── FUNDING.yml ├── xmodmap └── xmodmap ├── udev └── 10-trackpoint.rules ├── fish ├── functions │ ├── auth.fish │ ├── rerun.fish │ ├── mkcd.fish │ ├── docker_rm_all.fish │ ├── docker_kill_all.fish │ ├── docker_rm_last.fish │ ├── docker_clean_all.fish │ ├── docker_clean.fish │ ├── fuck.fish │ ├── git_enable_gpg.fish │ └── mergedependabot.fish ├── config.fish └── aliases.fish ├── bin ├── math ├── update-proton-ge ├── discord-update └── git-recent ├── tmux ├── tmux │ ├── tmux_lt_2.4.conf │ ├── tmux_ge_2.1.conf │ ├── tmux_ge_2.4.conf │ ├── tmux_lt_2.1.conf │ ├── load_version_specific │ ├── tmux_ge_2.9.conf │ └── tmux_lt_2.9.conf └── tmux.conf ├── polybar ├── playerctl-status ├── launch.sh └── config ├── scripts ├── runonchange └── purge-old-snaps ├── bash ├── bash_profile ├── bashrc ├── bash_functions └── bash_aliases ├── vimium ├── mappings └── search_engines ├── i3lock-slick └── config.yml ├── git └── gitconfig ├── htop └── htoprc ├── firefox └── chrome │ └── userChrome.css ├── highlight └── base16-atelier-dune.theme ├── starship └── starship.toml ├── gentoo └── t480 │ └── make.conf ├── iftop └── iftoprc ├── README.md ├── gamemode └── gamemode.ini ├── cava └── config ├── hosts └── blacklist.txt ├── ranger ├── scope.sh └── rc.conf ├── compton └── compton.conf ├── picom └── picom.conf ├── alacritty └── alacritty.toml └── dunst └── dunstrc /profile/signature: -------------------------------------------------------------------------------- 1 | ~ Tim Visée, https://timvisee.com/ 2 | -------------------------------------------------------------------------------- /csgo/launch-options.txt: -------------------------------------------------------------------------------- 1 | gamemoderun %command% -novid -tickrate 128 -nojoy 2 | -------------------------------------------------------------------------------- /bspwm/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/bspwm/wallpaper.jpg -------------------------------------------------------------------------------- /ergodox/layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/ergodox/layout.png -------------------------------------------------------------------------------- /vim/spell/nl.utf-8.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/vim/spell/nl.utf-8.spl -------------------------------------------------------------------------------- /vim/spell/nl.utf-8.sug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/vim/spell/nl.utf-8.sug -------------------------------------------------------------------------------- /sxhkd/prs-rofi-copy: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | prs copy $(prs list --list | rofi -p "secret" -dmenu -i -no-show-icons) 4 | -------------------------------------------------------------------------------- /awesome/themes/default/submenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/submenu.png -------------------------------------------------------------------------------- /awesome/themes/default/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/background.jpg -------------------------------------------------------------------------------- /bspwm/lockscreen: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | (slock && xset dpms 0 0 0) & 3 | xset s 600 60 4 | xset dpms 2 5 10 5 | xset dpms force off 6 | -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fairh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fairh.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fairv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fairv.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/max.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/maxw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/maxw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tile.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tilew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tilew.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/dwindle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/dwindle.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fairhw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fairhw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fairvw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fairvw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/spiral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/spiral.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/spiralw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/spiralw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tiletop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tiletop.png -------------------------------------------------------------------------------- /awesome/themes/default/taglist/squarew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/taglist/squarew.png -------------------------------------------------------------------------------- /nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "rust-analyzer.checkOnSave.command": "clippy", 3 | "rust-analyzer.inlayHints.enable": true 4 | } 5 | -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornerne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornerne.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornernew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornernew.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornernw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornernw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornernww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornernww.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornerse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornerse.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornersew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornersew.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornersw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornersw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/cornersww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/cornersww.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/dwindlew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/dwindlew.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/floating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/floating.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/floatingw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/floatingw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fullscreen.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/magnifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/magnifier.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/magnifierw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/magnifierw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tilebottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tilebottom.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tileleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tileleft.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tileleftw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tileleftw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tiletopw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tiletopw.png -------------------------------------------------------------------------------- /awesome/themes/default/taglist/squarefw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/taglist/squarefw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/fullscreenw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/fullscreenw.png -------------------------------------------------------------------------------- /awesome/themes/default/layouts/tilebottomw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/layouts/tilebottomw.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/close_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/close_focus.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/close_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/close_normal.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/minimize_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/minimize_focus.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # IntelliJ project files 2 | .idea 3 | *.iml 4 | out 5 | gen 6 | .*.sw[po] 7 | 8 | # Replaced Vim plug versions 9 | vim/plug.vim.old 10 | -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/minimize_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/minimize_normal.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # Funding links 2 | github: 3 | - timvisee 4 | custom: 5 | - "https://timvisee.com/donate" 6 | patreon: timvisee 7 | ko_fi: timvisee 8 | -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/ontop_focus_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/ontop_focus_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/ontop_normal_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/ontop_normal_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/sticky_focus_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/sticky_focus_active.png -------------------------------------------------------------------------------- /xmodmap/xmodmap: -------------------------------------------------------------------------------- 1 | ! Swap caps lock and escape 2 | remove Lock = Caps_Lock 3 | keysym Escape = Caps_Lock 4 | keysym Caps_Lock = Escape 5 | add Lock = Caps_Lock 6 | -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/floating_focus_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/floating_focus_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/ontop_focus_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/ontop_focus_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/ontop_normal_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/ontop_normal_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/sticky_focus_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/sticky_focus_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/sticky_normal_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/sticky_normal_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/floating_focus_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/floating_focus_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/floating_normal_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/floating_normal_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/floating_normal_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/floating_normal_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/maximized_focus_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/maximized_focus_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/maximized_focus_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/maximized_focus_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/maximized_normal_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/maximized_normal_active.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/sticky_normal_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/sticky_normal_inactive.png -------------------------------------------------------------------------------- /awesome/themes/default/titlebar/maximized_normal_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timvisee/dotfiles/HEAD/awesome/themes/default/titlebar/maximized_normal_inactive.png -------------------------------------------------------------------------------- /udev/10-trackpoint.rules: -------------------------------------------------------------------------------- 1 | ACTION=="add", 2 | SUBSYSTEM=="input", 3 | ATTR{name}=="TPPS/2 IBM TrackPoint", 4 | ATTR{device/sensitivity}="255", 5 | ATTR{device/speed}="128", 6 | -------------------------------------------------------------------------------- /fish/functions/auth.fish: -------------------------------------------------------------------------------- 1 | function auth --description "Authenticate agents" 2 | # Set-up keychain 3 | type -q keychain && eval (keychain --eval --quiet --agents ssh,gpg id_rsa) 4 | end 5 | -------------------------------------------------------------------------------- /fish/functions/rerun.fish: -------------------------------------------------------------------------------- 1 | function rerun --description "Rerun command when directory contents change" 2 | while true 3 | reset 4 | $argv 5 | inotifywait -e MODIFY --recursive . 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /sxhkd/show-binds: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | awk '/^[a-zX{@~]/ && last {print $0,"\t",last} {last=""} /^#/{last=$0}' < ~/.config/sxhkd/sxhkdrc | column -t -s $'\t' | rofi -p "help" -dmenu -i -no-show-icons -width 1000 >/dev/null 4 | -------------------------------------------------------------------------------- /bin/math: -------------------------------------------------------------------------------- 1 | #!/usr/bin/fish 2 | 3 | # Use fish math built-in 4 | 5 | if count $argv > /dev/null 6 | # Math from arguments 7 | math $argv 8 | else 9 | # Math from stdin 10 | read expression 11 | math $expression 12 | end 13 | -------------------------------------------------------------------------------- /fish/functions/mkcd.fish: -------------------------------------------------------------------------------- 1 | # Make a directory and change to it 2 | function mkcd --description "Make a directory and change to it" 3 | # Make the directory 4 | mkdir $argv 5 | 6 | # Change to the newly created directory 7 | and cd $argv 8 | end 9 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_lt_2.4.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions before 2.4 2 | 3 | # Vim copy-paste selection bindings 4 | unbind-key v 5 | bind-key -t vi-copy 'v' begin-selection 6 | bind-key -t vi-copy 'C-v' rectangle-toggle 7 | bind-key -t vi-copy 'y' copy-selection 8 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_ge_2.1.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions 2.0 and up 2 | 3 | # Enable mouse support 4 | set -g mouse-utf8 on 5 | set -g mouse on 6 | 7 | # Toggle mouse mode 8 | bind-key m set -g mouse on \; display 'Mouse -> ON' 9 | bind-key M set -g mouse off \; display 'Mouse -> OFF' 10 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_ge_2.4.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions 2.4 and up 2 | 3 | # Vim copy-paste selection bindings 4 | unbind-key -T copy-mode-vi v 5 | bind-key -T copy-mode-vi 'v' send -X begin-selection 6 | bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle 7 | bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel 8 | -------------------------------------------------------------------------------- /polybar/playerctl-status: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | player_status=$(playerctl status) 4 | 5 | if [ "$player_status" = "Stopped" ]; then 6 | echo "No music is playing" 7 | elif [ "$player_status" = "Playing" ] || [ "$player_status" = "Paused" ]; then 8 | playerctl metadata --format "{{ title }} - {{ artist }}" | cut -c-50 9 | fi 10 | -------------------------------------------------------------------------------- /ergodox/README.md: -------------------------------------------------------------------------------- 1 | # ErgoDox layout 2 | This is the ErgoDox configuration I'm currently using on my Ergodox keyboard. 3 | 4 | ## Layout 5 | ![ErgoDox layout](./layout.png) 6 | 7 | ## Keyboard 8 | - [Ergodox Infinity](https://input.club/devices/infinity-ergodox) 9 | - [Layout Configurator](https://input.club/configurator-ergodox/) 10 | 11 | -------------------------------------------------------------------------------- /polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Terminate already running bar instances, wait until shut down 4 | killall -q polybar 5 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 6 | 7 | # Start polybar on all screens 8 | for m in $(polybar --list-monitors | cut -d":" -f1); do 9 | MONITOR=$m polybar --reload example & 10 | done 11 | -------------------------------------------------------------------------------- /fish/functions/docker_rm_all.fish: -------------------------------------------------------------------------------- 1 | # Remove all Docker containers 2 | function docker_rm_all 3 | set DOCKER_CONTAINERS (docker ps -aq --no-trunc) 4 | if test -n "$DOCKER_CONTAINERS" 5 | echo "Removing all Docker containers..." 6 | docker rm $DOCKER_CONTAINERS 7 | else 8 | echo "No Docker containers to remove" 9 | end 10 | 11 | echo "Done" 12 | end 13 | -------------------------------------------------------------------------------- /fish/functions/docker_kill_all.fish: -------------------------------------------------------------------------------- 1 | # Kill all running Docker containers 2 | function docker_kill_all 3 | set DOCKER_CONTAINERS (docker ps -q --no-trunc) 4 | if test -n "$DOCKER_CONTAINERS" 5 | echo "Killing all running Docker containers..." 6 | docker kill $DOCKER_CONTAINERS 7 | else 8 | echo "No Docker containers to kill" 9 | end 10 | 11 | echo "Done" 12 | end 13 | -------------------------------------------------------------------------------- /fish/functions/docker_rm_last.fish: -------------------------------------------------------------------------------- 1 | # Remove the last created container. 2 | function docker_rm_last 3 | set LAST_CONTAINER (docker ps -lq --no-trunc) 4 | if test -n "$LAST_CONTAINER" 5 | echo "Removing the last created Docker container..." 6 | docker rm $LAST_CONTAINER 7 | else 8 | echo "No last Docker container to remove" 9 | end 10 | 11 | echo "Done" 12 | end 13 | -------------------------------------------------------------------------------- /awesome/locker: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Start xautolock to automatically lock the screen after inactivity 4 | # - Lock after 3 minutes 5 | # - Show lock warning notification 30 seconds before 6 | # - Lock with i3lock 7 | exec xautolock -detectsleep \ 8 | -time 15 \ 9 | -locker "i3lock-slick" \ 10 | -notify 30 \ 11 | -notifier "notify-send -u critical -t 10000 -- 'Locking screen in 30 seconds...'" 12 | -------------------------------------------------------------------------------- /scripts/runonchange: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Run given command when given file is changed 4 | # 5 | # Example: 6 | # ``` 7 | # ./runonchange test.txt echo File has changed! 8 | # ``` 9 | 10 | watch=$1 11 | cmd="${@:2}" 12 | 13 | while true; do 14 | echo 15 | echo "# Running $cmd..." 16 | 17 | $cmd 18 | 19 | sleep 0.5 20 | inotifywait -qre attrib $watch > /dev/null 21 | sleep 0.5 22 | done 23 | -------------------------------------------------------------------------------- /bash/bash_profile: -------------------------------------------------------------------------------- 1 | # ~/.bash_profile: executed by bash for profiled shells. 2 | 3 | # Clear keychain passwords on login 4 | [[ -n `which keychain` ]] && keychain --clear --noask 5 | 6 | # Add PATHs 7 | export PATH="$HOME/.cargo/bin:$PATH" 8 | 9 | # Source .bashrc 10 | [ -f ~/.bashrc ] && . ~/.bashrc 11 | 12 | # nvm configuration 13 | export NVM_DIR="$HOME/.nvm" 14 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 15 | -------------------------------------------------------------------------------- /scripts/purge-old-snaps: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Purge/removes old revisions of snaps 3 | # 4 | # CLOSE ALL SNAPS BEFORE RUNNING THIS 5 | # 6 | # Script from: https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html 7 | 8 | set -eu 9 | 10 | LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | 11 | while read snapname revision; do 12 | snap remove "$snapname" --revision="$revision" 13 | done 14 | -------------------------------------------------------------------------------- /fish/functions/docker_clean_all.fish: -------------------------------------------------------------------------------- 1 | # Clean up Docker, by removing all containers and images 2 | function docker_clean_all 3 | echo "Cleaning Docker..." 4 | 5 | docker_rm_all 6 | docker_clean 7 | 8 | # Remove the ever increasing Docker image file from macOS 9 | if [ (uname -s) = "Darwin" ] 10 | rm -f ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 11 | end 12 | 13 | echo "Done" 14 | end 15 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_lt_2.1.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions before 2.1 2 | 3 | # Enable mouse support 4 | set -g mode-mouse on 5 | set -g mouse-resize-pane on 6 | set -g mouse-select-pane on 7 | set -g mouse-select-window on 8 | 9 | # Toggle mouse mode 10 | bind-key m set -g mode-mouse on \; set -g mouse-resize-pane on \; set -g mouse-select-pane on \; set -g mouse-select-window on \; display 'Mouse -> ON' 11 | bind-key M set -g mode-mouse off \; set -g mouse-resize-pane off \; set -g mouse-select-pane off \; set -g mouse-select-window off \; display 'Mouse -> OFF' 12 | -------------------------------------------------------------------------------- /vimium/mappings: -------------------------------------------------------------------------------- 1 | # Custom mappings for the Vimium browser plugin. 2 | # 3 | # Usage: 4 | # - Install Vimium in Firefox. 5 | # - Open the Vimium options. 6 | # - Put the contents of this file in the custom key mappings field. 7 | 8 | 9 | 10 | # Also switch to newly opened tabs with F 11 | map F LinkHints.activateModeToOpenInNewForegroundTab 12 | 13 | # Open link in new tab without switching 14 | map LinkHints.activateModeToOpenInNewTab 15 | 16 | # Open clipboard URL in new tab 17 | map V openCopiedUrlInNewTab 18 | 19 | # Find and copy a link 20 | map cc LinkHints.activateModeToCopyLinkUrl 21 | 22 | # Go to mark with normal single quote 23 | map ' Marks.activateGotoMode 24 | -------------------------------------------------------------------------------- /i3lock-slick/config.yml: -------------------------------------------------------------------------------- 1 | # Optional i3lock-slick dotfile. 2 | # 3 | # This file is used by i3lock-slick when located at '~/.i3locks-slick.yml'. 4 | # It allows you to fully configure i3lock-slick to eliminate the need of using 5 | # arguments when invoking the tool. 6 | 7 | # A list of parameters that the tool should pass to i3lock. 8 | parameter: 9 | # Show a clock 10 | clock: "" 11 | 12 | # Dry run, instead of actually invoking i3lock output the command that is used 13 | #dry: false 14 | 15 | # A list of filters to apply to the image 16 | filter: 17 | - "brighten: amount = -30 " 18 | - "blur: sigma = 7" 19 | 20 | # Version of i3lock-slick this targeted at 21 | version: "0.0.1" 22 | -------------------------------------------------------------------------------- /git/gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = timvisee 3 | email = tim@visee.me 4 | 5 | [core] 6 | editor = vim 7 | 8 | [init] 9 | defaultBranch = master 10 | 11 | [commit] 12 | gpgsign = true 13 | 14 | [tag] 15 | gpgsign = true 16 | forceSignAnnotated = true 17 | 18 | [diff] 19 | tool = vimdiff 20 | algorithm = histogram 21 | 22 | [difftool] 23 | prompt = false 24 | 25 | [alias] 26 | commit = commit -S 27 | d = difftool 28 | cp = cherry-pick 29 | 30 | # Enable ReReRe: 31 | [rerere] 32 | enabled = true 33 | 34 | # Suggest command fixes: 35 | [help] 36 | autocorrect = prompt 37 | -------------------------------------------------------------------------------- /fish/functions/docker_clean.fish: -------------------------------------------------------------------------------- 1 | # Clean Docker, by removing things like dangling images. 2 | function docker_clean 3 | set DANGLING_IMAGES (docker images -f "dangling=true" -q --no-trunc) 4 | if test -n "$DANGLING_IMAGES" 5 | echo "Cleaning up dangling Docker images..." 6 | docker rmi $DANGLING_IMAGES 7 | else 8 | echo "No dangling Docker images to remove" 9 | end 10 | 11 | set DANGLING_VOLUMES (docker volume ls -f "dangling=true" -q) 12 | if test -n "$DANGLING_VOLUMES" 13 | echo "Pruning all unused Docker volumes..." 14 | docker volume prune -f 15 | else 16 | echo "No dangling Docker volumes to prune" 17 | end 18 | 19 | echo "Done" 20 | end 21 | -------------------------------------------------------------------------------- /fish/functions/fuck.fish: -------------------------------------------------------------------------------- 1 | # The fuck alias 2 | 3 | # Make sure thefuck is installed 4 | if test ! -e /usr/bin/thefuck 5 | echo "thefuck is not installed" 6 | exit 1 7 | end 8 | 9 | # Set up the alias 10 | #thefuck --alias | source 11 | 12 | # Alternative, as the above alias is currently broken 13 | function fuck -d "Correct your previous console command" 14 | set -l fucked_up_command $history[1] 15 | env TF_ALIAS=fuck PYTHONIOENCODING=utf-8 thefuck $fucked_up_command | read -l unfucked_command 16 | if [ "$unfucked_command" != "" ] 17 | eval $unfucked_command 18 | builtin history delete --exact --case-sensitive -- $fucked_up_command 19 | builtin history merge ^ /dev/null 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /htop/htoprc: -------------------------------------------------------------------------------- 1 | # Beware! This file is rewritten by htop when settings are changed in the interface. 2 | # The parser is also very primitive, and not human-friendly. 3 | fields=0 48 17 18 38 39 40 2 46 47 49 1 4 | sort_key=49 5 | sort_direction=1 6 | hide_threads=1 7 | hide_kernel_threads=1 8 | hide_userland_threads=1 9 | shadow_other_users=0 10 | show_thread_names=0 11 | show_program_path=0 12 | highlight_base_name=0 13 | highlight_megabytes=0 14 | highlight_threads=1 15 | tree_view=0 16 | header_margin=0 17 | detailed_cpu_time=0 18 | cpu_count_from_zero=0 19 | update_process_names=0 20 | account_guest_in_cpu_meter=0 21 | color_scheme=6 22 | delay=5 23 | left_meters=AllCPUs Memory Swap 24 | left_meter_modes=1 1 1 25 | right_meters=Tasks LoadAverage Uptime 26 | right_meter_modes=2 2 2 27 | -------------------------------------------------------------------------------- /firefox/chrome/userChrome.css: -------------------------------------------------------------------------------- 1 | @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); 2 | 3 | /* Hide main tabs */ 4 | #TabsToolbar { 5 | display: none; 6 | visibility: collapse; 7 | } 8 | 9 | /* No sidebar size limits */ 10 | #sidebar { 11 | max-width: none !important; 12 | min-width: 1px !important; 13 | } 14 | 15 | /* /1* With TST: 1px sidebar splitter *1/ */ 16 | /* #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] + #sidebar-splitter { */ 17 | /* border: 0 !important; */ 18 | /* width: 1px !important; */ 19 | /* background: #0c0c0d !important; */ 20 | /* } */ 21 | 22 | /* With TST: hide sidebar header */ 23 | #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header { 24 | visibility: collapse; 25 | } 26 | -------------------------------------------------------------------------------- /tmux/tmux/load_version_specific: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the tmux home directory and it's version 4 | tmux_home=~/.config/tmux 5 | tmux_version="$(tmux -V | sed s/\[^0-9\\.\]//g)" 6 | 7 | # >= 2.1 && < 2.1 8 | if [[ $(echo "$tmux_version >= 2.1" | bc) -eq 1 ]]; then 9 | tmux source-file "$tmux_home/tmux_ge_2.1.conf" 10 | else 11 | tmux source-file "$tmux_home/tmux_lt_2.1.conf" 12 | fi 13 | 14 | # >= 2.4 && < 2.4 15 | if [[ $(echo "$tmux_version >= 2.4" | bc) -eq 1 ]]; then 16 | tmux source-file "$tmux_home/tmux_ge_2.4.conf" 17 | else 18 | tmux source-file "$tmux_home/tmux_lt_2.4.conf" 19 | fi 20 | 21 | # >= 2.9 && < 2.9 22 | if [[ $(echo "$tmux_version >= 2.9" | bc) -eq 1 ]]; then 23 | tmux source-file "$tmux_home/tmux_ge_2.9.conf" 24 | else 25 | tmux source-file "$tmux_home/tmux_lt_2.9.conf" 26 | fi 27 | -------------------------------------------------------------------------------- /highlight/base16-atelier-dune.theme: -------------------------------------------------------------------------------- 1 | -- Name: Base16 Atelier Dune 2 | -- Author: Bram de Haan (http://atelierbramdehaan.nl) 3 | -- Template by Bez Hermoso 4 | 5 | Description = "Base16 " 6 | 7 | Default = { Colour = "#a6a28c" } 8 | Canvas = { Colour="#20201d" } 9 | Number = { Colour="#b65611" } 10 | Escape = { Colour="#e8e4cf" , Italic=true} 11 | String = { Colour="#60ac39" } 12 | BlockComment = { Colour="#7d7a68" } 13 | StringPreProc = String 14 | LineComment = BlockComment 15 | Operator = { Colour="#a6a28c" } 16 | LineNum = { Color="#7d7a68" } 17 | PreProcessor = { Colour="#d43552" } 18 | Interpolation = Escape 19 | 20 | Keywords = { 21 | { Colour="#d73737", Bold=true}, 22 | { Colour="#ae9513"}, 23 | { Colour="#6684e1"}, 24 | { Colour="#ae9513"}, 25 | { Colour="#ae9513" } 26 | } 27 | -------------------------------------------------------------------------------- /fish/config.fish: -------------------------------------------------------------------------------- 1 | # Fish shell configuration 2 | 3 | # Set some variables 4 | set -x EDITOR vim 5 | set -x GPG_TTY (tty) 6 | 7 | # Add PATHs 8 | set PATH $HOME/bin $PATH 9 | set PATH $HOME/.local/bin $PATH 10 | set PATH $HOME/.cargo/bin $PATH 11 | set PATH $HOME/.composer/vendor/bin:$PATH 12 | set PATH $HOME/.krew/bin $PATH 13 | 14 | # Source other configuration files 15 | source ~/.config/fish/aliases.fish 16 | 17 | # Prompt 18 | type -q starship && eval (starship init fish) || . ~/.config/fish/prompt.fish 19 | 20 | # Disable fish greeting 21 | set fish_greeting 22 | 23 | # Enable VI mode 24 | fish_vi_key_bindings 25 | 26 | # Set-up Rust environment 27 | test -f ~/.cargo/env && . ~/.cargo/env 28 | 29 | abbr -a y " youtube-dl --force-ipv4 --no-check-certificate -f2" 30 | 31 | # # Python venv 32 | # set -Ux PYENV_ROOT $HOME/.pyenv 33 | # fish_add_path $PYENV_ROOT/bin 34 | # pyenv init - fish | source 35 | -------------------------------------------------------------------------------- /profile/profile: -------------------------------------------------------------------------------- 1 | # Clear keychain passwords on login 2 | [[ -n `which keychain` ]] && keychain --clear --noask --quiet 3 | 4 | # Add some PATHs 5 | export PATH="$HOME/bin:$PATH" 6 | export PATH="$HOME/.local/bin:$PATH" 7 | export PATH="$HOME/.cargo/bin:$PATH" 8 | export PATH="$HOME/.composer/vendor/bin:$PATH" 9 | 10 | # Fix Java AWT WM GUI issues 11 | export _JAVA_AWT_WM_NONREPARENTING=1 12 | 13 | # Set the terminal properties we're using 14 | export TERM="xterm-256" 15 | [[ -n `which alacritty` ]] && export TERMCMD="alacritty" || export TERMCMD="x-terminal-emulator" 16 | 17 | # Bind the caps lock key to escape when xcape is installed 18 | if [[ -e "/usr/bin/xcape" ]]; then 19 | setxkbmap -option 'caps:ctrl_modifier' 20 | xcape -e 'Caps_Lock=Escape' 21 | fi 22 | 23 | # Set-up nvm 24 | export NVM_DIR="$HOME/.nvm" 25 | [[ -s "$NVM_DIR/nvm.sh" ]] && . "$NVM_DIR/nvm.sh" 26 | 27 | # Load custom xmodmap keymap 28 | [[ -f "~/.xmodmap" ]] && xmodmap ~/.xmodmap 29 | 30 | true 31 | -------------------------------------------------------------------------------- /vimium/search_engines: -------------------------------------------------------------------------------- 1 | # Custom search engine configurations for the Vimium browser plugin. 2 | # 3 | # Usage: 4 | # - Install Vimium in Firefox. 5 | # - Open Vimium options. 6 | # - Put the contents of this file in the custom search engines field. 7 | 8 | g: https://www.google.com/search?q=%s Google 9 | d: https://duckduckgo.com/?q=%s DuckDuckGo 10 | c: https://crates.io/search?q=%s Rust Crate 11 | y: https://www.youtube.com/results?search_query=%s Youtube 12 | w: https://www.wikipedia.org/w/index.php?title=Special:https://doc.rust-lang.org/std/?search=Search&search=%s Wikipedia 13 | r: https://doc.rust-lang.org/std/?search=%s Rust docs 14 | rn: https://doc.rust-lang.org/nightly/std/?search=%s Rust docs (nightly) 15 | 16 | # l: https://www.google.com/search?q=%s&btnI I'm feeling lucky... 17 | # gm: https://www.google.com/maps?q=%s Google maps 18 | # b: https://www.bing.com/search?q=%s Bing 19 | # az: https://www.amazon.com/s/?field-keywords=%s Amazon 20 | # qw: https://www.qwant.com/?q=%s Qwant 21 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_ge_2.9.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions 2.9 and up 2 | 3 | ################################ 4 | # Theming # 5 | ################################ 6 | 7 | # Basic status bar colors 8 | set -g status-style fg=colour08,bg=black 9 | 10 | # Left side of status bar 11 | set -g status-left-style fg=colour04,bg=black 12 | 13 | # Right side of status bar 14 | set -g status-right-style fg=colour04,bg=black 15 | 16 | # Current window status 17 | set -g window-status-current-style fg=colour4,bg=black 18 | 19 | # Window with activity status 20 | set -g window-status-activity-style fg=colour04,bg=colour10 21 | 22 | # Pane border 23 | set -g pane-border-style fg=colour08,bg=default 24 | 25 | # Active pane border 26 | set -g pane-active-border-style fg=colour04,bg=default 27 | 28 | # Message 29 | set -g message-style fg=black,bg=colour04 30 | 31 | # Command message 32 | set -g message-command-style fg=black,bg=colour04 33 | 34 | # Mode 35 | set -g mode-style fg=black,bg=colour04 36 | -------------------------------------------------------------------------------- /fish/functions/git_enable_gpg.fish: -------------------------------------------------------------------------------- 1 | # Enable GPG signing for a repository 2 | # 3 | # First, this function sets the GPG key to use for signing commits, 4 | # based on the given signature. 5 | # 6 | # Then, this function enables automatic signing for commits, 7 | # so the flag -S doesn't have to be supplied when committing. 8 | # 9 | # $1: ID of the GPG key to use 10 | function git_enable_gpg 11 | # Make sure a key is entered 12 | if test -z "$argv[1]" 13 | echo "Please provide a GPG key ID!" 14 | echo " git_enable_gpg [GPG_ID]" 15 | return 1 16 | end 17 | 18 | # List the key by it's ID 19 | echo "Checking the GPG key ID..." 20 | gpg --list-keys $argv[1] 21 | 22 | # Report, return if the key is invalid 23 | if test $status -ne 0 24 | echo "Invalid GPG key ID!" 25 | return 1 26 | end 27 | 28 | echo "Enabling GPG signing..." 29 | 30 | # Set the signing key 31 | git config user.signingKey $argv[1] 32 | 33 | # Enable signing by default 34 | git config commit.gpgsign true 35 | 36 | echo "Done" 37 | end 38 | -------------------------------------------------------------------------------- /fish/functions/mergedependabot.fish: -------------------------------------------------------------------------------- 1 | function mergedependabot -d "Merge a dependabot PR into a GitLab repository" -a local_branch -a remote_branch 2 | # Ensure arguments are given 3 | test -z $local_branch && echo Missing argument: local branch && return 1 4 | test -z $remote_branch && echo Missing argument: remote branch && return 1 5 | 6 | set -l branch (git branch --show-current) 7 | set -l remote_branch (echo $remote_branch | sed 's/^origin\//github\//') 8 | 9 | # We must be on master now 10 | if test $branch != "master" 11 | echo "Currently not in master branch, refusing to merge" 12 | exit 1 13 | end 14 | 15 | echo Merging remote "'$remote_branch'" into master... 16 | 17 | git fetch github 18 | and git checkout -b "$local_branch" "$remote_branch" 19 | and git merge master 20 | 21 | and git checkout master 22 | and git merge --no-ff "$local_branch" -e -m "Merge branch '$local_branch' into master" 23 | # and git push --no-verify 24 | 25 | and git branch -d "$local_branch" 26 | 27 | echo "Merged into master, use 'git push' to publish" 28 | end 29 | -------------------------------------------------------------------------------- /tmux/tmux/tmux_lt_2.9.conf: -------------------------------------------------------------------------------- 1 | # File with tmux settings for versions before 2.9 2 | 3 | ################################ 4 | # Theming # 5 | ################################ 6 | 7 | # Basic status bar colors 8 | set -g status-fg colour08 9 | set -g status-bg black 10 | 11 | # Left side of status bar 12 | set -g status-left-fg colour04 13 | set -g status-left-bg black 14 | 15 | # Right side of status bar 16 | set -g status-right-fg colour04 17 | set -g status-right-bg black 18 | 19 | # Current window status 20 | set -g window-status-current-fg colour4 21 | set -g window-status-current-bg black 22 | 23 | # Window with activity status 24 | set -g window-status-activity-fg colour04 25 | set -g window-status-activity-bg colour10 26 | 27 | # Pane border 28 | set -g pane-border-fg colour08 29 | set -g pane-border-bg default 30 | 31 | # Active pane border 32 | set -g pane-active-border-fg colour04 33 | set -g pane-active-border-bg default 34 | 35 | # Message 36 | set -g message-fg black 37 | set -g message-bg colour04 38 | 39 | # Command message 40 | set -g message-command-fg black 41 | set -g message-command-bg colour04 42 | 43 | # Mode 44 | set -g mode-fg black 45 | set -g mode-bg colour04 46 | -------------------------------------------------------------------------------- /starship/starship.toml: -------------------------------------------------------------------------------- 1 | [character] 2 | # symbol = "❭" 3 | vicmd_symbol = "❬" 4 | 5 | [directory] 6 | truncation_length = 1 7 | fish_style_pwd_dir_length = 1 8 | 9 | [[battery.display]] 10 | threshold = 10 11 | style = "bold red" 12 | 13 | [[battery.display]] 14 | threshold = 30 15 | style = "bold yellow" 16 | 17 | [line_break] 18 | disabled = true 19 | 20 | [memory_usage] 21 | disabled = false 22 | threshold = 75 23 | symbol = "" 24 | style = "bold dimmed yellow" 25 | 26 | # Remove unnecessary text in prompt 27 | [cmd_duration] 28 | format = "[$duration]($style) " 29 | 30 | [git_branch] 31 | format = "[$symbol$branch]($style) " 32 | symbol = "" 33 | 34 | [nodejs] 35 | format = "[$symbol$version]($style) " 36 | 37 | [package] 38 | format = "[$symbol$version]($style) " 39 | symbol = "📦" 40 | 41 | [php] 42 | format = "[$symbol$version]($style) " 43 | symbol = "P" 44 | 45 | [python] 46 | format = "[$symbol$version]($style) " 47 | symbol = "P" 48 | 49 | [rust] 50 | format = "[$symbol$version]($style) " 51 | symbol = "R" 52 | 53 | [java] 54 | disabled = true 55 | 56 | [aws] 57 | disabled = true 58 | 59 | [azure] 60 | disabled = true 61 | 62 | [gcloud] 63 | disabled = true 64 | 65 | [kubernetes] 66 | disabled = true 67 | -------------------------------------------------------------------------------- /bin/update-proton-ge: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # From: 4 | 5 | # Stop on error 6 | set -e 7 | 8 | # Constants 9 | REPO=https://github.com/GloriousEggroll/proton-ge-custom 10 | LATEST_RELEASE_URL=$REPO/releases/latest 11 | PROTON_DIR=~/.steam/root/compatibilitytools.d 12 | 13 | # Find latest version tag 14 | release_url=$(curl -Ls -o /dev/null -w %{url_effective} $LATEST_RELEASE_URL) 15 | version=${release_url##*/} 16 | echo Found latest version: $version 17 | 18 | # Determine download URL and install path 19 | download_url=https://github.com/GloriousEggroll/proton-ge-custom/releases/download/$version/$version.tar.gz 20 | install_dir=$PROTON_DIR/$version 21 | download_file=/tmp/$version.tar.gz 22 | 23 | print_installed() { 24 | echo Installed versions: 25 | ls $PROTON_DIR | grep -e "^GE-Proton" | sed "s/^/- /" 26 | } 27 | 28 | # Exit if already installed 29 | if [ -d $install_dir ]; then 30 | echo Already installed at $install_dir 31 | print_installed 32 | exit 33 | fi 34 | 35 | echo Downloading... 36 | wget -q --show-progress $download_url -O $download_file 37 | 38 | echo Extracting... 39 | mkdir -p $PROTON_DIR 40 | tar -xzf $download_file --directory $PROTON_DIR 41 | 42 | echo Cleanup... 43 | rm $download_file 44 | 45 | echo Installation complete, at $install_dir 46 | print_installed 47 | -------------------------------------------------------------------------------- /gentoo/t480/make.conf: -------------------------------------------------------------------------------- 1 | # These settings were set by the catalyst build script that automatically 2 | # built this stage. 3 | # Please consult /usr/share/portage/config/make.conf.example for a more 4 | # detailed example. 5 | COMMON_FLAGS="-march=native -O2 -pipe" 6 | CFLAGS="${COMMON_FLAGS}" 7 | CXXFLAGS="${COMMON_FLAGS}" 8 | FCFLAGS="${COMMON_FLAGS}" 9 | FFLAGS="${COMMON_FLAGS}" 10 | 11 | # NOTE: This stage was built with the bindist Use flag enabled 12 | PORTDIR="/var/db/repos/gentoo" 13 | DISTDIR="/var/cache/distfiles" 14 | PKGDIR="/var/cache/binpkgs" 15 | 16 | # This sets the language of build output to English. 17 | # Please keep this setting intact when reporting bugs. 18 | LC_MESSAGES=C 19 | 20 | # Build with 8 concurrent jobs, be nice to the system 21 | MAKEOPTS="-j6" 22 | PORTAGE_NICENESS="10" 23 | 24 | # Use mirrors close to me 25 | GENTOO_MIRRORS="http://mirror.leaseweb.com/gentoo/ rsync://mirror.leaseweb.com/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo rsync://ftp.snt.utwente.nl/gentoo" 26 | 27 | USE="-qt5 -kde wayland X gtk gnome systemd user-session ffmpeg gphoto2 mp3" 28 | ACCEPT_LICENSE="@GPL-COMPATIBLE @FREE-SOFTWARE no-source-code linux-fw-redistributable Mojang" 29 | ACCEPT_KEYWORDS="~amd64" 30 | 31 | # Some hardware configurations 32 | GRUB_PLATFORMS="efi-64" 33 | VIDEO_CARDS="intel" 34 | 35 | # Languages to include 36 | LINGUAS="en nl" 37 | L10N="en nl" 38 | -------------------------------------------------------------------------------- /bin/discord-update: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # From: 4 | 5 | # Checking for discord app 6 | if ! command -v discord &> /dev/null 7 | then 8 | echo Discord not installed 9 | exit 1 10 | fi 11 | 12 | echo Checking for updates... 13 | 14 | # downloading stuff 15 | download_link=$(curl -s 'https://discord.com/api/download?platform=linux&format=deb' | grep -E -io 'href="[^\"]+"' | awk -F\" '{print$2}') 16 | download_filename=$(basename $download_link) 17 | 18 | # checking latest version 19 | latest_version=$(echo $download_filename | grep -oP 'discord-\K\d+\.\d+\.\d+(?=\.deb)') 20 | 21 | # checking local version 22 | discord_path=$(dirname $(realpath $(which discord))) 23 | discord_path+="/resources/build_info.json" 24 | local_version=$(cat $discord_path | jq -r '.version') 25 | 26 | # printing versions 27 | echo "Current version: $local_version" 28 | echo "Latest version: $latest_version" 29 | 30 | if [[ "$latest_version" == "$local_version" ]]; then 31 | echo "Already up-to-date" 32 | exit 0 33 | fi 34 | 35 | echo Downloading $download_filename... 36 | 37 | # download the installer 38 | wget --trust-server-names $download_link &>/dev/null 39 | 40 | echo "Installing $latest_version"... 41 | 42 | # remove old discord package, install new one 43 | sudo dpkg -r discord &>/dev/null 44 | sudo dpkg -i $download_filename &>/dev/null 45 | 46 | # remove downloaded file 47 | rm $download_filename 48 | 49 | echo Done 50 | -------------------------------------------------------------------------------- /iftop/iftoprc: -------------------------------------------------------------------------------- 1 | # Sets the network interface to if. 2 | # interface: if 3 | 4 | # Controls reverse lookup of IP addresses. 5 | # dns-resolution: (yes|no) 6 | dns-resolution: yes 7 | 8 | # Controls conversion of port numbers to service names. 9 | # port-resolution: (yes|no) 10 | port-resolution: no 11 | 12 | # Sets the filter code to bpf. 13 | # filter-code: bpf 14 | 15 | # Controls display of bar graphs. 16 | # show-bars: (yes|no) 17 | show-bars: yes 18 | 19 | # Puts the interface into promiscuous mode. 20 | # promiscuous: (yes|no) 21 | 22 | # Controls display of port numbers. 23 | # port-display: (off|source-only|destination-only|on) 24 | port-display: on 25 | 26 | # Hides source host names. 27 | # hide-source: (yes|no) 28 | 29 | # Hides destination host names. 30 | # hide-destination: (yes|no) 31 | 32 | # Use bytes for bandwidth display, rather than bits. 33 | # use-bytes: (yes|no) 34 | use-bytes: yes 35 | 36 | # Sets which column is used to sort the display. 37 | sort: destination 38 | #sort: (2s|10s|40s|source|destination) 39 | 40 | # Controls the appearance of each item in the display. 41 | # line-display: (two-line|one-line-both|one-line-sent|one-line-received) 42 | line-display: one-line-both 43 | 44 | # Shows cummulative total for each item. 45 | # show-totals: (yes|no) 46 | show-totals: yes 47 | 48 | # Use a logarithmic scale for bar graphs. 49 | # log-scale: (yes|no) 50 | 51 | # Fixes the maximum for the bar graph scale to bw, e.g. "10M" 52 | # max-bandwidth: bw 53 | 54 | # Defines an IP network boundary for determining packet direction. 55 | # net-filter: net/mask 56 | 57 | # Sets a regular expression to filter screen output. 58 | # screen-filter: regexp 59 | -------------------------------------------------------------------------------- /bin/git-recent: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Source: https://gist.github.com/jordan-brough/48e2803c0ffa6dc2e0bd 4 | # See also: https://stackoverflow.com/a/25095062/58876 5 | 6 | # Download this script as "git-recent" (no extension), chmod it to be executable and put it in your 7 | # path somewhere (e.g. /usr/bin). You can then use it via `git recent` from inside any git repo. 8 | 9 | # Examples: 10 | 11 | # Interactive prompt for most recent 4 branches: 12 | # $ git recent -n 5 13 | # 1) master 4) deleted-branch 14 | # 2) stable 5) improve-everything 15 | # 3) fun 16 | # Choose a branch: 2 17 | 18 | # List mode (non-interactive): 19 | # $ git recent -n 5 -l 20 | # master 21 | # stable 22 | # fun 23 | # deleted-branch 24 | # improve-everything 25 | 26 | # Verify branch existence: 27 | # $ git recent -n 5 -l -e 28 | # master 29 | # stable 30 | # fun 31 | # improve-everything 32 | # something-else 33 | # # (notice "deleted-branch" removed from results) 34 | 35 | # Contributors: 36 | # - jordan-brough 37 | # - fritz-c 38 | 39 | usage() 40 | { 41 | echo "usage: git recent [-n lines] [-l] [-e]" 42 | } 43 | 44 | while getopts "hn:le" opt; do 45 | case $opt in 46 | h) # help 47 | usage 48 | exit 1 49 | ;; 50 | n) # number of results 51 | NUM=$OPTARG 52 | ;; 53 | l) # list mode (non-interactive) 54 | INTERACTIVE=0 55 | ;; 56 | e) # validate existence 57 | CHECK_EXISTENCE=1 58 | ;; 59 | \?) 60 | usage 61 | exit 1 62 | ;; 63 | esac 64 | done 65 | 66 | NUM=${NUM-10} # default to 10 lines 67 | INTERACTIVE=${INTERACTIVE-1} # default to interactive 68 | CHECK_EXISTENCE=${CHECK_EXISTENCE-0} # default to *not* checking existence (faster) 69 | 70 | BRANCHES=( 71 | $(git reflog | 72 | egrep -io "moving from ([^[:space:]]+)" | 73 | awk '{ print $3 }' | # extract 3rd column 74 | awk ' !x[$0]++' | # Removes duplicates. See http://stackoverflow.com/questions/11532157 75 | egrep -v '^[a-f0-9]{40}$' | # remove hash results 76 | while read line; do # verify existence 77 | ([[ $CHECK_EXISTENCE = '0' ]] || git rev-parse --verify "$line" &>/dev/null) && echo "$line" 78 | done | 79 | head -n "$NUM" 80 | ) 81 | ) 82 | 83 | if [[ $INTERACTIVE = '1' ]]; then 84 | 85 | if [[ $(command -v fzf) ]]; then 86 | # Interactive selection with fzf 87 | d=$(printf "%s\n" "${BRANCHES[@]}" | fzf --prompt "Choose branch: ") 88 | test -z "$d" && exit 1 89 | else 90 | # Selection with bash 91 | PS3="Choose a branch: " 92 | select d in "${BRANCHES[@]}"; do 93 | test -n "$d" && break; 94 | echo ">>> Invalid Selection"; 95 | done 96 | fi 97 | 98 | git checkout "$d" 99 | else 100 | printf '%s\n' "${BRANCHES[@]}" 101 | fi 102 | -------------------------------------------------------------------------------- /bash/bashrc: -------------------------------------------------------------------------------- 1 | # ~/.bashrc: executed by bash for non-login shells. 2 | 3 | # If not running interactively, don't do anything 4 | case $- in 5 | *i*) ;; 6 | *) return;; 7 | esac 8 | 9 | # Don't put duplicate lines or lines starting with space in the history. 10 | HISTCONTROL=ignoreboth 11 | 12 | if [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then 13 | # Append to the history file, don't overwrite it 14 | shopt -s histappend 15 | 16 | # Check the window size after each command and, if necessary, 17 | # update the values of LINES and COLUMNS. 18 | shopt -s checkwinsize 19 | 20 | # Enable programmable completion features 21 | if ! shopt -oq posix; then 22 | if [ -f /usr/share/bash-completion/bash_completion ]; then 23 | . /usr/share/bash-completion/bash_completion 24 | elif [ -f /etc/bash_completion ]; then 25 | . /etc/bash_completion 26 | fi 27 | fi 28 | fi 29 | 30 | # Set the history length 31 | HISTSIZE=1000 32 | HISTFILESIZE=2000 33 | 34 | # If set, the pattern "**" used in a pathname expansion context will 35 | # match all files and zero or more directories and subdirectories. 36 | #shopt -s globstar 37 | 38 | # Make less more friendly for non-text input files 39 | [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" 40 | 41 | # Set variable identifying the chroot you work in (used in the prompt below) 42 | if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then 43 | debian_chroot=$(cat /etc/debian_chroot) 44 | fi 45 | 46 | 47 | ################################################################################ 48 | 49 | 50 | # Set some variables 51 | export EDITOR=vim 52 | export GPG_TTY=$(tty) 53 | 54 | # Add PATHs 55 | export PATH=$HOME/bin:$PATH 56 | export PATH=$HOME/.local/bin:$PATH 57 | export PATH=$HOME/.composer/vendor/bin:$PATH 58 | export PATH=$HOME/.krew/bin:$PATH 59 | 60 | # Source aliasses 61 | [ -f ~/.bash_aliases ] && . ~/.bash_aliases 62 | 63 | # Set-up starship prompt 64 | if [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then 65 | [ -n "$(which starship)" ] && eval "$(starship init bash)" 66 | elif [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then 67 | [ -n "$(which starship)" ] && eval "$(starship init zsh)" 68 | fi 69 | 70 | # Set-up Rust environment 71 | [[ -f ~/.cargo/env ]] && . ~/.cargo/env 72 | 73 | # Set-up nvm 74 | export NVM_DIR="$HOME/.nvm" 75 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 76 | [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 77 | 78 | # Set-up fzf 79 | if [ -n "`$SHELL -c 'echo $BASH_VERSION'`" ]; then 80 | [ -f ~/.fzf.bash ] && . ~/.fzf.bash 81 | elif [ -n "`$SHELL -c 'echo $ZSH_VERSION'`" ]; then 82 | [ -f ~/.fzf.zsh ] && . ~/.fzf.zsh 83 | fi 84 | 85 | # Source functions 86 | source ~/.bash_functions 87 | [[ -f ~/.bash_functions_private ]] && . ~/.bash_functions_private 88 | 89 | # # Python venv 90 | # export PYENV_ROOT="$HOME/.pyenv" 91 | # [[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" 92 | # eval "$(pyenv init -)" 93 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tim does dotfiles 2 | dotfiles are used to personalize your system and applications. These are mine. 3 | 4 | ## Requirements 5 | * Linux or Mac OS X 6 | * `git` 7 | * `bash` 8 | * When using Vim, [vim-plug][vim-plug] is installed. 9 | 10 | ## Recommendations 11 | * `alacritty`: awesome terminal emulator 12 | * `bspwm`: tiling window manager, additional dependencies 13 | * `sxhkd`: shortcut daemon 14 | * `polybar`: desktop bar 15 | * `picom`: compositor 16 | * `dunst`: notification daemon 17 | * `pasystray`: PulseAudio tray icon 18 | * `xss-lock`: X screensaver lockscreen 19 | * `slock`: X lockscreen 20 | * `maim`: screenshotter 21 | * `rofi`: interactive selector 22 | * `playerctl`: MPRIS media controls 23 | * `awesomeWM`: tiling window manager, additional dependencies 24 | * `awesome`: window manager itself 25 | * `awesome-extra`: additional libraries used in my configuration 26 | * `i3lock-color-git`: [[link]](https://github.com/chrjguill/i3lock-color) fancy and customizable lock screen 27 | * `xautolock`: lock screen when inactive 28 | * `libnotify-bin`: notification handling 29 | * `rust` nightly: for proper language completion in Vim, through `rustup` 30 | * `xcape` (Linux): to bind Caps Lock to Esc. 31 | * `keychain`: for SSH key management 32 | * `fish`: as better shell 33 | * `starship`: as better shell prompt 34 | * `thefuck`: for handy incorrect command fixes 35 | * `highlight`: for syntax highlighting in ranger 36 | * `fzf`: fuzzy finder 37 | 38 | ## Installation 39 | An installation script is included to easily install the dotfiles on your system. 40 | 41 | On Linux or Mac OS X, use: 42 | ```bash 43 | # Clone the repository 44 | git clone https://github.com/timvisee/dotfiles.git ~/dotfiles 45 | cd ~/dotfiles 46 | 47 | # Install 48 | sudo chmod a+x ./install 49 | ./install 50 | ``` 51 | 52 | Vim plugins should be installed automatically, the `:PlugInstall` command may be 53 | used to force. 54 | 55 | ### Alacritty 56 | This configuration recommends [`alacritty`][alacritty] as default terminal. 57 | First, install it as stated on it's GitHub page. 58 | Then configure it as default terminal using: 59 | ```bash 60 | # Add alacritty to the terminal list 61 | sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator $(which alacritty) 0 62 | 63 | # Select the default terminal 64 | sudo update-alternatives --config x-terminal-emulator 65 | ``` 66 | 67 | ## ErgoDox 68 | This repository includes my ErgoDox keyboard layout configuration, 69 | located in the [ergodox](./ergodox) directory. 70 | 71 | ![ErgoDox layout](./ergodox/layout.png) 72 | 73 | ## Hosts blacklist 74 | This repository includes my personal hosts banlist. 75 | The up-to-date raw file can be accessed via 76 | [`https://gitlab.com/timvisee/dotfiles/raw/master/hosts/blacklist.txt`](https://gitlab.com/timvisee/dotfiles/raw/master/hosts/blacklist.txt). 77 | 78 | ## License 79 | This project is released under the GNU GPL-3.0 license. Check out the [LICENSE](LICENSE) file for more information. 80 | 81 | [alacritty]: https://github.com/jwilm/alacritty 82 | [vim-plug]: https://github.com/junegunn/vim-plug 83 | -------------------------------------------------------------------------------- /bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | pkill sxhkd || true 4 | SXHKD_SHELL=sh sxhkd & 5 | 6 | if ! pidof picom > /dev/null; then 7 | picom --experimental-backends & 8 | fi 9 | if ! pidof dunst > /dev/null; then 10 | dunst & 11 | fi 12 | if ! pidof xss-lock > /dev/null; then 13 | xss-lock ~/.config/bspwm/lockscreen & 14 | fi 15 | if ! pidof pasystray > /dev/null; then 16 | pasystray & 17 | fi 18 | if ! pidof nm-applet > /dev/null; then 19 | nm-applet & 20 | fi 21 | if ! pidof blueman-applet > /dev/null; then 22 | blueman-applet & 23 | fi 24 | 25 | ~/.config/polybar/launch.sh & 26 | 27 | # MONITORS 28 | for m in $(xrandr | grep ' connected' | awk '{ print $1 }'); do 29 | bspc monitor $m -d home code edit im music game sys bullshit 30 | done 31 | 32 | #### BSPWM configuration #### 33 | window_gap=4 34 | bspc config border_width 1 35 | bspc config window_gap $window_gap 36 | bspc config top_padding $((20 - window_gap)) 37 | bspc config bottom_padding 0 38 | bspc config left_padding 0 39 | bspc config right_padding 0 40 | bspc config top_monocle_padding 0 41 | bspc config bottom_monocle_padding 0 42 | bspc config left_monocle_padding 0 43 | bspc config right_monocle_padding 0 44 | bspc config borderless_monocle true 45 | bspc config gapless_monocle true 46 | bspc config single_monocle true 47 | bspc config click_to_focus any 48 | bspc config ignore_ewmh_focus true 49 | bspc config split_ratio 0.50 50 | bspc config borderless_monocle true 51 | bspc config gapless_monocle true 52 | bspc config focus_follows_pointer false 53 | bspc config history_aware_focus true 54 | bspc config remove_disabled_monitors true 55 | bspc config remove_unplugged_monitors true 56 | bspc config merge_overlapping_monitors true 57 | bspc config pointer_modifier mod4 58 | bspc config pointer_action1 move 59 | bspc config pointer_action2 resize_side 60 | bspc config pointer_action3 resize_corner 61 | 62 | #### BSPWM coloring #### 63 | bspc config normal_border_color "#4c566a" 64 | bspc config active_border_color "#1e1e1e" 65 | bspc config focused_border_color "#5e81ac" 66 | bspc config presel_feedback_color "#5e81ac" 67 | bspc config urgent_border_color "#dd2727" 68 | 69 | #### BSPWM rules #### 70 | bspc rule -a Firefox desktop='^1' 71 | bspc rule -a Nightly desktop='^1' 72 | bspc rule -a Thunderbird desktop='^4' 73 | bspc rule -a Kupfer.py focus=on 74 | bspc rule -a MellowPlayer desktop='^5' follow=on 75 | bspc rule -a Mumble desktop='^4' follow=on 76 | bspc rule -a Screenkey manage=off 77 | bspc rule -a Steam desktop='^6' follow=false 78 | bspc rule -a mplayer2 state=floating 79 | bspc rule -a MultiMC state=floating 80 | 81 | # Battlefield 1 / Origin 82 | bspc rule -a Origin state=floating 83 | bspc rule -a steam_app_1182480 state=floating 84 | 85 | #### OTHER STUFF #### 86 | 87 | # Use regular cursor on desktop 88 | xsetroot -cursor_name left_ptr 89 | 90 | # Set wallpaper 91 | feh --bg-fill ~/.config/bspwm/wallpaper.jpg 92 | -------------------------------------------------------------------------------- /fish/aliases.fish: -------------------------------------------------------------------------------- 1 | # Fish shell configuration 2 | 3 | # Grep aliases 4 | alias grep 'grep --color=auto' 5 | alias grepi 'grep -i --color=auto' 6 | alias fgrep 'fgrep --color=auto' 7 | alias egrep 'egrep --color=auto' 8 | 9 | # Shell exit alias 10 | alias q 'exit' 11 | alias :q 'exit' 12 | 13 | # Nvim and vim aliases 14 | if command -qv nvim 15 | abbr v 'nvim' 16 | abbr vi 'nvim' 17 | abbr vim 'nvim' 18 | abbr nvi 'nvim' 19 | else 20 | abbr v 'vim' 21 | abbr vi 'vim' 22 | abbr nvi 'vim' 23 | end 24 | 25 | # Eza/exa alias 26 | if command -qv eza 27 | abbr e 'eza' 28 | abbr ela 'eza -lab --git' 29 | else 30 | abbr e 'exa' 31 | abbr ela 'exa -lab --git' 32 | end 33 | 34 | # Ranger alias 35 | abbr r 'ranger' 36 | 37 | # Pass aliases 38 | abbr p 'prs show --verbose --timeout 20' 39 | abbr pc 'prs copy' 40 | 41 | # Git aliases 42 | abbr g 'git' 43 | abbr ga 'git add' 44 | abbr ga. 'git add .' 45 | abbr gap 'git add --patch' 46 | abbr gapn 'git add --intent-to-add .; and git add --patch' 47 | abbr gb 'git branch' 48 | abbr gc 'git commit' 49 | abbr gca 'git commit --amend' 50 | abbr gp 'git push' 51 | abbr gpf 'git push --force-with-lease' 52 | abbr gs 'git status' 53 | abbr gd 'git diff' 54 | abbr gl 'git log' 55 | abbr gll "git -c core.pager='less -p^commit.*\$' log -p -M -w --stat --pretty=fuller --show-notes" 56 | abbr glg 'git log --pretty="format:%Cred%h %Cblue%d %Cgreen%s %Creset%an %ar" --graph' 57 | abbr gf 'git fetch' 58 | abbr gfm 'git pull' 59 | abbr gr 'git rebase' 60 | abbr grc 'git rebase --continue' 61 | abbr grr 'git reset' 62 | abbr grrh 'git reset --hard' 63 | abbr gt 'git tag' 64 | abbr git_clean_repo 'git clean -dfx' 65 | 66 | # Docker 67 | abbr d 'docker' 68 | abbr dc 'docker-compose' 69 | 70 | # Python shenanigans 71 | alias venvactivate "source venv/bin/activate.fish" 72 | alias mkvenv3.10 "pyenv local 3.10 && python3 -m venv venv && venvactivate && pip3 install -U pip" 73 | 74 | # Clipboard aliases 75 | if [ (uname -s) = "Darwin" ] 76 | alias getclip 'pbpaste' 77 | alias setclip 'pbcopy' 78 | else 79 | alias getclip 'xclip -selection c -o' 80 | alias setclip 'xclip -selection c' 81 | end 82 | 83 | # Tmux alias 84 | alias tmux 'tmux -u -2' 85 | alias tl 'tmux -u -2 ls' 86 | function ta 87 | tmux -u -2 attach $argv; or tmux 88 | end 89 | function tn 90 | tmux -u -2 new -s $argv; or tmux 91 | end 92 | 93 | # Cargo aliases 94 | abbr cr 'cargo run' 95 | abbr crr 'cargo run --release' 96 | abbr cb 'cargo build' 97 | abbr cbr 'cargo build --release' 98 | abbr cc 'cargo check' 99 | abbr ct 'cargo test' 100 | abbr cu 'cargo update' 101 | 102 | # Free memory cache and swap 103 | alias drop_cache 'sudo sh -c "echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a"' 104 | 105 | # Create the composer alias if it exists 106 | if test -e '/usr/local/bin/composer.phar' 107 | alias composer 'php /usr/local/bin/composer.phar' 108 | end 109 | 110 | # Aliases to hide and show hidden files on macOS 111 | if [ (uname -s) = "Darwin" ] 112 | alias showFiles 'echo "Showing files..."; defaults write com.apple.finder AppleShowAllFiles YES; sleep 1; killall Finder; /System/Library/CoreServices/Finder.app; echo "Done"' 113 | alias hideFiles 'echo "Hiding files..."; defaults write com.apple.finder AppleShowAllFiles NO; sleep 1; killall Finder /System/Library/CoreServices/Finder.app; echo "Done"' 114 | end 115 | 116 | alias stripcolors 'sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"' 117 | -------------------------------------------------------------------------------- /tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | # tmux configuration by Tim Visee 2 | 3 | 4 | 5 | ################################ 6 | # General configurations # 7 | ################################ 8 | 9 | # Start windows from 1, zero is too far away 10 | set -g base-index 1 11 | setw -g pane-base-index 1 12 | 13 | # Automatic window naming 14 | set-window-option -g automatic-rename on 15 | set-option -g set-titles on 16 | 17 | # Disable window activity notifications 18 | setw -g monitor-activity off 19 | set -g visual-activity off 20 | 21 | # Put window listing on the left of the status bar 22 | set -g status-justify left 23 | 24 | # Set the terminal mode, to properly support colors 25 | set -g default-terminal 'xterm-256color' 26 | 27 | # Set the history limit 28 | set -g history-limit 10000 29 | 30 | # Display messages and pane numbers for 3 seconds, not 1 31 | set-option -g display-time 3000 32 | set -g display-panes-time 3000 33 | 34 | # Minimize tmux escape time 35 | set -sg escape-time 0 36 | 37 | # Set repeat timeout, when switching panes with arrows 38 | set -sg repeat-time 400 39 | 40 | # Force the use of UTF-8 (suppressed, mostly not available) 41 | set -gq utf8 on 42 | 43 | 44 | 45 | ################################ 46 | # Key bindings # 47 | ################################ 48 | 49 | # Enable xterm keys 50 | setw -g xterm-keys on 51 | 52 | # Use Vim keybindings 53 | setw -g mode-keys vi 54 | set -g status-keys vi 55 | 56 | # Split bindings 57 | bind-key v split-window -h 58 | bind-key s split-window -v 59 | 60 | # Pane selection bindings 61 | bind j select-pane -D 62 | bind k select-pane -U 63 | bind h select-pane -L 64 | bind l select-pane -R 65 | 66 | # Pane selection bindings with alt 67 | bind -n M-j select-pane -D 68 | bind -n M-k select-pane -U 69 | bind -n M-h select-pane -L 70 | bind -n M-l select-pane -R 71 | 72 | # Window selection bindings with alt and arrow 73 | bind -n S-Left previous-window 74 | bind -n S-Right next-window 75 | 76 | # Pane resize bindings 77 | bind-key J resize-pane -D 5 78 | bind-key K resize-pane -U 5 79 | bind-key H resize-pane -L 5 80 | bind-key L resize-pane -R 5 81 | bind-key M-j resize-pane -D 82 | bind-key M-k resize-pane -U 83 | bind-key M-h resize-pane -L 84 | bind-key M-l resize-pane -R 85 | 86 | # Reload tmux config 87 | bind r source-file ~/.tmux.conf \; display 'tmux configuration reloaded' 88 | 89 | 90 | 91 | ################################ 92 | # Theming # 93 | ################################ 94 | 95 | # Status update interval 96 | set -g status-interval 1 97 | 98 | # Left side of status bar 99 | set -g status-left-length 40 100 | set -g status-left "#[fg=#292824,bg=#6684e1,bold] #S #[fg=#292824,bg=#6e6b5e,nobold] #(whoami) #[fg=#a6a28c,bg=#292824,nobold] #I:#P " 101 | 102 | # Right side of status bar 103 | set -g status-right-length 50 104 | set -g status-right "#[fg=#a6a28c,bg=#292824,nobold] #(cut -d ' ' -f 1-3 /proc/loadavg) #[fg=#292824,bg=#6e6b5e,nobold] %d %b %H:%M:%S #[fg=#292824,bg=#6684e1,bold] #H " 105 | 106 | # Window status 107 | set -g window-status-format "#I#W#F" 108 | set -g window-status-current-format "#I#W#F" 109 | 110 | # Window separator 111 | set -g window-status-separator " " 112 | 113 | # Window status alignment 114 | set -g status-justify centre 115 | 116 | # Pane number indicator 117 | set -g display-panes-colour colour08 118 | set -g display-panes-active-colour colour04 119 | 120 | # Clock mode 121 | set -g clock-mode-colour colour04 122 | set -g clock-mode-style 24 123 | 124 | 125 | 126 | ################################ 127 | # Version specific # 128 | ################################ 129 | 130 | # Load version specific settings 131 | run-shell "bash ~/.config/tmux/load_version_specific" 132 | -------------------------------------------------------------------------------- /bash/bash_functions: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Kill all running Docker containers 4 | function docker_kill_all() { 5 | DOCKER_CONTAINERS=`docker ps -q --no-trunc` 6 | if [[ "$DOCKER_CONTAINERS" ]]; then 7 | echo "Killing all running Docker containers..." 8 | docker kill $DOCKER_CONTAINERS 9 | else 10 | echo "No Docker containers to kill" 11 | fi 12 | 13 | echo "Done" 14 | } 15 | 16 | # Remove all Docker containers 17 | function docker_rm_all() { 18 | DOCKER_CONTAINERS=`docker ps -aq --no-trunc` 19 | if [[ "$DOCKER_CONTAINERS" ]]; then 20 | echo "Removing all Docker containers..." 21 | docker rm $DOCKER_CONTAINERS 22 | else 23 | echo "No Docker containers to remove" 24 | fi 25 | 26 | echo "Done" 27 | } 28 | 29 | # Clean Docker, by removing things like dangling images. 30 | function docker_clean() { 31 | DANGLING_IMAGES=`docker images -f "dangling=true" -q --no-trunc` 32 | if [[ "$DANGLING_IMAGES" ]]; then 33 | echo "Cleaning up dangling Docker images..." 34 | docker rmi $DANGLING_IMAGES 35 | else 36 | echo "No dangling Docker images to remove" 37 | fi 38 | 39 | DANGLING_VOLUMES=`docker volume ls -f "dangling=true" -q` 40 | if [[ "$DANGLING_VOLUMES" ]]; then 41 | echo "Pruning all unused Docker volumes..." 42 | docker volume prune -f 43 | else 44 | echo "No dangling Docker volumes to prune" 45 | fi 46 | 47 | echo "Done" 48 | } 49 | 50 | # Clean up Docker, by removing all containers and images 51 | function docker_clean_all() { 52 | echo "Resetting Docker..." 53 | 54 | # Remove containers and clean 55 | docker_rm_all 56 | docker_clean 57 | 58 | # Remove the ever increasing Docker image file from macOS 59 | if [[ `uname -s` == "Darwin" ]]; then 60 | rm -f ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 61 | fi 62 | 63 | echo "Done" 64 | } 65 | 66 | # Remove the last created container. 67 | function docker_rm_last() { 68 | LAST_CONTAINER=`docker ps -lq --no-trunc` 69 | if [[ "$LAST_CONTAINER" ]]; then 70 | echo "Removing the last created Docker container..." 71 | docker rm $LAST_CONTAINER 72 | else 73 | echo "No last Docker container to remove" 74 | fi 75 | 76 | echo "Done" 77 | } 78 | 79 | # Enable GPG signing for a repository 80 | # 81 | # First, this function sets the GPG key to use for signing commits, 82 | # based on the given signature. 83 | # 84 | # Then, this function enables automatic signing for commits, 85 | # so the flag -S doesn't have to be supplied when committing. 86 | # 87 | # $1: ID of the GPG key to use 88 | function git_enable_gpg() { 89 | # Make sure a key is entered 90 | if [[ ! "$1" ]]; then 91 | echo "Please provide a GPG key ID!" 92 | echo " git_enable_gpg [GPG_ID]" 93 | return 1 94 | fi 95 | 96 | # List the key by it's ID 97 | echo "Checking the GPG key ID..." 98 | gpg --list-keys $1 99 | 100 | # Report, return if the key is invalid 101 | if [[ ! $? -eq 0 ]]; then 102 | echo "Invalid GPG key ID!" 103 | return 1 104 | fi 105 | 106 | echo "Enabling GPG signing..." 107 | 108 | # Set the signing key 109 | git config user.signingKey $1 110 | 111 | # Enable signing by default 112 | git config commit.gpgsign true 113 | 114 | echo "Done" 115 | } 116 | 117 | # Rerun command when directory contents change 118 | function rerun () { 119 | while true; do 120 | reset; 121 | "$@"; 122 | inotifywait -e MODIFY --recursive . 123 | done 124 | } 125 | 126 | # Authenticate agents 127 | function auth () { 128 | # Set-up keychain 129 | which keychain > /dev/null && eval $(SHELL=bash keychain --eval --quiet --agents ssh,gpg id_rsa) 130 | } 131 | -------------------------------------------------------------------------------- /sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # BSPWM HOTKEYS 2 | 3 | # quit/restart bspwm 4 | super + {_,shift +} q 5 | bspc {wm -r,quit} 6 | 7 | # close and kill 8 | super + {_,shift + }c 9 | bspc node -{c,k} 10 | 11 | # alternate between the tiled and monocle layout 12 | super + m 13 | bspc desktop -l next 14 | 15 | # send the newest marked node to the newest preselected node 16 | super + y 17 | bspc node newest.marked.local -n newest.!automatic.local 18 | 19 | 20 | # STATE/FLAGS 21 | 22 | # set the window state 23 | super + {t,shift + t,s,f} 24 | bspc node -t {tiled,pseudo_tiled,\~floating,\~fullscreen} 25 | 26 | # set the node flags 27 | super + ctrl + {m,x,y,z} 28 | bspc node -g {marked,locked,sticky,private} 29 | 30 | 31 | # FOCUS/SWAP 32 | 33 | # focus the node in the given direction 34 | super + {_,shift + }{h,j,k,l} 35 | bspc node -{f,s} {west,south,north,east} 36 | 37 | # focus the node for the given path jump 38 | super + {p,b,comma,period} 39 | bspc node -f @{parent,brother,first,second} 40 | 41 | # focus the next/previous node in the current desktop 42 | super + {_,shift + }n 43 | bspc node -f {next,prev}.local 44 | 45 | # focus the next/previous desktop in the current monitor 46 | super + bracket{left,right} 47 | bspc desktop -f {prev,next}.local 48 | 49 | # focus the last node/desktop 50 | super + {grave,Tab} 51 | bspc {node,desktop} -f last 52 | 53 | # focus the older or newer node in the focus history 54 | super + {o,i} 55 | bspc wm -h off; \ 56 | bspc node {older,newer} -f; \ 57 | bspc wm -h on 58 | 59 | # focus or send to the given desktop 60 | super + {_,shift + }{1-9,0} 61 | bspc {desktop -f,node -d} focused:'^{1-9,10}' 62 | 63 | 64 | # PRESELECT 65 | 66 | # preselect the direction 67 | super + ctrl + {h,j,k,l} 68 | bspc node -p {west,south,north,east} 69 | 70 | # # preselect the ratio 71 | # super + ctrl + {1-9} 72 | # bspc node -o 0.{1-9} 73 | 74 | # cancel the preselection for the focused node 75 | super + ctrl + space 76 | bspc node -p cancel 77 | 78 | # cancel the preselection for the focused desktop 79 | super + ctrl + shift + space 80 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 81 | 82 | 83 | # MOVE/RESIZE/ROTATE 84 | 85 | # rotate split of parent node or root 90/-90 degrees 86 | {ctrl +,_} super + {_,shift +} r 87 | bspc node @{/,parent} -R {90,-90} 88 | 89 | # expand a window by moving one of its side outward 90 | ctrl + alt + {h,j,k,l} 91 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 92 | 93 | # contract a window by moving one of its side inward 94 | ctrl + alt + shift + {h,j,k,l} 95 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 96 | 97 | # move a floating window 98 | super + {Left,Down,Up,Right} 99 | bspc node -v {-20 0,0 20,0 -20,20 0} 100 | 101 | 102 | # APPLICATIONS 103 | 104 | ctrl + alt + Return 105 | rofi -show run -i 106 | 107 | {ctrl + alt + t,super + Return} 108 | alacritty 109 | 110 | super + e 111 | nautilus 112 | 113 | super + alt + b 114 | firefox-trunk || firefox 115 | 116 | super + alt + t 117 | telegram-desktop || telegram 118 | 119 | alt + ctrl + p 120 | prs-gtk3-copy 121 | 122 | alt + ctrl + shift + p 123 | ~/.config/sxhkd/prs-rofi-copy 124 | 125 | 126 | # EXTRAS 127 | 128 | # sound volume 129 | XF86Audio{LowerVolume,RaiseVolume} 130 | pactl set-sink-volume @DEFAULT_SINK@ {-1000+1000} 131 | 132 | # sound/mic mute 133 | XF86Audio{Mute,MicMute} 134 | pactl set-{sink,source}-mute @DEFAULT_SINK@ toggle 135 | 136 | # media controls 137 | XF86Audio{Play,Pause,Stop,Prev,Next} 138 | playerctl {play-pause,pause,stop,previous,next} 139 | 140 | # full screenshot to clipboard 141 | Print 142 | maim -u | xclip -selection clipboard -t image/png 143 | 144 | # selection screenshot to clipboard 145 | shift + Print 146 | maim -u --geometry $(slop) | xclip -selection clipboard -t image/png 147 | 148 | # window screenshot to clipboard 149 | ctrl + Print 150 | maim -ui $(xdotool getactivewindow) | xclip -selection clipboard -t image/png 151 | 152 | # show all bindings 153 | ctrl + super + c 154 | ~/.config/sxhkd/show-binds 155 | -------------------------------------------------------------------------------- /csgo/autoexec.cfg: -------------------------------------------------------------------------------- 1 | // Map aliasses 2 | alias "aztec" "map de_aztec " 3 | alias "cache" "map de_cache" 4 | alias "cobblestone" "map de_cbble" 5 | alias "dust" "map de_dust" 6 | alias "dust2" "map de_dust2" 7 | alias "inferno" "map de_inferno" 8 | alias "mill" "map de_mill" 9 | alias "mirage" "map de_mirage" 10 | alias "nuke" "map de_nuke" 11 | alias "overpass" "map de_overpass" 12 | alias "seaside" "map de_seaside" 13 | alias "season" "map de_season" 14 | alias "train" "map de_tain" 15 | alias "vertigo" "map de_vertigo" 16 | 17 | // Crosshair configuration 18 | // Share code: CSGO-nfKNS-ukbGq-pMUHZ-xn36K-7KL9P 19 | cl_crosshair_drawoutline "1" 20 | cl_crosshair_dynamic_maxdist_splitratio "0.35" 21 | cl_crosshair_dynamic_splitalpha_innermod "1" 22 | cl_crosshair_dynamic_splitalpha_outermod "0.5" 23 | cl_crosshair_dynamic_splitdist "7" 24 | cl_crosshair_outlinethickness "0.500000" 25 | cl_crosshair_sniper_show_normal_inaccuracy "0" 26 | cl_crosshair_sniper_width "1" 27 | cl_crosshairalpha "160.000000" 28 | cl_crosshaircolor "5" 29 | cl_crosshaircolor_b "255" 30 | cl_crosshaircolor_g "255" 31 | cl_crosshaircolor_r "0" 32 | cl_crosshairdot "0" 33 | cl_crosshairgap "-1.055771" 34 | cl_crosshairgap_useweaponvalue "0" 35 | cl_crosshairscale "0" 36 | cl_crosshairsize "0.9" 37 | cl_crosshairstyle "4" 38 | cl_crosshairthickness "0.100000" 39 | cl_crosshairusealpha "1" 40 | cl_fixedcrosshairgap "3" 41 | 42 | // Miscellaneous 43 | cl_allowdownload "1" 44 | cl_autowepswitch "0" 45 | cl_autohelp "0" 46 | cl_disablehtmlmotd "1" 47 | cl_downloadfilter "0" 48 | cl_showhelp "0" 49 | cl_forcepreload "1" 50 | cl_lagcompensation "1" 51 | cl_show_clan_in_death_notice "1" 52 | cl_showfps "0" 53 | cl_teammate_colors_show "1" 54 | cl_use_opens_buy_menu "0" 55 | con_filter_text "damage" 56 | con_filter_enable "2" 57 | ds_get_newest_subscribed_files "1" 58 | gameinstructor_enable "0" 59 | hud_showtargetid "1" 60 | mm_dedicated_search_maxping "85" 61 | r_drawtracers_firstperson "1" 62 | 63 | // Mouse 64 | m_rawinput "1" 65 | m_mouseaccel1 "0" 66 | m_mouseaccel2 "0" 67 | // m_mousespeed "0" 68 | // sensitivity "2.00" 69 | // zoom_sensitivity_ratio_mouse "1.0" 70 | 71 | // Radar 72 | cl_radar_always_centered "0" 73 | cl_radar_scale "0.3" 74 | cl_hud_radar_scale "1.15" 75 | cl_radar_icon_scale_min "0.75" 76 | cl_radar_rotate "1" 77 | cl_radar_square_with_scoreboard "1" 78 | 79 | // Hud 80 | hud_scaling ".88" 81 | cl_hud_healthammo_style "1" 82 | cl_hud_color "5" 83 | cl_hud_background_alpha "0" 84 | cl_showloadout 1 85 | 86 | // Show damage given/taken in top left of screen 87 | developer "1" 88 | con_filter_text "Damage" 89 | con_filter_text_out "Player:" 90 | con_filter_enable "2" 91 | 92 | // Rates and interpolation + net graph 93 | net_graph "1" 94 | net_graphpos "2" 95 | net_graphheight "0" 96 | net_graphproportionalfont "0" 97 | cl_cmdrate "128" 98 | cl_interp "0" 99 | cl_interp_ratio "1" 100 | cl_updaterate "128" 101 | rate "128000" 102 | 103 | // Viewmodel Position 104 | //viewmodel_fov "66" 105 | viewmodel_offset_x "2" 106 | viewmodel_offset_y "-1" 107 | viewmodel_offset_z "-1.5" 108 | cl_bob_lower_amt "5" 109 | cl_bobamt_lat ".1" 110 | cl_bobamt_vert ".1" 111 | cl_bobcycle ".10" 112 | cl_viewmodel_shift_right_amt "0.5" 113 | cl_viewmodel_shift_left_amt "0.5" 114 | 115 | // Practice command 116 | alias practice "sv_cheats 1; sv_infinite_ammo 2; sv_grenade_trajectory 1; mp_buy_anywhere 1; mp_roundtime 60; mp_roundtime_defuse 60; mp_roundtime_hostage 60; bot_zombie 1; bot_freeze 1; bot_stop 1; mp_autoteambalance 0; impulse 101; mp_warmup_end; mp_buytime 900000; sv_regeneration_force_on 1; sv_showimpacts 1;ammo_grenade_limit_total 6; give weapon_flashbang; give weapon_decoy; give weapon_smokegrenade; give weapon_incgrenade; give weapon_hegrenade" 117 | 118 | // Swap hands 119 | bind v "toggle cl_righthand 0 1" 120 | 121 | // Jump throw with ALT (hold left mouse for grenade, then press alt) 122 | alias "+jumpthrow" "+jump;-attack" 123 | alias "-jumpthrow" "-jump" 124 | bind alt "+jumpthrow" 125 | 126 | // Write settings to main configuration file 127 | host_writeconfig 128 | -------------------------------------------------------------------------------- /bash/bash_aliases: -------------------------------------------------------------------------------- 1 | # ~/.bash_aliases: executed by bash for alias configurations. 2 | 3 | # Grep aliases 4 | alias grep='grep --color=auto' 5 | alias grepi='grep -i --color=auto' 6 | alias fgrep='fgrep --color=auto' 7 | alias egrep='egrep --color=auto' 8 | 9 | # Shell exit alias 10 | alias q='exit' 11 | alias :q='exit' 12 | 13 | # Nvim and vim aliases 14 | if [[ $(command -v nvim) ]]; then 15 | alias v='nvim' 16 | alias vi='nvim' 17 | alias vim='nvim' 18 | alias nvi='nvim' 19 | else 20 | alias v='vim' 21 | alias vi='vim' 22 | alias nvi='vim' 23 | fi 24 | 25 | # Eza/exa elias 26 | if [[ $(command -v nvim) ]]; then 27 | alias e='eza' 28 | alias ela='eza -lab --git' 29 | else 30 | alias e='exa' 31 | alias ela='exa -lab --git' 32 | fi 33 | 34 | # Useful list aliases 35 | alias la='ls -al' 36 | 37 | # Ranger alias 38 | alias r='ranger' 39 | 40 | # Tmux alias 41 | alias tmux='tmux -u -2' 42 | alias tl='tmux -u -2 ls' 43 | function ta { 44 | tmux -u -2 attach $@ || tmux -u -2 45 | } 46 | function tn { 47 | tmux -u -2 new -s $@ || tmux -u -2 48 | } 49 | 50 | # Make a directory and change to it 51 | function mkcd { 52 | # Make the directory 53 | mkdir $@ 54 | 55 | # Change to the newly created directory 56 | cd $@ 57 | } 58 | 59 | # Pass aliases 60 | alias p="prs show --verbose --timeout 20" 61 | alias pc="prs copy" 62 | 63 | # Git aliases 64 | alias g='git' 65 | alias ga='git add' 66 | alias ga.='git add .' 67 | alias gap='git add --patch' 68 | alias gapn='git add --intent-to-add . && git add --patch' 69 | alias gb='git branch' 70 | alias gc='git commit' 71 | alias gca='git commit --amend' 72 | alias gp='git push' 73 | alias gpf='git push --force-with-lease' 74 | alias gs='git status' 75 | alias gd='git diff' 76 | alias gl='git log' 77 | alias gll="git -c core.pager='less -p^commit.*$' log -p -M -w --stat --pretty=fuller --show-notes" 78 | alias glg='git log --pretty="format:%Cred%h %Cblue%d %Cgreen%s %Creset%an %ar" --graph' 79 | alias gf='git fetch' 80 | alias gfm='git pull' 81 | alias gr='git rebase' 82 | alias grc='git rebase --continue' 83 | alias grr='git reset' 84 | alias grrh='git reset --hard' 85 | alias gt='git tag' 86 | alias git_clean_repo='git clean -dfx' 87 | 88 | # Docker aliases 89 | alias d='docker' 90 | alias dc='docker-compose' 91 | 92 | # Python shenanigans 93 | alias venvactivate="source venv/bin/activate" 94 | alias mkvenv3.10="pyenv local 3.10 && python3 -m venv venv && venvactivate && pip3 install -U pip" 95 | 96 | # Clipboard aliases 97 | if [[ `uname -s` == "Darwin" ]]; then 98 | alias getclip='pbpaste' 99 | alias setclip='pbcopy' 100 | else 101 | alias getclip='xclip -selection c -o' 102 | alias setclip='xclip -selection c' 103 | fi 104 | 105 | # Cargo aliases 106 | alias cr='cargo run' 107 | alias crr='cargo run --release' 108 | alias cb='cargo build' 109 | alias cbr='cargo build --release' 110 | alias cc='cargo check' 111 | alias ct='cargo test' 112 | alias cu='cargo update' 113 | 114 | # Free memory cache and swap 115 | alias drop_cache='sudo sh -c "echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a"' 116 | 117 | # Add an "alert" alias for long running commands. 118 | # Usage example: $ sleep 5; alert 119 | alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' 120 | 121 | # Thefuck aliases 122 | if [ -e "/usr/bin/thefuck" ]; then 123 | eval "$(thefuck --alias)" 124 | fi 125 | 126 | # Create the composer alias if it exists 127 | if [ -e "/usr/local/bin/composer.phar" ]; then 128 | alias composer="php /usr/local/bin/composer.phar" 129 | fi 130 | 131 | # Aliases to hide and show hidden files on macOS 132 | if [[ `uname -s` == "Darwin" ]]; then 133 | alias showFiles='echo "Showing files..."; defaults write com.apple.finder AppleShowAllFiles YES; sleep 1; killall Finder; /System/Library/CoreServices/Finder.app; echo "Done"' 134 | alias hideFiles='echo "Hiding files..."; defaults write com.apple.finder AppleShowAllFiles NO; sleep 1; killall Finder /System/Library/CoreServices/Finder.app; echo "Done"' 135 | fi 136 | 137 | alias stripcolors='sed "s/\x1B\[\([0-9]\{1,2\}\(;[0-9]\{1,2\}\)\?\)\?[mGK]//g"' 138 | -------------------------------------------------------------------------------- /gamemode/gamemode.ini: -------------------------------------------------------------------------------- 1 | [general] 2 | ; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance 3 | reaper_freq=5 4 | 5 | ; The desired governor is used when entering GameMode instead of "performance" 6 | desiredgov=performance 7 | ; The default governor is used when leaving GameMode instead of restoring the original value 8 | ;defaultgov=powersave 9 | 10 | ; The iGPU desired governor is used when the integrated GPU is under heavy load 11 | igpu_desiredgov=powersave 12 | ; Threshold to use to decide when the integrated GPU is under heavy load. 13 | ; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the 14 | ; integraged GPU is under heavy enough load to justify switching to 15 | ; igpu_desiredgov. Set this to -1 to disable all iGPU checking and always 16 | ; use desiredgov for games. 17 | igpu_power_threshold=0.3 18 | 19 | ; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently 20 | ; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable 21 | ; with 4 or more CPU cores. "on" will always enable. Defaults to "off". 22 | softrealtime=off 23 | 24 | ; GameMode can renice game processes. You can put any value between 0 and 20 here, the value 25 | ; will be negated and applied as a nice value (0 means no change). Defaults to 0. 26 | renice=5 27 | 28 | ; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value 29 | ; between 0 and 7 here (with 0 being highest priority), or one of the special values 30 | ; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority), 31 | ; currently, only the best-effort class is supported thus you cannot set it here 32 | ioprio=0 33 | 34 | ; Sets whether gamemode will inhibit the screensaver when active 35 | ; Defaults to 1 36 | inhibit_screensaver=1 37 | 38 | [filter] 39 | ; If "whitelist" entry has a value(s) 40 | ; gamemode will reject anything not in the whitelist 41 | ;whitelist=RiseOfTheTombRaider 42 | 43 | ; Gamemode will always reject anything in the blacklist 44 | ;blacklist=HalfLife3 45 | ; glxgears 46 | 47 | [gpu] 48 | ; Here Be Dragons! 49 | ; Warning: Use these settings at your own risk 50 | ; Any damage to hardware incurred due to this feature is your responsibility and yours alone 51 | ; It is also highly recommended you try these settings out first manually to find the sweet spots 52 | 53 | ; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks 54 | ;apply_gpu_optimisations=0 55 | 56 | ; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ 57 | ;gpu_device=0 58 | 59 | ; Nvidia specific settings 60 | ; Requires the coolbits extension activated in nvidia-xconfig 61 | ; This corresponds to the desired GPUPowerMizerMode 62 | ; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2 63 | ; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h 64 | ;nv_powermizer_mode=1 65 | 66 | ; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer 67 | ; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values 68 | ;nv_core_clock_mhz_offset=0 69 | ;nv_mem_clock_mhz_offset=0 70 | 71 | ; AMD specific settings 72 | ; Requires a relatively up to date AMDGPU kernel module 73 | ; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring 74 | ; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures 75 | ; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now 76 | ;amd_performance_level=high 77 | 78 | [supervisor] 79 | ; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for 80 | ; The whilelist and blacklist control which supervisor programs are allowed to make the above requests 81 | ;supervisor_whitelist= 82 | ;supervisor_blacklist= 83 | 84 | ; In case you want to allow a supervisor to take full control of gamemode, this option can be set 85 | ; This will only allow gamemode clients to be registered by using the above functions by a supervisor client 86 | ;require_supervisor=0 87 | 88 | [custom] 89 | ; Custom scripts (executed using the shell) when gamemode starts and ends 90 | ;start=notify-send "GameMode started" 91 | ; /home/me/bin/stop_ethmining.sh 92 | 93 | ;end=notify-send "GameMode ended" 94 | ; /home/me/bin/start_ethmining.sh 95 | 96 | ; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time. 97 | ;script_timeout=10 98 | -------------------------------------------------------------------------------- /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'. 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 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. 14 | ; autosens = 1 15 | ; overshoot = 20 16 | autosens = 1 17 | overshoot = 45 18 | 19 | # Manual sensitivity in %. Autosens must be turned off for this to take effect. 20 | # 200 means double height. Accepts only non-negative values. 21 | ; sensitivity = 100 22 | 23 | # The number of bars (0-200). 0 sets it to auto (fill up console). 24 | # Bars' width and space between bars in number of characters. 25 | ; bars = 0 26 | ; bar_width = 2 27 | ; bar_spacing = 1 28 | 29 | 30 | # Lower and higher cutoff frequencies for lowest and highest bars 31 | # the bandwidth of the visualizer. 32 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 33 | # Cava will automatically increase the higher cutoff if a too low band is specified. 34 | ; lower_cutoff_freq = 50 35 | ; higher_cutoff_freq = 10000 36 | 37 | 38 | 39 | [input] 40 | 41 | # Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'. 42 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 43 | # 44 | # All input methods uses the same config variable 'source' 45 | # to define where it should get the audio. 46 | # 47 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 48 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 49 | # 50 | # For alsa 'source' will be the capture device. 51 | # For fifo 'source' will be the path to fifo-file. 52 | ; method = pulse 53 | ; source = auto 54 | 55 | ; method = alsa 56 | ; source = hw:Loopback,1 57 | 58 | ; method = fifo 59 | ; source = /tmp/mpd.fifo 60 | 61 | 62 | 63 | [output] 64 | 65 | # Ouput method. Can be 'ncurses', 'noncurses' or 'raw'. 66 | # 'noncurses' is for systems that does not suport ncurses. 67 | # 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications. 68 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 69 | ; method = ncurses 70 | 71 | # Visual styles. Can be 'stereo' or 'mono'. 72 | # 'stereo' mirrors both channels with low frequencies in center. 73 | # 'mono' averages both channels and outputs left to right lowest to highest frequencies. 74 | ; style = stereo 75 | 76 | # Raw output target. A fifo will be created if target does not exist. 77 | ; raw_target = /dev/stdout 78 | 79 | # Raw data format. Can be 'binary' or 'ascii'. 80 | ; data_format = binary 81 | 82 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 83 | ; bit_format = 16bit 84 | 85 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 86 | ; ascii_max_range = 1000 87 | 88 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 89 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 90 | ; bar_delimiter = 59 91 | ; frame_delimiter = 10 92 | 93 | 94 | 95 | [color] 96 | 97 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 98 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a 99 | # terminal that can change color definitions such as Gnome-terminal or rxvt. 100 | ; background = black 101 | ; foreground = cyan 102 | 103 | # Gradient mode, only hex defined colors are supported, background must also be defined in hex 104 | # or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will 105 | # not able to restore color definitions on exit, simply restart your terminal to restore colors. 106 | ; gradient = 0 107 | ; gradient_color_1 = '#0099ff' 108 | ; gradient_color_2 = '#ff3399' 109 | gradient = 1 110 | gradient_color_1 = '#0099ff' 111 | gradient_color_2 = '#ff3399' 112 | 113 | 114 | 115 | [smoothing] 116 | 117 | # Multiplier for the integral smoothing calculations. Takes values from 0-0.99. 118 | # Higher values means smoother, but less precise. Set to 0 to disable. 119 | ; integral = 0.7 120 | 121 | # Disables or enables the so-called "Monstercat smoothing". Set to 0 to disable. 122 | ; monstercat = 1 123 | 124 | # Set gravity multiplier for "drop off". Higher values means bars will drop faster. 125 | # Accepts only non-negative values. 0.5 means half gravity, 2 means double. Set to 0 to disable "drop off". 126 | ; gravity = 1 127 | 128 | 129 | # In bar height, bars that would have been lower that this will not be drawn. 130 | ; ignore = 0 131 | 132 | 133 | [eq] 134 | 135 | # This one is tricky. You can have as much keys as you want. 136 | # Remember to uncomment more then one key! More keys = more precision. 137 | # Look at readme.md on github for further explanations and examples. 138 | ; 1 = 1 # bass 139 | ; 2 = 1 140 | ; 3 = 1 # midtone 141 | ; 4 = 1 142 | ; 5 = 1 # treble 143 | 144 | -------------------------------------------------------------------------------- /awesome/themes/default/theme.lua: -------------------------------------------------------------------------------- 1 | --------------------------- 2 | -- Default awesome theme -- 3 | --------------------------- 4 | 5 | local theme = {} 6 | 7 | theme.font = "sans 8" 8 | 9 | theme.bg_normal = "#222222" 10 | theme.bg_focus = "#535d6c" 11 | theme.bg_urgent = "#ff0000" 12 | theme.bg_minimize = "#444444" 13 | theme.bg_systray = theme.bg_normal 14 | 15 | theme.fg_normal = "#aaaaaa" 16 | theme.fg_focus = "#ffffff" 17 | theme.fg_urgent = "#ffffff" 18 | theme.fg_minimize = "#ffffff" 19 | 20 | theme.useless_gap = 0 21 | theme.border_width = 1 22 | theme.border_normal = "#000000" 23 | theme.border_focus = "#535d6c" 24 | theme.border_marked = "#91231c" 25 | 26 | -- There are other variable sets 27 | -- overriding the default one when 28 | -- defined, the sets are: 29 | -- taglist_[bg|fg]_[focus|urgent|occupied|empty] 30 | -- tasklist_[bg|fg]_[focus|urgent] 31 | -- titlebar_[bg|fg]_[normal|focus] 32 | -- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] 33 | -- mouse_finder_[color|timeout|animate_timeout|radius|factor] 34 | -- Example: 35 | --theme.taglist_bg_focus = "#ff0000" 36 | 37 | -- Display the taglist squares 38 | theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png" 39 | theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png" 40 | 41 | -- Variables set for theming the menu: 42 | -- menu_[bg|fg]_[normal|focus] 43 | -- menu_[border_color|border_width] 44 | theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png" 45 | theme.menu_height = 15 46 | theme.menu_width = 100 47 | 48 | -- You can add as many variables as 49 | -- you wish and access them by using 50 | -- beautiful.variable in your rc.lua 51 | --theme.bg_widget = "#cc0000" 52 | 53 | -- Define the image to load 54 | theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png" 55 | theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png" 56 | 57 | theme.titlebar_minimize_button_normal = "/usr/share/awesome/themes/default/titlebar/minimize_normal.png" 58 | theme.titlebar_minimize_button_focus = "/usr/share/awesome/themes/default/titlebar/minimize_focus.png" 59 | 60 | theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png" 61 | theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png" 62 | theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png" 63 | theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png" 64 | 65 | theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png" 66 | theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png" 67 | theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png" 68 | theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png" 69 | 70 | theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png" 71 | theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png" 72 | theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png" 73 | theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png" 74 | 75 | theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png" 76 | theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png" 77 | theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png" 78 | theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png" 79 | 80 | theme.wallpaper = "/usr/share/awesome/themes/default/background.png" 81 | 82 | -- You can use your own layout icons like this: 83 | theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png" 84 | theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png" 85 | theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png" 86 | theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png" 87 | theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png" 88 | theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png" 89 | theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png" 90 | theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png" 91 | theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png" 92 | theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png" 93 | theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png" 94 | theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png" 95 | theme.layout_cornernw = "/usr/share/awesome/themes/default/layouts/cornernww.png" 96 | theme.layout_cornerne = "/usr/share/awesome/themes/default/layouts/cornernew.png" 97 | theme.layout_cornersw = "/usr/share/awesome/themes/default/layouts/cornersww.png" 98 | theme.layout_cornerse = "/usr/share/awesome/themes/default/layouts/cornersew.png" 99 | 100 | theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png" 101 | 102 | -- Define the icon theme for application icons. If not set then the icons 103 | -- from /usr/share/icons and /usr/share/icons/hicolor will be used. 104 | theme.icon_theme = nil 105 | 106 | return theme 107 | 108 | -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 109 | -------------------------------------------------------------------------------- /hosts/blacklist.txt: -------------------------------------------------------------------------------- 1 | # My personal blacklist 2 | 3 | # Facebook 4 | 127.0.0.1 0-act.channel.facebook.com 5 | 127.0.0.1 0-edge-chat.facebook.com 6 | 127.0.0.1 1-act.channel.facebook.com 7 | 127.0.0.1 1-edge-chat.facebook.com 8 | 127.0.0.1 2-act.channel.facebook.com 9 | 127.0.0.1 2-edge-chat.facebook.com 10 | 127.0.0.1 3-act.channel.facebook.com 11 | 127.0.0.1 3-edge-chat.facebook.com 12 | 127.0.0.1 4-act.channel.facebook.com 13 | 127.0.0.1 4-edge-chat.facebook.com 14 | 127.0.0.1 5-act.channel.facebook.com 15 | 127.0.0.1 5-edge-chat.facebook.com 16 | 127.0.0.1 6-act.channel.facebook.com 17 | 127.0.0.1 6-edge-chat.facebook.com 18 | 127.0.0.1 act.channel.facebook.com 19 | 127.0.0.1 api-read.facebook.com 20 | 127.0.0.1 api.ak.facebook.com 21 | 127.0.0.1 api.connect.facebook.com 22 | 127.0.0.1 api.facebook.com 23 | 127.0.0.1 app.facebook.com 24 | 127.0.0.1 apps.facebook.com 25 | 127.0.0.1 ar-ar.facebook.com 26 | 127.0.0.1 attachment.fbsbx.com 27 | 127.0.0.1 attachments.facebook.com 28 | 127.0.0.1 b-api.facebook.com 29 | 127.0.0.1 b-graph.facebook.com 30 | 127.0.0.1 b.static.ak.facebook.com 31 | 127.0.0.1 b.static.ak.fbcdn.net 32 | 127.0.0.1 badge.facebook.com 33 | 127.0.0.1 beta-chat-01-05-ash3.facebook.com 34 | 127.0.0.1 bigzipfiles.facebook.com 35 | 127.0.0.1 blog.facebook.com 36 | 127.0.0.1 channel-ecmp-05-ash3.facebook.com 37 | 127.0.0.1 channel-staging-ecmp-05-ash3.facebook.com 38 | 127.0.0.1 channel-testing-ecmp-05-ash3.facebook.com 39 | 127.0.0.1 check4.facebook.com 40 | 127.0.0.1 check6.facebook.com 41 | 127.0.0.1 code.facebook.com 42 | 127.0.0.1 connect.facebook.com 43 | 127.0.0.1 connect.facebook.net 44 | 127.0.0.1 d.facebook.com 45 | 127.0.0.1 de-de.facebook.com 46 | 127.0.0.1 developers.facebook.com 47 | 127.0.0.1 edge-chat.facebook.com 48 | 127.0.0.1 ent-a.xx.fbcdn.net 49 | 127.0.0.1 ent-b.xx.fbcdn.net 50 | 127.0.0.1 ent-c.xx.fbcdn.net 51 | 127.0.0.1 ent-d.xx.fbcdn.net 52 | 127.0.0.1 ent-e.xx.fbcdn.net 53 | 127.0.0.1 es-la.facebook.com 54 | 127.0.0.1 external.ak.fbcdn.net 55 | 127.0.0.1 facebook.com 56 | 127.0.0.1 facebook.de 57 | 127.0.0.1 facebook.fr 58 | 127.0.0.1 fb.me 59 | 127.0.0.1 fbcdn-photos-a.akamaihd.net 60 | 127.0.0.1 fbcdn-photos-e-a.akamaihd.net 61 | 127.0.0.1 fbcdn-profile-a.akamaihd.net 62 | 127.0.0.1 fbcdn-sphotos-a-a.akamaihd.net 63 | 127.0.0.1 fbcdn-sphotos-a.akamaihd.net 64 | 127.0.0.1 fbcdn-sphotos-b-a.akamaihd.net 65 | 127.0.0.1 fbcdn-sphotos-c-a.akamaihd.net 66 | 127.0.0.1 fbcdn-sphotos-d-a.akamaihd.net 67 | 127.0.0.1 fbcdn-sphotos-e-a.akamaihd.net 68 | 127.0.0.1 fbcdn-sphotos-f-a.akamaihd.net 69 | 127.0.0.1 fbcdn-sphotos-g-a.akamaihd.net 70 | 127.0.0.1 fbcdn-sphotos-h-a.akamaihd.net 71 | 127.0.0.1 fbcdn-video-a-a.akamaihd.net 72 | 127.0.0.1 fbcdn-video-b-a.akamaihd.net 73 | 127.0.0.1 fbcdn-video-c-a.akamaihd.net 74 | 127.0.0.1 fbcdn-video-d-a.akamaihd.net 75 | 127.0.0.1 fbcdn-video-e-a.akamaihd.net 76 | 127.0.0.1 fbcdn-video-f-a.akamaihd.net 77 | 127.0.0.1 fbcdn-video-g-a.akamaihd.net 78 | 127.0.0.1 fbcdn-video-h-a.akamaihd.net 79 | 127.0.0.1 fbcdn-video-i-a.akamaihd.net 80 | 127.0.0.1 fbcdn-video-j-a.akamaihd.net 81 | 127.0.0.1 fbcdn-video-k-a.akamaihd.net 82 | 127.0.0.1 fbcdn-video-l-a.akamaihd.net 83 | 127.0.0.1 fbcdn-video-m-a.akamaihd.net 84 | 127.0.0.1 fbcdn-video-n-a.akamaihd.net 85 | 127.0.0.1 fbcdn-video-o-a.akamaihd.net 86 | 127.0.0.1 fbcdn-video-p-a.akamaihd.net 87 | 127.0.0.1 fbcdn-vthumb-a.akamaihd.net 88 | 127.0.0.1 fbcdn.com 89 | 127.0.0.1 fbcdn.net 90 | 127.0.0.1 fbexternal-a.akamaihd.net 91 | 127.0.0.1 fbstatic-a.akamaihd.net 92 | 127.0.0.1 fr-fr.facebook.com 93 | 127.0.0.1 graph.facebook.com 94 | 127.0.0.1 hi-in.facebook.com 95 | 127.0.0.1 inyour-slb-01-05-ash3.facebook.com 96 | 127.0.0.1 it-it.facebook.com 97 | 127.0.0.1 ja-jp.facebook.com 98 | 127.0.0.1 login.facebook.com 99 | 127.0.0.1 m.facebook.com 100 | 127.0.0.1 messages-facebook.com 101 | 127.0.0.1 mqtt.facebook.com 102 | 127.0.0.1 newsroom.fb.com 103 | 127.0.0.1 orcart.facebook.com 104 | 127.0.0.1 origincache-ai-01-05-ash3.fbcdn.net 105 | 127.0.0.1 origincache-starfacebook-ai-01-05-ash3.facebook.com 106 | 127.0.0.1 photos-a.ak.fbcdn.net 107 | 127.0.0.1 photos-b.ak.fbcdn.net 108 | 127.0.0.1 photos-c.ak.fbcdn.net 109 | 127.0.0.1 photos-d.ak.fbcdn.net 110 | 127.0.0.1 photos-e.ak.fbcdn.net 111 | 127.0.0.1 photos-f.ak.fbcdn.net 112 | 127.0.0.1 photos-g.ak.fbcdn.net 113 | 127.0.0.1 photos-h.ak.fbcdn.net 114 | 127.0.0.1 profile.ak.facebook.com 115 | 127.0.0.1 profile.ak.fbcdn.net 116 | 127.0.0.1 pt-br.facebook.com 117 | 127.0.0.1 s-external.ak.fbcdn.net 118 | 127.0.0.1 s-static.ak.facebook.com 119 | 127.0.0.1 s-static.ak.fbcdn.net 120 | 127.0.0.1 s-static.facebook.com 121 | 127.0.0.1 scontent-a-lax.xx.fbcdn.net 122 | 127.0.0.1 scontent-a-sin.xx.fbcdn.net 123 | 127.0.0.1 scontent-a.xx.fbcdn.net 124 | 127.0.0.1 scontent-b-lax.xx.fbcdn.net 125 | 127.0.0.1 scontent-b-sin.xx.fbcdn.net 126 | 127.0.0.1 scontent-b.xx.fbcdn.net 127 | 127.0.0.1 scontent-c.xx.fbcdn.net 128 | 127.0.0.1 scontent-d.xx.fbcdn.net 129 | 127.0.0.1 scontent-e.xx.fbcdn.net 130 | 127.0.0.1 scontent-mxp.xx.fbcdn.net 131 | 127.0.0.1 scontent-sjc2-1.xx.fbcdn.net 132 | 127.0.0.1 scontent.xx.fbcdn.net 133 | 127.0.0.1 secure-profile.facebook.com 134 | 127.0.0.1 secure.facebook.com 135 | 127.0.0.1 sphotos-a.xx.fbcdn.net 136 | 127.0.0.1 ssl.connect.facebook.com 137 | 127.0.0.1 ssl.facebook.com 138 | 127.0.0.1 star.c10r.facebook.com 139 | 127.0.0.1 star.facebook.com 140 | 127.0.0.1 static.ak.connect.facebook.com 141 | 127.0.0.1 static.ak.facebook.com 142 | 127.0.0.1 static.ak.fbcdn.net 143 | 127.0.0.1 static.thefacebook.com 144 | 127.0.0.1 staticxx.facebook.com 145 | 127.0.0.1 touch.facebook.com 146 | 127.0.0.1 upload.facebook.com 147 | 127.0.0.1 video.xx.fbcdn.net 148 | 127.0.0.1 vpn.tfbnw.net 149 | 127.0.0.1 vthumb.ak.fbcdn.net 150 | 127.0.0.1 vupload.facebook.com 151 | 127.0.0.1 vupload2.vvv.facebook.com 152 | 127.0.0.1 web.facebook.com 153 | 127.0.0.1 www.connect.facebook.net 154 | 127.0.0.1 www.facebook.com 155 | 127.0.0.1 www.facebook.de 156 | 127.0.0.1 www.facebook.fr 157 | 127.0.0.1 www.fbcdn.com 158 | 127.0.0.1 www.fbcdn.net 159 | 127.0.0.1 www.login.facebook.com 160 | 127.0.0.1 zh-cn.facebook.com 161 | 127.0.0.1 zh-tw.facebook.com 162 | 163 | # Sketchy domains 164 | 127.0.0.1 360.cn 165 | 127.0.0.1 360safe.com 166 | 127.0.0.1 aicleaner.shouji.360cn 167 | 127.0.0.1 care.help.360.cn 168 | 127.0.0.1 eul.s.360.cn 169 | 127.0.0.1 g.s.360.cn 170 | 127.0.0.1 mclean.cloud.360safe.com 171 | 127.0.0.1 mclean.f.360.cn 172 | 127.0.0.1 mclean.lato.cloud.360safe.com 173 | 127.0.0.1 mclean.uk.cloud.360safe.com 174 | 127.0.0.1 mvconf.cloud.360safe.com 175 | 127.0.0.1 mvconf.f.360.cn 176 | 127.0.0.1 mvconf.lato.cloud.360safe.com 177 | 127.0.0.1 mvconf.uk.cloud.360safe.com 178 | 127.0.0.1 p.s.360.cn 179 | -------------------------------------------------------------------------------- /ranger/scope.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -o noclobber -o noglob -o nounset -o pipefail 4 | IFS=$'\n' 5 | 6 | # If the option `use_preview_script` is set to `true`, 7 | # then this script will be called and its output will be displayed in ranger. 8 | # ANSI color codes are supported. 9 | # STDIN is disabled, so interactive scripts won't work properly 10 | 11 | # This script is considered a configuration file and must be updated manually. 12 | # It will be left untouched if you upgrade ranger. 13 | 14 | # Meanings of exit codes: 15 | # code | meaning | action of ranger 16 | # -----+------------+------------------------------------------- 17 | # 0 | success | Display stdout as preview 18 | # 1 | no preview | Display no preview at all 19 | # 2 | plain text | Display the plain content of the file 20 | # 3 | fix width | Don't reload when width changes 21 | # 4 | fix height | Don't reload when height changes 22 | # 5 | fix both | Don't ever reload 23 | # 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview 24 | # 7 | image | Display the file directly as an image 25 | 26 | # Script arguments 27 | FILE_PATH="${1}" # Full path of the highlighted file 28 | PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters) 29 | PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters) 30 | IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview 31 | PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise. 32 | 33 | FILE_EXTENSION="${FILE_PATH##*.}" 34 | FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]') 35 | 36 | # Settings 37 | HIGHLIGHT_SIZE_MAX=262143 # 256KiB 38 | HIGHLIGHT_TABWIDTH=8 39 | HIGHLIGHT_STYLE='base16-atelier-dune' 40 | PYGMENTIZE_STYLE='autumn' 41 | 42 | 43 | handle_extension() { 44 | case "${FILE_EXTENSION_LOWER}" in 45 | # Archive 46 | a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ 47 | rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) 48 | atool --list -- "${FILE_PATH}" && exit 5 49 | bsdtar --list --file "${FILE_PATH}" && exit 5 50 | exit 1;; 51 | rar) 52 | # Avoid password prompt by providing empty password 53 | unrar lt -p- -- "${FILE_PATH}" && exit 5 54 | exit 1;; 55 | 7z) 56 | # Avoid password prompt by providing empty password 57 | 7z l -p -- "${FILE_PATH}" && exit 5 58 | exit 1;; 59 | 60 | # PDF 61 | pdf) 62 | # Preview as text conversion 63 | pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | fmt -w ${PV_WIDTH} && exit 5 64 | mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | fmt -w ${PV_WIDTH} && exit 5 65 | exiftool "${FILE_PATH}" && exit 5 66 | exit 1;; 67 | 68 | # BitTorrent 69 | torrent) 70 | transmission-show -- "${FILE_PATH}" && exit 5 71 | exit 1;; 72 | 73 | # OpenDocument 74 | odt|ods|odp|sxw) 75 | # Preview as text conversion 76 | odt2txt "${FILE_PATH}" && exit 5 77 | exit 1;; 78 | 79 | # HTML 80 | htm|html|xhtml) 81 | # Preview as text conversion 82 | w3m -dump "${FILE_PATH}" && exit 5 83 | lynx -dump -- "${FILE_PATH}" && exit 5 84 | elinks -dump "${FILE_PATH}" && exit 5 85 | ;; # Continue with next handler on failure 86 | esac 87 | } 88 | 89 | handle_image() { 90 | local mimetype="${1}" 91 | case "${mimetype}" in 92 | # SVG 93 | # image/svg+xml) 94 | # convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6 95 | # exit 1;; 96 | 97 | # Image 98 | image/*) 99 | local orientation 100 | orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )" 101 | # If orientation data is present and the image actually 102 | # needs rotating ("1" means no rotation)... 103 | if [[ -n "$orientation" && "$orientation" != 1 ]]; then 104 | # ...auto-rotate the image according to the EXIF data. 105 | convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6 106 | fi 107 | 108 | # `w3mimgdisplay` will be called for all images (unless overriden as above), 109 | # but might fail for unsupported types. 110 | exit 7;; 111 | 112 | # Video 113 | # video/*) 114 | # # Thumbnail 115 | # ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6 116 | # exit 1;; 117 | # PDF 118 | # application/pdf) 119 | # pdftoppm -f 1 -l 1 \ 120 | # -scale-to-x 1920 \ 121 | # -scale-to-y -1 \ 122 | # -singlefile \ 123 | # -jpeg -tiffcompression jpeg \ 124 | # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \ 125 | # && exit 6 || exit 1;; 126 | 127 | # Preview archives using the first image inside. 128 | # (Very useful for comic book collections for example.) 129 | # application/zip|application/x-rar|application/x-7z-compressed|\ 130 | # application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar) 131 | # local fn=""; local fe="" 132 | # local zip=""; local rar=""; local tar=""; local bsd="" 133 | # case "${mimetype}" in 134 | # application/zip) zip=1 ;; 135 | # application/x-rar) rar=1 ;; 136 | # application/x-7z-compressed) ;; 137 | # *) tar=1 ;; 138 | # esac 139 | # { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \ 140 | # { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \ 141 | # { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \ 142 | # { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return 143 | # 144 | # fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \ 145 | # [ print(l, end='') for l in sys.stdin if \ 146 | # (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\ 147 | # sort -V | head -n 1) 148 | # [ "$fn" = "" ] && return 149 | # [ "$bsd" ] && fn=$(printf '%b' "$fn") 150 | # 151 | # [ "$tar" ] && tar --extract --to-stdout \ 152 | # --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6 153 | # fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g') 154 | # [ "$bsd" ] && bsdtar --extract --to-stdout \ 155 | # --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6 156 | # [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}" 157 | # [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \ 158 | # "${IMAGE_CACHE_PATH}" && exit 6 159 | # [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \ 160 | # "${IMAGE_CACHE_PATH}" && exit 6 161 | # [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}" 162 | # ;; 163 | esac 164 | } 165 | 166 | handle_mime() { 167 | local mimetype="${1}" 168 | case "${mimetype}" in 169 | # Text 170 | text/* | */xml) 171 | # Syntax highlight 172 | if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then 173 | exit 2 174 | fi 175 | if [[ "$( tput colors )" -ge 256 ]]; then 176 | local pygmentize_format='terminal256' 177 | local highlight_format='xterm256' 178 | else 179 | local pygmentize_format='terminal' 180 | local highlight_format='ansi' 181 | fi 182 | highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \ 183 | --style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5 184 | # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5 185 | exit 2;; 186 | 187 | # Image 188 | image/*) 189 | # Preview as text conversion 190 | # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4 191 | exiftool "${FILE_PATH}" && exit 5 192 | exit 1;; 193 | 194 | # Video and audio 195 | video/* | audio/*) 196 | mediainfo "${FILE_PATH}" && exit 5 197 | exiftool "${FILE_PATH}" && exit 5 198 | exit 1;; 199 | esac 200 | } 201 | 202 | handle_fallback() { 203 | echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5 204 | exit 1 205 | } 206 | 207 | 208 | MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" 209 | if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then 210 | handle_image "${MIMETYPE}" 211 | fi 212 | handle_extension 213 | handle_mime "${MIMETYPE}" 214 | handle_fallback 215 | 216 | exit 1 217 | -------------------------------------------------------------------------------- /compton/compton.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 = "glx"; 10 | 11 | ################################# 12 | # 13 | # GLX backend 14 | # 15 | ################################# 16 | 17 | glx-no-stencil = true; 18 | 19 | # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. 20 | # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, 21 | # but a 20% increase when only 1/4 is. 22 | # My tests on nouveau show terrible slowdown. 23 | # Useful with --glx-swap-method, as well. 24 | glx-copy-from-front = false; 25 | 26 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. 27 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. 28 | # May break VSync and is not available on some drivers. 29 | # Overrides --glx-copy-from-front. 30 | # glx-use-copysubbuffermesa = true; 31 | 32 | # GLX backend: Avoid rebinding pixmap on window damage. 33 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). 34 | # Recommended if it works. 35 | # glx-no-rebind-pixmap = true; 36 | 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 | 56 | # Enabled client-side shadows on windows. 57 | shadow = true; 58 | # Don't draw shadows on DND windows. 59 | no-dnd-shadow = true; 60 | # Avoid drawing shadows on dock/panel windows. 61 | no-dock-shadow = true; 62 | # Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows. 63 | clear-shadow = true; 64 | # The blur radius for shadows. (default 12) 65 | shadow-radius = 5; 66 | # The left offset for shadows. (default -15) 67 | shadow-offset-x = -5; 68 | # The top offset for shadows. (default -15) 69 | shadow-offset-y = -5; 70 | # The translucency for shadows. (default .75) 71 | shadow-opacity = 0.5; 72 | 73 | # Set if you want different colour shadows 74 | # shadow-red = 0.0; 75 | # shadow-green = 0.0; 76 | # shadow-blue = 0.0; 77 | 78 | # 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 79 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). 80 | # 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. 81 | shadow-exclude = [ 82 | "! name~=''", 83 | "name = 'Notification'", 84 | "name = 'Plank'", 85 | "name = 'Docky'", 86 | "name = 'Kupfer'", 87 | "name = 'xfce4-notifyd'", 88 | "name *= 'VLC'", 89 | "name *= 'compton'", 90 | "name *= 'Chromium'", 91 | "name *= 'Chrome'", 92 | "name *= 'Firefox'", 93 | "class_g = 'Conky'", 94 | "class_g = 'Kupfer'", 95 | "class_g = 'Synapse'", 96 | "class_g ?= 'Notify-osd'", 97 | "class_g ?= 'Cairo-dock'", 98 | "class_g ?= 'Cairo-clock'", 99 | "class_g ?= 'Xfce4-notifyd'", 100 | "class_g ?= 'Xfce4-power-manager'" 101 | ]; 102 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) 103 | shadow-ignore-shaped = false; 104 | 105 | ################################# 106 | # 107 | # Opacity 108 | # 109 | ################################# 110 | 111 | menu-opacity = 0.85; 112 | inactive-opacity = 1; 113 | active-opacity = 1; 114 | frame-opacity = 0.85; 115 | inactive-opacity-override = false; 116 | alpha-step = 0.06; 117 | 118 | # Dim inactive windows. (0.0 - 1.0) 119 | # inactive-dim = 0.2; 120 | # Do not let dimness adjust based on window opacity. 121 | # inactive-dim-fixed = true; 122 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. 123 | blur-background = false; 124 | # Blur background of opaque windows with transparent frames as well. 125 | blur-background-frame = false; 126 | # Do not let blur radius adjust based on window opacity. 127 | blur-background-fixed = false; 128 | blur-background-exclude = [ 129 | "window_type = 'dock'", 130 | "window_type = 'desktop'" 131 | ]; 132 | #blur-kernel = '15,15,0.140858,0.182684,0.227638,0.272532,0.313486,0.346456,0.367879,0.375311,0.367879,0.346456,0.313486,0.272532,0.227638,0.182684,0.140858,0.182684,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928,0.182684,0.227638,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.227638,0.272532,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.272532,0.313486,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.313486,0.346456,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.346456,0.367879,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.367879,0.375311,0.486752,0.606531,0.726149,0.835270,0.923116,0.980199,0.980199,0.923116,0.835270,0.726149,0.606531,0.486752,0.375311,0.367879,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.367879,0.346456,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.346456,0.313486,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.313486,0.272532,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.272532,0.227638,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.227638,0.182684,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928,0.182684,0.140858,0.182684,0.227638,0.272532,0.313486,0.346456,0.367879,0.375311,0.367879,0.346456,0.313486,0.272532,0.227638,0.182684,0.140858' 133 | 134 | ################################# 135 | # 136 | # Fading 137 | # 138 | ################################# 139 | 140 | # Fade windows during opacity changes. 141 | fading = true; 142 | # The time between steps in a fade in milliseconds. (default 10). 143 | fade-delta = 4; 144 | # Opacity change between steps while fading in. (default 0.028). 145 | fade-in-step = 0.03; 146 | # Opacity change between steps while fading out. (default 0.03). 147 | fade-out-step = 0.03; 148 | # Fade windows in/out when opening/closing 149 | # no-fading-openclose = true; 150 | 151 | # Specify a list of conditions of windows that should not be faded. 152 | fade-exclude = [ ]; 153 | 154 | ################################# 155 | # 156 | # Other 157 | # 158 | ################################# 159 | 160 | # Try to detect WM windows and mark them as active. 161 | mark-wmwin-focused = true; 162 | # Mark all non-WM but override-redirect windows active (e.g. menus). 163 | mark-ovredir-focused = true; 164 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 165 | # Usually more reliable but depends on a EWMH-compliant WM. 166 | use-ewmh-active-win = true; 167 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 168 | detect-rounded-corners = true; 169 | 170 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. 171 | # This prevents opacity being ignored for some apps. 172 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. 173 | detect-client-opacity = true; 174 | 175 | # Specify refresh rate of the screen. 176 | # If not specified or 0, compton will try detecting this with X RandR extension. 177 | refresh-rate = 0; 178 | 179 | # Set VSync method. VSync methods currently available: 180 | # none: No VSync 181 | # drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers. 182 | # opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers. 183 | # opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers. 184 | # opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental. 185 | # opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use. 186 | # (Note some VSync methods may not be enabled at compile time.) 187 | vsync = "opengl-swc"; 188 | 189 | # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. 190 | # Reported to have no effect, though. 191 | dbe = false; 192 | # Painting on X Composite overlay window. Recommended. 193 | paint-on-overlay = true; 194 | 195 | # Limit compton to repaint at most once every 1 / refresh_rate second to boost performance. 196 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, 197 | # unless you wish to specify a lower refresh rate than the actual value. 198 | sw-opti = false; 199 | 200 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. 201 | # Known to cause flickering when redirecting/unredirecting windows. 202 | # paint-on-overlay may make the flickering less obvious. 203 | unredir-if-possible = true; 204 | 205 | # Specify a list of conditions of windows that should always be considered focused. 206 | focus-exclude = [ 207 | "class_g = 'Cairo-clock'" 208 | ]; 209 | 210 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. 211 | detect-transient = true; 212 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. 213 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. 214 | detect-client-leader = true; 215 | 216 | ################################# 217 | # 218 | # Window type settings 219 | # 220 | ################################# 221 | 222 | wintypes: 223 | { 224 | tooltip = 225 | { 226 | # fade: Fade the particular type of windows. 227 | fade = true; 228 | # shadow: Give those windows shadow 229 | shadow = false; 230 | # opacity: Default opacity for the type of windows. 231 | opacity = 0.85; 232 | # focus: Whether to always consider windows of this type focused. 233 | focus = true; 234 | }; 235 | }; 236 | -------------------------------------------------------------------------------- /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 = "glx"; 10 | 11 | ################################# 12 | # 13 | # GLX backend 14 | # 15 | ################################# 16 | 17 | glx-no-stencil = true; 18 | 19 | # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. 20 | # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, 21 | # but a 20% increase when only 1/4 is. 22 | # My tests on nouveau show terrible slowdown. 23 | # Useful with --glx-swap-method, as well. 24 | glx-copy-from-front = false; 25 | 26 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. 27 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. 28 | # May break VSync and is not available on some drivers. 29 | # Overrides --glx-copy-from-front. 30 | # glx-use-copysubbuffermesa = true; 31 | 32 | # GLX backend: Avoid rebinding pixmap on window damage. 33 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). 34 | # Recommended if it works. 35 | # glx-no-rebind-pixmap = true; 36 | 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 | 56 | # Enabled client-side shadows on windows. 57 | shadow = true; 58 | # Don't draw shadows on DND windows. 59 | no-dnd-shadow = true; 60 | # Avoid drawing shadows on dock/panel windows. 61 | no-dock-shadow = true; 62 | # Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows. 63 | clear-shadow = true; 64 | # The blur radius for shadows. (default 12) 65 | shadow-radius = 5; 66 | # The left offset for shadows. (default -15) 67 | shadow-offset-x = -5; 68 | # The top offset for shadows. (default -15) 69 | shadow-offset-y = -5; 70 | # The translucency for shadows. (default .75) 71 | shadow-opacity = 0.5; 72 | 73 | # Set if you want different colour shadows 74 | # shadow-red = 0.0; 75 | # shadow-green = 0.0; 76 | # shadow-blue = 0.0; 77 | 78 | # 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 79 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). 80 | # 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. 81 | shadow-exclude = [ 82 | "! name~=''", 83 | "name = 'Notification'", 84 | "name = 'Plank'", 85 | "name = 'Docky'", 86 | "name = 'Kupfer'", 87 | "name = 'xfce4-notifyd'", 88 | "name *= 'VLC'", 89 | "name *= 'compton'", 90 | "name *= 'picom'", 91 | "name *= 'Chromium'", 92 | "name *= 'Chrome'", 93 | "name *= 'Firefox'", 94 | "class_g = 'Conky'", 95 | "class_g = 'Kupfer'", 96 | "class_g = 'Synapse'", 97 | "class_g ?= 'Notify-osd'", 98 | "class_g ?= 'Cairo-dock'", 99 | "class_g ?= 'Cairo-clock'", 100 | "class_g ?= 'Xfce4-notifyd'", 101 | "class_g ?= 'Xfce4-power-manager'" 102 | ]; 103 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) 104 | shadow-ignore-shaped = false; 105 | 106 | ################################# 107 | # 108 | # Opacity 109 | # 110 | ################################# 111 | 112 | menu-opacity = 0.85; 113 | inactive-opacity = 1; 114 | active-opacity = 1; 115 | frame-opacity = 0.85; 116 | inactive-opacity-override = false; 117 | 118 | # Dim inactive windows. (0.0 - 1.0) 119 | # inactive-dim = 0.2; 120 | # Do not let dimness adjust based on window opacity. 121 | # inactive-dim-fixed = true; 122 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. 123 | blur-background = false; 124 | # Blur background of opaque windows with transparent frames as well. 125 | blur-background-frame = false; 126 | # Do not let blur radius adjust based on window opacity. 127 | blur-background-fixed = false; 128 | blur-background-exclude = [ 129 | "window_type = 'dock'", 130 | "window_type = 'desktop'" 131 | ]; 132 | #blur-kernel = '15,15,0.140858,0.182684,0.227638,0.272532,0.313486,0.346456,0.367879,0.375311,0.367879,0.346456,0.313486,0.272532,0.227638,0.182684,0.140858,0.182684,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928,0.182684,0.227638,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.227638,0.272532,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.272532,0.313486,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.313486,0.346456,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.346456,0.367879,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.367879,0.375311,0.486752,0.606531,0.726149,0.835270,0.923116,0.980199,0.980199,0.923116,0.835270,0.726149,0.606531,0.486752,0.375311,0.367879,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.367879,0.346456,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.346456,0.313486,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.313486,0.272532,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.272532,0.227638,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.227638,0.182684,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928,0.182684,0.140858,0.182684,0.227638,0.272532,0.313486,0.346456,0.367879,0.375311,0.367879,0.346456,0.313486,0.272532,0.227638,0.182684,0.140858' 133 | 134 | ################################# 135 | # 136 | # Fading 137 | # 138 | ################################# 139 | 140 | # Fade windows during opacity changes. 141 | fading = true; 142 | # The time between steps in a fade in milliseconds. (default 10). 143 | fade-delta = 4; 144 | # Opacity change between steps while fading in. (default 0.028). 145 | fade-in-step = 0.03; 146 | # Opacity change between steps while fading out. (default 0.03). 147 | fade-out-step = 0.03; 148 | # Fade windows in/out when opening/closing 149 | # no-fading-openclose = true; 150 | 151 | # Specify a list of conditions of windows that should not be faded. 152 | fade-exclude = [ ]; 153 | 154 | ################################# 155 | # 156 | # Other 157 | # 158 | ################################# 159 | 160 | # Try to detect WM windows and mark them as active. 161 | mark-wmwin-focused = true; 162 | # Mark all non-WM but override-redirect windows active (e.g. menus). 163 | mark-ovredir-focused = true; 164 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 165 | # Usually more reliable but depends on a EWMH-compliant WM. 166 | use-ewmh-active-win = true; 167 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 168 | detect-rounded-corners = true; 169 | 170 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. 171 | # This prevents opacity being ignored for some apps. 172 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. 173 | detect-client-opacity = true; 174 | 175 | # Specify refresh rate of the screen. 176 | # If not specified or 0, compton will try detecting this with X RandR extension. 177 | refresh-rate = 0; 178 | 179 | # Set VSync method. VSync methods currently available: 180 | # none: No VSync 181 | # drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers. 182 | # opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers. 183 | # opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers. 184 | # opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental. 185 | # opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use. 186 | # (Note some VSync methods may not be enabled at compile time.) 187 | vsync = "opengl-swc"; 188 | 189 | # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. 190 | # Reported to have no effect, though. 191 | dbe = false; 192 | 193 | # Limit compton to repaint at most once every 1 / refresh_rate second to boost performance. 194 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, 195 | # unless you wish to specify a lower refresh rate than the actual value. 196 | sw-opti = false; 197 | 198 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. 199 | # Known to cause flickering when redirecting/unredirecting windows. 200 | # paint-on-overlay may make the flickering less obvious. 201 | unredir-if-possible = true; 202 | 203 | # Specify a list of conditions of windows that should always be considered focused. 204 | focus-exclude = [ 205 | "class_g = 'Cairo-clock'" 206 | ]; 207 | 208 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. 209 | detect-transient = true; 210 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. 211 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. 212 | detect-client-leader = true; 213 | 214 | ################################# 215 | # 216 | # Window type settings 217 | # 218 | ################################# 219 | 220 | wintypes: 221 | { 222 | tooltip = 223 | { 224 | # fade: Fade the particular type of windows. 225 | fade = true; 226 | # shadow: Give those windows shadow 227 | shadow = false; 228 | # opacity: Default opacity for the type of windows. 229 | opacity = 0.85; 230 | # focus: Whether to always consider windows of this type focused. 231 | focus = true; 232 | }; 233 | }; 234 | 235 | ################################# 236 | # 237 | # Fixes 238 | # 239 | ################################# 240 | 241 | # Prevent flickering with NVIDIA GPU 242 | # https://github.com/yshui/picom/issues/375#issuecomment-626249176 243 | use-damage = false 244 | -------------------------------------------------------------------------------- /alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [[keyboard.bindings]] 2 | action = "ToggleFullscreen" 3 | key = "Return" 4 | mods = "Alt" 5 | 6 | [[keyboard.bindings]] 7 | action = "Paste" 8 | key = "Paste" 9 | 10 | [[keyboard.bindings]] 11 | action = "Copy" 12 | key = "Copy" 13 | 14 | [[keyboard.bindings]] 15 | action = "ClearLogNotice" 16 | key = "L" 17 | mods = "Control" 18 | 19 | [[keyboard.bindings]] 20 | chars = "\f" 21 | key = "L" 22 | mods = "Control" 23 | 24 | [[keyboard.bindings]] 25 | chars = "\u001B[1;3H" 26 | key = "Home" 27 | mods = "Alt" 28 | 29 | [[keyboard.bindings]] 30 | chars = "\u001BOH" 31 | key = "Home" 32 | mode = "AppCursor" 33 | 34 | [[keyboard.bindings]] 35 | chars = "\u001B[H" 36 | key = "Home" 37 | mode = "~AppCursor" 38 | 39 | [[keyboard.bindings]] 40 | chars = "\u001B[1;3F" 41 | key = "End" 42 | mods = "Alt" 43 | 44 | [[keyboard.bindings]] 45 | chars = "\u001BOF" 46 | key = "End" 47 | mode = "AppCursor" 48 | 49 | [[keyboard.bindings]] 50 | chars = "\u001B[F" 51 | key = "End" 52 | mode = "~AppCursor" 53 | 54 | [[keyboard.bindings]] 55 | action = "ScrollPageUp" 56 | key = "PageUp" 57 | mode = "~Alt" 58 | mods = "Shift" 59 | 60 | [[keyboard.bindings]] 61 | chars = "\u001B[5;2~" 62 | key = "PageUp" 63 | mode = "Alt" 64 | mods = "Shift" 65 | 66 | [[keyboard.bindings]] 67 | chars = "\u001B[5;5~" 68 | key = "PageUp" 69 | mods = "Control" 70 | 71 | [[keyboard.bindings]] 72 | chars = "\u001B[5;3~" 73 | key = "PageUp" 74 | mods = "Alt" 75 | 76 | [[keyboard.bindings]] 77 | chars = "\u001B[5~" 78 | key = "PageUp" 79 | 80 | [[keyboard.bindings]] 81 | action = "ScrollPageDown" 82 | key = "PageDown" 83 | mode = "~Alt" 84 | mods = "Shift" 85 | 86 | [[keyboard.bindings]] 87 | chars = "\u001B[6;2~" 88 | key = "PageDown" 89 | mode = "Alt" 90 | mods = "Shift" 91 | 92 | [[keyboard.bindings]] 93 | chars = "\u001B[6;5~" 94 | key = "PageDown" 95 | mods = "Control" 96 | 97 | [[keyboard.bindings]] 98 | chars = "\u001B[6;3~" 99 | key = "PageDown" 100 | mods = "Alt" 101 | 102 | [[keyboard.bindings]] 103 | chars = "\u001B[6~" 104 | key = "PageDown" 105 | 106 | [[keyboard.bindings]] 107 | chars = "\u001B[Z" 108 | key = "Tab" 109 | mods = "Shift" 110 | 111 | [[keyboard.bindings]] 112 | chars = "\u007F" 113 | key = "Back" 114 | 115 | [[keyboard.bindings]] 116 | chars = "\u001B\u007F" 117 | key = "Back" 118 | mods = "Alt" 119 | 120 | [[keyboard.bindings]] 121 | chars = "\u001B[2~" 122 | key = "Insert" 123 | 124 | [[keyboard.bindings]] 125 | chars = "\u001B[3~" 126 | key = "Delete" 127 | 128 | [[keyboard.bindings]] 129 | chars = "\u001B[1;2D" 130 | key = "Left" 131 | mods = "Shift" 132 | 133 | [[keyboard.bindings]] 134 | chars = "\u001B[1;5D" 135 | key = "Left" 136 | mods = "Control" 137 | 138 | [[keyboard.bindings]] 139 | chars = "\u001B[1;3D" 140 | key = "Left" 141 | mods = "Alt" 142 | 143 | [[keyboard.bindings]] 144 | chars = "\u001B[D" 145 | key = "Left" 146 | mode = "~AppCursor" 147 | 148 | [[keyboard.bindings]] 149 | chars = "\u001BOD" 150 | key = "Left" 151 | mode = "AppCursor" 152 | 153 | [[keyboard.bindings]] 154 | chars = "\u001B[1;2C" 155 | key = "Right" 156 | mods = "Shift" 157 | 158 | [[keyboard.bindings]] 159 | chars = "\u001B[1;5C" 160 | key = "Right" 161 | mods = "Control" 162 | 163 | [[keyboard.bindings]] 164 | chars = "\u001B[1;3C" 165 | key = "Right" 166 | mods = "Alt" 167 | 168 | [[keyboard.bindings]] 169 | chars = "\u001B[C" 170 | key = "Right" 171 | mode = "~AppCursor" 172 | 173 | [[keyboard.bindings]] 174 | chars = "\u001BOC" 175 | key = "Right" 176 | mode = "AppCursor" 177 | 178 | [[keyboard.bindings]] 179 | chars = "\u001B[1;2A" 180 | key = "Up" 181 | mods = "Shift" 182 | 183 | [[keyboard.bindings]] 184 | chars = "\u001B[1;5A" 185 | key = "Up" 186 | mods = "Control" 187 | 188 | [[keyboard.bindings]] 189 | chars = "\u001B[1;3A" 190 | key = "Up" 191 | mods = "Alt" 192 | 193 | [[keyboard.bindings]] 194 | chars = "\u001B[A" 195 | key = "Up" 196 | mode = "~AppCursor" 197 | 198 | [[keyboard.bindings]] 199 | chars = "\u001BOA" 200 | key = "Up" 201 | mode = "AppCursor" 202 | 203 | [[keyboard.bindings]] 204 | chars = "\u001B[1;2B" 205 | key = "Down" 206 | mods = "Shift" 207 | 208 | [[keyboard.bindings]] 209 | chars = "\u001B[1;5B" 210 | key = "Down" 211 | mods = "Control" 212 | 213 | [[keyboard.bindings]] 214 | chars = "\u001B[1;3B" 215 | key = "Down" 216 | mods = "Alt" 217 | 218 | [[keyboard.bindings]] 219 | chars = "\u001B[B" 220 | key = "Down" 221 | mode = "~AppCursor" 222 | 223 | [[keyboard.bindings]] 224 | chars = "\u001BOB" 225 | key = "Down" 226 | mode = "AppCursor" 227 | 228 | [[keyboard.bindings]] 229 | chars = "\u001BOP" 230 | key = "F1" 231 | 232 | [[keyboard.bindings]] 233 | chars = "\u001BOQ" 234 | key = "F2" 235 | 236 | [[keyboard.bindings]] 237 | chars = "\u001BOR" 238 | key = "F3" 239 | 240 | [[keyboard.bindings]] 241 | chars = "\u001BOS" 242 | key = "F4" 243 | 244 | [[keyboard.bindings]] 245 | chars = "\u001B[15~" 246 | key = "F5" 247 | 248 | [[keyboard.bindings]] 249 | chars = "\u001B[17~" 250 | key = "F6" 251 | 252 | [[keyboard.bindings]] 253 | chars = "\u001B[18~" 254 | key = "F7" 255 | 256 | [[keyboard.bindings]] 257 | chars = "\u001B[19~" 258 | key = "F8" 259 | 260 | [[keyboard.bindings]] 261 | chars = "\u001B[20~" 262 | key = "F9" 263 | 264 | [[keyboard.bindings]] 265 | chars = "\u001B[21~" 266 | key = "F10" 267 | 268 | [[keyboard.bindings]] 269 | chars = "\u001B[23~" 270 | key = "F11" 271 | 272 | [[keyboard.bindings]] 273 | chars = "\u001B[24~" 274 | key = "F12" 275 | 276 | [[keyboard.bindings]] 277 | chars = "\u001B[1;2P" 278 | key = "F1" 279 | mods = "Shift" 280 | 281 | [[keyboard.bindings]] 282 | chars = "\u001B[1;2Q" 283 | key = "F2" 284 | mods = "Shift" 285 | 286 | [[keyboard.bindings]] 287 | chars = "\u001B[1;2R" 288 | key = "F3" 289 | mods = "Shift" 290 | 291 | [[keyboard.bindings]] 292 | chars = "\u001B[1;2S" 293 | key = "F4" 294 | mods = "Shift" 295 | 296 | [[keyboard.bindings]] 297 | chars = "\u001B[15;2~" 298 | key = "F5" 299 | mods = "Shift" 300 | 301 | [[keyboard.bindings]] 302 | chars = "\u001B[17;2~" 303 | key = "F6" 304 | mods = "Shift" 305 | 306 | [[keyboard.bindings]] 307 | chars = "\u001B[18;2~" 308 | key = "F7" 309 | mods = "Shift" 310 | 311 | [[keyboard.bindings]] 312 | chars = "\u001B[19;2~" 313 | key = "F8" 314 | mods = "Shift" 315 | 316 | [[keyboard.bindings]] 317 | chars = "\u001B[20;2~" 318 | key = "F9" 319 | mods = "Shift" 320 | 321 | [[keyboard.bindings]] 322 | chars = "\u001B[21;2~" 323 | key = "F10" 324 | mods = "Shift" 325 | 326 | [[keyboard.bindings]] 327 | chars = "\u001B[23;2~" 328 | key = "F11" 329 | mods = "Shift" 330 | 331 | [[keyboard.bindings]] 332 | chars = "\u001B[24;2~" 333 | key = "F12" 334 | mods = "Shift" 335 | 336 | [[keyboard.bindings]] 337 | chars = "\u001B[1;5P" 338 | key = "F1" 339 | mods = "Control" 340 | 341 | [[keyboard.bindings]] 342 | chars = "\u001B[1;5Q" 343 | key = "F2" 344 | mods = "Control" 345 | 346 | [[keyboard.bindings]] 347 | chars = "\u001B[1;5R" 348 | key = "F3" 349 | mods = "Control" 350 | 351 | [[keyboard.bindings]] 352 | chars = "\u001B[1;5S" 353 | key = "F4" 354 | mods = "Control" 355 | 356 | [[keyboard.bindings]] 357 | chars = "\u001B[15;5~" 358 | key = "F5" 359 | mods = "Control" 360 | 361 | [[keyboard.bindings]] 362 | chars = "\u001B[17;5~" 363 | key = "F6" 364 | mods = "Control" 365 | 366 | [[keyboard.bindings]] 367 | chars = "\u001B[18;5~" 368 | key = "F7" 369 | mods = "Control" 370 | 371 | [[keyboard.bindings]] 372 | chars = "\u001B[19;5~" 373 | key = "F8" 374 | mods = "Control" 375 | 376 | [[keyboard.bindings]] 377 | chars = "\u001B[20;5~" 378 | key = "F9" 379 | mods = "Control" 380 | 381 | [[keyboard.bindings]] 382 | chars = "\u001B[21;5~" 383 | key = "F10" 384 | mods = "Control" 385 | 386 | [[keyboard.bindings]] 387 | chars = "\u001B[23;5~" 388 | key = "F11" 389 | mods = "Control" 390 | 391 | [[keyboard.bindings]] 392 | chars = "\u001B[24;5~" 393 | key = "F12" 394 | mods = "Control" 395 | 396 | [[keyboard.bindings]] 397 | chars = "\u001B[1;6P" 398 | key = "F1" 399 | mods = "Alt" 400 | 401 | [[keyboard.bindings]] 402 | chars = "\u001B[1;6Q" 403 | key = "F2" 404 | mods = "Alt" 405 | 406 | [[keyboard.bindings]] 407 | chars = "\u001B[1;6R" 408 | key = "F3" 409 | mods = "Alt" 410 | 411 | [[keyboard.bindings]] 412 | chars = "\u001B[1;6S" 413 | key = "F4" 414 | mods = "Alt" 415 | 416 | [[keyboard.bindings]] 417 | chars = "\u001B[15;6~" 418 | key = "F5" 419 | mods = "Alt" 420 | 421 | [[keyboard.bindings]] 422 | chars = "\u001B[17;6~" 423 | key = "F6" 424 | mods = "Alt" 425 | 426 | [[keyboard.bindings]] 427 | chars = "\u001B[18;6~" 428 | key = "F7" 429 | mods = "Alt" 430 | 431 | [[keyboard.bindings]] 432 | chars = "\u001B[19;6~" 433 | key = "F8" 434 | mods = "Alt" 435 | 436 | [[keyboard.bindings]] 437 | chars = "\u001B[20;6~" 438 | key = "F9" 439 | mods = "Alt" 440 | 441 | [[keyboard.bindings]] 442 | chars = "\u001B[21;6~" 443 | key = "F10" 444 | mods = "Alt" 445 | 446 | [[keyboard.bindings]] 447 | chars = "\u001B[23;6~" 448 | key = "F11" 449 | mods = "Alt" 450 | 451 | [[keyboard.bindings]] 452 | chars = "\u001B[24;6~" 453 | key = "F12" 454 | mods = "Alt" 455 | 456 | [[keyboard.bindings]] 457 | chars = "\u001B[1;3P" 458 | key = "F1" 459 | mods = "Super" 460 | 461 | [[keyboard.bindings]] 462 | chars = "\u001B[1;3Q" 463 | key = "F2" 464 | mods = "Super" 465 | 466 | [[keyboard.bindings]] 467 | chars = "\u001B[1;3R" 468 | key = "F3" 469 | mods = "Super" 470 | 471 | [[keyboard.bindings]] 472 | chars = "\u001B[1;3S" 473 | key = "F4" 474 | mods = "Super" 475 | 476 | [[keyboard.bindings]] 477 | chars = "\u001B[15;3~" 478 | key = "F5" 479 | mods = "Super" 480 | 481 | [[keyboard.bindings]] 482 | chars = "\u001B[17;3~" 483 | key = "F6" 484 | mods = "Super" 485 | 486 | [[keyboard.bindings]] 487 | chars = "\u001B[18;3~" 488 | key = "F7" 489 | mods = "Super" 490 | 491 | [[keyboard.bindings]] 492 | chars = "\u001B[19;3~" 493 | key = "F8" 494 | mods = "Super" 495 | 496 | [[keyboard.bindings]] 497 | chars = "\u001B[20;3~" 498 | key = "F9" 499 | mods = "Super" 500 | 501 | [[keyboard.bindings]] 502 | chars = "\u001B[21;3~" 503 | key = "F10" 504 | mods = "Super" 505 | 506 | [[keyboard.bindings]] 507 | chars = "\u001B[23;3~" 508 | key = "F11" 509 | mods = "Super" 510 | 511 | [[keyboard.bindings]] 512 | chars = "\u001B[24;3~" 513 | key = "F12" 514 | mods = "Super" 515 | 516 | [[keyboard.bindings]] 517 | chars = """ 518 | 519 | """ 520 | key = "NumpadEnter" 521 | 522 | [general] 523 | live_config_reload = true 524 | working_directory = "None" 525 | 526 | [[mouse.bindings]] 527 | action = "PasteSelection" 528 | mouse = "Middle" 529 | 530 | [bell] 531 | animation = "EaseOutExpo" 532 | color = "0xffffff" 533 | duration = 0 534 | 535 | [colors] 536 | draw_bold_text_with_bright_colors = true 537 | 538 | [[colors.indexed_colors]] 539 | color = "0xb65611" 540 | index = 16 541 | 542 | [[colors.indexed_colors]] 543 | color = "0xd43552" 544 | index = 17 545 | 546 | [[colors.indexed_colors]] 547 | color = "0x292824" 548 | index = 18 549 | 550 | [[colors.indexed_colors]] 551 | color = "0x6e6b5e" 552 | index = 19 553 | 554 | [[colors.indexed_colors]] 555 | color = "0x999580" 556 | index = 20 557 | 558 | [[colors.indexed_colors]] 559 | color = "0xe8e4cf" 560 | index = 21 561 | 562 | [colors.bright] 563 | black = "0x7d7a68" 564 | blue = "0x6684e1" 565 | cyan = "0x1fad83" 566 | green = "0x60ac39" 567 | magenta = "0xb854d4" 568 | red = "0xd73737" 569 | white = "0xfefbec" 570 | yellow = "0xae9513" 571 | 572 | [colors.cursor] 573 | cursor = "0xa6a28c" 574 | text = "0x20201d" 575 | 576 | [colors.normal] 577 | black = "0x20201d" 578 | blue = "0x6684e1" 579 | cyan = "0x1fad83" 580 | green = "0x60ac39" 581 | magenta = "0xb854d4" 582 | red = "0xd73737" 583 | white = "0xa6a28c" 584 | yellow = "0xae9513" 585 | 586 | [colors.primary] 587 | background = "0x20201d" 588 | foreground = "0xa6a28c" 589 | 590 | [cursor] 591 | style = "Block" 592 | unfocused_hollow = true 593 | 594 | [debug] 595 | log_level = "Warn" 596 | persistent_logging = false 597 | print_events = false 598 | render_timer = false 599 | 600 | [env] 601 | TERM = "xterm-256color" 602 | 603 | [font] 604 | size = 11.0 605 | 606 | [font.glyph_offset] 607 | x = 0 608 | y = 0 609 | 610 | [font.normal] 611 | family = "Source Code Pro" 612 | 613 | [font.offset] 614 | x = 0 615 | y = 0 616 | 617 | [mouse] 618 | hide_when_typing = false 619 | 620 | [scrolling] 621 | history = 10000 622 | multiplier = 3 623 | 624 | [selection] 625 | save_to_clipboard = false 626 | semantic_escape_chars = ''',│`|:"' ()[]{}<>''' 627 | 628 | [window] 629 | decorations = "full" 630 | dynamic_padding = false 631 | dynamic_title = true 632 | opacity = 1.0 633 | startup_mode = "Windowed" 634 | 635 | [window.dimensions] 636 | columns = 80 637 | lines = 23 638 | 639 | [window.padding] 640 | x = 0 641 | y = 0 642 | 643 | [keyboard] 644 | -------------------------------------------------------------------------------- /polybar/config: -------------------------------------------------------------------------------- 1 | ;========================================================== 2 | ; 3 | ; THIS IS AN EXAMPLE CONFIGURATION FILE! 4 | ; IT IS NOT SUPPOSED TO WORK OUT OF THE BOX SINCE IS CONTAINS 5 | ; SETTINGS THAT ARE SPECIFIC TO THE MACHINE WHICH WAS USED 6 | ; TO GENERATE IT. 7 | ; Please refer to the web documentation hosted at: 8 | ; https://github.com/polybar/polybar#configuration 9 | ; and 10 | ; https://github.com/polybar/polybar/wiki/Configuration 11 | ; if you want to automatically generate one for you. 12 | ; 13 | ;========================================================== 14 | ; 15 | ; 16 | ; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ 17 | ; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ 18 | ; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ 19 | ; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ 20 | ; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ 21 | ; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ 22 | ; 23 | ; 24 | ; To learn more about how to configure Polybar 25 | ; go to https://github.com/polybar/polybar 26 | ; 27 | ; The README contains a lot of information 28 | ; 29 | ;========================================================== 30 | 31 | [colors] 32 | background = #CC000000 33 | background-alt = #CC444444 34 | foreground = #DFDFDF 35 | foreground-alt = #555555 36 | primary = #FFB52A 37 | secondary = #E60053 38 | alert = #BD2C40 39 | 40 | [bar/example] 41 | monitor = ${env:MONITOR} 42 | 43 | width = 100% 44 | height = 24 45 | offset-x = 0% 46 | offset-y = 0% 47 | radius = 0 48 | fixed-center = true 49 | 50 | background = ${colors.background} 51 | foreground = ${colors.foreground} 52 | 53 | line-size = 2 54 | line-color = #f00 55 | 56 | border-size = 0 57 | border-color = #00000000 58 | 59 | padding-left = 0 60 | padding-right = 2 61 | 62 | module-margin-left = 1 63 | module-margin-right = 2 64 | 65 | font-0 = "Tamsyn:pixelsize=10;2" 66 | font-1 = "GLYPHICONS Basic Set:pixelsize=10;2" 67 | font-3 = fixed:pixelsize=10;1 68 | font-4 = unifont:fontformat=truetype:size=8:antialias=false;0 69 | # font-5 = siji:pixelsize=10;1 70 | # font-6 = "Roboto:size=11:weight=bold;2" 71 | # font-7 = "Noto Sans:size=11;1" 72 | 73 | modules-left = bspwm i3 pulseaudio peperone 74 | modules-center = playerctl playerctl-prev playerctl-play-pause playerctl-next 75 | modules-right = xbacklight filesystem wlan eth btc memory cpu battery date xkeyboard powermenu 76 | # fun other modules: mpd temperature 77 | 78 | tray-position = right 79 | tray-padding = 2 80 | ;tray-background = #0063ff 81 | 82 | wm-restack = bspwm 83 | ;wm-restack = i3 84 | 85 | ;override-redirect = true 86 | 87 | ;scroll-up = bspwm-desknext 88 | ;scroll-down = bspwm-deskprev 89 | 90 | ;scroll-up = i3wm-wsnext 91 | ;scroll-down = i3wm-wsprev 92 | 93 | cursor-click = pointer 94 | cursor-scroll = ns-resize 95 | 96 | [module/xwindow] 97 | type = internal/xwindow 98 | label = %title:0:30:...% 99 | 100 | [module/xkeyboard] 101 | type = internal/xkeyboard 102 | blacklist-0 = num lock 103 | 104 | format-prefix = " " 105 | format-prefix-foreground = ${colors.foreground-alt} 106 | format-prefix-underline = ${colors.secondary} 107 | 108 | label-layout = %layout% 109 | label-layout-underline = ${colors.secondary} 110 | 111 | label-indicator-padding = 2 112 | label-indicator-margin = 1 113 | label-indicator-background = ${colors.secondary} 114 | label-indicator-underline = ${colors.secondary} 115 | 116 | [module/filesystem] 117 | type = internal/fs 118 | interval = 25 119 | 120 | mount-0 = / 121 | 122 | label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% 123 | label-unmounted = %mountpoint% not mounted 124 | label-unmounted-foreground = ${colors.foreground-alt} 125 | 126 | [module/bspwm] 127 | type = internal/bspwm 128 | 129 | pin-workspaces = true 130 | 131 | label-focused = %index% - %name% 132 | label-focused-background = ${colors.background-alt} 133 | label-focused-underline= ${colors.primary} 134 | label-focused-padding = 2 135 | 136 | label-occupied = %index% 137 | label-occupied-padding = 2 138 | 139 | label-urgent = %index%! 140 | label-urgent-background = ${colors.alert} 141 | label-urgent-padding = 2 142 | 143 | label-empty = %index% 144 | label-empty-foreground = ${colors.foreground-alt} 145 | label-empty-padding = 2 146 | 147 | [module/i3] 148 | type = internal/i3 149 | format = 150 | index-sort = true 151 | wrapping-scroll = false 152 | 153 | ; Only show workspaces on the same output as the bar 154 | ;pin-workspaces = true 155 | 156 | label-mode-padding = 2 157 | label-mode-foreground = #000 158 | label-mode-background = ${colors.primary} 159 | 160 | ; focused = Active workspace on focused monitor 161 | label-focused = %index% 162 | label-focused-background = ${colors.background-alt} 163 | label-focused-underline= ${colors.primary} 164 | label-focused-padding = 2 165 | 166 | ; unfocused = Inactive workspace on any monitor 167 | label-unfocused = %index% 168 | label-unfocused-padding = 2 169 | 170 | ; visible = Active workspace on unfocused monitor 171 | label-visible = %index% 172 | label-visible-background = ${self.label-focused-background} 173 | label-visible-underline = ${self.label-focused-underline} 174 | label-visible-padding = ${self.label-focused-padding} 175 | 176 | ; urgent = Workspace with urgency hint set 177 | label-urgent = %index% 178 | label-urgent-background = ${colors.alert} 179 | label-urgent-padding = 2 180 | 181 | ; Separator in between workspaces 182 | ; label-separator = | 183 | 184 | 185 | [module/mpd] 186 | type = internal/mpd 187 | format-online = 188 | 189 | icon-prev =  190 | icon-stop =  191 | icon-play =  192 | icon-pause =  193 | icon-next =  194 | 195 | label-song-maxlen = 25 196 | label-song-ellipsis = true 197 | 198 | [module/xbacklight] 199 | type = internal/xbacklight 200 | 201 | format =